Імпорт товарів в каталог

Функція 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 - SEO заголовок для товару

    • products[i].seo_keywords - SEO ключові слова для товару

    • products[i].seo_description - SEO опис для товару

    • 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 успешно загружено" } ] } ] } }