Skip to content

Категории ​

Дерево категорий товаров (nested set). Каждая компания, включая филиал, ведёт собственное дерево; старый филиал без своего дерева видит дерево родительской компании.

МетодАдресНазначение
GET/company/product/category/treeДерево категорий
PATCH/company/product/category/moveПереместить категорию
GET/company/product/categoryСписок категорий
GET/company/product/category/{model}Просмотр категории
POST/company/product/categoryСоздать категорию
PUT/company/product/category/{model}Изменить категорию
DELETE/company/product/category/{model}Удалить категорию
DELETE/company/product/category/{value}/restoreВосстановить категорию

Дерево категорий ​

GET/company/product/category/tree

Возвращает дерево категорий компании (вместе с удалёнными узлами) без корневого узла. Если у компании нет своего дерева, берётся дерево ближайшей родительской компании; если нет и его — пустой массив.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Ответ · 200 ​

Поля ответа
ПолеТипОписание
[].idintegerID
[].company_idintegerКомпания
[].lftinteger
[].rgtinteger
[].parent_idintegerРодитель
[].nameobjectНазвание
[].name.ozstring
[].name.rustring
[].name.uzstring
[].created_atstringСоздано
[].updated_atstringОбновлено
[].is_deletedboolean
[].textstringТекст
[].stateobject
[].state.disabledboolean
[].state.hiddenboolean
[].state.openedboolean
[].childrenobject[]
[].children[].idintegerID
[].children[].company_idintegerКомпания
[].children[].lftinteger
[].children[].rgtinteger
[].children[].parent_idintegerРодитель
[].children[].nameobjectНазвание
[].children[].name.ozstring
[].children[].name.rustring
[].children[].name.uzstring
[].children[].created_atstringСоздано
[].children[].updated_atstringОбновлено
[].children[].is_deletedboolean
[].children[].textstringТекст
[].children[].stateobject
[].children[].state.disabledboolean
[].children[].state.hiddenboolean
[].children[].state.openedboolean
[].children[].childrenobject[]
[].children[].children[].idintegerID
[].children[].children[].company_idintegerКомпания
[].children[].children[].lftinteger
[].children[].children[].rgtinteger
[].children[].children[].parent_idintegerРодитель
[].children[].children[].nameobjectНазвание
[].children[].children[].name.ozstring
[].children[].children[].name.rustring
[].children[].children[].name.uzstring
[].children[].children[].created_atstringСоздано
[].children[].children[].updated_atstringОбновлено
[].children[].children[].is_deletedboolean
[].children[].children[].textstringТекст
[].children[].children[].stateobject
[].children[].children[].state.disabledboolean
[].children[].children[].state.hiddenboolean
[].children[].children[].state.openedboolean
[].children[].children[].childrenarray
json
[
    {
        "id": 2,
        "company_id": 1,
        "lft": 2,
        "rgt": 13,
        "parent_id": 1,
        "name": {
            "oz": "Category 1 oz",
            "ru": "Category 1 ru",
            "uz": "Category 1 uz"
        },
        "created_at": "2026-09-30 12:47:59",
        "updated_at": "2026-09-30 12:47:59",
        "is_deleted": false,
        "text": "Category 1 ru",
        "state": {
            "disabled": false,
            "hidden": false,
            "opened": true
        },
        "children": [
            {
                "id": 3,
                "company_id": 1,
                "lft": 3,
                "rgt": 8,
                "parent_id": 2,
                "name": {
                    "oz": "Category 1-1 oz",
                    "ru": "Category 1-1 ru",
                    "uz": "Category 1-1 uz"
                },
                "created_at": "2026-09-30 12:47:59",
                "updated_at": "2026-09-30 12:47:59",
                "is_deleted": false,
                "text": "Category 1-1 ru",
                "state": {
                    "disabled": false,
                    "hidden": false,
                    "opened": true
                },
                "children": [
                    {
                        "id": 4,
                        "company_id": 1,
                        "lft": 4,
                        "rgt": 5,
                        "parent_id": 3,
                        "name": {
                            "oz": "Category 1-1-1 oz",
                            "ru": "Category 1-1-1 ru",
                            "uz": "Category 1-1-1 uz"
                        },
                        "created_at": "2026-09-30 12:47:59",
                        "updated_at": "2026-09-30 12:47:59",
                        "is_deleted": false,
                        "text": "Category 1-1-1 ru",
                        "state": {
                            "disabled": false,
                            "hidden": false,
                            "opened": true
                        },
                        "children": []
                    },
                    {
                        "id": 5,
                        "company_id": 1,
                        "lft": 6,
                        "rgt": 7,
                        "parent_id": 3,
                        "name": {
                            "oz": "Category 1-1-2 oz",
                            "ru": "Category 1-1-2 ru",
                            "uz": "Category 1-1-2 uz"
                        },
                        "created_at": "2026-09-30 12:47:59",
                        "updated_at": "2026-09-30 12:47:59",
                        "is_deleted": false,
                        "text": "Category 1-1-2 ru",
                        "state": {
                            "disabled": false,
                            "hidden": false,
                            "opened": true
                        },
                        "children": []
                    }
                ]
            },
            {
                "id": 6,
                "company_id": 1,
                "lft": 9,
                "rgt": 12,
                "parent_id": 2,
                "name": {
                    "oz": "Category 1-2 oz",
                    "ru": "Category 1-2 ru",
                    "uz": "Category 1-2 uz"
                },
                "created_at": "2026-09-30 12:47:59",
                "updated_at": "2026-09-30 12:47:59",
                "is_deleted": false,
                "text": "Category 1-2 ru",
                "state": {
                    "disabled": false,
                    "hidden": false,
                    "opened": true
                },
                "children": [
                    {
                        "id": 7,
                        "company_id": 1,
                        "lft": 10,
                        "rgt": 11,
                        "parent_id": 6,
                        "name": {
                            "oz": "Category 1-2-1 oz",
                            "ru": "Category 1-2-1 ru",
                            "uz": "Category 1-2-1 uz"
                        },
                        "created_at": "2026-09-30 12:47:59",
                        "updated_at": "2026-09-30 12:47:59",
                        "is_deleted": false,
                        "text": "Category 1-2-1 ru",
                        "state": {
                            "disabled": false,
                            "hidden": false,
                            "opened": true
                        },
                        "children": []
                    }
                ]
            }
        ]
    },
    {
        "id": 8,
        "company_id": 1,
        "lft": 14,
        "rgt": 15,
        "parent_id": 1,
        "name": {
            "oz": "Category 2 oz",
            "ru": "Category 2 ru",
            "uz": "Category 2 uz"
        },
        "created_at": "2026-09-30 12:47:59",
        "updated_at": "2026-09-30 12:47:59",
        "is_deleted": false,
        "text": "Category 2 ru",
        "state": {
            "disabled": false,
            "hidden": false,
            "opened": true
        },
        "children": []
    }
]

