ТЗ на розробку фіду для передачі каталогу в Pricer24
Призначення документа
Ця стаття описує технічні вимоги до JSON-фіду (файлу), через який ваш каталог товарів передається в Pricer24.
Загальні принципи роботи з фідами, підтримувані формати даних та способи передачі описані в цій статті.
Загальні вимоги
Ви надаєте URL фіду, а Pricer24 регулярно завантажує за цим посиланням файл із вашим каталогом товарів.
- Стиснення: не обов’язкове. За необхідності - gzip.
- Ліміт розміру: відсутній
Фід (файл) має містити повний і актуальний каталог товарів. Після завантаження файла, Pricer24 автоматично порівняє його із поточним каталогом і оновить лише необхідне.
Актуальними вважаються лише ті товари, які присутні у фіді (файлі) на момент його завантаження.
Приклад JSON-фіду:
Тут наведений приклад, як може виглядати фід. Детальна структура і вимоги до полів фіду описані нижче.
{
"categories": [
{ "id": "1000", "parent_id": null, "name": "Бакалея" },
{ "id": "1001", "parent_id": "1000", "name": "Кондитерські вироби" },
{ "id": "1002", "parent_id": "1001", "name": "Цукерки" }
],
"price_types": [
{ "id": "1", "name": "Магазин Київ 1" },
{ "id": "2", "name": "Магазин Київ 2" },
{ "id": "3", "name": "Магазин Харків 1" },
{ "id": "4", "name": "Онлайн" }
],
"products": [
{
"id": "153",
"category_id": "1002",
"name": "Цукерки Bonjour Десерт 500г",
"vendor": "Konti",
"vendor_code": "08013914",
"barcode": "4820000356848",
"link": "https://example.com/products/konti-bonjour-dessert-500",
"image_link": "https://example.com/products/konti-bonjour-dessert-500.jpg",
"availability": "+",
"prices": [
{ "price_type_id": "1", "price": 189.90, "currency": "UAH" },
{ "price_type_id": "2", "price": 189, "currency": "UAH" }
]
},
{
"id": "154",
"category_id": "1002",
"name": "Шоколад Milka Oreo 100г",
"vendor": "Milka",
"vendor_code": "7622210578266",
"barcode": "7622210951182",
"link": "https://example.com/products/milka-oreo-100",
"image_link": "https://example.com/products/milka-oreo-100.jpg",
"availability": "-",
"prices": [
{ "price_type_id": "3", "price": 178.00, "currency": "UAH" },
{ "price_type_id": "4", "price": 150, "currency": "UAH" }
]
}
]
}
Структура фіду
На верхньому рівні JSON-фід складається з трьох масивів: категорій, типів цін і товарів.
- categories: структура категорій товарів
- price_types: довідник типів цін, на які посилаються ціни товарів
- products: детальний каталог товарів
{
"categories": [ ... ],
"price_types": [ ... ],
"products": [ ... ]
}
Масив categories[ ]:
Масив categories[ ] потрібен для передачі всіх товарних категорій у тій ієрархії, у якій вони існують у вашому каталозі, наприклад: Корм для тварин → Корм для котів → Сухий корм для котів → …
Глибина вкладеності - як у вашому власному каталогу.
Зв’язок між категоріями різних рівнів задається через parent_id.
Формат даних масиву categories[ ]:
Поле | Тип даних | Обов’язкове | Опис |
id | string | Так | Код (ідентифікатор) категорії товару. Унікальний у межах масиву. Має залишатися незмінним у кожному наступному фіді. |
parent_id | string / null | Так | Ідентифікатор батьківської категорії. Для кореневої категорії значення має бути null |
name | string | Так | Назва категорії товару |
Приклад масиву categories[ ]:
"categories":
[
{ "id": "1000", "parent_id": null, "name": "Бакалея" },
{ "id": "1001", "parent_id": "1000", "name": "Кондитерські вироби" },
{ "id": "1002", "parent_id": "1001", "name": "Торти" },
...
...
{ "id": "100Х", "parent_id": "100(Х-1)", "name": "Каштан"},
{ "id": "100(Х+1)", "parent_id": "100Х", "name": "Каштан 500 г пластик" }
]
Масив price_types[ ]:
У масиві price_types[ ] ви визначаєте типи цін, які ви хочете синхронізувати з нашою системою.
Це можуть бути стандартні типи цін або ціни в окремих торгових точках чи каналах продажу.
Наприклад:
- роздрібна
- рекомендована роздрібна
- акційна
- оптова
- закупівельна
- ціна окремого каналу продажу
Формат даних масиву price_types[ ]:
Поле | Тип даних | Обов’язкове | Опис |
id | string | Так | Код (ідентифікатор) типу ціни. Унікальний у межах масиву. Має залишатися незмінним у кожному наступному фіді. |
name | string | Так | Назва типу ціни. Наприклад: "Роздрібна ціна", "Акційна ціна", "РРЦ", "Магазин Київ", "Онлайн" |
Приклади масиву price_types[ ]:
[ { "id": "1", "name": "Моя ціна" } ]
[ { "id": "1", "name": "Роздрібна ціна" },
{ "id": "2", "name": "Акційна ціна" },
{ "id": "3", "name": "РРЦ" } ]
[ { "id": "XXXX", "name": "Магазин Харків" },
{ "id": "YYYY", "name": "Онлайн" } ]
Масив products[ ]:
Масив products[ ] є основною частиною фіду: саме тут передаються всі ваші товари, їхні характеристики, наявність і ціни.
Формат даних масиву products[ ]:
Поле | Тип даних | Обов’язкове | Опис |
id | string | Так | Код (ідентифікатор) товару. Є ключовим для оновлення товару в Pricer24. Має бути унікальним і постійним для одного й того самого товару. Pricer24 використовує його, щоб оновлювати той самий товар у наступних версіях фіду. |
category_id | string | Так | Код (ідентифікатор) категорії, до якої належить товар. Має відповідати одному з id у масиві **categories[] ** |
name | string | Так | Назва товару |
vendor | string | Ні | Назва виробника товару |
vendor_code | string | Ні | Артикул товару (код виробника). Передається за наявності |
barcode | string | Ні | Штрих-код товару (EAN/UPC) |
link | string (URL) | Ні | Посилання на сторінку товару на вашому сайті |
image_link | string (URL) | Ні | Посилання на зображення товару |
availabilty | boolean / string | Ні | Поточний стан наявності товару |
prices | array<object> | Ні | Масив цін товару (тип ціни, значення ціни, валюта) |
Саме за id Pricer24 розуміє, чи потрібно оновити вже наявний запис, чи створити новий.
Назву товару можна уточнювати, перекладати або доповнювати, але id не потрібно змінювати, якщо товар залишається тим самим.
У такому випадку налаштування доведеться виконувати повторно, що призведе до фінансових витрат, яких можна уникнути
Масив prices[ ] всередині об'єкту product:
Масив product.prices[ ] містить усі ціни, які ви передаєте для одного конкретного товару.
Кожна ціна має посилатися на один із типів цін, описаних у кореневому масиві price_types[ ].
Спочатку ви описуєте всі типи цін у кореневому масиві price_types[ ], а потім у кожному товарі (у product.prices[ ] ) передаєте ціни з посиланням на відповідний id з довідника price_types[ ].
product.prices.price_type_id ← price_types.id
Формат даних масиву product.prices[ ]:
Поле | Тип даних | Обов’язкове | Опис |
price_type_id | string | Так | Ідентифікатор типу ціни. Має відповідати одному з id у масиві price_types[] |
price | number | Так | Ціна товару для цього типу ціни. Значення має бути числом. Для дробової частини використовуйте крапку, наприклад 189.99 |
currency | string | Так | Валюта ціни згідно зі стандартом ISO 4217 ("UAH", "PLN", "USD", "EUR" … ) |
Поле availability - правила передачі
availability показує, чи є товар у наявності. Значення можна передавати у форматі, який уже використовується у вашому каталозі.
Приклади:
Формат | Товар в наявності | Товар не в наявності |
boolean | true | false |
string | "+" | "-" |
string | "1" | "0" |
string | "yes", "in_stock", “Х”, "В наявності" … | "no", "out_of_stock", "Не в наявності"… |
Оновлено: 21/05/2026
Дякуємо!