Бренды
Справочник брендов товаров, общий для компании и её филиалов. Бренд обязателен в карточке основного товара.
| Метод | Адрес | Назначение |
|---|---|---|
| GET | /company/product/brand/download-example | Скачать шаблон импорта |
| POST | /company/product/brand/import | Импорт брендов из Excel |
| GET | /company/product/brand | Список брендов |
| GET | /company/product/brand/{model} | Просмотр бренда |
| POST | /company/product/brand | Создать бренд |
| PUT | /company/product/brand/{model} | Изменить бренд |
| DELETE | /company/product/brand/{model} | Удалить бренд |
| DELETE | /company/product/brand/{value}/restore | Восстановить бренд |
Скачать шаблон импорта
/company/product/brand/download-exampleОтдаёт файл-образец .xlsx для импорта брендов: названия брендов в столбце A, первая строка — заголовок.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Ответ · 200
Ответ — файл или текст, не JSON.
Импорт брендов из Excel
/company/product/brand/importСоздаёт бренды из файла .xlsx (только столбец A, до 500 строк, до 1 МБ). Пустые строки и повторы в файле пропускаются, уже существующие бренды (без учёта регистра) не дублируются, а удалённый бренд компании с тем же названием восстанавливается.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
file | file | Да | Файл. Форматы: xlsx. Макс. 1024 КБ |
{}curl -X POST "https://api.wasyt.uz/company/product/brand/import" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '[]'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение |
{
"message": "Success"
}Пример ошибки · 422
{
"message": "Неверно заполненный файл",
"errors": {
"file": [
"Неверно заполненный файл"
]
}
}Список брендов
/company/product/brandБренды компании и её филиалов с пагинацией. Фильтры: name (поиск по подстроке), company_id, creator_id, created_at.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Параметр | Описание |
|---|---|
filter[id] | ID — точное значение |
filter[creator_id] | Создатель — точное значение |
filter[company_id] | Компания — точное значение |
filter[name] | Название — поиск по части строки |
filter[created_at] | Создано — период: [0] — с, [1] — по (Y-m-d) |
sort[] | Сортировка, - — по убыванию: id, -id |
with[] | Подгрузить связи: creator.profile, company |
page | Номер страницы, с 1 |
page-size | Записей на странице, не больше 20 |
GET /company/product/brand?sort[0]=id&sort[1]=-idОтвет · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].creator_id | integer | Создатель |
data[].company_id | integer | Компания |
data[].name | string | Название |
data[].image | string | Изображение |
data[].image_thumbs | array | |
data[].created_at | string | Создано |
data[].updated_at | string | Обновлено |
data[].is_deleted | boolean |
{
"data": [
{
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Brand 1",
"image": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"image_thumbs": [],
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false
},
{
"id": 2,
"creator_id": 2,
"company_id": 1,
"name": "Brand 2",
"image": null,
"image_thumbs": [],
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false
}
],
"links": {
"first": "https://api.wasyt.uz/company/product/brand?page=1",
"last": "https://api.wasyt.uz/company/product/brand?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/product/brand",
"per_page": 20,
"to": 2,
"total": 2
}
}Просмотр бренда
/company/product/brand/{model}Возвращает бренд по ID с автором и компанией.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
creator_id | integer | Создатель |
company_id | integer | Компания |
name | string | Название |
image | string | Изображение |
image_thumbs | array | |
created_at | string | Создано |
updated_at | string | Обновлено |
is_deleted | boolean |
{
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Brand 1",
"image": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"image_thumbs": [],
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false
}Создать бренд
/company/product/brandСоздаёт бренд с уникальным названием и необязательным изображением.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name | string | Да | Название. Макс. 255 символов. Уникальное значение в компании |
image | file | Нет | Изображение. Форматы: jpg, png. Макс. 2048 КБ. Размеры изображения: max_width=3840, max_height=2160 |
image_old_keys | string (JSON) | Да | Изображение |
{
"name": "Brand 3",
"image_old_keys": "[]"
}curl -X POST "https://api.wasyt.uz/company/product/brand" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name":"Brand 3","image_old_keys":"[]"}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
name | string | Название |
image | string | Изображение |
image_thumbs | array | |
updated_at | string | Обновлено |
created_at | string | Создано |
creator_id | integer | Создатель |
company_id | integer | Компания |
id | integer | ID |
is_deleted | boolean |
{
"name": "Brand 3",
"image": "https://api-minio.icangroup.uz/wasyt/images/product_brand/2026/09/30/6abcbfa8d8d99_11ebd607-a0a2-424e-8802-a03156feb2e9.png",
"image_thumbs": [],
"updated_at": "2026-09-30 12:52:09",
"created_at": "2026-09-30 12:52:09",
"creator_id": 2,
"company_id": 1,
"id": 9,
"is_deleted": false
}Изменить бренд
/company/product/brand/{model}Меняет название и изображение бренда; название должно оставаться уникальным. Чтобы удалить прежнее изображение, передайте его ключ в image_old_keys.
Из формы (
multipart/form-data) методPUTотправляется какPOSTс параметром?_method=PUT.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name | string | Да | Название. Макс. 255 символов. Уникальное значение в компании |
image | file | Нет | Изображение. Форматы: jpg, png. Макс. 2048 КБ. Размеры изображения: max_width=3840, max_height=2160 |
image_old_keys | string (JSON) | Да | Изображение |
{
"name": "Brand 1",
"image_old_keys": "[0]"
}curl -X PUT "https://api.wasyt.uz/company/product/brand/1" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name":"Brand 1","image_old_keys":"[0]"}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
creator_id | integer | Создатель |
company_id | integer | Компания |
name | string | Название |
image | string | Изображение |
image_thumbs | array | |
created_at | string | Создано |
updated_at | string | Обновлено |
is_deleted | boolean |
{
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Brand 1",
"image": "https://api-minio.icangroup.uz/wasyt/images/product_brand/2026/09/30/6abcbfac9be26_6ff92fab-97d2-4d97-81ad-23e2a80146c4.png",
"image_thumbs": [],
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:52:12",
"is_deleted": false
}Удалить бренд
/company/product/brand/{model}Мягко удаляет бренд; его можно восстановить.
Из формы (
multipart/form-data) методDELETEотправляется какPOSTс параметром?_method=DELETE.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение |
{
"message": "Success"
}Восстановить бренд
/company/product/brand/{value}/restoreВосстанавливает ранее удалённый бренд по ID; для неудалённой записи возвращает 404.
Из формы (
multipart/form-data) методDELETEотправляется какPOSTс параметром?_method=DELETE.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
value | ID записи (в том числе удалённой) |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение |
{
"message": "Success"
}
