Микроразметка раздела товаров

57
Алексей,

Вывод данных по schema.org/Product, без доп. запросов.

Вывод данных по schema.org/Product, без доп. запросов.

Название, описание и изображение будем брать из данных раздела ($arResult). Данные о цене возьмём из умного фильтра через глобальную переменную (так себе вариант, зато не нужно лишний раз лезть в БД). А данные о количестве товаров возьмём из пагинации.

Начнём с умного фильтра, в component_epilog.php закидываем данные в глоб. переменную:

global $arFilterPriceData;
$arPrice = current($arResult["PRICES"]);
$arFilterPriceData = $arResult["ITEMS"][$arPrice["CODE"]];

Далее в компоненте раздела товаров, в result_modifier.php добавляем данные из нав. цепочки:

$cp = $this->__component; // объект компонента
if (is_object($cp)) {
	$arResult['CNT-ITEMS'] = $arResult["NAV_RESULT"]->NavRecordCount, // кол-вот товаров
	$cp->SetResultCacheKeys(array('CNT-ITEMS', 'PICTURE'));
}

И в файле component_epilog.php выводим в нужном виде.

<?global $arFilterPriceData;?>
<script type="application/ld+json">
	{
		"@context": "https://schema.org/",
		"@type": "Product",
		"name": "<?=$arResult["IPROPERTY_VALUES"]["SECTION_PAGE_TITLE"] ?: $arResult['NAME'];?>",
		"description": "<?=$arResult["IPROPERTY_VALUES"]["SECTION_META_DESCRIPTION"] ?: $APPLICATION->GetPageProperty('description')?>",
		"image": "https://<?=SITE_SERVER_NAME ?: $_SERVER['SERVER_NAME']?><?=$arResult['PICTURE']['SRC']?>",
		"offers": {
			"@type": "AggregateOffer",
			"priceCurrency": "<?=$arFilterPriceData['VALUES']["MIN"]["CURRENCY"]?>",
			"lowPrice": "<?=$arFilterPriceData['VALUES']["MIN"]["VALUE"]?>",
			"highPrice": "<?=$arFilterPriceData['VALUES']["MAX"]["VALUE"]?>",
			"offerCount": "<?=$arResult['CNT-ITEMS']?>"
		}
	}
</script>

И проверяем валидатором, например от яндекса

Микроразметка раздела товаров

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 17 октября 2022
микроразметка, готовый код, разработчику
Поделиться
Комментарии
Авторизуйтесь чтобы получать уведомления об ответе
Вывод данных по schema.org/Product, без доп. запросов.