Единицы измерения
Шаблоны единиц измерения товаров (без company_id). Каждая компания получает собственную копию каталога и управляет ею сама.
| Метод | Адрес | Назначение |
|---|---|---|
| GET | /admin/product/unit | Список единиц измерения |
| GET | /admin/product/unit/{model} | Карточка единицы измерения |
| POST | /admin/product/unit | Создать единицу измерения |
| PUT | /admin/product/unit/{model} | Изменить единицу измерения |
| DELETE | /admin/product/unit/{model} | Удалить единицу измерения |
| DELETE | /admin/product/unit/{value}/restore | Восстановить единицу измерения |
Список единиц измерения
/admin/product/unitПостраничный список шаблонов единиц измерения (только записи без company_id).
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Параметр | Описание |
|---|---|
filter[id] | ID — точное значение |
filter[name] | Название — поиск по части строки |
filter[accuracy] | Кол-во знаков после запятой — точное значение |
filter[created_at] | Создано — период: [0] — с, [1] — по (Y-m-d) |
sort[] | Сортировка, - — по убыванию: id, -id |
page | Номер страницы, с 1 |
page-size | Записей на странице, не больше 20 |
GET /admin/product/unit?sort[0]=id&sort[1]=-idОтвет · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].company_id | null | Компания |
data[].source_id | null | Источник |
data[].name | object | Название |
data[].name.oz | string | |
data[].name.ru | string | |
data[].name.uz | string | |
data[].accuracy | integer | Кол-во знаков после запятой |
data[].created_at | string | Создано |
data[].updated_at | string | Обновлено |
data[].is_deleted | boolean |
{
"data": [
{
"id": 3,
"company_id": null,
"source_id": null,
"name": {
"oz": "Unit 1 oz",
"ru": "Unit 1 ru",
"uz": "Unit 1 uz"
},
"accuracy": 4,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false
},
{
"id": 4,
"company_id": null,
"source_id": null,
"name": {
"oz": "Unit 2 oz",
"ru": "Unit 2 ru",
"uz": "Unit 2 uz"
},
"accuracy": 0,
"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/admin/product/unit?page=1",
"last": "https://api.wasyt.uz/admin/product/unit?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/admin/product/unit",
"per_page": 20,
"to": 2,
"total": 2
}
}Карточка единицы измерения
/admin/product/unit/{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 |
company_id | null | Компания |
source_id | null | Источник |
name | object | Название |
name.oz | string | |
name.ru | string | |
name.uz | string | |
accuracy | integer | Кол-во знаков после запятой |
created_at | string | Создано |
updated_at | string | Обновлено |
is_deleted | boolean |
{
"id": 3,
"company_id": null,
"source_id": null,
"name": {
"oz": "Unit 1 oz",
"ru": "Unit 1 ru",
"uz": "Unit 1 uz"
},
"accuracy": 4,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false
}Создать единицу измерения
/admin/product/unitСоздаёт шаблон с точностью accuracy (0–4 знака после запятой) и названием, уникальным среди шаблонов на каждом языке. Шаблон сразу копируется во все компании.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
accuracy | integer | Да | Кол-во знаков после запятой. Не меньше 0. Не больше 4 |
name.{lang} | string | Да | Название. Макс. 255 символов. Уникальное значение в компании |
{
"name": {
"ru": "Unit 3 ru",
"uz": "Unit 3 uz",
"oz": "Unit 3 oz"
},
"accuracy": 0
}curl -X POST "https://api.wasyt.uz/admin/product/unit" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name":{"ru":"Unit 3 ru","uz":"Unit 3 uz","oz":"Unit 3 oz"},"accuracy":0}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
accuracy | integer | Кол-во знаков после запятой |
name | object | Название |
name.ru | string | |
name.uz | string | |
name.oz | string | |
updated_at | string | Обновлено |
created_at | string | Создано |
company_id | null | Компания |
id | integer | ID |
is_deleted | boolean |
{
"accuracy": 0,
"name": {
"ru": "Unit 3 ru",
"uz": "Unit 3 uz",
"oz": "Unit 3 oz"
},
"updated_at": "2026-09-30 12:50:10",
"created_at": "2026-09-30 12:50:10",
"company_id": null,
"id": 18,
"is_deleted": false
}Изменить единицу измерения
/admin/product/unit/{model}Обновляет точность и название шаблона. Копии в компаниях не меняются.
Из формы (
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 записи |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
accuracy | integer | Да | Кол-во знаков после запятой. Не меньше 0. Не больше 4 |
name.{lang} | string | Да | Название. Макс. 255 символов. Уникальное значение в компании |
{
"name": {
"ru": "Unit 1 ru",
"uz": "Unit 1 uz",
"oz": "Unit 1 oz"
},
"accuracy": 0
}curl -X PUT "https://api.wasyt.uz/admin/product/unit/3" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name":{"ru":"Unit 1 ru","uz":"Unit 1 uz","oz":"Unit 1 oz"},"accuracy":0}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
company_id | null | Компания |
source_id | null | Источник |
name | object | Название |
name.ru | string | |
name.uz | string | |
name.oz | string | |
accuracy | integer | Кол-во знаков после запятой |
created_at | string | Создано |
updated_at | string | Обновлено |
is_deleted | boolean |
{
"id": 3,
"company_id": null,
"source_id": null,
"name": {
"ru": "Unit 1 ru",
"uz": "Unit 1 uz",
"oz": "Unit 1 oz"
},
"accuracy": 0,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:50:12",
"is_deleted": false
}Удалить единицу измерения
/admin/product/unit/{model}Мягко удаляет шаблон. Ошибка 400, если он закреплён хотя бы за одним товаром (включая удалённые).
Из формы (
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"
}Восстановить единицу измерения
/admin/product/unit/{value}/restoreВосстанавливает удалённый шаблон по ID {value}.
Из формы (
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"
}
