Guide-Group. » Блог компании » Статьи о веб-разработке » Системы управления сайтом (CMS) » Подмена карточки товара (SKU) для Яндекс.Маркет на Bitrix

Подмена карточки товара (SKU) для Яндекс.Маркет на Bitrix

Написал Александр, 5.04.2021
Активно работая с 1С-Bitrix появилась необходимость работы с Яндекс.Маркет для интернет-магазинов, однако далеко не все магазины оказываются технически готовы к этому. Чаще всего работа с Яндекс.Маркет является не сложной, сайт должен соответствовать правилам системы и генерировать корректный прайс-лист. К сожалению далеко не всегда возможно выводить корректный прайс-лист из-за изначальной структуры каталога, которую подготовили в момент разработки сайта и должны были учесть.

На нашем примере мы работаем с сайтом, где структуру каталога не учли и поэтому официальный компонент Яндекс.Маркет выгружает некорректный прайс лист, где грузятся все SKU, которые имеют один адрес и при переходе по ссылке у нас показывается дефолтная карточка, на что мы сразу слетаем с Яндекс.Маркета по качеству — ошибка несоответствия цены и карточки предложения. К сожалению ункальный URL для SKU тоже указать нельзя, т.к. его не внесли при формировании каталога товаров для торговых предложений.

Как исправить?

Существует два варианта исправления данной ситуации:
  1. Полностью переделывать структуру каталога для SKU (торговых предложений)
  2. Дорабатывать техническую часть
Так как переработка структуры каталога с более 2000 товарами это достаточно трудоёмкий процесс, на который практически никогда ниукого нет времени, я решил использовать второй вариант.

Подмена карточки товара (SKU) для Яндекс.Маркет на Bitrix позволит отображать корректную карточку товара при входе с прайс-листа. Для этого нам необходимо назначить utm-метку и передать в ней ID торгового предложения из YML:


Теперь нам необходимо принять передаваемый ID торогового предложения сайтом, для этого в зависимости от типа шаблона необходимо добраться до файла компонента catalog.item.

В файле /bitrix/components/*YOUR_TEMPLATE*/catalog.item/component.php:

Внимание, код может отличаться в зависимости от шаблона. Необходимо найти определение параметров (сверху файла)
//set params if empty
    $arParams["PRODUCT_PRICE_CODE"] = empty($arParams["PRODUCT_PRICE_CODE"]) ? array() : $arParams["PRODUCT_PRICE_CODE"];
    $arParams["AVAILABLE_OFFERS"] = empty($arParams["AVAILABLE_OFFERS"]) ? array() : $arParams["AVAILABLE_OFFERS"];
    $arParams["PICTURE_HEIGHT"] = empty($arParams["PICTURE_HEIGHT"]) ? "250" : $arParams["PICTURE_HEIGHT"];
    $arParams["PICTURE_WIDTH"] = empty($arParams["PICTURE_WIDTH"]) ? "250" : $arParams["PICTURE_WIDTH"];
    $arParams["IMAGE_QUALITY"] = empty($arParams["IMAGE_QUALITY"]) ? "80" : $arParams["IMAGE_QUALITY"];
    $arParams["IBLOCK_ID"] = empty($arParams["IBLOCK_ID"]) ?: $arParams["IBLOCK_ID"];

Над ними (примерно на 50-70 строке) вставить:

        /* ID FIX by Guide-Group. (https://guide-group.ru/) */
        if (intval($_GET['utm_source']) > 0) {
            $arParams["PRODUCT_ID"] = intval($_GET['utm_source']);
        }

После данных изменений чистим кэш компонентов. Теперь при переходе по ссылке с UTM_SOURCE=X будет показан корректный ID товара. Однако убедитесь в корректности передаваемых id через utm, чтобы цена и наименования товара соответствовали.

Данное решение является не самым правильным, но не все владельцы магазинов готовы переделывать каталог товаров. Более корректным будет изначально задать корректную структуру каталога, где инфблоком для SKU является инфоблоки торговых предложений, а не еще один инфоблок каталога. Однако способ рабочий.
35

Похожее

TivolyoHome — домашний текстиль

Техническое обслуживание сайта и доработки: — Работы по корректировке текстового содержания сайта; — Настройка компонентов Битрикс для корректного вывода информации и функций на сайте; — Исправления в области верстки, верстка HTML/CSS/JX отдельны блоков и размещение на

Подробнее
МёдРоссии

Технические работы: — Подготовка YML прайс-листа для сниппетов в Яндекс, для Я.Маркет и Беру — Подготовка RSS XML для турбо-страниц Реклама: Ведение РК Я.Директ и G.Adwords — контекстная и медийная реклама. Подготовка компаний, создание объявлений, установка целей

Подробнее

На сайте размещена информация о нашей деятельности, наших проектах, а также проектах разработанных на заказ. Данная информация защищена авторским правом. Копирование или цитирование информации с сайта guide-group.ru разрешено только с указанием активной гиперссылки на страницу-источник информации.