Типы и статусы категорий магазина
Справочник по типам и статусам категорий и товаров магазина. Используются в API /v1/shop/category/* (параметр status в запросах) и в ответах API.
Статусы категории
| ID | Константа | RU | EN | Описание |
|---|---|---|---|---|
| 0 | ARCHIVE | В архиве | Archived | Категория/товар в архиве. Не отображается в активном каталоге, можно восстановить через «Разархивировать». |
| 1 | ACTIVE | Активный | Active | Обычное состояние: категория видна и доступна для покупок (с учётом настроек видимости). |
| 2 | HIDE | Скрытый | Hidden | Скрыт из выдачи (например, временно снят с продажи без переноса в архив). |
Типы категории/товара
| ID | Константа | Название (RU) | Описание |
|---|---|---|---|
| 0 | CATEGORY | Подкатегория | Только контейнер для вложенных категорий или товаров, сам по себе не товар. |
| 1 | UNIQUE | Уникальный товар | Товар с уникальными строками (каждая строка продаётся один раз). Подходит для ключей, промокодов и т.п. |
| 2 | NON_UNIQUE | Неуникальный товар | Один и тот же товар можно продавать многократно (лимит или без лимита). |
| 3 | FILE | Неуникальный файл | Товар — файл(ы), доступный многократно (одно и то же содержимое для всех покупателей). |
| 4 | FILES | Уникальные файлы | Каждый загруженный файл — отдельная единица товара (продаётся один раз). |
| 5 | API_FEEDBACK | API | Товар обрабатывается через внешний API (BOT-T API, другой бот и т.д.). |
| 6 | PRESENT | Подарок | Выдача подарка: по одной строке или все строки сразу. |
| 7 | CART | Товар для корзины | Товар в магазине с корзиной (количество, калькулятор, подтверждение заказа и т.п.). |
| 8 | SERVICE | Услуга | Товар как услуга (без физической выдачи, логика на стороне бота/интеграций). |
| 9 | PRESENT_FILE | Подарок файлами | Подарок в виде файла(ов). |
Подтип (
sub_type) настраивается не у всех типов. У типов CATEGORY, FILES, CART, SERVICE, PRESENT_FILEотдельного выбора подтипа нет.
Подтипы (sub_type)
Подтип хранится в поле sub_type. Значение зависит от типа (type): одно и то же число 0 у разных типов означает разное.
UNIQUE (type = 1) — проверка уникальности строк
| ID | Константа | RU (ЛК) | EN (ЛК) | Описание |
|---|---|---|---|---|
| 0 | NON_UNIQUE | Не проверять на уникальность | Do not check for uniqueness | Дубликаты строк в товаре разрешены. При добавлении строки не проверяется, есть ли такая уже в каталоге. |
| 1 | UNIQUE | Проверять на уникальность | Check for uniqueness | При добавлении строки проверяется наличие в текущем товаре; дубликаты удаляются. При смене режима выполняется дедупликация существующих строк. |
| 2 | HARD_UNIQUE | Проверять на уникальность даже в проданных заказах | Check uniqueness even in sold orders | Как UNIQUE, плюс при смене режима строки из уже проданных заказов (до 1000 последних заказов, до 25 000 строк) исключаются из повторной загрузки. |
Поведение при продаже: каждая строка выдаётся один раз и удаляется из остатка.
NON_UNIQUE (type = 2) — лимит количества
| ID | Константа | RU (ЛК) | Описание |
|---|---|---|---|
| 0 | LIMIT | Лимитное количество товара | Фиксированный остаток (setting.count). При покупке count уменьшается, при отмене заказа — возвращается. При count = 0 товар «закончился». |
| 1 | NON_LIMIT | Безлимитное количество товара | Остаток не уменьшается при продаже. В боте отображается как безлимитный товар. Все покупатели получают одну и ту же строку товара. |
FILE (type = 3) — режим работы неуникального файла
Эти подтипы относятся к типу FILE (3), а не к FILES (4). Тип FILES — уникальные файлы без выбора подтипа.
| ID | Константа | RU (ЛК) | Описание |
|---|---|---|---|
| 0 | LIMIT | Лимитное количество товара | Один файл. Остаток уменьшается при каждой покупке. |
| 1 | NON_LIMIT | Безлимитное количество товара | Один файл, продаётся без ограничения количества. |
| 2 | MANY_FILES_LIMIT | Лимитное количество, несколько файлов | Несколько файлов в одном товаре; остаток лимитирован. При заказе покупателю отправляются все привязанные файлы. |
| 3 | MANY_FILES_NON_LIMIT | Безлимитное количество, несколько файлов | Несколько файлов, продажа без ограничения количества. |
Ограничение при смене подтипа: нельзя переключить между режимами «один файл» (0/1) и «несколько файлов» (2/3) без потери структуры товара.
FILES (type = 4) — уникальные файлы
Отдельных подтипов нет. Каждый загруженный файл = одна уникальная единица товара. Остаток = количество загруженных файлов.
API_FEEDBACK (type = 5) — интеграция с внешним API
| ID | Константа | RU (ЛК) | Описание |
|---|---|---|---|
| 0 | NOT_ACTION | Работа с API BOT-T | Стандартная интеграция через BOT-T API. Товар не отображается в каталоге как обычный (is_view = false). |
| 4 | ACCSMOLL | AccSmoll (товары + наценка %, руб) | Интеграция AccSmoll с наценкой. |
Поведение: для подтипов отличных от NOT_ACTION товар виден в каталоге; для NOT_ACTION и устаревшего MAGNIT — скрыт из обычной витрины.
PRESENT (type = 6) — формат выдачи подарка
| ID | Константа | RU (ЛК) | EN (ЛК) | Описание |
|---|---|---|---|---|
| 0 | UNIQUE | Выдавать поштучно | Give only one line at a time | Каждому покупателю выдаётся одна строка из списка; строка удаляется из остатка. Count отображается как у лимитного товара. |
| 1 | NON_UNIQUE | Выдавать все строки сразу | Give all rows at once | При получении подарка покупателю выдаются все строки товара сразу. Остаток не уменьшается поштучно — отображается как безлимитный. |
Константы UNIQUE / NON_UNIQUE здесь описывают режим выдачи, а не тип товара.
Типы без подтипов
| Тип | ID | Примечание |
|---|---|---|
| CATEGORY | 0 | sub_type не используется |
| FILES | 4 | Каждый файл — уникальная единица |
| CART | 7 | Логика корзины |
| SERVICE | 8 | Услуга без выдачи контента |
| PRESENT_FILE | 9 | Подарок файлами |
| UNIQUE_HIGH_LOAD | 10 | Beta |
Использование в API
Фильтр по статусу
В запросах к /v1/shop/category/index, /v1/shop/category/count и др. массив status задаёт фильтр по статусам:
{
"bot_id": 123,
"status": [0, 1, 2]
}
Допустимые значения: 0 (архив), 1 (активный), 2 (скрытый).
Поля в ответе
| Поле | Тип | Описание |
|---|---|---|
| type | integer | ID типа из таблицы типов (0–10) |
| status | integer | ID статуса (0 — архив, 1 — активный, 2 — скрытый) |
| is_hide | boolean | true, если статус не ACTIVE |
| is_view | boolean | Отображается ли товар в продаже (учитывает тип, подтип, остаток и настройки) |
Подтип в API
Поле sub_type в ответах API сейчас не отдаётся. Для API-товаров также смотрите поле api_id.
Сводная таблица: какой подтип у какого типа
| type | Название | Есть подтипы | Диапазон sub_type |
|---|---|---|---|
| 0 | CATEGORY | нет | — |
| 1 | UNIQUE | да | 0–2 |
| 2 | NON_UNIQUE | да | 0–1 |
| 3 | FILE | да | 0–3 |
| 4 | FILES | нет | — |
| 5 | API_FEEDBACK | да | 0–5 (1 устарел) |
| 6 | PRESENT | да | 0–1 |
| 7 | CART | нет | — |
| 8 | SERVICE | нет | — |
| 9 | PRESENT_FILE | нет | — |
| 10 | UNIQUE_HIGH_LOAD | нет | — |
Примеры интерпретации
type=1, sub_type=2 → Уникальный товар с жёсткой проверкой (HARD_UNIQUE)
type=2, sub_type=0 → Неуникальный товар с лимитом
type=3, sub_type=3 → Неуникальный файл, несколько файлов, без лимита
type=5, sub_type=3 → API-товар через Pigfarm
type=6, sub_type=0 → Подарок, выдача по одной строке