Tovar uchun bonus
Aniq tovarlarni sotgani uchun sotuvchiga beriladigan bonus qoidalari: har bir tovar uchun bonus foizi yoki qat’iy summasi belgilanadi.
| Metod | Manzil | Vazifasi |
|---|---|---|
| GET | /company/bonus/product-rule | Tovar uchun bonus qoidalari ro‘yxati |
| GET | /company/bonus/product-rule/{model} | Tovar uchun bonus qoidasi |
| POST | /company/bonus/product-rule | Tovar uchun bonus qoidasini yaratish |
| PUT | /company/bonus/product-rule/{model} | Tovar uchun bonus qoidasini tahrirlash |
| DELETE | /company/bonus/product-rule/{model} | Tovar uchun bonus qoidasini o‘chirish |
Tovar uchun bonus qoidalari ro‘yxati
/company/bonus/product-ruleMavjud kompaniyalar qoidalarining sahifalangan ro‘yxati; nom, faollik va sana bo‘yicha filtrlar, qoida tovarlari with[]=items.product orqali yuklanadi.
Sarlavhalar (headers)
| Sarlavha | Qiymat | Tavsif |
|---|---|---|
Authorization | Bearer {token} | POST /common/auth/login dan olingan token |
Accept | application/json | Javob JSON da |
Accept-Language | ru | Xabarlar va nomlar tili: ru, uz, oz |
So‘rov parametrlari
| Parametr | Tavsif |
|---|---|
filter[id] | ID — aniq qiymat |
filter[company_id] | Kompaniya — aniq qiymat |
filter[name] | Nomlanish — qator qismi bo‘yicha qidiruv |
filter[is_active] | Aktiv — aniq qiymat |
filter[created_at] | Yaratilgan — davr: [0] — dan, [1] — gacha (Y-m-d) |
sort[] | Saralash, - — kamayish bo‘yicha: id, -id, name, -name, created_at, -created_at |
with[] | Bog‘liq ma’lumotlarni qo‘shish: creator.profile, company, items.product.brand, items.product.unit, items.product.price |
page | Sahifa raqami, 1 dan |
page-size | Sahifadagi yozuvlar soni, ko‘pi bilan 20 |
GET /company/bonus/product-rule?with[0]=items.product.priceJavob · 200
Sahifalangan javob: yozuvlar data[] ichida, sahifalash links va meta da.
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
data | object[] | Ma'lumotlar |
data[].id | integer | ID |
data[].creator_id | integer | Yaratuvchi |
data[].updater_id | integer | Yangilovchi |
data[].company_id | integer | Kompaniya |
data[].name | string | Nomlanish |
data[].is_active | boolean | Aktiv |
data[].is_discounted_excluded | boolean | Chegirmali savdoda hisoblanmaydi |
data[].is_return_deducted | boolean | Qaytarish bonusdan ayiriladi |
data[].items_count | integer | |
data[].created_at | string | Yaratilgan |
data[].updated_at | string | Yangilangan |
data[].items | object[] | Tarkib |
data[].items[].id | integer | ID |
data[].items[].company_id | integer | Kompaniya |
data[].items[].rule_id | integer | |
data[].items[].product_id | integer | Mahsulot |
data[].items[].percent | integer | Foiz |
data[].items[].amount | null | Summa |
data[].items[].created_at | string | Yaratilgan |
data[].items[].updated_at | string | Yangilangan |
data[].items[].product | object | |
data[].items[].product.id | integer | ID |
data[].items[].product.parent_id | null | Ota-ona |
data[].items[].product.creator_id | integer | Yaratuvchi |
data[].items[].product.company_id | integer | Kompaniya |
data[].items[].product.category_id | integer | Kategoriya |
data[].items[].product.brand_id | integer | Brend |
data[].items[].product.unit_id | integer | O'lchov birligi |
data[].items[].product.name | string | Nomlanish |
data[].items[].product.full_text | string | To'liq matn |
data[].items[].product.plu | string | Artikul (PLU) |
data[].items[].product.description | string | Tavsif |
data[].items[].product.is_free_price | boolean | Erkin narxda sotish |
data[].items[].product.is_favorite | boolean | |
data[].items[].product.min_quantity | null | |
data[].items[].product.barcode | string | Shtrix kod |
data[].items[].product.images_list | array | Tasvirlar |
data[].items[].product.images_list_thumbs | object[] | |
data[].items[].product.images_list_thumbs[].widen_100 | object | |
data[].items[].product.images_list_thumbs[].widen_500 | object | |
data[].items[].product.images_list_thumbs[].original | object | |
data[].items[].product.created_at | string | Yaratilgan |
data[].items[].product.updated_at | string | Yangilangan |
data[].items[].product.is_deleted | boolean | |
data[].items[].product.price | object | Narxi |
data[].items[].product.price.id | integer | ID |
data[].items[].product.price.updater_id | integer | Yangilovchi |
data[].items[].product.price.company_id | integer | Kompaniya |
data[].items[].product.price.product_id | integer | Mahsulot |
data[].items[].product.price.source_type | string | Manba |
data[].items[].product.price.source_id | integer | Manba |
data[].items[].product.price.price | integer | Narxi |
data[].items[].product.price.currency | string | Valyuta |
data[].items[].product.price.min_price | null | |
data[].items[].product.price.min_price_percent | null | |
data[].items[].product.price.created_at | string | Yaratilgan |
data[].items[].product.price.updated_at | string | Yangilangan |
data[].items[].product.price.effective_min_price | integer | |
data[].items[].product.price.price_uzs | integer | |
data[].items[].product.price.effective_min_price_uzs | integer | |
data[].items[].product.price.price_usd | number | |
data[].items[].product.price.effective_min_price_usd | integer | |
data[].items[].product.price.price_eur | number | |
data[].items[].product.price.effective_min_price_eur | integer | |
data[].items[].product.price.price_rub | number | |
data[].items[].product.price.effective_min_price_rub | integer |
{
"data": [
{
"id": 4,
"creator_id": 2,
"updater_id": 2,
"company_id": 1,
"name": "Rule",
"is_active": true,
"is_discounted_excluded": false,
"is_return_deducted": false,
"items_count": 1,
"created_at": "2026-09-30 12:51:06",
"updated_at": "2026-09-30 12:51:06",
"items": [
{
"id": 6,
"company_id": 1,
"rule_id": 4,
"product_id": 1,
"percent": 5,
"amount": null,
"created_at": "2026-09-30 12:51:06",
"updated_at": "2026-09-30 12:51:06",
"product": {
"id": 1,
"parent_id": null,
"creator_id": 1,
"company_id": 1,
"category_id": 4,
"brand_id": 1,
"unit_id": 1,
"name": "Product 1",
"full_text": "Product 1",
"plu": "0001",
"description": "Description 1",
"is_free_price": false,
"is_favorite": false,
"min_quantity": null,
"barcode": "0000000000001",
"images_list": [
"https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
],
"images_list_thumbs": [
{
"widen_100": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"widen_500": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
}
},
{
"widen_100": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
},
"widen_500": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
}
}
],
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:51:06",
"is_deleted": false,
"price": {
"id": 1,
"updater_id": 2,
"company_id": 1,
"product_id": 1,
"source_type": "purchase",
"source_id": 1,
"price": 1100,
"currency": "uzs",
"min_price": null,
"min_price_percent": null,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"effective_min_price": 0,
"price_uzs": 1100,
"effective_min_price_uzs": 0,
"price_usd": 1.1,
"effective_min_price_usd": 0,
"price_eur": 1.1,
"effective_min_price_eur": 0,
"price_rub": 1.1,
"effective_min_price_rub": 0
}
}
}
]
}
],
"links": {
"first": "https://api.wasyt.uz/company/bonus/product-rule?page=1",
"last": "https://api.wasyt.uz/company/bonus/product-rule?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/bonus/product-rule",
"per_page": 20,
"to": 1,
"total": 1
}
}Tovar uchun bonus qoidasi
/company/bonus/product-rule/{model}ID bo‘yicha bitta qoida so‘ralgan bog‘lanishlar bilan.
Sarlavhalar (headers)
| Sarlavha | Qiymat | Tavsif |
|---|---|---|
Authorization | Bearer {token} | POST /common/auth/login dan olingan token |
Accept | application/json | Javob JSON da |
Accept-Language | ru | Xabarlar va nomlar tili: ru, uz, oz |
Yo‘l parametrlari
| Parametr | Tavsif |
|---|---|
model | Yozuv ID si |
Javob
Javob misoli hali testlar tomonidan yozib olinmagan.
Tovar uchun bonus qoidasini yaratish
/company/bonus/product-ruleTovarlar ro‘yxati bilan qoida yaratadi; har bir tovar uchun bonus foizi yoki summasi ko‘rsatilishi shart, lekin ikkalasi birga emas. Tovarlar kompaniyalar oilasi katalogidan olinadi. Bayroqlar: is_active (standart true), is_discounted_excluded — chegirmali tovarlar uchun hisoblamaslik, is_return_deducted — qaytarishda bonusni ayirish.
Sarlavhalar (headers)
| Sarlavha | Qiymat | Tavsif |
|---|---|---|
Authorization | Bearer {token} | POST /common/auth/login dan olingan token |
Accept | application/json | Javob JSON da |
Accept-Language | ru | Xabarlar va nomlar tili: ru, uz, oz |
So‘rov tanasi
| Maydon | Turi | Majburiy | Tavsif |
|---|---|---|---|
company_id | integer | Ha | Kompaniya. Foydalanuvchiga ochiq mavjud yozuv ID si |
name | string | Ha | Nomlanish. Maks. 255 belgi |
is_active | boolean | Yo‘q | Aktiv |
is_discounted_excluded | boolean | Yo‘q | Chegirmali savdoda hisoblanmaydi |
is_return_deducted | boolean | Yo‘q | Qaytarish bonusdan ayiriladi |
items | object[] | Ha | Tarkib. Kamida 1 ta element. Maks. 1000 ta element |
items[].product_id | integer | Ha | Mahsulot. Takrorlanmasin |
items[].percent | number | Yo‘q | Bonus %. Verguldan keyin 2 tagacha raqam. 0 dan katta. 100 dan oshmasin |
items[].amount | number | Yo‘q | FSM bonus. Verguldan keyin 2 tagacha raqam. Kamida 0.01. 999999999999.99 dan oshmasin. 0 dan katta |
{
"company_id": 1,
"name": "Сентябрь — бонус за телевизоры",
"is_discounted_excluded": 1,
"is_return_deducted": 1,
"items": [
{
"product_id": 1,
"percent": 5
},
{
"product_id": 2,
"amount": 500
}
]
}curl -X POST "https://api.wasyt.uz/company/bonus/product-rule" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"company_id":1,"name":"Сентябрь — бонус за телевизоры","is_discounted_excluded":1,"is_return_deducted":1,"items":[{"product_id":1,"percent":5},{"product_id":2,"amount":500}]}'Javob · 200
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
company_id | integer | Kompaniya |
name | string | Nomlanish |
is_discounted_excluded | boolean | Chegirmali savdoda hisoblanmaydi |
is_return_deducted | boolean | Qaytarish bonusdan ayiriladi |
is_active | boolean | Aktiv |
updated_at | string | Yangilangan |
created_at | string | Yaratilgan |
updater_id | integer | Yangilovchi |
creator_id | integer | Yaratuvchi |
id | integer | ID |
items_count | integer |
{
"company_id": 1,
"name": "Сентябрь — бонус за телевизоры",
"is_discounted_excluded": true,
"is_return_deducted": true,
"is_active": true,
"updated_at": "2026-09-30 12:51:05",
"created_at": "2026-09-30 12:51:05",
"updater_id": 2,
"creator_id": 2,
"id": 1,
"items_count": 2
}Xato misoli · 422
{
"message": "Укажите либо процент бонуса, либо фиксированную сумму",
"errors": {
"items.0.percent": [
"Укажите либо процент бонуса, либо фиксированную сумму"
]
}
}Tovar uchun bonus qoidasini tahrirlash
/company/bonus/product-rule/{model}Qoidani yangilaydi va uning tovarlar ro‘yxatini yuborilgan items bilan to‘liq almashtiradi. Boshqa company_id yuborilsa ham qoidaning kompaniyasi o‘zgarmaydi.
Formadan (
multipart/form-data)PUTmetodiPOST+?_method=PUTparametri bilan yuboriladi.
Sarlavhalar (headers)
| Sarlavha | Qiymat | Tavsif |
|---|---|---|
Authorization | Bearer {token} | POST /common/auth/login dan olingan token |
Accept | application/json | Javob JSON da |
Accept-Language | ru | Xabarlar va nomlar tili: ru, uz, oz |
Yo‘l parametrlari
| Parametr | Tavsif |
|---|---|
model | Yozuv ID si |
So‘rov tanasi
| Maydon | Turi | Majburiy | Tavsif |
|---|---|---|---|
company_id | integer | Ha | Kompaniya. Foydalanuvchiga ochiq mavjud yozuv ID si |
name | string | Ha | Nomlanish. Maks. 255 belgi |
is_active | boolean | Yo‘q | Aktiv |
is_discounted_excluded | boolean | Yo‘q | Chegirmali savdoda hisoblanmaydi |
is_return_deducted | boolean | Yo‘q | Qaytarish bonusdan ayiriladi |
items | object[] | Ha | Tarkib. Kamida 1 ta element. Maks. 1000 ta element |
items[].product_id | integer | Ha | Mahsulot. Takrorlanmasin |
items[].percent | number | Yo‘q | Bonus %. Verguldan keyin 2 tagacha raqam. 0 dan katta. 100 dan oshmasin |
items[].amount | number | Yo‘q | FSM bonus. Verguldan keyin 2 tagacha raqam. Kamida 0.01. 999999999999.99 dan oshmasin. 0 dan katta |
{
"company_id": 1,
"name": "Сентябрь — бонус за телевизоры",
"is_discounted_excluded": 1,
"is_return_deducted": 1,
"items": [
{
"product_id": 2,
"amount": 700
}
]
}curl -X PUT "https://api.wasyt.uz/company/bonus/product-rule/3" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"company_id":1,"name":"Сентябрь — бонус за телевизоры","is_discounted_excluded":1,"is_return_deducted":1,"items":[{"product_id":2,"amount":700}]}'Javob · 200
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
id | integer | ID |
creator_id | integer | Yaratuvchi |
updater_id | integer | Yangilovchi |
company_id | integer | Kompaniya |
name | string | Nomlanish |
is_active | boolean | Aktiv |
is_discounted_excluded | boolean | Chegirmali savdoda hisoblanmaydi |
is_return_deducted | boolean | Qaytarish bonusdan ayiriladi |
items_count | integer | |
created_at | string | Yaratilgan |
updated_at | string | Yangilangan |
{
"id": 3,
"creator_id": 2,
"updater_id": 2,
"company_id": 1,
"name": "Сентябрь — бонус за телевизоры",
"is_active": true,
"is_discounted_excluded": true,
"is_return_deducted": true,
"items_count": 1,
"created_at": "2026-09-30 12:51:05",
"updated_at": "2026-09-30 12:51:06"
}Tovar uchun bonus qoidasini o‘chirish
/company/bonus/product-rule/{model}Qoidani uning tovarlari bilan birga o‘chiradi.
Formadan (
multipart/form-data)DELETEmetodiPOST+?_method=DELETEparametri bilan yuboriladi.
Sarlavhalar (headers)
| Sarlavha | Qiymat | Tavsif |
|---|---|---|
Authorization | Bearer {token} | POST /common/auth/login dan olingan token |
Accept | application/json | Javob JSON da |
Accept-Language | ru | Xabarlar va nomlar tili: ru, uz, oz |
Yo‘l parametrlari
| Parametr | Tavsif |
|---|---|
model | Yozuv ID si |
Javob · 200
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
message | string | Xabar |
{
"message": "Success"
}
