Шаблон экспорта карточек в другой каталог

Клонирование переносит карточки товаров из одного каталога в другой — например, из собственного каталога в каталог маркетплейса. Настраивается оно так: меню профиля (аватар в шапке) → «Общие настройки» → вкладка «Клонирование товаров».

Поле «Шаблон» в настройках использует Scriban. В шаблон передается объект model.

Сквозной артикул и обратный экспорт

Если в мастере сквозной артикул хранится в поле «Артикул товара», а в Ozon — в глобальном свойстве, выберите эти поля в настройках сопоставления соответствующей пары каталогов.

Глобальное свойство, используемое ключом в клонировании или мерже мастер-каталога, защищено при экспорте характеристик: существующее значение и его статус сохраняются, даже если в источнике такой характеристики нет или шаблон передаёт другое значение. Защита действует и при экспорте по другому полю. Чтобы поменять ключ, отредактируйте значение свойства явно.

Новой карточке ключ записывается автоматически. Товары с пустым ключом, одинаковыми ключами в выбранных товарах или несколькими подходящими карточками в приемнике пропускаются; причина будет в файле результата экспорта. Для целочисленного свойства указывайте целое число без ведущих нулей и знака плюс, например 123, а не 00123.

Уже потерянные ключи нужно восстановить отдельно перед повторным экспортом.

Подробнее о языке Scriban: https://github.com/scriban/scriban

Поля объекта model

  • ExternalId - внешний Id товара
  • MarketplaceOfferId - offer id товара
  • WbSku - WB SKU
  • Name - название товара
  • Color - цвет
  • Article - артикул
  • CategoryId - Id категории
  • Category - название конечной категории или путь к ней через ->
  • VendorId - Id бренда
  • Vendor - название бренда
  • Ean - EAN
  • Properties - массив объектов свойств
  • PropertiesByName - словарь свойств по имени
  • ImageTags - список тегов изображений товара для включения (если пусто, берутся все)
  • ExcludedImageTags - список тегов изображений для исключения (приоритетнее включающих тегов)
  • CategoryName - алиас для Category (обратная совместимость)
  • VendorName - алиас для Vendor (обратная совместимость)

Объект свойства в Properties

Каждый элемент массива Properties содержит:

  • Id - Id свойства
  • Name - название свойства
  • Type - тип свойства
  • Unit - единица измерения
  • StringValue - строковое значение
  • BooleanValue - логическое значение
  • IntegerValue - целое значение
  • DecimalValue - дробное значение
  • MinRangeValue - минимальное значение диапазона
  • MaxRangeValue - максимальное значение диапазона
  • EnumValue - выбранное значение enum
  • FlagValues - список значений для множественного выбора
  • ModelValues - список Id моделей (для свойств типа модель)

PropertiesByName

PropertiesByName позволяет быстро получить свойство по имени:

model.PropertiesByName["Категория на Wb"]

Значение в словаре — тот же объект свойства, что и в model.Properties. Поле значения выбирается по типу свойства (Type):

  • String -> StringValue
  • Boolean -> BooleanValue
  • Integer -> IntegerValue
  • Decimal -> DecimalValue
  • Range -> MinRangeValue / MaxRangeValue
  • Enum -> EnumValue
  • Flag -> FlagValues
  • Model -> ModelValues

Как указать категорию приёмника

Если название конечной категории уникально, в поле Category достаточно передать его без пути:

Category: "Сушильные машины"

Если конечные категории с одинаковым названием находятся в разных ветках, добавьте родительские уровни через ->:

Category: "Встраиваемая техника -> Морозильники"

Полный путь от корневой категории необязателен. Указывайте минимально достаточный конец пути: Морозильники, затем при необходимости Встраиваемая техника -> Морозильники и далее дополнительные родительские уровни. При экспорте рассматриваются только конечные категории.

Примеры

wbCategory = null
wbName = null

if model.PropertiesByName["Категория на Wb"] != null
  wbCategory = model.PropertiesByName["Категория на Wb"].StringValue
end

if model.PropertiesByName["Название товара на Wb"] != null
  wbName = model.PropertiesByName["Название товара на Wb"].StringValue
end

ret {
  Category: wbCategory,
  Vendor: model.Vendor,
  Name: wbName,
  Ean: model.Ean,
  MarketplaceOfferId: model.ExternalId,
  WbSku: model.Ean,
  ImageTags: "wb"
}