TS Умный экспорт новинки версии 2.0

Сегодня рассмотрим новые возможности 2-версии Битрикс модуля экспорта товаров в торговые порталы Яндекс.Маркет и Google Merchant Center.

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

Большое спасибо всем за обратную связь и участие в развитии умных решений для Битрикса!

1) Профиль

  1. http-путь до файла экспорта стал кликабельный, в один клик можно открыть файл экспорта на вашем сайте и посмотреть, а также скопировать ссылку и добавить в личном кабинете портала.
  2. Всего выгружено - здесь подсчитываются все элементы/записи попавшие в xml-файл экспорта, это количество может отличаться от суммы Элементы + Предложения, т.к. товары без цен в файл экспорта не попадают, такие товары выгружать в порталы запрещено.
  3. Элементов - здесь записывается количество всех найденных элементов по фильтру из БД, классический CIBlockElement::GetList()
  4. Предложений - здесь записывается количество всех найденных ТП (торговых предложений) по фильтру из БД.

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-тегу значение из нескольких полей и свойств, как элемента, так и торгового предложения.

Что нового в конструкторе полей

  1. Заметно изменен интерфейс, на 4K-мониторе очень удобно.
  2. Добавлены цвета xml-тегам для наглядного отличия:
    красный - обязательный, синий - не обязательный, серый - кастомное поле
  3. XML-тегу теперь можно присвоить несколько полей/свойств элемента или торгового предложения.
  4. Новые доп. настройки поля справа.
  5. Переделан выпадающий список типов поля, появилось Поле ТП, Свойство ТП, Мета-тег.
  6. Добавлена возможность в кастомном поле <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. Автоматически

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'];
}

В следующих релизах

  • Экспорт вручную по кнопке
  • Визуальное отображение процесса экспорта
Имя *
Логин (мин. 3 символа)
E-mail *
*— обязательные для заполнения поля
Логин или e-mail
TUNING-SOFT.RU Разработка умных веб-сервисов