JSON-источник используют, когда каталог поставщика приходит как файл .json, JSON-ответ API, ссылка на файл, ссылка с авторизацией, вложение из email, файл с FTP/FTPS/SFTP, облако или ZIP-архив с JSON внутри. В одном JSON могут быть товары, торговые предложения, разделы, цены, остатки, изображения, характеристики и дополнительные поля поставщика.
После загрузки Eofferix анализирует JSON и готовит короткий рабочий снапшот. Для загрузки в сводный каталог используется единый XML-интерфейс: это не значит, что поставщик должен присылать XML. Сервис показывает компактную XML-структуру с уникальными узлами, элементами, атрибутами и примерами значений, а не весь большой файл целиком.
1. Выберите способ получения JSON
Если источник должен обновляться регулярно, создайте его в разделе "Источники". JSON можно получать из загруженного файла, URL или API-ответа, ссылки с авторизацией, email, FTP/FTPS/SFTP, облака или другого поддерживаемого канала. Для разовой настройки файл можно загрузить прямо в профиле импорта.

2. Подключите JSON-источник к профилю
Откройте или создайте профиль импорта, выберите JSON-источник и укажите загрузку в сводный каталог. Интерфейс сводного каталога не выбирается отдельно: профиль использует XML. Поэтому после сохранения настройки структуры открываются в XML-снапшоте.

3. Настройте идентификацию и правила импорта
В блоке "Идентификация элементов" выберите поля источника, по которым Eofferix будет сопоставлять входящие данные с уже существующими товарами, торговыми предложениями и разделами. Для товаров обычно используют id, sku, external_id или артикул. Для предложений - внешний код варианта, связку товара и характеристики варианта, штрихкод или SKU. Для разделов - код, внешний код или полный путь раздела.

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

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

5. Что можно преобразовать
Преобразования помогают привести данные поставщика к структуре сводного каталога. В интерфейсе можно:
- переименовать поля перед загрузкой;
- изменить вложенность или порядок значений;
- удалить лишние данные;
- отфильтровать товары, предложения или разделы;
- очистить текст и удалить лишние пробелы;
- заменить значения;
- преобразовать числа и даты;
- округлить цены;
- посчитать наценку или скидку;
- использовать соседние узлы в расчетах;
- создать новые поля или вспомогательные значения;
- обработать изображения: сохранить, конвертировать в JPG, PNG или WebP, изменить размер и наложить водяной знак;
- загрузить результат в сводный каталог или поддерживаемое приложение.
6. Примеры преобразований
Инструмент преобразований позволяет сильно менять итоговую загрузку: чистить исходные данные, собирать новую структуру, создавать дополнительные поля, фильтровать товары, рассчитывать значения и готовить результат под нужный формат или приложение.
Простой пример: убрать дефис из SKU
Если поставщик передает артикул с дефисами, а в каталоге нужен слитный код, настройте преобразование для узла sku: заменить символ - на пустое значение.

Было
{
"sku": "DESK-NORD-01"
}Стало
DESKNORD01Пример с условием: увеличить цену для столов
Для поля "Цена" можно проверять соседний узел категории. Если в category есть подстрока Столы, правило увеличивает цену на 20%.

Было
{
"category": "Мебель / Кабинет / Столы",
"price": 12900
}Стало
price: 15480Пример с новым значением: собрать название товара
Если название, артикул, материал и страна приходят отдельно, поле "Наименование" можно собрать из нескольких значений. Правила выполняются сверху вниз и добавляют только непустые части.

В источнике
{
"name": "Стол письменный Нордик",
"sku": "DESK-NORD-01",
"material": "массив дуба",
"country": "Италия"
}После преобразования
Стол письменный Нордик DESK-NORD-01 (массив дуба), ИталияПример с последовательными правилами: подготовить цену
Пример последовательных преобразований для поля Цена. Преобразования могут учитывать не только текущее значение, но и использовать для расчетов иные узлы документа.
- сначала очищаем значение;
- затем проверяем условия;
- затем используем другой узел документа, например остаток, валюту или коэффициент;
- затем меняем значение;
- затем округляем или приводим к нужному формату.

В источнике
{
"price": "129.90",
"stock": 14,
"markup": 1.12
}После преобразования
1467. Новые поля
Новое поле нужно, когда в результате должно появиться значение, которого нет в исходном JSON, или когда исходные данные нужно разложить иначе. Его можно заполнить значением из другого места источника, системным значением, выражением или промежуточным расчетом.
Например, можно создать поле "Класс продукта". Сначала задается значение по умолчанию "Средняя цена", затем проверяется цена: если она меньше 3000, значение заменяется на "Дешевые"; если больше 10000 - на "Дорогие".

8. Переменные
Переменная хранит промежуточный результат и помогает использовать одно рассчитанное значение в нескольких правилах. Переменные не попадают в итоговую загрузку, они нужны только для помощи остальным преобразованиям.
Например, переменная подходит для базовой цены с коэффициентом поставщика: ее можно рассчитать один раз, а затем использовать в цене продажи, скидке и условиях выгрузки.
9. Что происходит после импорта
После запуска профиль создает или обновляет товары, торговые предложения, разделы, характеристики, цены, остатки и изображения в сводном каталоге. Связь с источником сохраняется, поэтому следующие запуски обновляют найденные записи по выбранным ключам, а не создают дубли.
Если товар, предложение, характеристика или раздел пропали из источника, итоговое действие зависит от правил импорта: оставить без изменений, снять с публикации, обнулить остаток, удалить или ограничить очистку только текущим источником.
