Правила экспорта товаров

Правила экспорта товаров используются для создания профилей экспорта ваших товаров в различные форматы с настройкой событий для запуска экспорта. Есть несколько форматов для экспорта: xlsx, csv, xml, yml, json, jsonl. Все варианты экспорта имеют гибкие настройки, но максимально широкие функции доступны для JSON и JSONL форматов.

Основная информация

Профиль экспорта, основная информация

Название профиля - понятное вам название, которое вы будете видеть в списке правил.

Описание - если нужно дополнительно указать информацию.

Активен - активность профиля.

Сайт - сайт в системе, товары которого будут экспортированы. После выбора сайта нажмите кнопку сохранить и продолжить редактирование это необходимо для дополнительной проверки ошибок.

Источник данных

Найстройки экспорта - источник данных

Категория - если выбрана категория, то экспортируются только товары этой категории и дочерних категорий. Если нужно выбрать несколько категорий, сделайте выбор категорий несколько раз и они все будут добавлены. Если нужно убрать категории, то удалите из поля слева от иконки лупы все содержимое и сохраните правило.

Только товары в наличии - будут экспортированы только товары, которые есть в наличии.

Только с изображениями - будут экспортированы товары, у которых есть хотя бы одно изображение.

Экспортировать только активные товары - экспортируются только активные товары.

Формат экспорта

Настройки экспорта товаров - формат файла

Формат экспорта - в каком формате необходимо экспортировать товары, доступны xlsx, csv, xml, yml, json, jsonl.

Кодировка - кодировка файла.

Разделитель csv - используется для выбора разделителя для формата экспорта csv, все значения экспортируются в кавычках.

Включать BOM - если необходимо.

Настройки экспорта характеристик

Настройки экспорта товаров - найтройка экспорта характеристик

Экспортировать характеристики - будут ли вообще характеристики добавлены в экспорт.

Экспортировать только канонические названия характеристик - будут экспортированы только канонические названия характеристик, если большая часть характеристик нормализована и на сайте требуются чистые данные, то необходимо использовать эту настройку.

Экспортировать только канонические значения характеристик - аналогично названиям характеристик, важно при использовании фильтров в интернет-магазине, всегда будет только числы список вариантов для фильтра.

Расширенные настройки экспорта характеристик

Настройки экспорта товаров - расширенные настройки характеристик

Для экспорта в форматы xml, yml, json, jsonl доступен расширенный набор информации для характеристик, вариантов использования много, как минимум вы можете с помощью такого файла сразу создавать правильные типы характеристик, устанавливать какие из них являются фильтрами, сразу создавать фильтры, а также все это удалять, если они исчезли. Для этого со своей стороны в зависимости от вашей системы управления сайтом может потребоваться дописать функции, которые это будут делать. Для полной автоматизации это необходимо сделать. Мы сделали максимально гибкие настройки экспорта, все остальное делается с вашей стороны, возможно у вас это уже есть и делать ничего не нужно.

Обозначения типов характеристик:

N - число (INTEGER)

F - дробное число (FLOAT)

T - текст (STRING)

B - да/нет (BOOLEAN)

S - выбор одного значения (SINGLE_CHOICE)

M - множественный выбор (MULTIPLE_CHOICE)

R - диапазон (RANGE)

C - составная (COMPOSITE)

Поля характеристик:

unit - единица измерения

is_filter - используется как фильтр

tags - теги

specification_uuid - UUID характеристики

value_uuid - UUID значения характеристики

Экспортировать флаг "используется как фильтр" - необходимо выбрать для экспорта информации о том, используется ли характеристика для фильтра в интернет магазине. Флаг для конкретной характеристики устанавливается в разделе настроек характеристик.

Экспортировать теги характеристик - включать в экспорт теги характеристик. Теги экспортируются через запятую.

Экспортировать единицу измерения - включать в экспорт единицу измерения характеристики. Экспортировать единицу измерения можно как в самом значении характеристики, так и отдельно.

Экспортировать UUID характеристики - включать в экспорт UUID характеристики. Необходимо использовать для полной автоматизации интернет-магазина. Каждая характеристика получит постоянный идентификатор, по которому можно проводить полную синхронизацию характеристики и фильтров в интернет-магазине.

Экспортировать UUID значения характеристики - включать в экспорт UUID значения характеристики. Аналогично названию характеристики. Каждое значение получит постоянный идентификатор для полной синхронизации значений и фильтров в интернет магазине.

Экспортировать тип характеристики - включать в экспорт тип характеристики. При этой настройке в интернет-магазине можно использовать различные фильтры, в зависимости от типа характеристики.

Экспортировать флаг фильтра как 0/1 - если включено, значение используется как фильтр будет экспортироваться как 1 или 0 вместо true/false.

Переопределение обозначений типов характеристик - JSON для переопределения обозначений типов характеристик. Формат: {"N":"A", "S":"B", "T":"C"}. Стандартные обозначения: N - число, F - дробное число, T - текст, B - да/нет, S - выбор одного значения, M - множественный выбор, R - диапазон, C - составная. Если у вас в интернет-магазине типы характеристик используют другие обозначения, вы можете переопределить их здесь и не делать изменений со своей стороны.