Переместить категорию ​

PATCH/company/product/category/move

Перемещает категорию id относительно категории node_id: type = before (перед), after (после) или into (внутрь, последним дочерним узлом). Корневой узел перемещать нельзя.

Из формы (multipart/form-data) метод PATCH отправляется как POST с параметром ?_method=PATCH.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
typestringДаТип. Допустимые значения: before, after, into
idstringДаID. ID существующей записи, доступной пользователю
node_idintegerДаID существующей записи, доступной пользователю
json
{
    "id": 2,
    "node_id": 8,
    "type": "before"
}
bash
curl -X PATCH "https://api.wasyt.uz/company/product/category/move" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"id":2,"node_id":8,"type":"before"}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
messagestringСообщение
json
{
    "message": "Success"
}

Список категорий ​

GET/company/product/category

Плоский список категорий компании (без корня) в порядке дерева, у каждой — цепочка предков ancestors. Фильтры: name, parent_id, id.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПараметрОписание
filter[id]ID — точное значение
filter[parent_id]Родитель — точное значение
filter[name]Название — поиск по части строки
sort[]Сортировка, - — по убыванию: lft, -lft
pageНомер страницы, с 1
page-sizeЗаписей на странице, не больше 20
show[]Дополнительные вычисляемые данные (см. описание метода)
http
GET /company/product/category?show[0]=with-deleted

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].idintegerID
data[].company_idintegerКомпания
data[].lftinteger
data[].rgtinteger
data[].parent_idintegerРодитель
data[].nameobjectНазвание
data[].name.ozstring
data[].name.rustring
data[].name.uzstring
data[].created_atstringСоздано
data[].updated_atstringОбновлено
data[].is_deletedboolean
data[].textstringТекст
data[].stateobject
data[].state.disabledboolean
data[].state.hiddenboolean
data[].state.openedboolean
data[].ancestorsarray
data[].full_textstringПолный текст
json
{
    "data": [
        {
            "id": 2,
            "company_id": 1,
            "lft": 2,
            "rgt": 13,
            "parent_id": 1,
            "name": {
                "oz": "Category 1 oz",
                "ru": "Category 1 ru",
                "uz": "Category 1 uz"
            },
            "created_at": "2026-09-30 12:47:59",
            "updated_at": "2026-09-30 12:47:59",
            "is_deleted": false,
            "text": "Category 1 ru",
            "state": {
                "disabled": false,
                "hidden": false,
                "opened": true
            },
            "ancestors": [],
            "full_text": "Category 1 ru"
        },
        {
            "id": 3,
            "company_id": 1,
            "lft": 3,
            "rgt": 8,
            "parent_id": 2,
            "name": {
                "oz": "Category 1-1 oz",
                "ru": "Category 1-1 ru",
                "uz": "Category 1-1 uz"
            },
            "created_at": "2026-09-30 12:47:59",
            "updated_at": "2026-09-30 12:47:59",
            "is_deleted": false,
            "text": "Category 1-1 ru",
            "state": {
                "disabled": false,
                "hidden": false,
                "opened": true
            },
            "ancestors": [
                {
                    "id": 2,
                    "company_id": 1,
                    "lft": 2,
                    "rgt": 13,
                    "parent_id": 1,
                    "name": {
                        "oz": "Category 1 oz",
                        "ru": "Category 1 ru",
                        "uz": "Category 1 uz"
                    },
                    "created_at": "2026-09-30 12:47:59",
                    "updated_at": "2026-09-30 12:47:59",
                    "is_deleted": false,
                    "text": "Category 1 ru",
                    "state": {
                        "disabled": false,
                        "hidden": false,
                        "opened": true
                    }
                }
            ],
            "full_text": "Category 1 ru => Category 1-1 ru"
        }
    ],
    "links": {
        "first": "https://api.wasyt.uz/company/product/category?page=1",
        "last": "https://api.wasyt.uz/company/product/category?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/product/category",
        "per_page": 20,
        "to": 7,
        "total": 7
    }
}

