Skip to content

Tovar uchun bonus ​

Aniq tovarlarni sotgani uchun sotuvchiga beriladigan bonus qoidalari: har bir tovar uchun bonus foizi yoki qat’iy summasi belgilanadi.

MetodManzilVazifasi
GET/company/bonus/product-ruleTovar uchun bonus qoidalari ro‘yxati
GET/company/bonus/product-rule/{model}Tovar uchun bonus qoidasi
POST/company/bonus/product-ruleTovar 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 ​

GET/company/bonus/product-rule

Mavjud kompaniyalar qoidalarining sahifalangan ro‘yxati; nom, faollik va sana bo‘yicha filtrlar, qoida tovarlari with[]=items.product orqali yuklanadi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov parametrlari ​

ParametrTavsif
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
pageSahifa raqami, 1 dan
page-sizeSahifadagi yozuvlar soni, ko‘pi bilan 20
http
GET /company/bonus/product-rule?with[0]=items.product.price

Javob · 200 ​

Sahifalangan javob: yozuvlar data[] ichida, sahifalash links va meta da.

Javob maydonlari
MaydonTuriTavsif
dataobject[]Ma'lumotlar
data[].idintegerID
data[].creator_idintegerYaratuvchi
data[].updater_idintegerYangilovchi
data[].company_idintegerKompaniya
data[].namestringNomlanish
data[].is_activebooleanAktiv
data[].is_discounted_excludedbooleanChegirmali savdoda hisoblanmaydi
data[].is_return_deductedbooleanQaytarish bonusdan ayiriladi
data[].items_countinteger
data[].created_atstringYaratilgan
data[].updated_atstringYangilangan
data[].itemsobject[]Tarkib
data[].items[].idintegerID
data[].items[].company_idintegerKompaniya
data[].items[].rule_idinteger
data[].items[].product_idintegerMahsulot
data[].items[].percentintegerFoiz
data[].items[].amountnullSumma
data[].items[].created_atstringYaratilgan
data[].items[].updated_atstringYangilangan
data[].items[].productobject
data[].items[].product.idintegerID
data[].items[].product.parent_idnullOta-ona
data[].items[].product.creator_idintegerYaratuvchi
data[].items[].product.company_idintegerKompaniya
data[].items[].product.category_idintegerKategoriya
data[].items[].product.brand_idintegerBrend
data[].items[].product.unit_idintegerO'lchov birligi
data[].items[].product.namestringNomlanish
data[].items[].product.full_textstringTo'liq matn
data[].items[].product.plustringArtikul (PLU)
data[].items[].product.descriptionstringTavsif
data[].items[].product.is_free_pricebooleanErkin narxda sotish
data[].items[].product.is_favoriteboolean
data[].items[].product.min_quantitynull
data[].items[].product.barcodestringShtrix kod
data[].items[].product.images_listarrayTasvirlar
data[].items[].product.images_list_thumbsobject[]
data[].items[].product.images_list_thumbs[].widen_100object
data[].items[].product.images_list_thumbs[].widen_500object
data[].items[].product.images_list_thumbs[].originalobject
data[].items[].product.created_atstringYaratilgan
data[].items[].product.updated_atstringYangilangan
data[].items[].product.is_deletedboolean
data[].items[].product.priceobjectNarxi
data[].items[].product.price.idintegerID
data[].items[].product.price.updater_idintegerYangilovchi
data[].items[].product.price.company_idintegerKompaniya
data[].items[].product.price.product_idintegerMahsulot
data[].items[].product.price.source_typestringManba
data[].items[].product.price.source_idintegerManba
data[].items[].product.price.priceintegerNarxi
data[].items[].product.price.currencystringValyuta
data[].items[].product.price.min_pricenull
data[].items[].product.price.min_price_percentnull
data[].items[].product.price.created_atstringYaratilgan
data[].items[].product.price.updated_atstringYangilangan
data[].items[].product.price.effective_min_priceinteger
data[].items[].product.price.price_uzsinteger
data[].items[].product.price.effective_min_price_uzsinteger
data[].items[].product.price.price_usdnumber
data[].items[].product.price.effective_min_price_usdinteger
data[].items[].product.price.price_eurnumber
data[].items[].product.price.effective_min_price_eurinteger
data[].items[].product.price.price_rubnumber
data[].items[].product.price.effective_min_price_rubinteger
json
{
    "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 ​

GET/company/bonus/product-rule/{model}

ID bo‘yicha bitta qoida so‘ralgan bog‘lanishlar bilan.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

Javob ​

Javob misoli hali testlar tomonidan yozib olinmagan.

Tovar uchun bonus qoidasini yaratish ​

POST/company/bonus/product-rule

Tovarlar 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) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
company_idintegerHaKompaniya. Foydalanuvchiga ochiq mavjud yozuv ID si
namestringHaNomlanish. Maks. 255 belgi
is_activebooleanYo‘qAktiv
is_discounted_excludedbooleanYo‘qChegirmali savdoda hisoblanmaydi
is_return_deductedbooleanYo‘qQaytarish bonusdan ayiriladi
itemsobject[]HaTarkib. Kamida 1 ta element. Maks. 1000 ta element
items[].product_idintegerHaMahsulot. Takrorlanmasin
items[].percentnumberYo‘qBonus %. Verguldan keyin 2 tagacha raqam. 0 dan katta. 100 dan oshmasin
items[].amountnumberYo‘qFSM bonus. Verguldan keyin 2 tagacha raqam. Kamida 0.01. 999999999999.99 dan oshmasin. 0 dan katta
json
{
    "company_id": 1,
    "name": "Сентябрь — бонус за телевизоры",
    "is_discounted_excluded": 1,
    "is_return_deducted": 1,
    "items": [
        {
            "product_id": 1,
            "percent": 5
        },
        {
            "product_id": 2,
            "amount": 500
        }
    ]
}
bash
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
MaydonTuriTavsif
company_idintegerKompaniya
namestringNomlanish
is_discounted_excludedbooleanChegirmali savdoda hisoblanmaydi
is_return_deductedbooleanQaytarish bonusdan ayiriladi
is_activebooleanAktiv
updated_atstringYangilangan
created_atstringYaratilgan
updater_idintegerYangilovchi
creator_idintegerYaratuvchi
idintegerID
items_countinteger
json
{
    "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 ​

json
{
    "message": "Укажите либо процент бонуса, либо фиксированную сумму",
    "errors": {
        "items.0.percent": [
            "Укажите либо процент бонуса, либо фиксированную сумму"
        ]
    }
}

Tovar uchun bonus qoidasini tahrirlash ​

PUT/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) PUT metodi POST + ?_method=PUT parametri bilan yuboriladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
company_idintegerHaKompaniya. Foydalanuvchiga ochiq mavjud yozuv ID si
namestringHaNomlanish. Maks. 255 belgi
is_activebooleanYo‘qAktiv
is_discounted_excludedbooleanYo‘qChegirmali savdoda hisoblanmaydi
is_return_deductedbooleanYo‘qQaytarish bonusdan ayiriladi
itemsobject[]HaTarkib. Kamida 1 ta element. Maks. 1000 ta element
items[].product_idintegerHaMahsulot. Takrorlanmasin
items[].percentnumberYo‘qBonus %. Verguldan keyin 2 tagacha raqam. 0 dan katta. 100 dan oshmasin
items[].amountnumberYo‘qFSM bonus. Verguldan keyin 2 tagacha raqam. Kamida 0.01. 999999999999.99 dan oshmasin. 0 dan katta
json
{
    "company_id": 1,
    "name": "Сентябрь — бонус за телевизоры",
    "is_discounted_excluded": 1,
    "is_return_deducted": 1,
    "items": [
        {
            "product_id": 2,
            "amount": 700
        }
    ]
}
bash
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
MaydonTuriTavsif
idintegerID
creator_idintegerYaratuvchi
updater_idintegerYangilovchi
company_idintegerKompaniya
namestringNomlanish
is_activebooleanAktiv
is_discounted_excludedbooleanChegirmali savdoda hisoblanmaydi
is_return_deductedbooleanQaytarish bonusdan ayiriladi
items_countinteger
created_atstringYaratilgan
updated_atstringYangilangan
json
{
    "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 ​

DELETE/company/bonus/product-rule/{model}

Qoidani uning tovarlari bilan birga o‘chiradi.

Formadan (multipart/form-data) DELETE metodi POST + ?_method=DELETE parametri bilan yuboriladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
messagestringXabar
json
{
    "message": "Success"
}