Переопределение полей характеристик - JSON для переопределения названий полей характеристик. Формат: {"unit": "единица_измерения", "is_filter": "фильтр", "tags": "теги", "specification_uuid": "prm_id", "value_uuid": "val_id"}. Аналогично типам характеристик, вам нет необходимости переделывать свою систему, достаточно переопределить поля.

Настройка экспорта структуры

Настройки экспорта товаров - настройка экспорта структуры

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

Настройки экспорта изображений и миниатюр

Настройки экспорта изображений

Во всех форматах экспортируются оригинальные изображения, для JSON и JSONL доступна настройка экспорта миниатюр во всех размерах, которые генерируются в системе. Это позволяет сохранять постоянные адреса изображений в интернет-магазинах не только оригиналов, но и миниатюр, кроме того, обычно миниатюры занимают дискового пространства больше оригиналов и это позволяет значительно экономней использовать диски на ваших серверах.

Расписание и автоматический запуск

Настройка расписания автоматического экспорта товаров

Настройка запуска автоматического экспорта по расписанию или событиям для автоматизации интернет-магазина, от автоматического обновления цен, до автоматической публикации контента.

CRON - расписание в cron формате, файлы будут экспортироваться согласно расписанию, при этом с вашей стороны не обязательно проверять файл по крону, пытаясь угадать когда он будет готов, разные файлы имеют разное время генерации, как получать достоверно готовый файл будет описано ниже в разделе интеграции.

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

Интеграции

Экспорт товаров, найтрока интеграций с внешними системами

Настройка автоматической отправки события в интернет-магазин по завершению экспорта для гарантированного получения экспортируемого файла сразу после завершения экспорта.

Webhook url - это url, на который отправляются успешные и\или с ошибками уведомления в зависимости от отмеченных пунктов, стандартное уведомление:

{
 "event": "export.completed",
 "timestamp": "2024-01-24T15:30:45+03:00",
 "profile": {
   "id": "550e8400-e29b-41d4-a716-446655440000",
   "name": "Экспорт для Яндекс.Маркета",
   "site": "Мой магазин",
   "format": "yml"
 },
 "task": {
   "id": "660f9500-e29b-41d4-a716-446655440001",
   "status": "completed",
   "triggered_by": "scheduled",
   "created_at": "2024-01-24T15:00:00+03:00",
   "started_at": "2024-01-24T15:00:05+03:00",
   "finished_at": "2024-01-24T15:30:40+03:00",
   "duration": "00:30:35"
 },
 "statistics": {
   "total_items": 1500,
   "exported_items": 1495,
   "skipped_items": 5,
   "errors_count": 3
 },
 "file": {
   "url": "https://storage.example.com/exports/export_20240124_1530.yml",
   "name": "export_20240124_1530.yml",
   "size": 2457600,
   "size_mb": 2.34
 },
 "callback_token": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
}

Дополнительные заголовки

POST /webhook/export HTTP/1.1
Host: example.com
Content-Type: application/json
User-Agent: Magazin-Export-System/1.0
X-Export-Signature: sha256=7d3f3e8a2c1b5d4e6f7a8b9c0d1e2f3a4b5c6d7e
X-Export-Profile-ID: 550e8400-e29b-41d4-a716-446655440000
X-Export-Task-ID: 660f9500-e29b-41d4-a716-446655440001

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

С другой стороны, вы можете вызывать экспорт по запросу, отправив запрос на callback url используя callback токен, после сохранения правил они будут доступны для просмотра на этой же странице, вам остается только отправлять запрос. При получении запроса запускается экспорт. Этот вариант позволяет наоборот отправить запрос из вашего интернет-магазина для запуска экспорта.

Маппинг полей для экспорта

Раздел предназначен для настройки структуры и названия полей так, как принимает ваш интернет-магазин или другая система. Настройка состоит из справочника полей, которые доступны в системе и непосредственно самой настройки маппинга.

Справочник полей

Экспорт товаров - справочник полей

Поле - поле в системе.

Имя поля - системное имя поля, именно его нужно использовать в форме для маппинга полей.

Тип - тип поля.

Пример - пример экспортируемого значения.

Настройка маппинга полей

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

Маппинг полей для экспорта

Тип поля - есть три варианта:

Прямое - поле экспортируется как есть

Пример экспорта json

{
 "vendor_code": "DDF453",
 "product_name": "Дрель аккумуляторная Makita 18V",
 "price_value": 12990.00,
 "brand_name": "Makita"
}

Соответствие полей

Исходное полеПример значения
supplier_code"DDF453"
name"Дрель аккумуляторная Makita 18V"
price12990.00
brand__name"Makita"

Вычисляемое поле - позволяет создавать новые поля путем комбинации существующих полей с помощью формул.
Настройки в админке:

Тип поля: "Вычисляемое поле"

Имя в экспорте: full_name

Формула вычисления: {brand__name} {name} ({supplier_code})

Пример работы

Исходные данные

brand_name = "Makita"
name = "Дрель аккумуляторная"
supplier_code = "DDF453"

Результат вычисления

