Документація

Довідники каталогу

Категорії, бренди, типи товарів і характеристики зі словником значень: параметри, приклади та всі поля.

На цій сторінці

У довідниках каталогу лежать категорії, бренди, типи товарів і характеристики з усіма значеннями. Товар посилається на них номерами (category_ids, brand.id, type_id, options), тому довідники варто забрати раніше за товари.

Усі чотири адреси потребують права catalog:read, віддають списки сторінками й приймають загальні параметри limit, offset, locale і storefront_id. Що від них залежить і які помилки бувають, описано на сторінці «Каталог: видимість і синхронізація». Довідники короткі, тому запитуйте їх з limit=200.

Поля, що перекладаються (name, value), приходять об’єктом за мовами магазину. Мова, якою поле не заповнене, до об’єкта не потрапляє, а якщо поле не заповнене жодною мовою, приходить null.

GET /api/v1/categories

Категорії, видимі на вітрині, пласким списком у порядку дерева. Одразу за розділом ідуть його підрозділи. Право: catalog:read. Які категорії вважаються видимими, описано на сторінці «Каталог: видимість і синхронізація».

Параметр Тип Типово Що робить
updated_since дата й час ISO 8601 немає лише категорії, змінені починаючи з цього моменту. Зміною вважається правка назви, перекладу, адреси (slug), типу й вітрин категорії, а також увімкнення, перенесення й зміна адреси її самої або розділу, у якому вона лежить. Правка налаштувань фільтра, умов добірки, сортування товарів і заборони індексації сюди не потрапляє, бо їх у відповіді немає. Якщо в будь-якої вітрини змінили домен, мови, спосіб адрес сторінок або інше, від чого залежить відповідь, а також якщо змінили мови магазину, сюди потрапляють усі категорії, бо змінюються їхні посилання url. Якщо власник додав, переніс, переставив або видалив будь-яку категорію, сюди потрапляють усі категорії, бо sort може зсунутися в будь-якої з них. Вимкнені, видалені й приховані від цієї вітрини категорії сюди не потрапляють, їхнє зникнення видно лише за повним списком. Докладно в розділі «Зміни: updated_since»

Гортання за after_id у категорій немає. Список короткий, тому забирайте його повністю. Категорія, яку вимкнули або віддали іншій вітрині, зі списку зникає. Приберіть її й у себе.

curl "https://shop.example.ua/api/v1/categories?limit=200&locale=uk" \
  -H "Authorization: Bearer <ключ>"
{
    "data": [
        {
            "id": 303,
            "parent_id": null,
            "slug": "electrics-and-lighting",
            "name": { "ru": "Электрика и свет", "uk": "Електрика та світло", "en": "Electrics and lighting" },
            "type": "static",
            "depth": 0,
            "sort": 1,
            "url": "https://shop.example.ua/uk/electrics-and-lighting/",
            "updated_at": "2026-08-13T18:20:34Z"
        },
        {
            "id": 304,
            "parent_id": 303,
            "slug": "lampochki",
            "name": { "ru": "Лампочки", "uk": "Лампочки" },
            "type": "static",
            "depth": 1,
            "sort": 2,
            "url": "https://shop.example.ua/uk/electrics-and-lighting/lampochki/",
            "updated_at": "2026-10-17T07:34:44Z"
        },
        {
            "id": 330,
            "parent_id": 303,
            "slug": "do-100-grn",
            "name": { "ru": "Всё до 100 грн", "uk": "Усе до 100 грн" },
            "type": "dynamic",
            "depth": 1,
            "sort": 9,
            "url": "https://shop.example.ua/uk/electrics-and-lighting/do-100-grn/",
            "updated_at": "2026-09-02T10:15:00Z"
        }
    ],
    "meta": { "total": 3, "limit": 200, "offset": 0 },
    "links": { "next": null, "prev": null }
}

У прикладі запит зроблено з locale=uk, тому посилання ведуть на українську версію вітрини.

