Микроразметка данных schema.org (вносим изменения в шаблоны)

Тема в разделе "Инструкции и FAQ", создана пользователем Zlata Jesen, 12 ноя 2015.

  1. BulletEMF

    BulletEMF Пользователь

    Сообщения:
    32
    Симпатии:
    3
    В контроллере product.php добавил строку:
    PHP:
    $data ['pricecontent'] = str_replace(" """$data['price']);
    В разметке product.twig вывел эту переменную:
    HTML:
    <span itemprop="price" content="{{ pricecontent }}">{{ price }}</span> 
    <span itemprop="priceCurrency" content="RUB"></span>
    
    Может кому пригодится.
     
    Ravilr нравится это.
  2. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    876
    Симпатии:
    241
    Можно было и не создавать отдельную переменную....
    Код:
    <span itemprop="price" content="{{ price | replace(' ', '') }}">{{ price }}</span>
    <span itemprop="priceCurrency" content="RUB"></span>
    
    По синтаксису мог допустить ошибку, но суть такова!

    Ваш вариант в общем то тоже рабочий! Но обоснован только в случае использования новой переменной в нескольких местах.
     
    Последнее редактирование: 25 окт 2018
    pin нравится это.
  3. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
    с появлением jsom-ld шаблоны лучше не трогать.
     
  4. pin

    pin Новичок

    Сообщения:
    1
    Симпатии:
    0
    Спасибо, работает! Немного поправили синтаксис:
    Код:
                <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                  <h2>{{ price }}</h2>
                  <span itemprop="price" content="{{ price|abs }}"></span>
                  <span itemprop="priceCurrency" content="RUB"></span>
                </li>   
    
     
    Последнее редактирование: 28 окт 2018
  5. Прохожий

    Прохожий Новичок

    Сообщения:
    1
    Симпатии:
    1
    В общем... Перелапатил я эту тему, ни чего путевого не нашлось для меня. Нарисовал через регулярные выражения. Мож кому пригодится:
    PHP:
        "price": "<?php echo $price1 preg_replace("/([\d\s\.]{1,100}).*([\$\€\₴\₽])/is""$1"preg_replace("/([\$\€\₴\₽])([\d\s\.]{1,100}).*/is""$2"$price)); ?>",
        "priceCurrency": "<?php echo $price2 preg_replace("/([\$\€\₴\₽]).*([\d\s\.]{1,100})/is""$1"preg_replace("/([\d\s\.]{1,100})([\$\€\₴\₽])/is""$2"$price)); ?>",
     
    Последнее редактирование: 30 окт 2018
    Ravilr нравится это.
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    4.196
    Симпатии:
    1.445
    Прохожий нравится это.
  7. АтлетПро

    АтлетПро Новичок

    Сообщения:
    12
    Симпатии:
    1
    можно подробнее как ты это сделал?
     
  8. АтлетПро

    АтлетПро Новичок

    Сообщения:
    12
    Симпатии:
    1
    Привет, знатокам). Кто подскажет как прописать правильно поле availability и url?
     
  9. karpov

    karpov Продвинутый пользователь

    Сообщения:
    1.534
    Симпатии:
    246
  10. АтлетПро

    АтлетПро Новичок

    Сообщения:
    12
    Симпатии:
    1
    Нашел решение по availability .. Надеюсь что правильно, потому что валидатор гугла все показывает нормально, даже если на складе "-1" показывает OutOfStock.

    1. Итак заходим в файл: catalog/controller/product/product.php и добавляем две строки


    $data['products'][] = array(
    'product_id' => $result['product_id'],
    'thumb' => $image,
    'name' => $result['name'],
    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
    'availability' => $result['quantity'] > 0 ? true : false,
    'price' => $price,
    'special' => $special,
    'tax' => $tax,
    'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1,
    'rating' => $rating,
    'href' => $this->url->link('product/product', 'product_id=' . $result['product_id'])
    );
    }

    $data['availability'] = ($product_info['quantity'] > 0) ? true : false;

    2. Заходиму файл: catalog/view/theme/*****/template/product/product.tpl и добавляем строку

    <?php if ($price) { ?>
    <div class="price" itemprop = "offers" itemscope itemtype = "http://schema.org/Offer">
    <meta itemprop="priceCurrency" content="<?php echo $currency_code; ?>" />
    <?php if (!$special) { ?>
    <meta itemprop="price" content="<?php echo preg_replace("/[^\d.]/","",rtrim($price, " \t.")); ?>" />
    <link itemprop="availability" href="http://schema.org/<?php echo (($availability) ? 'InStock' : 'OutOfStock') ?>" />

    P.S. Другая разметка, которую вы видите, уже была добавлена в шаблоне.
     
    karpov нравится это.
  11. Angelina1

    Angelina1 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте. Все делаю как описано тут. Но ни гугл ни яндекс разметку не видит. Подскажите,что может быть не так?



     
  12. Ravilr

    Ravilr Специалист

    Сообщения:
    4.196
    Симпатии:
    1.445
    Ну если делаете все, то наверно нужно обновить все кеши, как того требует документация по опенкарт.
    А лучше скорей всего (ввиду низкой квалификации, надеюсь :) ) купить просто модуль за 777р. в котором все сделано в современном формате и без ошибок.
     
  13. Angelina1

    Angelina1 Новичок

    Сообщения:
    2
    Симпатии:
    0
    ну если бы могли купить - купили и не стали задавать вопросы,но, увы, приходится. и, увы, приходится читать такие полезные ответы как ваш. такое чувство, что вы за рекламу получаете
     
  14. Ravilr

    Ravilr Специалист

    Сообщения:
    4.196
    Симпатии:
    1.445
    Конечно получаю. Говорят спасибо. Да и потом покупатели тоже говорят спасибо, ведь я им сэкономил десятки часов проб и ошибок, вынос мозга другим, слезы, ошибки, просадки из за ошибок сайта которые не видны им и прочее.

    Но если вы хотите бесплатно, то начинайте. проверять то что написал выше, показывать сайт, делать тесты, разбавлять тему с инструкцией в вопросник "ой сделала и изменения не видны, ой а как кеш обновить итд "

    В общем, вы сначала разберитесь что у вас, желательно в теме "любых вопросов в разделе обовсем", а уже потом сюда в инструкцию с конкретными вопросами за конкретными ответами. Иначе вы будите получать "полезные ответы как мой"
     
    Bkmz нравится это.
  15. dastan77

    dastan77 Новичок

    Сообщения:
    1
    Симпатии:
    0
    Добрый день! подскажите, ошибку как устранить. валидатор показывает ошибку. все делал по инструкции выше
     

    Вложения:

    • bcb3a5f394.png
      bcb3a5f394.png
      Размер файла:
      161,9 КБ
      Просмотров:
      24
  16. Ravilr

    Ravilr Специалист

    Сообщения:
    4.196
    Симпатии:
    1.445
  17. opencarter

    opencarter Пользователь

    Сообщения:
    55
    Симпатии:
    2
    Все привет.

    Прочитал в справке гугла, что можно добавить код GTIN с атрибутом condition = used для б/у товаров.

    Подскажите пожалуйста, как это правильно сделать.

    При добавлении itemprop="condition" гугл ругается:
    Б/у (Свойство condition недопустимо для объекта типа Product.)
     
  18. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687
  19. opencarter

    opencarter Пользователь

    Сообщения:
    55
    Симпатии:
    2
    а что там выше? в теме не нашел обсуждения именно этого момента.
     
  20. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    687