Импорт товаров в каталог

Функция catalog/import (http://<DOMAIN>/api/catalog/import/)

Параметры:

  • token - ключ авторизации полученный через функцию auth

  • products[] - список товаров

    • products[i].title.ru - значение на русском языке (опционально)

    • products[i].title.ua - значение на украинском языке (опционально)

    • products[i].title - указание просто значения для всех языков

    • products[i].description.ru - значение на русском языке (опционально)

    • products[i].description.ua - значение на украинском языке (опционально)

    • products[i].description - указание просто значения для всех языков

    • products[i].seo_title.ru - значение на русском языке (опционально)

    • products[i].seo_title.ua - значение на украинском языке (опционально)

    • products[i].seo_title - указание просто значения для всех языков

    • products[i].seo_keywords.ru - значение на русском языке (опционально)

    • products[i].seo_keywords.ua - значение на украинском языке (опционально)

    • products[i].seo_keywords - указание просто значения для всех языков

    • products[i].seo_description.ru - значение на русском языке (опционально)

    • products[i].seo_description.ua - значение на украинском языке (опционально)

    • products[i].seo_description - указание просто значения для всех языков

    • products[i].marketplace_description - описание для маркетплейсов

    • products[i].parent_article - артикул родительского товара. Необходим для создания/объединения модификаций. В случае если товар является родительским - поле не обязательно (либо указать значением артикула товара).
      Если обновлять существующий товар, но не указывать это поле, то в качестве значения будет взято текущий родительский артикул из БД
      Если же товар новый, а значение не указано, то родительский артикул будет взят из поля products[i].article

    • products[i].article - артикул товара (обязательный параметр)

    • products[i].article_for_display - артикул модели (опционально). Если заполнено, будет отображаться на сайте вместо артикула

    • products[i].title - название товара (обязательный параметр в случае добавления нового товара)

    • products[i].mod_title - название модификации товара (опционально)

      • products[i].mod_title.ru - значение на русском языке (опционально)

      • products[i].mod_title.ua - значение на украинском языке (опционально)

      • products[i].mod_title - указание просто значения для всех языков

    • products[i].display_in_showcase - отображать товар (true|false|1|0)

    • products[i].presence - наличие товара. Внимание: статусы наличия можно передавать только при отключенной функциии Учёт остатков на складах.
      Доступные значения:

      • в наличии

      • нет в наличии

      • ожидается

      • Также любые другие статусы наличия добавленные на Вашем сайте

    • products[i].price - стоимость товара

    • products[i].price_old - старая стоимость товара

    • products[i].discount - относительная скидка на товар

    • products[i].short_description — короткое описание

    • products[i].color — цвет

    • products[i].gtin — штрихкод (GTIN (EAN, UPC, ISBN))

    • products[i].mpn — код производителя товара (MPN)

    • products[i].popularity — популярность

    • products[i].guarantee_shop — тип гарантии

    • products[i].guarantee_length — гарантийный срок, мес.

    • products[i].countdown_end_time — дата и время окончания акции

    • products[i].countdown_description — текст акции

    • products[i].currency - валюта товара. Доступные значения (по умолчанию):

      • UAH

      • USD

      • EUR

      • Обратите внимание, что название валюты может отличаться на Вашем сайте, если Вы её переименовали. Перед импортом валюты
        обязательно проверьте название валюты в админ. панели сайта

    • products[i].parent - путь / к / разделу (Развивающие игрушки / Игрушки для малышей) (обязательный параметр при доблении новых товаров)

    • products[i].parent.id - идентификатор раздела каталога (используется вместо products[i].parent, рекомендуется вместо простого пути к разделу). Идентификаторы разделов можно получить в функции pages/export

    • products[i].alt_parent - массив дополнительных разделов. Каждый элемент указывается также как и поле products[i].parent

      • products[i].alt_parent[n] - путь / к / разделу (Развивающие игрушки / Игрушки для малышей)

      • products[i].alt_parent[n].id - идентификатор раздела каталога (используется вместо products[i].alt_parent[n])

      • выше указанные варианты дополнительных разделов можно комбинировать

    • products[i].forceAliasUpdate - необходимость в перегенерации ссылки на товар (логическое значение)

    • products[i].slug - алиас товара. Работает только для нового товара, или если параметр forceAliasUpdate == true. Алиас будет проставлен в ссылку товара и преобразован согласно правилам формировании ссылок товаров

    • products[i].brand - название бренда

    • products[i].description - описание товара

    • products[i].adult - только для взрослых (Google Merchant Center)

    • products[i].condition - состояние товара (например, “Новый”, “б/у”, “Восстановленный”)

    • products[i].condition.id - идентификатор состояния товара (используется вместо products[i].condition)

    • products[i].icons - Иконки (["Распродажа", "Новинка", "Хит"]). Также другие параметры с типом "мультивыбор" либо "выбор из списка" с пометкой "мульти" можно передавать в таком же формате

    • products[i].seo_title - СЕО заголовок для товара

    • products[i].seo_keywords - СЕО ключевые слова для товара

    • products[i].seo_description - СЕО описание для товара

    • products[i].h1_title.ru - h1 заголовок для товара (русскоязычная версия)

    • products[i].h1_title.ua - h1 заголовок для товара (украиноязычная версия)

    • products[i].export_to_marketplace - включение выгрузки на маркеплейсы. Названия маркетплейсов указывать через точку с запятой: "marketplace 1;marketplace2;..."

    • products[i].characteristics[] - характеристики товара (опционально)

      • products[i].characteristics.material - Материал

      • products[i].characteristics.weight - Вес

      • products[i].characteristics.consist - Состав

      • products[i].characteristics.country - Страна

      • products[i].characteristics.gender - Пол

      • products[i].characteristics.age - Возраст

      • products[i].characteristics.physics - Физическое развитие (значения указывать через ;)

      • products[i].characteristics.brain - Умственное развитие (значения указывать через ;)

      • products[i].characteristics.social - Социальное развитие (значения указывать через ;)

 

Новые параметры начиная с версии 3.15.15

  •  

    • products[i].accessories - аксессуары для товара (массив). Перезаписывают существующие аксессуары

      • products[i].accessories[n] - артикул товара простой строкой

      • products[i].accessories[n].article - явное указание артикула товара

      • products[i].accessories[n].page - путь / к / разделу (Развивающие игрушки / Игрушки для малышей)

      • products[i].accessories[n].page.id - идентификатор раздела

    • products[i].gifts - подарки для товара (массив). Сработает только если на сайте включены подарки. Перезаписывают существующие подарки

      • products[i].gifts[n] - артикул товара простой строкой

      • products[i].gifts[n].article - явное указание артикула товара

      • products[i].gifts[n].page - путь / к / разделу (Развивающие игрушки / Игрушки для малышей)

      • products[i].gifts[n].page.id - идентификатор раздела

    • products[i].residues - остатки товара на складах. Работает только если на сайте включён учёт остатков на складах

      • products[i].residues[n].warehouse - Название для синхронизации склада (значение свойства "Название для синхронизации" в складе)

      • products[i].residues[n].quantity - количество товара на складе

    • products[i].images - изображения модификации товара

      • products[i].images.links - ссылки на изображения товара которые необходимо загрузить (массив). Фото импортируются в том порядке, в котором они находятся в массиве.

        • products[i].images.links[n] - ссылка на изображение (размер изображения не должен превышать 5мб)

      • products[i].images.override - необходимость удалить текущие изображения перед загрузкой новых (boolean). По умолчанию — true. Если передать false — изображения с теми же или новыми ссылками будут добавлены к товару без перезаписи ранее импортированных.

      • products[i].images.removeAll - удалить все изображения. ВНИМАНИЕ! Если в параметре указать значение true то остальные параметры ("links", "override") будут проигнорированы и галерея просто будет очищена

    • products[i].gallery_common - общая галерея для всех модификаций

      • products[i].gallery_common.links - ссылки на изображения товара которые необходимо загрузить (массив). Фото импортируются в том порядке, в котором они находятся в массиве.

        • products[i].gallery_common.links[n] - ссылка на изображение (размер изображения не должен превышать 5мб)

      • products[i].gallery_common.override - необходимость удалить текущие изображения перед загрузкой новых (boolean). По умолчанию - true

      • products[i].gallery_common.removeAll - удалить все изображения. ВНИМАНИЕ! Если в параметре указать значение true то остальные параметры ("links", "override") будут проигнорированы и галерея просто будет очищена

    • products[i].gallery_360 - Обзор 360

      • products[i].gallery_360.links - ссылки на изображения товара которые необходимо загрузить (массив)

        • products[i].gallery_360.links[n] - ссылка на изображение (размер изображения не должен превышать 5мб)

      • products[i].gallery_360.override - необходимость удалить текущие изображения перед загрузкой новых (boolean). По умолчанию - true

      • products[i].gallery_360.removeAll - удалить все изображения. ВНИМАНИЕ! Если в параметре указать значение true то остальные параметры ("links", "override") будут проигнорированы и галерея просто будет очищена



Новые параметры начиная с версии 4.0

Для проектов с оптовым функционалом (пример запроса)

  • products[i].price_levels - цены разного типа

    • products[i].price_levels.level_id - число, идентификатор типа цены

    • products[i].price_levels.price - число, значение цены данного типа

 

Для всех проектов

  • products[i].multiplicity — кратность  (шаг добавления в корзину). Целое число.

  • products[i].minimal_order — минимальный заказ. Целое число, должно быть кратно полю “Кратность”.

  • products[i].installments_payment — количество платежей для "Оплата частями ПриватБанка".
    Допустимые значения:

    • "Выкл" - оплата частями не доступна для товара

    • "По умолчанию" - значение берется их настроек платежной системы

    • 2-25 - допустимое количество платежей

  • products[i].monobank_installments_payment — количество платежей для "Покупка частями от monobank".
    Допустимые значения:

    • "Выкл" - оплата частями не доступна для товара

    • "По умолчанию" - значение берется их настроек платежной системы

    • 3-25 - допустимое количество платежей

  • products[i].unit_of_measurement — единицы измерения.

  • products[i].wholesale_prices[] — оптовые цены за количество единиц в заказе.

    • products[i].wholesale_prices.minimal_threshold — количество единиц

    • products[i].wholesale_prices.price — цена, действующая при добавлении этого кол-ва единиц в заказ

 

  • products[i].supplier_id[] — поставщик

    • products[i].supplier_id.id — уникальный идентификатор поставщика

    • products[i].supplier_id.value — название поставщика

 

Ответ:

  • status - статус выполнения функции

  •  

    • OK - все записи обновились успешно

    • WARNING - при обновлении некоторых записей произошли ошибки

    • ERROR - произошла критическая ошибка

  • response.log - журнал выполнения функции по каждой записи

  •  

    • response.log[i].article - артикул товара

    • response.log[i][‘info’][n].code - статус обновления записи (см. таблицу кодов ниже)

    • response.log[i][‘info’][n].message - пояснение к коду





Коды журнала импорта товара

Код

Описание

Код

Описание

Общие

0

Товар добавлен/обновлён

1

Товар с артикулом не существует (устаревший код, более не используется)

2

Не найден товар соответствующий родитесльскому артикулу "parent_article"

3

Товар теперь является отдельной основной модификацией

4

Товар был перенесен в качестве модификации к другому товару

5

Ошибка изменения раздела

Только для новых товаров

6

Параметр Название "title" обязателен для заполнения (только для новых товаров)

7

Одно из обязательных полей не задано

8

Устаревший код. Более не используется

9

Товар был перенесён в другую категорию

10

Ошибка переноса товара в другую категорию

11

Переданный параметр не найден в шаблоне "Каталог"

12

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

Ссылка на товар

13

Запись с указанной ссылкой уже существует

14

Ошибка при создании/сохранении ссылки

Остатки товара на складе

15

Остатки товара на складе обновлены

16

Невозможно обновить остатки товара на складе т. к. они отключены на сайте

17

Ошибка целостности данных об остатках товара на складе

18

Склад для остатков товара не был найден

19

Ошибка при обновлении остатков товара на складе

Аксессуары и подарки

20

При добавлении аксессуара/подарка отсутствует аксессуар/подарок с указанным артикулом

21

При добавлении раздела аксессуара/подарка отсутствует раздел с указанными данными

Галерея (для модификации, общая и Обзор 360)

22

Изображение галереи было загружено

23

Ссылка на изображение некорректна

24

Ошибка при записи изображения в файл

25

Неизвестная ошибка при загрузке изображения

26

Ошибка при загрузке изображения

27

MIME тип загруженного изображения не соответствует допустимым: image/jpeg, image/gif, image/png

28

Галерея была очищена.

Такой код отображается если в галереи передать параметр "removeAll":true , либо если загружать новые изображения и не указывать параметр "override" или же указать явно "override": true, что в свою

очередь также очищает галерею от изображений



Пример запроса на адрес (http://<DOMAIN>/api/catalog/import/):

{ "products": [ { "parent_article": "AAAA_TEST", "article": "AAAA_TEST", "title": { "ru": "Тестирование импорта", "ua": "Тестування імпорту" }, "description": { "ru": "Тестирование импорта", "ua": "Тестування імпорту" }, "short_description": { "ru": "Короткое описание", "ua": "Короткий опис" }, "color": "Белый", "gtin": "4581649781942", "mpn": "GO12345OOGLE", "popularity": 25, "guarantee_shop": "Магазин", "guarantee_length": 12, "countdown_end_time": "2021-12-31 23:59:59", "countdown_description": { "ru": "<p>Описание акции</p>", "ua": "<p>Опис акції</p>", "en": "<p>Description for promotion</p>" }, "parent": "iPhone / iPhone 6", "alt_parent": [ "Другие товары / Аксессуары", { "id": 98 }, "Apple / Test" ], "forceAliasUpdate": true, "slug": "aaaa-test", "display_in_showcase": true, "presence": "В наличии", "price": 100, "price_old": 150, "wholesale_prices": [ { "minimal_threshold": "4", "price": 8000 } ], "icons": [ "Распродажа", "Новинка", "Хит" ], "export_to_marketplace": "Facebook Feed;Rozetka Feed", "images": { "override": false, "links": [ "https://cdn.pixabay.com/photo/2013/07/12/12/58/tv-test-pattern-146649_960_720.png", "https://lh4.ggpht.com/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300", "http://wp.patheos.com.s3.amazonaws.com/blogs/faithwalkers/files/2013/03/bigstock-Test-word-on-white-keyboard-27134336.jpg", "https://i.vimeocdn.com/portrait/58832_300x300", "http://www.testinteligencia.net/image/repository/test1.jpg", "https://i.ytimg.com/vi/yaqe1qesQ8c/maxresdefault.jpg", "http://build.horoshop.com.ua/api/catalog/export", "sdgagadsgsadgsadgsadgsagsadg" ] } }, { "parent_article": "AAAA_TEST", "article": "BBBB_TEST", "title": { "ru": "Тестирование импорта", "ua": "Тестування імпорту" }, "description": { "ru": "Тестирование импорта", "ua": "Тестування імпорту" }, "marketplace_description": { "ru": "Описание ru", "ua": "Описание ua", "en": "Описание en" }, "parent": { "id": 1036 }, "display_in_showcase": true, "price": 95, "discount": 3, "accessories": [ "2317217", "4517217", { "page": "Телефоны / Аксессуары" }, { "page": { "id": 1032 } }, { "article": "MD827" } ], "residues": [ { "warehouse": "office", "quantity": 15 } ], "gallery_common": { "override": false, "links": [ "https://cdn.pixabay.com/photo/2013/07/12/12/58/tv-test-pattern-146649_960_720.png", "https://lh4.ggpht.com/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300" ] }, "characteristics": { "gender": "Мальчик ; девочка", "material": "Полиэстер", "country": { "ru": "Великобритания", "ua": "Великобританія" } "supplier_id": { "id": 4, "value": "Top" } } } ] }

 

Пример ответа на запрос:

{ "status": "WARNING", "response": { "log": [ { "article": "AAAA_TEST", "info": [ { "code": 23, "message": "Некорректная ссылка на изображение \"sdgagadsgsadgsadgsadgsagsadg\"" }, { "code": 0, "message": "Товар обновлен" }, { "code": 13, "message": "Запись с ссылкой \/aaaa-test\/ уже существует" }, { "code": 22, "message": "Изображение https:\/\/cdn.pixabay.com\/photo\/2013\/07\/12\/12\/58\/tv-test-pattern-146649_960_720.png успешно загружено" }, { "code": 22, "message": "Изображение https:\/\/lh4.ggpht.com\/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300 успешно загружено" }, { "code": 22, "message": "Изображение http:\/\/wp.patheos.com.s3.amazonaws.com\/blogs\/faithwalkers\/files\/2013\/03\/bigstock-Test-word-on-white-keyboard-27134336.jpg успешно загружено" }, { "code": 22, "message": "Изображение https:\/\/i.vimeocdn.com\/portrait\/58832_300x300 успешно загружено" }, { "code": 22, "message": "Изображение http:\/\/www.testinteligencia.net\/image\/repository\/test1.jpg успешно загружено" }, { "code": 22, "message": "Изображение https:\/\/i.ytimg.com\/vi\/yaqe1qesQ8c\/maxresdefault.jpg успешно загружено" }, { "code": 25, "message": "Произошла неизвестная ошибка при загрузке изображения. Cannot read from non-readable stream" } ] }, { "article": "BBBB_TEST", "info": [ { "code": 15, "message": "Остатки товара обновлены" }, { "code": 0, "message": "Товар добавлен" }, { "code": 22, "message": "Изображение https:\/\/cdn.pixabay.com\/photo\/2013\/07\/12\/12\/58\/tv-test-pattern-146649_960_720.png успешно загружено" }, { "code": 22, "message": "Изображение https:\/\/lh4.ggpht.com\/wKrDLLmmxjfRG2-E-k5L5BUuHWpCOe4lWRF7oVs1Gzdn5e5yvr8fj-ORTlBF43U47yI=w300 успешно загружено" } ] } ] } }