Поле Тип Що означає
id ціле номер категорії
parent_id ціле або null номер батьківської категорії. null у розділу верхнього рівня. Батько завжди є в цьому самому списку
slug рядок адреса категорії на сайті. Вона одна для всіх мов
name об’єкт або null назва категорії за мовами магазину
type рядок static — звичайна категорія, товари до неї додає власник. dynamic — категорія «за умовами», до неї потрапляють товари, що підходять під умови, наприклад «ціна до 100 грн»
depth ціле рівень вкладеності. 0 у розділу верхнього рівня, 1 у його підрозділу й так далі
sort ціле місце категорії в дереві. За ним список уже впорядковано. Числа йдуть за зростанням, але не підряд
url рядок повна адреса категорії на вітрині мовою відповіді
updated_at дата час в UTC, коли в категорії востаннє змінилося те, що видно у відповіді (переклад, адреса, місце в дереві або посилання). Це не час правки в панелі, і правка налаштувань фільтра його не зсуває

Категорії «за умовами» до поля category_ids товару не потрапляють, бо магазин не перевіряє умови для кожного товару у відповіді. Щоб отримати товари такої категорії, запитайте /products?category_id=330. Цей фільтр добирає товари за умовами категорії так само, як вітрина.

GET /api/v1/brands

Бренди магазину. Право: catalog:read. Порядок: як значення розставлено в характеристиці бренду, далі за номером.

У магазині бренди зберігаються як значення характеристики, яку власник призначив брендом. Тому id бренду збігається з номером цього значення. Той самий номер приходить у полі brand.id товару й приймається фільтром /products?brand_id=. Якщо характеристику бренду в магазині не призначено, список порожній.

Власних параметрів в адреси немає.

curl "https://shop.example.ua/api/v1/brands?limit=200" \
  -H "Authorization: Bearer <ключ>"
{
    "data": [
        {
            "id": 2368,
            "slug": "philips",
            "name": { "ru": "Philips", "uk": "Philips", "en": "Philips" },
            "logo": "https://shop.example.ua/storage/brands/2/1040/philips.svg",
            "website": "https://www.philips.ua",
            "url": "https://shop.example.ua/brand/philips/"
        },
        {
            "id": 2375,
            "slug": null,
            "name": { "ru": "Feron" },
            "logo": null,
            "website": null,
            "url": null
        }
    ],
    "meta": { "total": 2, "limit": 200, "offset": 0 },
    "links": { "next": null, "prev": null }
}
Поле Тип Що означає
id ціле номер бренду, він же номер значення характеристики бренду
slug рядок або null адреса сторінки бренду. null, якщо власник не заводив бренду сторінку
name об’єкт або null назва бренду за мовами магазину
logo рядок або null повна адреса логотипа зі сторінки бренду
website рядок або null сайт виробника зі сторінки бренду
url рядок або null повна адреса сторінки бренду на вітрині. null, якщо сторінки немає

Бренд, сторінку якого власник вимкнув або віддав іншій вітрині, до списку не потрапляє. Бренд без сторінки видно завжди.

GET /api/v1/product_types

Типи товарів. Тип задає набір характеристик і одиницю продажу, які товар отримує типово. Право: catalog:read. Порядок: як типи розставлено в налаштуваннях каталогу, далі за номером. Від вітрини список не залежить.

Власних параметрів в адреси немає.

curl "https://shop.example.ua/api/v1/product_types?limit=200" \
  -H "Authorization: Bearer <ключ>"
{
    "data": [
        {
            "id": 83,
            "code": "lamps",
            "name": { "ru": "Лампы", "uk": "Лампи" },
            "unit": "pcs",
            "qty_step": "1.000",
            "qty_min": "1.000",
            "feature_ids": [605, 612, 615, 616, 627]
        },
        {
            "id": 91,
            "code": "cable",
            "name": { "ru": "Кабель", "uk": "Кабель" },
            "unit": "m",
            "qty_step": "0.500",
            "qty_min": "1.000",
            "feature_ids": [640, 641]
        }
    ],
    "meta": { "total": 2, "limit": 200, "offset": 0 },
    "links": { "next": null, "prev": null }
}
Поле Тип Що означає
id ціле номер типу
code рядок код типу латиницею
name об’єкт або null назва типу за мовами магазину
unit рядок або null одиниця продажу типово: pcs, m, kg, g, l, m² або власна одиниця магазину. Список стандартних одиниць віддає /shop у полі units
qty_step рядок або null крок кількості, три знаки після крапки. За кроку "0.500" кабель продається по пів метра
qty_min рядок або null найменша кількість у замовленні, три знаки після крапки
feature_ids масив цілих номери характеристик типу в тому порядку, у якому їх розставив власник. Характеристика «для всіх типів» потрапляє сюди, лише якщо власник поставив її на місце в цьому типі. Решта таких характеристик підходить типу й без цього, у /features у них стоїть applies_to_all_types: true