Просмотр категории ​

GET/company/product/category/{model}

Возвращает категорию компании по ID.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры пути ​

ПараметрОписание
modelID записи

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
company_idintegerКомпания
lftinteger
rgtinteger
parent_idintegerРодитель
nameobjectНазвание
name.ozstring
name.rustring
name.uzstring
created_atstringСоздано
updated_atstringОбновлено
is_deletedboolean
textstringТекст
stateobject
state.disabledboolean
state.hiddenboolean
state.openedboolean
ancestorsarray
full_textstringПолный текст
json
{
    "id": 2,
    "company_id": 1,
    "lft": 2,
    "rgt": 13,
    "parent_id": 1,
    "name": {
        "oz": "Category 1 oz",
        "ru": "Category 1 ru",
        "uz": "Category 1 uz"
    },
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:47:59",
    "is_deleted": false,
    "text": "Category 1 ru",
    "state": {
        "disabled": false,
        "hidden": false,
        "opened": true
    },
    "ancestors": [],
    "full_text": "Category 1 ru"
}

Создать категорию ​

POST/company/product/category

Создаёт категорию с названием на трёх языках (ru, uz, oz), уникальным в компании. Если у компании ещё нет дерева, корень создаётся автоматически.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
name.{lang}stringДаНазвание. Макс. 255 символов. Уникальное значение в компании
json
{
    "name": {
        "ru": "Branch Category 2 ru",
        "uz": "Branch Category 2 uz",
        "oz": "Branch Category 2 oz"
    }
}
bash
curl -X POST "https://api.wasyt.uz/company/product/category" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"name":{"ru":"Branch Category 2 ru","uz":"Branch Category 2 uz","oz":"Branch Category 2 oz"}}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
nameobjectНазвание
name.rustring
name.uzstring
name.ozstring
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
parent_idintegerРодитель
lftinteger
rgtinteger
idintegerID
is_deletedboolean
json
{
    "name": {
        "ru": "Branch Category 2 ru",
        "uz": "Branch Category 2 uz",
        "oz": "Branch Category 2 oz"
    },
    "updated_at": "2026-09-30 12:52:17",
    "created_at": "2026-09-30 12:52:17",
    "company_id": 2,
    "parent_id": 9,
    "lft": 4,
    "rgt": 5,
    "id": 19,
    "is_deleted": false
}

