Товары продаж
Строки чеков: проданные товары, услуги и компоненты комплектов с ценой, скидкой, проданным и возвращённым количеством.
| Метод | Адрес | Назначение |
|---|---|---|
| GET | /company/trade/sale-product | Список товаров продаж |
| GET | /company/trade/sale-product/{model} | Строка продажи |
Список товаров продаж
GET
/company/trade/sale-productСтроки чеков с пагинацией и фильтрами; с format=excel — выгрузка в Excel.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
format | string | Нет | Формат ответа: excel — скачать список файлом Excel вместо JSON (учитывает те же фильтры) |
filter[id] | — | Нет | ID — точное значение |
filter[company_id] | — | Нет | Компания — одно значение или список filter[company_id][] |
filter[sale_id] | — | Нет | Продажа — точное значение |
filter[product_id] | — | Нет | Продукт — точное значение |
filter[service_id] | — | Нет | точное значение |
filter[bundle_id] | — | Нет | Комплект — точное значение |
filter[last_returned_at] | — | Нет | период: [0] — с, [1] — по (Y-m-d) |
filter[returned_quantity] | — | Нет | Возвращённое кол-во — диапазон: [0] — от, [1] — до |
filter[created_at] | — | Нет | Создано — период: [0] — с, [1] — по (Y-m-d) |
filter[product.category_id] | — | Нет | Категория — точное значение (с учётом вложенных) |
filter[product.brand_id] | — | Нет | Бренд — точное значение |
filter[product.unit_id] | — | Нет | Единица измерения — точное значение |
filter[sale.currency] | — | Нет | Валюта — точное значение |
sort[] | — | Нет | Сортировка, - — по убыванию: id, -id |
with[] | — | Нет | Подгрузить связи: company, sale, sale.creator.profile, product, product.parent, product.category.ancestors, product.brand, product.unit, service, service.category.ancestors, service.service_unit, bundle |
page | — | Нет | Номер страницы, с 1 |
page-size | — | Нет | Записей на странице, не больше 20 |
Ответ · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].company_id | integer | Компания |
data[].sale_id | integer | Продажа |
data[].product_id | integer | Продукт |
data[].service_id | null | |
data[].bundle_id | null | Комплект |
data[].bundle_key | null | |
data[].purchase_price | integer | Цена при покупке |
data[].price | integer | Цена |
data[].discount | integer | Скидка |
data[].sold_quantity | integer | Кол-во в продаже |
data[].returned_quantity | integer | Возвращённое кол-во |
data[].returned_data | array | |
data[].last_returned_at | null | |
data[].stock_product_source_data | object | |
data[].stock_product_source_data.source_type | string | Источник |
data[].stock_product_source_data.source_id | integer | Источник |
data[].stock_product_source_data.source_product_id | integer | |
data[].stock_product_source_data.quantity | integer | Количество |
data[].stock_product_source_data.purchase_price | integer | Цена при покупке |
data[].stock_product_source_data.purchase_currency | string | Валюта при покупке |
data[].stock_product_source_data.created_at | string | Создано |
data[].created_at | string | Создано |
data[].updated_at | string | Обновлено |
data[].cashier_name | string |
json
{
"data": [
{
"id": 1,
"company_id": 1,
"sale_id": 1,
"product_id": 1,
"service_id": null,
"bundle_id": null,
"bundle_key": null,
"purchase_price": 100,
"price": 1000,
"discount": 100,
"sold_quantity": 1,
"returned_quantity": 0,
"returned_data": [],
"last_returned_at": null,
"stock_product_source_data": {
"source_type": "purchase",
"source_id": 1,
"source_product_id": 1,
"quantity": 1,
"purchase_price": 1000,
"purchase_currency": "uzs",
"created_at": "2026-09-30 12:47:59"
},
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"cashier_name": "director_1@local.host"
},
{
"id": 2,
"company_id": 1,
"sale_id": 1,
"product_id": 2,
"service_id": null,
"bundle_id": null,
"bundle_key": null,
"purchase_price": 200,
"price": 2000,
"discount": 0,
"sold_quantity": 2,
"returned_quantity": 0,
"returned_data": [],
"last_returned_at": null,
"stock_product_source_data": {
"source_type": "purchase",
"source_id": 1,
"source_product_id": 2,
"quantity": 2,
"purchase_price": 2000,
"purchase_currency": "usd",
"created_at": "2026-09-30 12:47:59"
},
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"cashier_name": "director_1@local.host"
}
],
"links": {
"first": "https://api.wasyt.uz/company/trade/sale-product?page=1",
"last": "https://api.wasyt.uz/company/trade/sale-product?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/trade/sale-product",
"per_page": 20,
"to": 2,
"total": 2
}
}Строка продажи
GET
/company/trade/sale-product/{model}Одна строка чека: товар, услуга или компонент комплекта с ценой, скидкой, проданным и возвращённым количеством.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
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 | integer | Компания |
sale_id | integer | Продажа |
product_id | integer | Продукт |
service_id | null | |
bundle_id | null | Комплект |
bundle_key | null | |
purchase_price | integer | Цена при покупке |
price | integer | Цена |
discount | integer | Скидка |
sold_quantity | integer | Кол-во в продаже |
returned_quantity | integer | Возвращённое кол-во |
returned_data | array | |
last_returned_at | null | |
stock_product_source_data | object | |
stock_product_source_data.source_type | string | Источник |
stock_product_source_data.source_id | integer | Источник |
stock_product_source_data.source_product_id | integer | |
stock_product_source_data.quantity | integer | Количество |
stock_product_source_data.purchase_price | integer | Цена при покупке |
stock_product_source_data.purchase_currency | string | Валюта при покупке |
stock_product_source_data.created_at | string | Создано |
created_at | string | Создано |
updated_at | string | Обновлено |
cashier_name | string |
json
{
"id": 1,
"company_id": 1,
"sale_id": 1,
"product_id": 1,
"service_id": null,
"bundle_id": null,
"bundle_key": null,
"purchase_price": 100,
"price": 1000,
"discount": 100,
"sold_quantity": 1,
"returned_quantity": 0,
"returned_data": [],
"last_returned_at": null,
"stock_product_source_data": {
"source_type": "purchase",
"source_id": 1,
"source_product_id": 1,
"quantity": 1,
"purchase_price": 1000,
"purchase_currency": "uzs",
"created_at": "2026-09-30 12:47:59"
},
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"cashier_name": "director_1@local.host"
}