Одиницю, крок і мінімум типу магазин підставляє товару, коли власник заводить товар або змінює йому тип і не задає ці значення сам. Якщо згодом власник змінить налаштування типу, у заведених товарів нічого не зміниться. Одиниця продажу приходить у полі unit товару й одна для всіх його артикулів. Крок і найменша кількість приходять у кожного артикула власними полями, саме такими, які застосує кошик. Замовляйте за ними, а не за значеннями типу.

GET /api/v1/features

Характеристики зі словником значень. Право: catalog:read. Порядок: як характеристики розставлено в довіднику, далі за номером. Від вітрини список не залежить.

Службові характеристики, приховані від покупця, сюди не потрапляють. Опції покупки (for_skus: true) приходять завжди, навіть приховані, бо на них посилаються артикули в полі options.

Власних параметрів в адреси немає.

curl "https://shop.example.ua/api/v1/features?limit=200" \
  -H "Authorization: Bearer <ключ>"
{
    "data": [
        {
            "id": 616,
            "code": "light",
            "name": { "ru": "Свет", "uk": "Світло" },
            "type": "text",
            "format": "select",
            "dimension": null,
            "unit": null,
            "for_skus": true,
            "is_filterable": true,
            "applies_to_all_types": false,
            "product_type_ids": [83],
            "values": [
                { "id": 2426, "value": { "ru": "нейтральный", "uk": "нейтральне" }, "color": null },
                { "id": 2428, "value": { "ru": "холодный белый", "uk": "холодне біле" }, "color": null }
            ]
        },
        {
            "id": 596,
            "code": "color",
            "name": { "ru": "Цвет", "uk": "Колір" },
            "type": "color",
            "format": "select",
            "dimension": null,
            "unit": null,
            "for_skus": true,
            "is_filterable": true,
            "applies_to_all_types": true,
            "product_type_ids": [],
            "values": [
                { "id": 2348, "value": { "ru": "белый", "uk": "білий" }, "color": "#FFFFFF" }
            ]
        },
        {
            "id": 606,
            "code": "height",
            "name": { "ru": "Высота", "uk": "Висота" },
            "type": "number",
            "format": "single",
            "dimension": "length",
            "unit": "mm",
            "for_skus": false,
            "is_filterable": false,
            "applies_to_all_types": false,
            "product_type_ids": [83],
            "values": []
        }
    ],
    "meta": { "total": 3, "limit": 200, "offset": 0 },
    "links": { "next": null, "prev": null }
}
Поле Тип Що означає
id ціле номер характеристики
code рядок код характеристики латиницею
name об’єкт або null назва характеристики за мовами магазину
type рядок вид значення: text текст, number число, boolean так чи ні, color колір, date дата
format рядок скільки значень буває в товару й звідки вони беруться: single — одне значення, яке вводять вручну; select — одне значення зі словника; multiselect — кілька значень зі словника
dimension рядок або null сімейство одиниць у числової характеристики: length, weight, volume, area, frequency, power, memory, time, temperature, current, charge, voltage. null — число без одиниць або не число
unit рядок або null код одиниці, у якій записано значення, наприклад mm, kg, l, m², W. У товару одиниця приходить підписом мовою відповіді («мм», «Вт»)
for_skus логічне опція покупки, за нею покупець обирає варіант товару, наприклад колір чи розмір
is_filterable логічне характеристика бере участь у фільтрі каталогу на вітрині
applies_to_all_types логічне характеристика підходить товарам усіх типів
product_type_ids масив цілих номери типів товарів, до яких прив’язано характеристику. У характеристики «для всіх типів» масив буває порожнім
values масив словник значень у порядку, заданому власником. У характеристик, значення яких вводять вручну, масив порожній
values[].id ціле номер значення. На нього посилаються options[].value_id артикула й features[].values[].id товару
values[].value об’єкт або null підпис значення за мовами магазину
values[].color рядок або null колір значення у вигляді #RRGGBB, якщо його задано в довіднику
Оновлено 18 жовтня 2026