Сегодня рассмотрим новые возможности 2-версии Битрикс модуля экспорта товаров в торговые порталы Яндекс.Маркет и Google Merchant Center.
Как и обещал, обновления будут выходить редко, но метко, потому что долгожданные и очень нужные, обработано большое количество обратной связи, что дает еще больше пространства для размышлений, новых функций и более продуманного функционала.
Большое спасибо всем за обратную связь и участие в развитии умных решений для Битрикса!
1) Профиль
- http-путь до файла экспорта стал кликабельный, в один клик можно открыть файл экспорта на вашем сайте и посмотреть, а также скопировать ссылку и добавить в личном кабинете портала.
- Всего выгружено - здесь подсчитываются все элементы/записи попавшие в xml-файл экспорта, это количество может отличаться от суммы Элементы + Предложения, т.к. товары без цен в файл экспорта не попадают, такие товары выгружать в порталы запрещено.
- Элементов - здесь записывается количество всех найденных элементов по фильтру из БД, классический
CIBlockElement::GetList()
- Предложений - здесь записывается количество всех найденных ТП (торговых предложений) по фильтру из БД.
2) Основные
Стоимость и сроки доставки - появилась возможность задать период/интервал срока доставки от — до
Габариты (Д/Ш/В) - появилась возможность задать формат габаритов с помощью 3-х макросов в рамках профиля, например, в Яндекс.Маркет габариты необходимо выгружать через слэш "/"
Метки UTM - появилась возможность выгружать с товаром параметры URL, конкретно классические UTM-метки типа: utm_source, utm_medium, utm_campaign, utm_content, utm_term.
Вид ссылок в файле экспорта
<url>https://tuning-soft.ru/catalog/women-s-belts/strap-weaving/?utm_source=yandex&utm_medium=cpc&utm_campaign=market&utm_content=banner-1</url>
4) Условия
Фильтр торговых предложений - здесь добавился дополнительный фильтр для отбора торговых предложений/характеристик, теперь тут все аналогично элементам, позже еще сортировка добавится и ряд доп. параметров.
5) Поля <offer>
Здесь полностью переработанный конструктор полей, появилась главная возможность задавать xml-тегу значение из нескольких полей и свойств, как элемента, так и торгового предложения.
Что нового в конструкторе полей
- Заметно изменен интерфейс, на 4K-мониторе очень удобно.
- Добавлены цвета xml-тегам для наглядного отличия:
красный - обязательный, синий - не обязательный, серый - кастомное поле - XML-тегу теперь можно присвоить несколько полей/свойств элемента или торгового предложения.
- Новые доп. настройки поля справа.
- Переделан выпадающий список типов поля, появилось Поле ТП, Свойство ТП, Мета-тег.
- Добавлена возможность в кастомном поле
<param>
задать значение атрибутаunit=""
, как вручную в настройках поля, так и автоматически из описания свойства элемента.
Тип поля: Мета-теги
С полями и свойствами ТП надеюсь все понятно, а вот появилась еще интересная возможность, вместо классического Названия элемента можно подставить Мета-тег из IPROPERTY_TEMPLATES (Шаблоны сео мета-тегов инфоблока)
Если этот мета-тег будет у элемента пустой, то для надежности задайте полю еще второй тип Поле элемента = Название, т.к. настройка вторая по порядку, при отсутствии первой подставится вторая ниже по коду, но сначала всегда подставляется самая первая заданная конкретно полю.
Тип поля: Цена
Изменился тип поля Цена, самые нужные вам поля отмечены плюсиками +++
, в скобках указан пример, что запишется в прайс, просто число или строка с учетом символа валюты.RATIO_PRICE
- Цена с учетом скидок и наценок, данное значение будет изменяться.OLD_PRICE
- Старая цена, без скидок и наценок, вроде тоже самое, что и RATIO_BASE_PRICE
Тип поля: Товар
Данный тип поля тоже немного изменился, добавлена Ставка НДС и Габариты (Д/Ш/В), тут важно отметить, что шаблон габаритов для прайса будет браться из настроек Основные, тут только задается поле.
Настраиваемое поле <param unit="">
Это поле необходимо для попадания товара в результаты фильтрации на
Яндекс.Маркете, пока оно задается в ручном режиме, позже появится автоматизация.
В версии 2.1 добавлена возможность задавать полю param
единицы измерения unit
<param name="Цвет">Зеленый</param> <param name="Размер экрана" unit="дюйм">27</param>
Задать можно двумя способами:
- Вручную
- Автоматически
1 способ - Вручную
В настройках поля в профиле просто впишите нужную единицу.
2 способ - Автоматически
В этом режиме модуль будет искать значение единицы измерения в описании значения свойства элемента инфоблока, это пригодится, если у товаров в рамках одного свойства могут быть разные единицы измерения, ну либо банальная человеческая ошибка, когда один менеджер вбивает размер в дюймах, другой в сантиметрах, и т.п.
Сейчас значение unit
заданное в настройках поля в профиле является приоритетным, но мне кажется надо сделать его там по умолчанию, смотреть сначала у товара, если у товара пусто, то подставить из настроек поля в профиле.
Если значение свойства будет множественное, то и описаний значений будет несколько, в этом случае модуль возьмет только первое значение из списка.
Что нового в доп. настройках
Использовать в значении поля готовый текст
Здесь можно просто подставить в поле какой-то произвольный текст
Заменить значение поля (1|Y|>0|true|Да) на логическое
Очень хитрая опция, здесь важно задать полю какое-то свойство или поле элемента, которое в инфоблоке является каким-нибудь флагом типа: Новинка, Скидка, Распродажа, Лидер продаж, Доступен для покупки и т.п, скорее всего в свойстве инфоблока у вас будет в значении что-то типа "Да" или "Y", но торговые площадки такие значения могут не принимать в прайс-листе, и тогда эти значения сайта типа
"Да" или "Y"
нужно будет заменять, например, в Яндекс.Маркете на true
и false
, в Гугл.Товарах на in stock
и out of stock
, чтобы заменить значение из свойства нужно включить эту доп. настройку и выбрать нужный вариант логического значения из выпадающего списка.
Тут важно, чтобы в вашем свойстве значение подходило из перечисленных в поле: 1
или Y
или >0
или true
или Да
, вот если модуль увидел такое значение, заменит его на значение из списка, которое ИСТИНА
или ЛОЖЬ
.
Наглядный пример, в моем каталоге значение свойства Новинка = да
, модуль заменит в прайс-листе согласно настройке значение да
на true
, а иначе false
Значение поля/тега в прайс-листе после замены, т.е. вместо моего да/нет
подставится true/false
<model>true</model>
Доп. условия для логического значения поля
На скрине выше обратите внимание включена еще и эта опция, если не задать замену предыдущей опцией, то
в значение xml-тега
при совпадении данного условия Свойство Новинка инфоблока Одежда [49] равно да запишется только true/false
Cron
Появилась возможность запускать кроном конкретный профиль по ID.
Это будет полезно, когда есть какой-то долгий профиль, который выгружается часами, а все остальные ждут очереди, его можно запускать отдельно, например, раз в сутки, а какой-то быстрый профиль, например, каждые 5 минут, в подобных случаях запуск профилей лучше разбить на отдельные запуски, но опять же, если их немного, если много профилей запустить отдельно, то они съедят всю память у сервера, по умолчанию модуль запускает профили в цикле и блокирует каждый, пока не выполнитcя 1-й, не запустится 2-й и т.д., это сделано, чтобы все профили за раз не запустились и не съедали всю память сервера.
Пример cron-задачи для ISP Manager v5
/usr/bin/php -f ~/www/tuning-soft.ru/bitrix/modules/api.export/tools/cron.php ID=1
Торговые предложения
Уникальные URL-адреса
В Яндекс.Маркет необходимо выгружать торговые предложения с уникальными/разными адресами, по умолчанию в ТП будет адрес основного товара, что есть дубль, т.е. сколько у товара будет ТП, столько будет дублей.
Задать уникальные адреса
торговым предложениям
можно в настройках инфоблока ТП в поле URL страницы детального просмотра заменив #PRODUCT_URL#
на #PRODUCT_URL#?pid=#ID#
Пример настроек URL инфоблока ТП
В прайс-листе у каждого ТП будет свой уникальный URL
<url>https://tuning-soft.ru/catalog/dresses/dress-red-fairy/?pid=16889</url>
Но не всем подходит такой радикальный способ на рабочем сайте, можно так и каталожный раздел с ЧПУ сломать, SEO, продвижению навредить, в следующих релизах встрою аналогичную настройку в рамках экспорта, чтобы на сайте не вносить изменения.
Подстановка полей из основного товара
ТП - это характеристика/свойство основного товара, например, Цвет, Размер.
У него может не быть ни описания, ни изображения, ни мета-тегов, данные можно брать из основного товара и подставлять в поля ТП, например, чтобы у каждого ТП в выгрузке было описание основного товара или изображение.
В экспорте на данный момент есть принудительная подстановка следующих полей товара в поля ТП, если у ТП они отсутствуют:
IPROPERTY_VALUES - мета-теги
PREVIEW_PICTURE - изображение анонса
DETAIL_PICTURE - изображение детальное
PREVIEW_TEXT - текст анонса
DETAIL_TEXT - текст детальный
Условия в модуле
if(!$offer['IPROPERTY_VALUES']) { $offer['IPROPERTY_VALUES'] = $curElement['IPROPERTY_VALUES']; } if(!$offer['PREVIEW_PICTURE']) { $offer['PREVIEW_PICTURE'] = $curElement['PREVIEW_PICTURE']; } if(!$offer['DETAIL_PICTURE']) { $offer['DETAIL_PICTURE'] = $curElement['DETAIL_PICTURE']; } if(!$offer['PREVIEW_TEXT']) { $offer['PREVIEW_TEXT'] = $curElement['PREVIEW_TEXT']; } if(!$offer['DETAIL_TEXT']) { $offer['DETAIL_TEXT'] = $curElement['DETAIL_TEXT']; }
В следующих релизах
- Экспорт вручную по кнопке
- Визуальное отображение процесса экспорта