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

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

  1. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Если нет отзывов, то никакой казметки быть не должно.
     
    Zlata Jesen нравится это.
  2. perevoskin

    perevoskin Новичок

    Сообщения:
    11
    Симпатии:
    0
    При выполнении этой замены руб превращается в знаки вопроса, подскажите как побороть
    Код:
    <li>
       <h2><?php echo $price; ?></h2>
    </li>
    меняем на:
    Код:
      <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                  <h2><span itemprop="price"><span itemprop="priceCurrency" content="RUB"><?php echo $price; ?></span></span>&nbsp;руб.</h2>
                </li>
     

    Вложения:

  3. Zlata Jesen

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

    Сообщения:
    165
    Симпатии:
    98
    Проблема кодировки. Вставляйте не в файловом менеджере на хостинге, а в нормальном редакторе в требуемой кодировке, потом лучше файл заново загрузить измененный.
     
  4. tarasui

    tarasui Новичок

    Сообщения:
    12
    Симпатии:
    1
    Нужно вставлять
     
  5. Сергей2017

    Сергей2017 Новичок

    Сообщения:
    26
    Симпатии:
    0
    Добрый день, форумчане!
    Не смог найти решение данной проблемы =( всю остальную разметку сделал.
    Правда валюта Руб в категориях не показывается, что туда писать тоже не понял и куда именно (в какую строку). В самой карточке товара вся разметка кроме "0" отзыва сделана без ошибок

    reviewCount
    0 (Значение параметра reviewCount должно быть положительным.)
     
  6. Zlata Jesen

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

    Сообщения:
    165
    Симпатии:
    98
    Хоть чуть-чуть ориентируетесь в шаблонах? Какой отвечает за отображение категорий, знаете? Я могу вам дать готовый ответ, но попробую научить "ловить рыбу", а не просто "накормить".
     
  7. Сергей2017

    Сергей2017 Новичок

    Сообщения:
    26
    Симпатии:
    0
    Вообще не ориентируюсь, я долек от программирования. В категориях прописал "Руб" после цен, но есть модули Рекомендуемые товары и просмотренные, вот где их искать я так и не разобрался
     
  8. Zlata Jesen

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

    Сообщения:
    165
    Симпатии:
    98
    Какой файл .tpl за что отвечает, можно посмотреть тут: Руководство Дизайнера
    Нестандартные уже индивидуально, разумеется.
     
  9. Сергей2017

    Сергей2017 Новичок

    Сообщения:
    26
    Симпатии:
    0
    Спасибо!
     
  10. DiMoss

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

    Сообщения:
    862
    Симпатии:
    236
    Как я понял в разметке может быть только одно поле price. Соответственно это должна быть актуальная цена. Но цена может быть и со скидкой (акция). Казалось бы ничего сложно - если есть цена со скидкой, то можно её помещать в поле price. Однако, сниппет ведь не формируется в режиме реального времени, беря данные с сайта, в момент формирования выдачи под запрос. Скидка как правило явление временное. Получается, что если я помещу в поле price акционную цену, в сниппете может оказаться цена ниже чем на странице товара. Не комильфо! Обратная же ситуация не так страшна!
    Для разметки использую модуль. В модуле в поле прайс помещается либо discount, либо price. Полагаю так и надо оставить? То есть не пытаться запихнуть в сниппет акционную цену.
     
  11. Митяй

    Митяй Новичок

    Сообщения:
    11
    Симпатии:
    3
    Надо размечать $price; и $special будет автоматом или то или то в зависимости есть ли скидка или нет. Когда цена стоит со скидкой $price не выводится.
     
  12. whitecc

    whitecc Новичок

    Сообщения:
    1
    Симпатии:
    0
    сделал все по порядку, было все нормально, но на каком то этапе в категориях, сетка товаров поломалась и все товары на странице отображаются в одном месте, будто друг на друге... Предполагаю в чем косяк, но из-за того что изменения в tpl применяются не сразу, приходится стучать головой о клавиатуру, пока все восстановится. Кто-то знает конкретно от чего сетка "поехала"? Думаю на этапе редактирования _product_array.tpl
    Это тот кусок который у вас в category редактировался
     
  13. Ирина Антоненко

    Ирина Антоненко Новичок

    Сообщения:
    1
    Симпатии:
    0
    Спасибо! Очень интересная тема. Помогли разобраться и реализовать задуманное. Но у меня остался один не разрешенный вопрос. Хочу реализовать в сниппете главной страницы интернет-магазина вывод звездочек. На не знаю как это реализовать. Разметку главной сделала, но очень хочется еще и звездочки...((
     
  14. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    А что вам звездочки для главной? У вас один товар или средний рейтинг хотите вывести?
     
  15. ger073

    ger073 Новичок

    Сообщения:
    1
    Симпатии:
    1
    Здравствуйте Форумчане!
    Прочитал всю тему несколько раз. Решал вопрос микроразметки. Google ругается на цену и валюту... Все предложенные выше решения испробовал, но... Задался целью найти решение: разделить цену и валюту, а затем отделmно вывести в product.tpl . Что бы и Яша и Гоша не ругались. Короче...
    Предлагаю решение.
    1. Условия, которые надо учитывать:
    • символы валют в админке надо устанавливать все либо слева (я так установил), либо справа;
    можно не заморачиваться, если, только RUB или Гривна или далее по списку...

    2. Редактируем:
    • Админка - валюта слева(справа) (см. выше).
    • product.php, (решение нашел здесь) :
    PHP:
            if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                    
    $data['currency'] = $this->currency->getSymbolRight($this->session->data['currency']);
                    
    $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'],'',false);
                    
    // разделил цену с валютой на валюту и цену
                
    } else {
                    
    $data['price'] = false;
                }

                if ((float)
    $product_info['special']) {
                    
    $data['currency'] = $this->currency->getSymbolRight($this->session->data['currency']);
                    
    $data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'],
    $this->config->get('config_tax')), $this->session->data['currency'],'',false);
                    
    // разделил цену с валютой на валюту и цену для скидки
    Выделенный участок кода вставляем вместо:
    PHP:
                if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                    
    $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                } else {
                    
    $data['price'] = false;
                }

                if ((float)
    $product_info['special']) {
                    
    $data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'],
    $this->config->get('config_tax')), $this->session->data['currency']);
                } else {
                    
    $data['special'] = false;
    • теперь в файле product.tpl:
    PHP:
              <ul class="list-unstyled">
                <?php if (!$special) { ?>
                <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                  <h2 itemprop="price" content="<?php echo $price?>"><?php echo $price?> <meta itemprop="priceCurrency" content="RUB" /><?php echo $currency?></h2>
                </li>
                <?php } else { ?>
                <li><span style="text-decoration: line-through;"><?php echo $price?> <?php echo $currency?></span></li>
                <li itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                  <h2 itemprop="price" content="<?php echo $special?>"><?php echo $special?> <meta itemprop="priceCurrency" content="RUB" /><?php echo $currency?></h2>
                </li>
    Это там, где было:

    PHP:
              <ul class="list-unstyled">
                <?php if (!$special) { ?>
                <li>
                  <h2><?php echo $price?></h2>
                </li>
                <?php } else { ?>
                <li><span style="text-decoration: line-through;"><?php echo $price?></span></li>
                <li>
                  <h2><?php echo $special?></h2>
                </li>
    Результат у Гоши: тут
    У Яши:
    upload_2018-4-6_12-36-42.png
    Если что-то не так - напишите. Я обычный юзер. Просто решил задачу, котору сам себе поставил.
     
    Последнее редактирование: 7 апр 2018
    Slait нравится это.
  16. BulletEMF

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

    Сообщения:
    32
    Симпатии:
    3
    Всем здрасте)
    У меня на сайте тысячи разделены пробелом, т.е. цены имеют такой вид записи "20 000 руб". Не нашел пока что варианта какай пройти проверку. Если убрать пробел то все ок становится. Если отделить тысячи точкой (20.000 руб) тоже проходит.
    А как сделать чтоб пройти проверку с пробелом?
     
  17. Ravilr

    Ravilr Специалист

    Сообщения:
    3.884
    Симпатии:
    1.065
    Так уберите, проблем же нет. Разметка все равно невидимая для покупателя, посему можно все что угодно. Не занете как в пхп убрать пробел? Прямо напишите в яндексе "Как убрать пробел php"
     
  18. DiMoss

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

    Сообщения:
    862
    Симпатии:
    236
    @BulletEMF, что то вроде такого вам поможет....
    PHP:
    str_replace(" """$price)
    Гляньте документацию по данному методу.
     
    Последнее редактирование: 23 окт 2018
  19. BulletEMF

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

    Сообщения:
    32
    Симпатии:
    3
    Как убрать пробел в php я знаю. Я наоборот хотел его оставить. В общем мне нужно чтоб на сайте цена - тысячи пробелом отделялись. Но тогда валидатор не проходит. Если я пробел уберу то цена будет такого вида 10.000 руб или 10000. Цена лучше с пробелом ИМХО воспринимается. Я еще помазгую и погуглю.
     
  20. BulletEMF

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

    Сообщения:
    32
    Симпатии:
    3
    Ребят, дошло! Спасибо)