"Makita Дрель аккумуляторная (DDF453)"

Другие примеры формул

ФормулаРезультатОписание
{name} - {price} {currency}"Дрель аккумуляторная - 12990 RUB"Название с ценой
{brand__name} {model}"Makita DDF453"Бренд + модель
{price} * 1.215588.0Цена с наценкой 20%
IF({availability}, "В наличии", "Нет")"В наличии"Условное форматирование
CONCAT({name}, " (", {manufacturer_code}, ")")"Дрель (M123)"Конкатенация с разделителями
ROUND({weight_kg} * 1000, 0)1800Вес в граммах
FORMAT("{:.2f} €", {price} / 100)"129.90 €"Форматирование валюты

Сложный пример с условной логикой

Формула:
IF({availability}, 
  CONCAT("В наличии: ", {stock}, " шт."), 
  "Под заказ"
)

Результат для товара в наличии (stock=15)

"В наличии: 15 шт."

Результат для товара не в наличии

"Под заказ"

Шаблон XML\YML - позволяет создавать сложные XML/HTML структуры для форматов XML\YML.
Настройки в админке

Тип поля: "Шаблон XML\YML"

Имя в экспорте: offer_xml

Шаблон

<offer id="{supplier_code}" available="{availability}">
 <name>{name}</name>
 <price>{price}</price>
 <currencyId>{currency}</currencyId>
 <categoryId>{category__external_numeric_id}</categoryId>
 <vendor>{brand__name}</vendor>
 <description><![CDATA[{description}]]></description>
 {FOR images IN _shared_images}
 <picture>{images}</picture>
 {ENDFOR}
 {FOR spec IN specifications}
 <param name="{spec.name}">{spec.value}</param>
 {ENDFOR}
</offer>

Пример работы

Исходные данные товара

{
   "supplier_code": "DDF453",
   "availability": True,
   "name": "Дрель аккумуляторная Makita",
   "price": 12990.00,
   "currency": "RUB",
   "category": {"external_numeric_id": 1001},
   "brand": {"name": "Makita"},
   "description": "Профессиональная дрель",
   "images": ["img1.jpg", "img2.jpg"],
   "specifications": [
       {"name": "Мощность", "value": "500 Вт"},
       {"name": "Вес", "value": "1.8 кг"}
   ]
}


Результат применения шаблона

<offer id="DDF453" available="true">
 <name>Дрель аккумуляторная Makita</name>
 <price>12990.00</price>
 <currencyId>RUB</currencyId>
 <categoryId>1001</categoryId>
 <vendor>Makita</vendor>
 <description><![CDATA[Профессиональная дрель]]></description>
 <picture>img1.jpg</picture>
 <picture>img2.jpg</picture>
 <param name="Мощность">500 Вт</param>
 <param name="Вес">1.8 кг</param>
</offer>

Исходное поле - поле, которое экспортируется, здесь необходимо писать точно название поля в системе, все поля описаны в доступных полях для экспорта.

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

Формула вычисления - поле для записи формулы вычисляемых полей, подробно описано выше.

Шаблон - поля для записи шаблона для типа поля шаблон xml\yml, подробно описано выше.

Порядок - порядок полей в экспортируемом файле.

Стоит обратить внимание на экспорт в формат YML. Здесь также как и в другие форматы нет ограничений, вы можете сконструировать любой формат полностью отойдя от стандартов. Но для экспорта стандартных полей кроме создания xml шаблонов, можно выбирать прямое поле и писать как переменные, так и сами поля в системе. Стандартные поля: vendor, name, description и т.д.

Трансформации

Трансформации - замена текста при экспорте

Трансформации предназначены для замены и изменения значений в экспорте, применяются в конце, доступны для всех видов полей, вводится в виде json. Есть несколько видов трансформаций:

1. replace - замена подстрок

{"replace": {"что_меняем": "на_что"}}

{"replace": {"https://cdn.example.com": "https://example.com"}}

2. prefix - добавить префикс

{"prefix": "текст_вначале"}

{"prefix": "https://cdn.example.com/"}

3. suffix - добавить суффикс

{"suffix": "текст_вконце"}

{"suffix": "?quality=80"}

4. uppercase - в верхний регистр

{"uppercase": true}

5. lowercase - в нижний регистр

{"lowercase": true}

6. trim - обрезать пробелы

{"trim": true}

7. default - значение по умолчанию

{"default": "значение_если_пусто"}

Комбинирование

{"replace": {"http://": "https://"}, "suffix": "?w=800"}

Примеры

Замена домена:

{"replace": {"https://cdn.old-site.com": "https://new-site.com"}}

Замена протокола и домена:

{"replace": {"http://cdn.example.com": "https://cdn2.example.com"}}

Добавление параметров к URL:

{"suffix": "?w=1200&h=800&fit=crop"}

Вам нужно добавить столько полей, сколько необходимо в импортируемом файле, для каждого поля произвести настройку и задать позицию при необходимости.

Имена файлов всегда остаются постоянными и доступны по прямой ссылке, увидеть название файла и скопировать ссылку на файл вы можете в списке задач экспорта, для каждого правила свой уникальный файл.