Изменить категорию ​

PUT/company/product/category/{model}

Меняет локализованное название категории; положение в дереве меняется через перемещение категории.

Из формы (multipart/form-data) метод PUT отправляется как POST с параметром ?_method=PUT.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры пути ​

ПараметрОписание
modelID записи

Тело запроса ​

ПолеТипОбязательноОписание
name.{lang}stringДаНазвание. Макс. 255 символов. Уникальное значение в компании
json
{
    "name": {
        "ru": "Category 1 ru",
        "uz": "Category 1 uz",
        "oz": "Category 1 oz"
    }
}
bash
curl -X PUT "https://api.wasyt.uz/company/product/category/2" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"name":{"ru":"Category 1 ru","uz":"Category 1 uz","oz":"Category 1 oz"}}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
company_idintegerКомпания
lftinteger
rgtinteger
parent_idintegerРодитель
nameobjectНазвание
name.rustring
name.uzstring
name.ozstring
created_atstringСоздано
updated_atstringОбновлено
is_deletedboolean
textstringТекст
stateobject
state.disabledboolean
state.hiddenboolean
state.openedboolean
json
{
    "id": 2,
    "company_id": 1,
    "lft": 2,
    "rgt": 13,
    "parent_id": 1,
    "name": {
        "ru": "Category 1 ru",
        "uz": "Category 1 uz",
        "oz": "Category 1 oz"
    },
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:52:21",
    "is_deleted": false,
    "text": "Category 1 ru",
    "state": {
        "disabled": false,
        "hidden": false,
        "opened": true
    }
}

Удалить категорию ​

DELETE/company/product/category/{model}

Мягко удаляет категорию; её можно восстановить.

Из формы (multipart/form-data) метод DELETE отправляется как POST с параметром ?_method=DELETE.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры пути ​

ПараметрОписание
modelID записи

Ответ · 200 ​

Поля ответа
ПолеТипОписание
messagestringСообщение
json
{
    "message": "Success"
}

Восстановить категорию ​

DELETE/company/product/category/{value}/restore

Восстанавливает ранее удалённую категорию компании по ID.

Из формы (multipart/form-data) метод DELETE отправляется как POST с параметром ?_method=DELETE.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры пути ​

ПараметрОписание
valueID записи (в том числе удалённой)

Ответ · 200 ​

Поля ответа
ПолеТипОписание
messagestringСообщение
json
{
    "message": "Success"
}