Что такое микроразметка?
Микроразметка - это дополнительные теги и атрибуты на странице, которые помогают поисковым системам лучше понимать ее содержимое.
Существует несколько словарей микроразметки. В этой статье рассмотрим 2 самых популярных:
- Schema.org - для расширенных сниппетов в поисковой выдаче
- Open Graph - для качественного представления сайта в соц. сетях.
Кратко о каждом формате.
Schema.org - словарь, который разрабатывают и рекомендуют использовать сами поисковые системы. Он состоит из разнообразных типов сущностей со своими наборами свойств. Мы будем использовать типы Product и Offer.
Open Graph - словарь, разработанный Facebook. Поддерживается всеми популярными социальными сетями.
JSON-LD - это формат описания контента с помощью объектов словаря связанных данных (Linked Data, LD). Используется по умолчанию в карточке товара в virtuemart версии 3.0.10 и выше. Пока не отображается в результатах поиска Яндекса.
Информации из статьи будет достаточно для внедрения микроразметки на сайт. Для глубокого изучения рекомендую эти ссылки:
Валидаторы микроразметки
Для проверки микроразметки на сайте будем использовать 2 сервиса
Валидатор от Яндекс Валидатор от Google
Микроразметка schema.org для карточки товара
Начиная с версии virtuemart 3.0.10 микроразметка карточки товара добавлена по умолчанию. Она подключается в конце файла /components/com_virtuemart/views/productdetails/tmpl/default.php
1 2 3 |
if ($this->product->prices['salesPrice'] > 0) { echo shopFunctionsF::renderVmSubLayout('snippets',array('product'=>$this->product, 'currency'=>$this->currency, 'showRating'=>$this->showRating)); } |
Сам шаблон микроразметки находится в файле /components/com_virtuemart/sublayouts/snippets.php
Чтобы правильно работало округление цены в указанном файле замените
1 |
$product->prices['salesPrice'] |
на
1 |
round($product->prices['salesPrice']); |
Используется синтаксис JSON-LD, который пока не поддерживается поиском Яндекса, поэтому лучше дополнительно добавить микроразметку schema.org.
В шаблон карточки товара добавим дополнительные теги и атрибуты, с помощью которых в поисковой выдаче можно будет получить, например, такой сниппет.
В самом общем виде шаблон карточки товара от такого вида
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<div class="productdetails-view productdetails"> <h1>Название товара</h1> <div class="main-image"> <a href="/image/product.png"> <img src="/image/product.png" alt=""> </a> </div> <div class="vm-product-details-container"> <div class="product-price"> <span class="PricesalesPrice">1 999 руб.</span> </div> </div> <div class="">В наличии</div> <div class="product-short-description"> <p>Краткое описание</p> </div> </div> |
Нужно привести к такому виду
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<!--Указывается схема Product.--> <div class="productdetails-view productdetails" itemscope itemtype="http://schema.org/Product"> <!--В поле name указывается наименование товара.--> <h1 itemprop="name">Название товара</h1> <!--В поле image указывается ссылка на картинку товара.--> <div class="main-image"> <a href="/image/product.png" itemprop="image"> <img src="/image/product.png" alt=""> </a> </div> <!--Указывается схема Offer.--> <div class="vm-product-details-container" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <div class="product-price"> <span class="PricesalesPrice">1 999 руб.</span> </div> <!--В поле price указывается цена товара.--> <meta itemprop="price" content="7150.00"> <!--В поле priceCurrency указывается валюта.--> <meta itemprop="priceCurrency" content="RUB"> <!--В поле priceCurrency указывается наличие товара.--> <div class="">В наличии</div> <link itemprop="availability" href="http://schema.org/InStock"> </div> <!--В поле description дается описание товара.--> <div class="product-short-description" itemprop="description"> <p>Краткое описание</p> </div> </div> |
Все изменения нужно вносить в файл /components/com_virtuemart/views/productdetails/tmpl/default.php. Чтобы после обновления virtuemart правки сохранились переопределим данный файл в папке шаблона. Для этого скопируем его в папку /templates/имя_шаблона/html/com_virtuemart/productdetails/. Если в папке уже есть файл default.php, то нужно править его.
Схема Product
Заменим
1 |
<div class="productdetails-view productdetails" > |
на
1 |
<div class="productdetails-view productdetails" itemscope itemtype="http://schema.org/Product"> |
Наименование товара
Заменим
1 |
<h1><?php echo $this->product->product_name ?></h1> |
на
1 |
<h1 itemprop="name"><?php echo $this->product->product_name ?></h1> |
Картинка товара
В файле /components/com_virtuemart/views/productdetails/tmpl/default_images.php (или в переопределенном файле в папке с шаблоном) заменим
1 |
<?php echo $image->displayMediaFull("",true,"rel='vm-additional-images'"); ?> |
на
1 |
<?php echo $image->displayMediaFull("",true,"rel='vm-additional-images' itemprop='image'"); ?> |
Другой способ сделать то же самое. В шаблоне карточки товара после вывода названия можно добавить.
1 |
<meta itemprop="image" content="<?php echo JURI::base().$this->product->images[0]->file_url?>"/> |
Схема Offer
Заменим
1 |
<div class="vm-product-details-container"> |
на
1 |
<div class="vm-product-details-container" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> |
Цена товара
После кода
1 |
echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$this->product,'currency'=>$this->currency)); |
Вставим
1 |
echo "<meta itemprop='price' content='".$this->product->prices['salesPrice']."'>"; |
Валюта товара
Под кодом разметки цены добавим
1 |
echo "<meta itemprop='priceCurrency' content='".$this->currency->_vendorCurrency_code_3."'>"; |
Наличие товара
После кода вывода наличия
1 |
echo shopFunctionsF::renderVmSubLayout('stockhandle',array('product'=>$this->product)); |
Добавим
1 2 3 4 5 |
if($this->product->product_in_stock > 0){ echo "<meta itemprop='availability' content='http://schema.org/InStock' />"; } else { echo "<meta itemprop='availability' content='http://schema.org/OutOfStock' />"; } |
Описание товара
Если в качестве описания выступает подробное описание товара, то заменим
1 |
<div class="product-description" > |
на
1 |
<div class="product-description" itemprop="description"> |
Если нужно разметить краткое описание, то заменим
1 |
<div class="product-short-description"> |
на
1 |
<div class="product-short-description" itemprop="description"> |
После всех этих правок валидатор должен показать следующее
Микроразметка Open Graph для карточки товара
Open Graph разметка позволяет управлять видом превью при публикации ссылки на страницу в социальных сетях. Для вставки разметки в шаблоне карточки товара сразу после строки
1 |
defined('_JEXEC') or die('Restricted access'); |
Добавим
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$doc = JFactory::getDocument(); $head = '<meta property="og:title" content="'.$this->product->product_name.'" />'; if (!empty($this->product->product_s_desc)) { $head .= '<meta property="og:description" content="'.htmlspecialchars(strip_tags($this->product->product_desc)).'" />'; } elseif (!empty($this->product->product_desc)) { $head .= '<meta property="og:description" content="'.htmlspecialchars(strip_tags($this->product->product_desc)).'"/>'; } $head .= '<meta property="og:image" content="'.JURI::base().$this->product->images[0]->file_url.'" />'; $head .= '<meta property="og:type" content="website" />'; $head .= '<meta property="og:site_name" content="site.ru"/>'; $head .= '<meta property="og:url" content="'.JFactory::getURI().'" />'; $doc->addCustomTag($head); |
site.ru замените на адрес вашего сайта.
Теперь, если пользователь захочет поделиться товаром в соц. сетях, можно быть уверенным, что на месте изображения, названия и описания будут нужные данные.
Валидатор должен показать следующее
Микроразметка schema.org для каталога товаров
Информации по правильной разметке каталога товаров в документации Яндекса нет. В интернете также в основном пишут про разметку карточки товара. Вся информация ниже получена в результате анализа страниц категорий товаров двух сайтов - eldorado.ru и ozon.ru.
В общем виде необходимо привести страницу от такого вида
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<div class="category-view"> <div class="row"> <div class="product"> <a href="/category/product.html"> <img src="/image/product.png" alt=""> </a> <h2> <a href="/category/product.html">Название товара</a> </h2> <div class="product_s_desc"> <p>Краткое описание товара</p> </div> <div class="product-price"> <span class="PricesalesPrice">1 999 руб.</span> </div> </div> ... <div class="product"> <a href="/category/product.html"> <img src="/image/product.png" alt=""> </a> <h2> <a href="/category/product.html">Название товара</a> </h2> <div class="product_s_desc"> <p>Краткое описание товара</p> </div> <div class="product-price"> <span class="PricesalesPrice">1 999 руб.</span> </div> </div> </div> </div> |
К такому виду
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<div class="category-view" itemtype="http://schema.org/ItemList" itemscope> <div class="row"> <div class="product" itemtype="http://schema.org/Product" itemprop="itemListElement" itemscope> <a href="/category/product.html"> <img src="/image/product.png" alt=""> </a> <meta itemprop="image" content="/image/product.png"> <h2 itemprop="name"> <a href="/category/product.html" itemprop="url">Название товара</a> </h2> <div class="product_s_desc" itemprop="description"> <p>Краткое описание товара</p> </div> <div class="product-price" itemtype="http://schema.org/Offer" itemprop="offers" itemscope> <span class="PricesalesPrice">1 999 руб.</span> <meta itemprop="price" content="1999"> <meta itemprop="priceCurrency" content="RUB"> </div> </div> ... <div class="product" itemtype="http://schema.org/Product" itemprop="itemListElement" itemscope> <a href="/category/product.html"> <img src="/image/product.png" alt=""> </a> <meta itemprop="image" content="/image/product.png"> <h2 itemprop="name"> <a href="/category/product.html" itemprop="url">Название товара</a> </h2> <div class="product_s_desc" itemprop="description"> <p>Краткое описание товара</p> </div> <div class="product-price" itemtype="http://schema.org/Offer" itemprop="offers" itemscope> <span class="PricesalesPrice">1 999 руб.</span> <meta itemprop="price" content="1999"> <meta itemprop="priceCurrency" content="RUB"> </div> </div> </div> </div> |
В virtuemart 2 все правки нужно вносить в файл /components/com_virtuemart/views/category/tmpl/default.php.
В virtuemart 3 вывод товаров на странице категории вынесен в отдельный файл /components/com_virtuemart/sublayouts/products.php. Часть правок будет в нем.
Для сокращения в инструкциях ниже (на примере vm3, для vm2 решение также подойдет) я буду указывать просто имена файлов без полного пути.
По аналогии с шаблоном карточки товара все измененные файлы нужно перенести в папку с шаблона сайта:
- файл default.php в папку /templates/имя_шаблона/html/com_virtuemart/category/
- файл products.php в папку /templates/имя_шаблона/html/com_virtuemart/sublayouts/products.php
Схема ItemList
В файле default.php заменим
1 |
<div class="category-view"> |
на
1 |
<div class="category-view" itemtype="http://schema.org/ItemList" itemscope> |
Схема Product
В файле products.php заменим
1 |
<div class="product vm-col<?php echo ' vm-col-' . $products_per_row . $show_vertical_separator ?>"> |
на
1 |
<div class="product vm-col<?php echo ' vm-col-' . $products_per_row . $show_vertical_separator ?>" itemtype="http://schema.org/Product" itemprop="itemListElement" itemscope> |
Наименование товара
В файле products.php заменим код вывода названия товара
1 |
<h2><?php echo JHtml::link ($product->link.$ItemidStr, $product->product_name); ?></h2> |
на
1 |
<h2 itemprop="name"><?php echo JHtml::link ($product->link.$ItemidStr, $product->product_name); ?></h2> |
Картинка товара
В файле products.php после кода вывода картинки
1 2 3 4 5 |
<a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr; ?>"> <?php echo $product->images[0]->displayMediaThumb('class="browseProductImage"', false); ?> </a> |
добавим
1 |
<meta itemprop="image" content="<?php echo JURI::base().$product->images[0]->file_url?>"/> |
Url товара
В файле products.php заменим код вывода ссылки на товар
1 |
<?php echo JHtml::link ($product->link.$ItemidStr, $product->product_name); ?> |
на
1 |
<?php echo JHtml::link ($product->link.$ItemidStr, $product->product_name,' itemprop="url"'); ?> |
Схема Offer
В файле products.php начало блока с выводом цены
1 |
<div class="vm3pr-<?php echo $rowsHeight[$row]['price'] ?>"> |
заменим на
1 |
<div class="vm3pr-<?php echo $rowsHeight[$row]['price'] ?>" itemtype="http://schema.org/Offer" itemprop="offers" itemscope> |
Цена товара
В файле products.php сразу после кода вывода цены
1 |
echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$product,'currency'=>$currency)); |
добавим
1 |
echo "<meta itemprop='price' content='".$product->prices['salesPrice']."'>"; |
Валюта товара
В файле products.php под кодом разметки цены добавим
1 |
echo "<meta itemprop='priceCurrency' content='".$currency->_vendorCurrency_code_3."'>"; |
Описание товара
В файле products.php блок с вывод описания товара
1 |
<p class="product_s_desc"> |
заменим на
1 |
<p class="product_s_desc" itemprop="description"> |
Валидатор должен показать следующее
Плагин Rich Snippets for VirtueMart
Rich Snippets for VirtueMart - готовое решение для внедрения микроразметки.
Плагин автоматически добавляет нужные теги и атрибуты для микроразметки на странице товара. Кроме товаров доступна микроразметка хлебных крошек.
Настройки плагина
В результате валидатор покажет следующее
С помощью данного плагина можно быстро добавить микроразметку на сайт, но скорость загрузки страниц немного упадет.
Я рекомендую добавлять микроразметку вручную.
teslalight.com.ua
По микроразметке хлебных крошек советую плагин mod_microbread
http://extensions.joomla.org/extension/microbread
admin
Спасибо за дополнение.
Messir
Во, очень нужная и познавательная статья!!! Еще бы расписать подобное для статей (блога) и было бы просто замечательно!!!...
admin
Да, можно добавить еще информацию по микроразметке контактов и статей. Чуть позже дополню статью.
Владислав
очень жду информацию по микроразметке статей
admin
Постараюсь добавить в ближайшее время.
yrygvay
День добрый, а что-либо из статьи реализовано в Airshop?
admin
Здравствуйте!
На этой недели выйдет небольшое обновление шаблона с включенной микроразметкой.
yrygvay
День добрый, обновление пока не выходило? верно, что крайняя 1.2?
admin
Обновление вышло, всем покупателям была отправлена ссылка на скачивание и инструкция по обновлению. Если Вам не пришло, то проверьте папку спама, если там нет, то напишите на admin@virtuemart.su.
Dina
Браво!!! давно искала такую статью. Все сделала, теперь жду обновления по статьям и контактам! Огромное спасибо автору.
Протестировала свои товары, все отлично, выдал только 2 ошибки:
Не удалось нормализовать значение оценки.
Ваша оценка вне пределов диапазона по умолчанию. Необходимо указать самое высокое и самое низкое значения.
(слева вот такое: "@type": "AggregateRating",) - это связано с тем, что ни одной оценки у товара нет?
admin
Рад, что статья оказалась полезной.
Я не указывал микроразметку для рейтинга. Вы ее указали самостоятельно или она уже была в шаблоне?
Dina
Ух ты, как я припозднилась с ответом, не видела сообщения.
Скорее всего была в шаблоне, потому что я ничего не добавляла, просто выполнила все рекомендации из вашей статьи.
Dina
Попыталась найти в коде рейтинг, не шмогла. Потом просто поставила оценку и написала ревью, опубликовала - ошибка пропала! Не хотелось бы держать тестовый отзыв на сайте. Но интересно знать, если я сейчас этот отзыв удалю, у гугла опять будут вопросы к разметке??
admin
Даже если гугл будет показывать ошибку при отсутствующем рейтинге, то это не проблема. Главное, что при наличии рейтинга все работает правильно.
Виктор
Доброго времени. У меня не стандартная ситуация. Можете подсказать как решить или объяснить почему такие ошибки. Уже не первый сайт оформляю с разметкой по вашей статье. И всегда было всё отлично. Спасибо за то что Вы есть!.
Но тут....
https://yadi.sk/i/FTzZJ-Q7zvCei
Совсем все грустно . Пишет нет имени товара но он есть.
Определил не понятные префиксы:
smoothMove
adjustX
adjustY
tintOpacity
zoomWidth
softFocus
которые вовсе и не префиксы, а часть атрибута rel
admin
Здравствуйте!
Судя по сайту у Вас название товара и его изображение выводится внутри схемы Offer
Внутри должна быть только информация о цене и наличии.
Немного поправьте верстку. Это должно помочь.
Виктор
Огромное спасибо.
Если пишет "префикс adjustX неизвестен валидатору" это исправлять или пожно проигнорировать?
Галина
микроразметка для карточки товара:
не нашла в коде куда вставить разметку наличие товара и описание товара
помогите, пжт.
Галина
результат моих деяний:
product
ОШИБКА: Не выполнено обязательное условие для продуктовых сниппетов: поле name отсутствует или пусто
ОШИБКА: Не выполнено обязательное условие для продуктовых сниппетов: поле description отсутствует или пусто
itemType = http://schema.org/Product
offers
offer
itemType = http://schema.org/Offer
name =
price = ".$this-
pricecurrency = RUB
admin
Удалил код карточки из комментария. Пришлите архив с файлом /templates/имя_шаблона/html/com_virtuemart/productdetails/default.php
OriginalFeel
отправила архив в своей тебе https://virtuemart.su/forums/topic/kak-realizovat/
здесь не прикрепить архив
OriginalFeel
не получается у меня никак разметку сделать, валидаторы яши и гоши ругаются. все сделала по статье, но...
product
ОШИБКА: Не выполнено обязательное условие для продуктовых сниппетов: поле name отсутствует или пусто
ОШИБКА: Не выполнено обязательное условие для продуктовых сниппетов: поле description отсутствует или пусто
itemType = http://schema.org/Product
offers
offer
itemType = http://schema.org/Offer
name =
description =
price = ".$this-
pricecurrency = RUB
admin
Вы правили файлы в папке шаблона /templates/имя_шаблона/html/com_virtuemart/productdetails/?
OriginalFeel
да.
admin
Пришлите ссылку на товар и архив с файлом /templates/имя_шаблона/html/com_virtuemart/productdetails/default.php
Дмитрий
Добрый день! Подскажите пожалуйста если сделать микроразметку то выскакивает на сайте Яндекс советник , а это означает, что 30% покупателей уходит с вашего сайта. Как можно от него избавиться, чтоб работала микроразметка. Прочитал много форумов пока нечего полезного не нашел.
admin
Много противоречивой информации по этой теме. Попробуйте этот сервис. Если дорого, то нужно смотреть в этой теме. Точного решения не подскажу, не внедрял на сайты.
RaftermaN
С вашей ссылки нашел пост, ведущий на гитхаб, проверил - работает. Надо перед /head вставить скрипт
и нет яндекс советника)
admin
Пришлите ссылку на гитхаб, интересно посмотреть.
RaftermaN
https://github.com/SerjoPepper/kick_sovetnik
admin
Спасибо, что поделились.
KSENIYA
Добрый день, подскажите пожалуйста сделала микроразметку карточки товара, все ок, если в описание добавить таблицу, то вверху на страничке карточки товара появляется информация данной таблички
Объем шеи, см 22-27 27-32 32-38 38-44 44-50 Размер 1 (S) 2 (M) 3 (L) 4 (XL) 5 (XXL) " />
перепробовала много.... не пойму в чем дело ((
если в "Микроразметка Open Graph" закомментировать эту строчку
, тогда все ок
https://yadi.sk/i/uljGTa0x3EhjBT
admin
Здравствуйте!
Попробуйте заменить
на
Gloomer88
я так понимаю все что есть в этой статье уже внедрено в новой версии?
admin
Да, микроразметка есть во всех шаблонах от virtuemart.su
RaftermaN
Для тех у кого поле name пустое или отсутствует, у Вас по разметке name попадает в div, где прописан offers, я сделал так
где class="costavailability" - несуществует, если его не писать, то яндекс выдает ошибку что offers отсутствует. А так вроде работает, админ, правильно же?
RaftermaN
и естественно поле
переделываем обратно
RaftermaN
почему то код не вставился, там абзац про offers из статьи, его надо переделать обратно как был изначально, чтобы offers два раза не был и не захватывал name
admin
Спасибо, что поделились.
Если валидатор не выдает ошибок, значит все правильно.
Серега
Здравствуйте! Спасибо за статейку!
У меня есть ошибка для каталога товаров
************
microdata
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop
itemType =
itemlistelement
************
Насколько она критична и как ее побороть?
admin
Здравствуйте!
Судя по ошибке для блока с товаром не указаны атрибуты
Чтобы ответить точнее пришлите ссылку на сайт.
Серега
Указаны... Все сделал как написано, а вообще это критично?
Серега
http://assolshop.com.ua/
admin
Не указан атрибут
itemtype="http://schema.org/ItemList" itemscope
для блока, в который входят все товары.Добавьте его.
Серега
Спасибо, добавление атрибута в блок решило проблему.
Но остался еще один ньюанс , сам не могу разобраться. В карточке товара в левом верхнем углу появился фрагмент кода (если это так можно назвать)
скрин - https://yadi.sk/d/Yxx00L5r3GCnBR
"это" вызывает строка
$head .= 'product->images[0]->file_url.'" />';
И еще вопрос.
У вас в строке
$head = 'product->product_name.'" />';
перед = нет точки, так должно быть?
В принципе, с точкой или без, разницы я не заметил.
admin
По ошибке. Пришлите исправленный файл карточки товара defaul.php, посмотрим в чем дело.
Серега
А куда слать?)
Серега
отправил)
KSENIYA
доброго дня, прошу помощи-совета, не пойму что не так,
делаю уже не первый раз микроразметку по вашему уроку, все отлично.
в данный момент делаю все тоже самое для другого сайта, валидатор показывает что ошибок нет, но при репосте в соц сети в фесбук вообщени ничего не подтягивается кроме доменного имени, а в vk есть название товара и описание, а картинка через раз и берет ее на угад,
разметка Open Graph есть, не пойму что не так, подскажите пожалуйста
https://ecobirdcontrol.com/ru/kupit/vizualnye-otpugivateli-ptits/buy-vizualnyj-otpugivatel-ptits-sova
https://yadi.sk/i/juG6frFI3GVSU7
https://yadi.sk/i/KMBlodJg3GVSax
admin
Здравствуйте!
В валидаторе ошибок нет. Возможно, ошибка возникает из-за того, что названия товаров на кириллице, точно трудно сказать.
Может быть, изменились какие-то алгоритмы в соц. сетях.
Алексей
Делаю сайт полностью на HTML. На странице будет несколько описаний товаров. Как каталог товаров. Достаточно использовать код который описан у вас в первой схеме-
admin
Если это вопрос, то не важно на чем сделан сайт, логика микроразметки везде одинакова.
Александр
Спасибо за отличную инструкцию, есть проблема может вы подскажете, при добавлении разметки к категории в яндексе все норм, а вот в гугле после разметки каждого товара пишет ошибку
"position
Необходимо указать значение для поля position."
что делать? спс)
Александр
почитал в инете, короче это баг валидатора гугла и не стоит на это обращать внимания, position используется только для хлебных крошек!
Дмитрий
А вы уверены, что расширенный сниппет у eldorado из-за микроразметки, или это яндекс маркет или яндекс "товары и цены"??? Как правило у яндекса не выводятся расширенные снипетты, только если это не их партнерская программа..
admin
Точно не знаю, эльдорадо взял просто в качестве примера того, что можно получить.
Александр
здравствуйте, а как сделать чтобы в соцсетях можно было делиться с ценой товара?
admin
Здравствуйте!
Если используется блок поделиться от Яндекса, то можно попробовать использовать его api, например, для добавления цены к названию товара.
Попробуйте в шаблон карточки товара добавить этот код
Александр
*после:
Александр
чтото не вставляется код даже с тегами php, в общем я имел ввиду после стандартного кода кнопок
Александр
аа я понял, а как тогда отредактировать список соцсетей?
Александр
разобрался подсказка в той же справке была, ненужные аргументы удалил и все норм
Александр
а возможно ли вместо большой картинки вставлять маленькую картинку этого же товара только брать ее из категории? а то с большой картинкой как-то оно сильно растягивает в соцсетях.. что виден только край картинки или отображение как-то можно отрегулировать?
admin
По этому вопросу, к сожалению, не смогу подсказать.
Александр
всеравно спасибо, жаль только там в скрипте нельзя async использовать, а то не хотелось бы чтобы страница тупила из-за этого скрипта..
Рий
Здравствуйте!
А что нужно подправить в микроразметке, чтобы в сниппете категории отображалась картинка категории?
admin
Здравствуйте!
Добавить тег с адресом картинки
на страницу категории можно, но не факт, что соц.сети будут его использовать.
В файле /components/com_virtuemart/views/category/tmpl/default.php после
добавьте
Рий
Супер!
Благодарю!!!
В Whatsapp работает. Что и требовалось. Теперь вместе со ссылкой подтягивает картинки!
admin
Отлично.
admin
Для вставки микроразметки для рейтинга в карточке товара можно использовать следующий код
DaN
Добрый день.
А как именно воспользоваться данным кодом?
где, в каком файле, нужно вставить этот код?
admin
Здравствуйте!
Этот код подойдет только если на сайте используется стандартный рейтинг virtuemart.
Вставлять нужно в файл /components/com_virtuemart/views/productdetails/tmpl/default.php (либо в переопределенный файл /templates/имя_шаблона/html/com_virtuemart/productdetails/default.php), например, после вывода самого рейтинга
tony1001
Спасибо за статью!
admin
Рад, что статья пригодилась в работе.
Елена
Здравствуйте! Спасибо за подробную статью..только я решила ручками делать и....
стоит VM 3.0.8, а обновлять не хочу...есть причины.
Застопорилась уже на первом шаге: Начиная с версии virtuemart 3.0.10 микроразметка карточки товара добавлена по умолчанию. Она подключается в конце файла /components/com_virtuemart/views/productdetails/tmpl/default.php
Кода в конце файла, соответственно, нет...как быть? Спасибо!
admin
Здравствуйте!
Не обращайте на это внимания, потому что это разметка JSON-LD. Ее наличие не обязательно, потому что после правок у Вас будет Schema.org.
Елена
Правильно ли я понимаю, что мне нужно начать с данного шага?:
"Сам шаблон микроразметки находится в файле /components/com_virtuemart/sublayouts/snippets.php
Чтобы правильно работало округление цены в указанном файле замените..."
Спасибо!
admin
Нет, для карточки товара нужно начинать с этого
Елена
Вечером попробую, спасибо большое! Отпишусь!
Александр
Добрый вечер, можно ли в микроразметку для карточки товара в схему product добавить производителя/бренд товара... VM 2
admin
Здравствуйте!
Добавьте блоку, который выводит текст с названием производителя, атрибут
Aleks
спасибо.
djumb
Подскажите как это правильно реализовать, так как в файле /com_virtuemart/productdetails/default.php подгружается только скрпит или как правильно его назвать производителя, а если менять в блоке производителя (который уже находится в ), то в микроразметке будет показываться только слово производитель а не бренд
admin
Не понял вопрос.
Производитель у Вас выводиться в файле default_manufacturer.php?
Пробовали вносить правки в него, если не получается, то пришлите zip архив с исправленным файлом.
Семен
Разметка указанная здесь для категории товаров - косячная. Проверьте эту же разметку у эльдорадо - тоже косяк.
admin
Валидация категории проходит. Что именно неправильно?
Семен
Так Вы сами в Google проверьте валидацию хоть по вашему коду, хоть у сайта эльдорадо 🙂
Вот и увидите что неправильно.
admin
Проверяю эту страницу.
В валидаторе от Яндекса все хорошо.
В валидаторе от google ошибка в position. Статья по этому поводу.
Alex
Добрый день. У меня вопрос по SEO.
Если я правильно понял, то после микроразметки стандартные meta поля содержащие Meta Title и Meta Discription из карточки товара, перестанут браться Яндексом во внимание.
Можно ли сделать так, чтобы информация для itemprop="name" и itemprop="description" выводилась из заполненяемых спец полей внизу карточки товара в админке (meta title и meta description)?
У меян, например, в Title страницы добавлены слова: Купить, недорого и т.д. Но в название товара я их само собой выводить не буду и при добавлении itemprop="name" они соответственно не выведутся.
admin
Здравствуйте!
Мета-теги по прежнему будут учитываться. Насколько я знаю микроразметка не имеет над ними приоритета.
swoop
Здравствуйте.
Спасибо за мегаполезную инструкцию - всё работает.
Подскажите, пожалуйста, а как в описание микроразметки поместить текст из мета-тега description страницы?
admin
Здравствуйте!
Попробуйте в шаблоне карточки товара перед
добавить
Anatoliy_Spb
Прошу помощи, после внедрения микроразметки вылезло вот такое чудо в валидаторе микроразметки на Яндексе.
offers
offer
itemType = http://schema.org/Offer
price = 3061.109
pricecurrency = RUB
т.е. цена выводится с тысячными. Цены на сайте у меня формируются "Базовая цена" минус % заданный в "Налог и Детали правил расчета"
В админке, в карточке товара в "Окончательной цене" тоже фигурирует цена с тысячными "3061.109"
Нужно округлить цену до сотых.
P.S. В параметрах валюты округление выставил и в настройках "Формирование цен" тоже, результат не меняется.
admin
Попробуйте заменить
на
Anatoliy_Spb
Выяснил, глюк возникает если базовую цену указать с сотыми(копейками), а потом применить скидку в "Налог и Детали правил расчета". Тогда возникает цена 1,ХХХ и даже 1,ХХХХ.
Спасибо, метод "echo "product->prices['salesPrice'])."'>";" работает, но округляет до целого числа т.е. до целого рубля в метатеге, хотя фактическая цена с копейками. Есть возможность округлить до сотых?
admin
Используйте
54DA
Много уважаемые разжуйте где косяк.
Гугля ругается на- Product:
- name Необходимо указать значение для поля name.
- Укажите ресурс offers, review или aggregateRating.
54DA
ответ найден, сам накосячил
54DA
и Есчё Яндекс ругается:
product
ОШИБКА: Не выполнено обязательное условие для продуктовых сниппетов: поле offers/priceCurrency отсутствует или пусто
Дмитрий
Добрый день, подскажите, пожалуйста, возможно вместо описания товара вывести мета тег description?
admin
Здравствуйте!
Уточните вопрос. Нужно чтобы для микроразметки в качестве описание бралась информация из мета-тега?
korets77
Да, верно, в качестве описания к товару нужна информация из мета тега description
admin
Попробуйте в шаблоне карточки товара добавить код
Дмитрий
Добрый день, я правильно понял нужно этот код
заменить на
верно?
Сейчас получается для описания в разметке...
admin
Нужно удалить в шаблоне старый атрибут для описания
Андрей
Владимир, вам поклон....Очень рад такой подробной статье.
admin
Рад, что статья пригодилась в работе.
Андрей
Валидатор Яндекса показывает наличие ошибки при добавлении Open Graph для карточки товара.
rdfa
ОШИБКА: префикс 'http неизвестен валидатору, укажите его явно атрибутом prefix
ОШИБКА: префикс smallImage неизвестен валидатору, укажите его явно атрибутом prefix
resource = http://ustinovka46.ru/sukhie-smesi-i-gidroizolyatsiya/plitochnyj-klej/plitochnyj-klej-yunis-2000-25-kg-detail
admin
В статье нет упоминания синтаксиса rdfa, видимо, он изначально был в шаблоне.
В любом случае ошибка - это не проблема, потому что в этом случае будет использовать разметка schema.
pizzadox
Добрый день,
Делаю всё по вашей инструкции, но вот :
itemscope itemtype="http://schema.org/Product"
Не отображается на сайте, хотя в default.php я его вставил. Что такое может быть ?
admin
Здравствуйте!
Возможно, шаблон карточки товара переопределен в папке с шаблоном, попробуйте внести правки в файле /templates/имя_шаблона/html/com_virtuemart/productdetails/default.php.
pizzadox
Спасибо за ответ, но я там и меняю. Результата нет. Другие правки в код вносятся, а именно по разметке нет.
admin
Пришлите архив с шаблоном карточки товара и ссылку на сам товар.
Spiningist
Всем привет!
Может кому пригодиться.
Вот заполненный файл snippets.php для товарной рекламы в google:
Файл лежит тут:
/www/components/com_virtuemart/sublayouts/snippets.php
Валидацию проходит а также получает все необходимые поля.
admin
Спасибо что поделились!
DaN
Очень даже пригодиться, но много кода пропало и получилась лабуда.
Будьте так добры, залейте файлик куда нибудь
Спасибо за труды. 😉
Spiningist
Скачать Snippets.php можно по этой ссылке:
Дмитрий
А как использовать микроразметку, чтоб рейтинг отображался, если для рейтинга товаров подключен виджет отзывов cackle? Не подскажете?
admin
Не понял вопрос. Если нужно отключить стандартный рейтинг, то это можно сделать в Virtuemart > Настройки > Внешний вид.
vmven
В nanoshop реализовано такое, не подскажете? или надо вручную делать?
admin
В NanoShop микроразметка настроена.