ТЗ на розробку JSON-фіду каталогу
Цей документ містить повні технічні вимоги до структури JSON-файлу для передачі вашого каталогу товарів у систему Pricer24.
Загальні принципи роботи з каталогом, способи передачі та підтримувані протоколи описані у статті Передача каталогу: загальні принципи.
Загальні технічні вимоги
- Формат даних: валідний JSON у кодуванні UTF-8
- Спосіб передачі: пряме постійне посилання (URL) на файл через протокол HTTPS/HTTP (за потреби — з Basic Auth або обмеженням за IP)
- Стиснення: необов'язкове; для великих файлів (> 10 000 позицій) рекомендується gzip (
.json.gz) - Обсяг файлу: без обмежень на кількість товарів чи розмір
- Повнота: фід має містити повний актуальний зріз каталогу на момент формування
Повний приклад структури 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": "Роздрібна ціна" },
{ "id": "2", "name": "Акційна ціна" },
{ "id": "3", "name": "РРЦ" },
{ "id": "4", "name": "Онлайн" }
],
"properties": [
{ "id": "weight", "name": "Вага (кг)", "type": "decimal" },
{ "id": "stock", "name": "Залишок на складі", "type": "int" },
{ "id": "follow_rrp", "name": "Чи контролюємо РРЦ", "type": "bool" },
{ "id": "category_manager", "name": "Категорійний менеджер", "type": "string" }
],
"products": [
{
"id": "153",
"category_id": "1002",
"name": "Цукерки Konti 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": true,
"prices": [
{ "price_type_id": "1", "price": 189.90, "currency": "UAH" },
{ "price_type_id": "2", "price": 169.00, "currency": "UAH" }
],
"properties": {
"weight": 0.500,
"stock": 25,
"follow_rrp": true,
"category_manager": "Олена Шевченко"
}
},
{
"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": false,
"prices": [
{ "price_type_id": "1", "price": 49.50, "currency": "UAH" }
],
"properties": {
"weight": 0.100,
"stock": 0,
"follow_rrp": false,
"category_manager": "Олена Шевченко"
}
}
]
}Структура кореневого об'єкта
На верхньому рівні JSON складається з 4 масивів:
categories— довідник ієрархії категорійprice_types— довідник типів ваших цінproperties— декларація кастомних характеристик товарівproducts— основний масив ваших товарів
1. Масив категорій: categories[]
Передає повну ієрархію категорій вашого магазину. Глибина вкладеності не обмежується. Зв'язок задається через parent_id.
Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
id | string | Так | Унікальний ідентифікатор категорії в системі обліку. Має бути постійним. |
parent_id | string / null | Так | Ідентифікатор батьківської категорії. Для категорій верхнього (кореневого) рівня передається |
name | string | Так | Назва категорії товарів. |
"categories": [
{ "id": "100", "parent_id": null, "name": "Побутова техніка" },
{ "id": "110", "parent_id": "100", "name": "Техніка для кухні" },
{ "id": "112", "parent_id": "110", "name": "Кавомашини" }
]2. Масив типів цін: price_types[]
Визначає типи цін, які ви передаєте в Pricer24: роздрібні, акційні, РРЦ, ціни окремих міст, каналів продажу тощо.
Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
id | string | Так | Унікальний код типу ціни. Має залишатися постійним. |
name | string | Так | Назва типу ціни (наприклад, «Роздрібна», «Акційна», «РРЦ», «Магазин Київ»). |
"price_types": [
{ "id": "1", "name": "Роздрібна ціна" },
{ "id": "2", "name": "Акційна ціна" },
{ "id": "3", "name": "РРЦ" }
]3. Масив додаткових властивостей: properties[]
Оголошує кастомні поля товарів, яких немає у стандартній структурі (залишки, собівартість, менеджер, габарити тощо). Усі оголошені поля можна виводити у звіти та використовувати у формулах ціноутворення.
Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
id | string | Так | Системний ключ властивості. Саме цей ключ використовується всередині кожного товару в |
name | string | Так | Людинозрозуміла назва властивості у звітах та фільтрах системи. |
type | string (enum) | Так | Тип даних. Дозволені лише 4 значення: |
"properties": [
{ "id": "stock", "name": "Залишок", "type": "int" },
{ "id": "cost_price", "name": "Собівартість", "type": "decimal" },
{ "id": "is_exclusive", "name": "Ексклюзивний товар", "type": "bool" },
{ "id": "brand_country", "name": "Країна бренду", "type": "string" }
]- Усі передані параметри автоматично відображаються в інтерфейсі платформи. Детальніше про те, як працювати з ними в кабінеті, читайте в інструкції Створення та редагування товарів.
- За цими характеристиками та тегами ви зможете групувати асортимент, будувати фільтри в звітах та налаштовувати сегменти. Детальніше див. статтю Теги товарів.
4. Масив товарів: products[]
Містить повний список ваших товарів та їхніх атрибутів.
Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
id | string | Так | Ключовий унікальний код товару у вашій системі. Має бути постійним. |
category_id | string | Так | Код категорії товару. Повинен відповідати одному з |
name | string | Так | Повна назва товару. |
vendor | string | Ні | Бренд / виробник товару. |
vendor_code | string | Ні | Артикул виробника (SKU / Part Number). |
barcode | string | Ні | Штрихкод товару (EAN-13, UPC). Важливий для автоматичного зіставлення з конкурентами. |
link | string (URL) | Ні | Пряме посилання на сторінку товару у вашому магазині. |
image_link | string (URL) | Ні | Посилання на фото товару. |
availability | boolean / string | Ні | Поточна наявність товару. |
prices | array | Ні | Масив цін товару (див. структуру нижче). |
properties | object | Ні | Об'єкт зі значеннями кастомних полів у форматі |
id не повинно змінюватися для одного й того самого товару. Зміна id призводить до розриву зв'язків з пропозиціями конкурентів і необхідності повторного ручного зіставлення!Масив цін товару: products[].prices[]
Кожна ціна товару повинна посилатися на відповідний price_type_id із довідника price_types[]:
Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
price_type_id | string | Так | Код типу ціни з довідника |
price | number | Так | Числове значення ціни. Дробова частина відділяється крапкою ( |
currency | string | Так | Трилітерний код валюти за ISO 4217 ( |
"prices": [
{ "price_type_id": "1", "price": 1250.00, "currency": "UAH" },
{ "price_type_id": "2", "price": 999.00, "currency": "UAH" }
]Об'єкт властивостей товару: products[].properties{}
Містить значення оголошених у масиві properties[] характеристик:
"properties": {
"stock": 14,
"cost_price": 750.50,
"is_exclusive": true,
"brand_country": "Німеччина"
}properties[]. Якщо поле stock оголошене як int, а передано рядок "14", синхронізацію буде зупинено через помилку валідації типів.Поле availability (наявність)
Поле підтримує будь-який зручний формат із зазначених:
Формат | Товар є в наявності | Товару немає в наявності |
|---|---|---|
boolean (рекомендовано) |
|
|
string (знаки) |
|
|
string (числа) |
|
|
string (текст) |
|
|
Що далі
- Передайте готовий URL фіду вашому персональному менеджеру або на support@pricer24.com
- Дізнайтеся, як забирати зібрані ціни конкурентів у вашу систему через Фід цін контрагентів або REST API
Оновлено: 04/11/2026
Дякуємо!