Narx yorliqlari
Kompaniyaning narx yorlig‘i shablonlari («Bosma shakllar»): o‘lcham va maket elementlari. Tizim yorlig‘i (is_default) avtomatik yaratiladi va o‘chirilmaydi.
| Metod | Manzil | Vazifasi |
|---|---|---|
| GET | /company/product/price-tag | Narx yorliqlari ro‘yxati |
| GET | /company/product/price-tag/{model} | Narx yorlig‘ini ko‘rish |
| POST | /company/product/price-tag | Narx yorlig‘ini yaratish |
| PUT | /company/product/price-tag/{model} | Narx yorlig‘ini tahrirlash |
| DELETE | /company/product/price-tag/{model} | Narx yorlig‘ini o‘chirish |
| DELETE | /company/product/price-tag/{value}/restore | Narx yorlig‘ini tiklash |
Narx yorliqlari ro‘yxati
/company/product/price-tagKompaniyaning narx yorlig‘i shablonlari. purchase_product_id query-parametri bilan tizim elementlari shu kirim qatoridagi tovarning haqiqiy ma’lumotlari bilan to‘ldiriladi. Tizim yorlig‘i birinchi: sort[]=-is_default&sort[]=-id.
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[creator_id] | Yaratuvchi — aniq qiymat |
filter[company_id] | Kompaniya — aniq qiymat |
filter[name] | Nomlanish — qator qismi bo‘yicha qidiruv |
filter[is_default] | aniq qiymat |
filter[created_at] | Yaratilgan — davr: [0] — dan, [1] — gacha (Y-m-d) |
sort[] | Saralash, - — kamayish bo‘yicha: id, -id, is_default, -is_default |
with[] | Bog‘liq ma’lumotlarni qo‘shish: creator.profile, company |
page | Sahifa raqami, 1 dan |
page-size | Sahifadagi yozuvlar soni, ko‘pi bilan 20 |
GET /company/product/price-tag?filter[is_default]=1Javob · 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 | null | Yaratuvchi |
data[].company_id | integer | Kompaniya |
data[].name | string | Nomlanish |
data[].width | integer | Kenglik |
data[].height | integer | Balandlik |
data[].elements | object[] | Elementlar |
data[].elements[].x | integer | |
data[].elements[].y | integer | |
data[].elements[].z | integer | |
data[].elements[].bold | boolean | |
data[].elements[].type | string | Turi |
data[].elements[].color | string | Rang |
data[].elements[].fontSize | integer | |
data[].elements[].example_text | string | |
data[].elements[].value | null | Ma'nosi |
data[].is_default | boolean | |
data[].created_at | string | Yaratilgan |
data[].updated_at | string | Yangilangan |
data[].is_deleted | boolean |
{
"data": [
{
"id": 16,
"creator_id": null,
"company_id": 1,
"name": "Стандартный ценник 58×40",
"width": 58,
"height": 40,
"elements": [
{
"x": 5,
"y": 3,
"z": 5001,
"bold": true,
"type": "#product_name",
"color": "#334155",
"fontSize": 17,
"example_text": "Название товара",
"value": null
},
{
"x": 6,
"y": 6,
"z": 5002,
"bold": true,
"type": "#sale_price",
"color": "#0f172a",
"fontSize": 25,
"value": null
}
],
"is_default": true,
"created_at": "2026-09-30 12:52:28",
"updated_at": "2026-09-30 12:52:28",
"is_deleted": false
}
],
"links": {
"first": "https://api.wasyt.uz/company/product/price-tag?page=1",
"last": "https://api.wasyt.uz/company/product/price-tag?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/product/price-tag",
"per_page": 20,
"to": 1,
"total": 1
}
}Narx yorlig‘ini ko‘rish
/company/product/price-tag/{model}purchase_product_id siz bitta shablonni qaytaradi. Bir yoki bir nechta purchase_product_id[] bilan narx yorliqlari massivini qaytaradi — har bir kirim qatori uchun bittadan, tovar ma’lumotlari va ombordagi joriy sotuv narxi bilan (doim UZS da).
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 |
|---|---|---|
id | integer | ID |
creator_id | integer | Yaratuvchi |
company_id | integer | Kompaniya |
name | string | Nomlanish |
width | integer | Kenglik |
height | integer | Balandlik |
elements | object[] | Elementlar |
elements[].x | integer | |
elements[].y | integer | |
elements[].text | string | Matn |
elements[].type | string | Turi |
elements[].color | string | Rang |
elements[].fontSize | integer | |
is_default | boolean | |
created_at | string | Yaratilgan |
updated_at | string | Yangilangan |
is_deleted | boolean |
{
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Price tag 1",
"width": 512,
"height": 512,
"elements": [
{
"x": 20,
"y": 20,
"text": "АКЦИЯ",
"type": "text",
"color": "#e11d48",
"fontSize": 28
},
{
"x": 380,
"y": 20,
"src": "https://api-minio.icangroup.uz/wasyt/uploads/logo.png",
"type": "image",
"width": 110,
"height": 60
}
],
"is_default": false,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false
}Narx yorlig‘ini yaratish
/company/product/price-tagNarx yorlig‘i shablonini yaratadi: nom (kompaniyada noyob), width/height va elements massivi. Elementlarning faqat sanab o‘tilgan xossalari saqlanadi; tizim element turi (tizim prefiksi bilan) mavjud bo‘lishi kerak.
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 |
|---|---|---|---|
name | string | Ha | Nomlanish. Maks. 255 belgi. Kompaniyada takrorlanmas qiymat |
width | integer | Ha | Kenglik. Kamida 1 |
height | integer | Ha | Balandlik. Kamida 1 |
elements | object[] | Ha | Elementlar |
elements[] | array | Ha | Elementlar |
elements[].type | string | Ha | Turi. Maks. 255 belgi |
elements[].text | string | Yo‘q | Matn. Maks. 1000 belgi |
elements[].example_text | string | Yo‘q | Maks. 1000 belgi |
elements[].data | string | Yo‘q | Ma'lumotlar. Maks. 2048 belgi |
elements[].src | string | Yo‘q | Maks. 2048 belgi. Shablon /^[^"'<>\s]*$/ |
elements[].color | string | Yo‘q | Rang. Maks. 32 belgi. Shablon /^[#0-9a-zA-Z(),.%\s]+$/ |
elements[].align | string | Yo‘q | Mumkin qiymatlar: start, center, end |
elements[].x | number | Yo‘q | |
elements[].y | number | Yo‘q | |
elements[].z | number | Yo‘q | |
elements[].width | number | Yo‘q | Kenglik. Kamida 0 |
elements[].height | number | Yo‘q | Balandlik. Kamida 0 |
elements[].fontSize | number | Yo‘q | Kamida 0 |
elements[].bold | boolean | Yo‘q | |
elements[].italic | boolean | Yo‘q | |
elements[].underline | boolean | Yo‘q | |
elements[].strikethrough | boolean | Yo‘q |
{
"name": "Promo label 512x512",
"width": 512,
"height": 512,
"elements": [
{
"type": "text",
"text": "АКЦИЯ",
"x": 20,
"y": 20,
"fontSize": 28,
"color": "#e11d48"
},
{
"type": "image",
"src": "/uploads/logo.png",
"x": 380,
"y": 20,
"width": 110,
"height": 60
},
{
"type": "#product_name",
"x": 20,
"y": 90,
"fontSize": 36,
"color": "#111827"
},
{
"type": "#brand",
"x": 20,
"y": 140,
"fontSize": 20,
"color": "#6b7280"
},
{
"type": "#category",
"x": 20,
"y": 168,
"fontSize": 16,
"color": "#9ca3af"
},
{
"type": "#sale_price",
"x": 20,
"y": 220,
"fontSize": 64,
"color": "#111827"
},
{
"type": "#currency",
"x": 240,
"y": 240,
"fontSize": 28,
"color": "#111827"
},
{
"type": "#sale_price_uzs",
"x": 20,
"y": 296,
"fontSize": 18,
"color": "#6b7280"
},
{
"type": "#sale_price_usd",
"x": 20,
"y": 320,
"fontSize": 18,
"color": "#6b7280"
},
{
"type": "#units_of_measurement",
"x": 320,
"y": 270,
"fontSize": 20,
"color": "#111827"
},
{
"type": "#barcode",
"x": 20,
"y": 360,
"width": 300,
"height": 100
},
{
"type": "#plu",
"x": 20,
"y": 470,
"fontSize": 18,
"color": "#111827"
},
{
"type": "#product_id",
"x": 420,
"y": 486,
"fontSize": 12,
"color": "#9ca3af"
},
{
"type": "#print_date",
"x": 360,
"y": 470,
"fontSize": 14,
"color": "#9ca3af"
},
{
"type": "qr",
"data": "https://example.uz/p/1",
"x": 380,
"y": 360,
"width": 110,
"height": 110
}
]
}curl -X POST "https://api.wasyt.uz/company/product/price-tag" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name":"Promo label 512x512","width":512,"height":512,"elements":[{"type":"text","text":"АКЦИЯ","x":20,"y":20,"fontSize":28,"color":"#e11d48"},{"type":"image","src":"/uploads/logo.png","x":380,"y":20,"width":110,"height":60},{"type":"#product_name","x":20,"y":90,"fontSize":36,"color":"#111827"},{"type":"#brand","x":20,"y":140,"fontSize":20,"color":"#6b7280"},{"type":"#category","x":20,"y":168,"fontSize":16,"color":"#9ca3af"},{"type":"#sale_price","x":20,"y":220,"fontSize":64,"color":"#111827"},{"type":"#currency","x":240,"y":240,"fontSize":28,"color":"#111827"},{"type":"#sale_price_uzs","x":20,"y":296,"fontSize":18,"color":"#6b7280"},{"type":"#sale_price_usd","x":20,"y":320,"fontSize":18,"color":"#6b7280"},{"type":"#units_of_measurement","x":320,"y":270,"fontSize":20,"color":"#111827"},{"type":"#barcode","x":20,"y":360,"width":300,"height":100},{"type":"#plu","x":20,"y":470,"fontSize":18,"color":"#111827"},{"type":"#product_id","x":420,"y":486,"fontSize":12,"color":"#9ca3af"},{"type":"#print_date","x":360,"y":470,"fontSize":14,"color":"#9ca3af"},{"type":"qr","data":"https://example.uz/p/1","x":380,"y":360,"width":110,"height":110}]}'Javob · 200
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
is_default | boolean | |
name | string | Nomlanish |
width | integer | Kenglik |
height | integer | Balandlik |
elements | object[] | Elementlar |
elements[].type | string | Turi |
elements[].text | string | Matn |
elements[].color | string | Rang |
elements[].x | integer | |
elements[].y | integer | |
elements[].fontSize | integer | |
updated_at | string | Yangilangan |
created_at | string | Yaratilgan |
creator_id | integer | Yaratuvchi |
company_id | integer | Kompaniya |
id | integer | ID |
is_deleted | boolean |
{
"is_default": false,
"name": "Promo label 512x512",
"width": 512,
"height": 512,
"elements": [
{
"type": "text",
"text": "АКЦИЯ",
"color": "#e11d48",
"x": 20,
"y": 20,
"fontSize": 28
},
{
"type": "image",
"src": "https://api-minio.icangroup.uz/wasyt/uploads/logo.png",
"x": 380,
"y": 20,
"width": 110,
"height": 60
}
],
"updated_at": "2026-09-30 12:52:26",
"created_at": "2026-09-30 12:52:26",
"creator_id": 2,
"company_id": 1,
"id": 10,
"is_deleted": false
}Narx yorlig‘ini tahrirlash
/company/product/price-tag/{model}Narx yorlig‘i shablonining nomi, o‘lchamlari va elementlarini to‘liq qayta yozadi; tizim yorlig‘ini ham tahrirlash mumkin.
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 |
|---|---|---|---|
name | string | Ha | Nomlanish. Maks. 255 belgi. Kompaniyada takrorlanmas qiymat |
width | integer | Ha | Kenglik. Kamida 1 |
height | integer | Ha | Balandlik. Kamida 1 |
elements | object[] | Ha | Elementlar |
elements[] | array | Ha | Elementlar |
elements[].type | string | Ha | Turi. Maks. 255 belgi |
elements[].text | string | Yo‘q | Matn. Maks. 1000 belgi |
elements[].example_text | string | Yo‘q | Maks. 1000 belgi |
elements[].data | string | Yo‘q | Ma'lumotlar. Maks. 2048 belgi |
elements[].src | string | Yo‘q | Maks. 2048 belgi. Shablon /^[^"'<>\s]*$/ |
elements[].color | string | Yo‘q | Rang. Maks. 32 belgi. Shablon /^[#0-9a-zA-Z(),.%\s]+$/ |
elements[].align | string | Yo‘q | Mumkin qiymatlar: start, center, end |
elements[].x | number | Yo‘q | |
elements[].y | number | Yo‘q | |
elements[].z | number | Yo‘q | |
elements[].width | number | Yo‘q | Kenglik. Kamida 0 |
elements[].height | number | Yo‘q | Balandlik. Kamida 0 |
elements[].fontSize | number | Yo‘q | Kamida 0 |
elements[].bold | boolean | Yo‘q | |
elements[].italic | boolean | Yo‘q | |
elements[].underline | boolean | Yo‘q | |
elements[].strikethrough | boolean | Yo‘q |
{
"name": "Price tag 1",
"width": 1024,
"height": 768,
"elements": [
{
"type": "#barcode",
"x": 10,
"y": 10,
"width": 200,
"height": 80
},
{
"type": "text",
"text": "Updated",
"x": 20,
"y": 120,
"fontSize": 24,
"color": "#111"
}
]
}curl -X PUT "https://api.wasyt.uz/company/product/price-tag/1" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"name":"Price tag 1","width":1024,"height":768,"elements":[{"type":"#barcode","x":10,"y":10,"width":200,"height":80},{"type":"text","text":"Updated","x":20,"y":120,"fontSize":24,"color":"#111"}]}'Javob · 200
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
id | integer | ID |
creator_id | integer | Yaratuvchi |
company_id | integer | Kompaniya |
name | string | Nomlanish |
width | integer | Kenglik |
height | integer | Balandlik |
elements | object[] | Elementlar |
elements[].type | string | Turi |
elements[].x | integer | |
elements[].y | integer | |
elements[].width | integer | Kenglik |
elements[].height | integer | Balandlik |
elements[].value | null | Ma'nosi |
is_default | boolean | |
created_at | string | Yaratilgan |
updated_at | string | Yangilangan |
is_deleted | boolean |
{
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Price tag 1",
"width": 1024,
"height": 768,
"elements": [
{
"type": "#barcode",
"x": 10,
"y": 10,
"width": 200,
"height": 80,
"value": null
},
{
"type": "text",
"text": "Updated",
"color": "#111",
"x": 20,
"y": 120,
"fontSize": 24
}
],
"is_default": false,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:52:32",
"is_deleted": false
}Narx yorlig‘ini o‘chirish
/company/product/price-tag/{model}Narx yorlig‘i shablonini yumshoq o‘chiradi. Tizim yorlig‘ini (is_default = true) o‘chirib bo‘lmaydi — 400.
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"
}Narx yorlig‘ini tiklash
/company/product/price-tag/{value}/restoreAvval o‘chirilgan narx yorlig‘i shablonini ID bo‘yicha tiklaydi.
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 |
|---|---|
value | Yozuv ID si (o‘chirilgani ham) |
Javob · 200
Javob maydonlari
| Maydon | Turi | Tavsif |
|---|---|---|
message | string | Xabar |
{
"message": "Success"
}
