Статті на: Розробникам

Специфікація JSON-фіду Pricer24

Специфікація фіду даних для синхронізації з вашим каталогом товарів.


1. Призначення документа

Цей документ описує технічні вимоги до JSON-фіду Pricer24. Загальні принципи роботи з фідами та підтримувані формати описані в окремому матеріалі — «Фіди даних Pricer24: загальні принципи та підтримувані формати».


2. Спосіб передачі даних

Протокол та метод

Ви надаєте URL фіду, а Pricer24 регулярно завантажує файл за цим посиланням методом GET.


Параметр

Значення

Протокол

HTTP/HTTPS

Метод

GET

URL

Надається вами під час онбордингу. Приклад: https://your-domain.com/feed_storage/filename.json

Content-Type

application/json

Розклад екстракції

Щогодини, цілодобово, починаючи з 0:00


Аутентифікація.

URL фіду може бути відкритим або захищеним. За потреби ви можете обмежити доступ за IP-адресами Pricer24, через Basic Authentication або обома способами одночасно.


3. Формат файлу


 Параметр

Значення

Формат

JSON

Кодування

UTF-8

Стиснення

Не обов’язкове. За необхідності - gzip

Ліміт розміру

Відсутній


Новий фід не додається до попереднього, а повністю замінює його як поточний стан каталогу.

Новий фід повністю визначає, які товари вважаються актуальними на даний момент..


4. Структура фіду

На верхньому рівні JSON-фід складається з трьох масивів: категорій, типів цін і товарів.

  • categories: структура категорій товарів
  • price_types: довідник типів цін 
  • products: детальний каталог товарів


{
"categories": [ ... ],
"price_types": [ ... ],
"products": [ ... ]
}

Масив categories[ ]:

Масив categories[ ] потрібен для передачі всіх товарних категорій у тій ієрархії, у якій вони існують у вашому каталозі, наприклад: Корм для тварин > Корм для котів > Сухий корм для котів > … 

Глибина вкладеності - як у вашому власному каталогу.

Зв’язок між категоріями різних рівнів задається через parent_id.

Формат даних масиву categories[ ]:

Поле

Тип даних

Обов’язкове

Опис

id

string

Так

Унікальний ідентифікатор категорії. Має залишатися незмінним між фідами

parent_id

string / null

Так

ID батьківської категорії. Для кореневих категорій значення має бути 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

Так

Унікальний ідентифікатор товару, є ключовим для синхронізації. Один і той самий id повинен завжди означати один і той самий товар у вашому каталозі.

category_id

string

Так

ID категорії, до якої належить товар. Зазвичай це найнижча категорія в ієрархії, але не обов’язково. Наприклад, в ієрархії Electronics>PC>CPU>Intel клавіатура може належати до категорії PC (якщо немає окремої категорії “Клавіатури”)

name

string

Так

Назва товару

vendor

string

Ні

Назва виробника товару

vendor_code

string

Ні

Артикул товару (код виробника). Передається за наявності.

barcode

string

Ні

Штрих-код товару (EAN/UPC)

link

string (URL)

Ні

Посилання на сторінку товару на сайті клієнта

image_link

string (URL)

Ні

Посилання на зображення товару

availbilty

string

Так

Статус наявності товару

prices

array<object>

Так

Масив цін товару (тип ціни, валюта ціни). Має містити хоча б один елемент


⚠ ВАЖЛИВО ! : Ідентифікатори товарів та категорій (id) мають залишатися незмінними протягом усього часу роботи з Pricer24.

Саме за id система визначає, чи потрібно оновити існуючий запис, чи створити новий.

У товара може змінитися назва, наприклад:

  • Samsung Galaxy -> Samsung Galaxy Black 128 Gb
  • Purina Pro Adult turkey 85g -> Корм для дорослих котів Purina Pro з індичкою 85г. 

але id , який визначає суть товару чи категорії, має залишитися тим же самим.

Не змінюйте id для товару(категорії), якщо по суті це той самий товар чи категорія. Якщо у товара змінився id - це призведе до втрати синхронізації каталогу з пропозиціями конкурентів і потребуватиме повторного налаштування, що призведе до фінансових витрат, яких можна уникнути


Масив prices[ ] всередині масиву products[ ]:

У масиві products.prices[ ] передаються конкретні значення цін товару.

Кожен елемент цього масиву посилається на одну з цінових категорій, описаних у кореневому масиві price_types[ ].

Спочатку ви описуєте всі цінові категорії в основному масиві price_types[ ] **, а потім у кожному товарі (у **products.prices[ ]) передаєте ціни з посиланням на відповідний id з довідника price_types[ ].

products.prices.price_type_id <- price_types.id

Формат даних масиву products.prices[ ]:

Поле

Тип даних

Обов’язкове

Опис

price_type_id

string

Так

Ідентифікатор типу ціни. Він дорівнює елементу price_types.id кореневого масиву price_types [ ]

price

number

Так

Ціна конкретного товару. Поле price потрібно передавати як число у форматі JSON. Для дробової частини використовуйте крапку, наприклад 189.99

currency

string

Так

Валюта ціни, згідно ISO-4217 (UAH, PLN, USD, EUR…)

 


Поле availability - правила передачі

Ви можете передавати availability у тому вигляді, у якому це зберігається у вашій системі, наприклад:

Формат

Товар в наявності

Товар не в наявності

string

"true"

"false"

string

"+"

"-"

string

"1"

"0"

string

"yes", "in_stock", “Х”, ”В наявності” …

"no", "out_of_stock", ”Не в наявності”…


Повний приклад фіду


 {
  "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": [
      ]
    }
  ]
}











 



Оновлено: 05/05/2026

Чи була ця стаття корисною?

Поділіться своїм відгуком

Скасувати

Дякуємо!