Cart.Add
Berilgan pozitsiyalar bilan alohida saqlanadigan savat yaratadi.
Integratsiyaning Bearer tokenini HTTP sarlavhasida yuboring. Batafsil — API avtorizatsiyasi.
Kirish parametrlari
| Nomi | Ma’lumot turi | Majburiyligi | Tavsif |
|---|---|---|---|
| external_id | string | Majburiy | Savat yaratishning integratsiya doirasidagi noyob kaliti, 1–100 belgi |
| items | array | Majburiy | 1–150 pozitsiya; savatda jami 150 tagacha |
| items[].item_id | int64 | Majburiy | Item.Get yoki Item.Upsert bergan kassadagi istalgan mavjud tovar ID |
| items[].price | int64 | Ixtiyoriy | Birlik narxi, tiyin, >= 0; berilmasa ma’lumotnoma narxi |
| items[].quantity | int64 | Majburiy | Musbat miqdor ×1000; 1000 = bir birlik |
| items[].discount | int64 | Ixtiyoriy | Pozitsiya chegirmasi, tiyin, sukutda 0; summadan oshmasin |
| items[].label | string | Ixtiyoriy | Markirovka; berilganda format va shtrixkodga mosligi tekshiriladi |
Rekvizitlar saqlangan tovardan olinadi. Berilgan price faqat ushbu pozitsiyaga tegishli, ma’lumotnoma narxini o‘zgartirmaydi. Summa: price × quantity / 1000 butun tiyingacha yaxlitlanadi, teng yarmi noldan uzoqlashtiriladi, so‘ng discount ayiriladi. Chegirma birlikka emas, butun pozitsiyaga beriladi. Har bir qo‘shish alohida qator. Tovar keyinchalik yangilansa, oldingi pozitsiyalar o‘zgarmaydi.
Yangi external_id yangi savat yaratadi. Kirishdagi cart_id qo‘llanmaydi; mavjud savatga qo‘shish mumkin emas. Bir xil external_id va parametrlar takrori dastlabki savatning joriy holatini qaytaradi, pozitsiyalarni takrorlamaydi, jumladan bekor qilish va rasmiylashtirishdan keyin ham. Bir xil kalit bilan boshqa parametrlar 703100 beradi. Takrorlashda qiymatlar va pozitsiyalar tartibini saqlang. So‘rov atomar. Yaratilgan savat ID qiymati javobning cart_id maydonida qoladi.
Markirovkani keyingi rasmiylashtirishda to‘ldirish mumkin. Berilgan markirovkali pozitsiya miqdori 1000 bo‘lishi va kod savatda takrorlanmasligi shart. Savatni saqlashda yakuniy savdo/to‘lov/fiskal tekshiruvlar bajarilmaydi.
So‘rov namunasi
Authorization: Bearer <integration-token>
Content-Type: application/json;charset=utf-8
{
"jsonrpc": "2.0",
"method": "Cart.Add",
"params": {
"external_id": "ADD-001",
"items": [
{
"item_id": 101,
"quantity": 1000,
"price": 11000,
"discount": 1000
}
]
},
"id": 2
}
Chiqish parametrlari
| Nomi | Ma’lumot turi | Tavsif |
|---|---|---|
| cart_id | string | Cart.Add qaytargan mahalliy savat ID |
| status | string | Savat holati: open, process, finished yoki canceled |
| receipt_id | string yoki null | Yakunlangan chek ID; yakunlanguncha null |
| created_at | string | Yaratish vaqti, kassa mahalliy vaqti, YYYY-MM-DD HH:mm:ss |
| updated_at | string | Yangilash vaqti, kassa mahalliy vaqti, YYYY-MM-DD HH:mm:ss |
| total | int64 | Savat summasi, chegirmadan keyin, tiyinda |
| items | array | Savat pozitsiyalari |
| items[].item_id | int64 | Cart.Add uchun mahalliy tovar ID |
| items[].name | string | Tovar nomi |
| items[].barcode | string | Shtrixkod; mavjud bo‘lmasa bo‘sh |
| items[].icps | string | IKPU kodi |
| items[].price | int64 | Birlik narxi, tiyinda |
| items[].quantity | int64 | Birlikning mingdan bir ulushidagi miqdor; 1000 — bir birlik |
| items[].discount | int64 | Butun pozitsiya chegirmasi, tiyinda |
| items[].amount | int64 | Chegirmadan keyingi summa, tiyinda |
| items[].vat_value | int64 | QQS foizning yuzdan bir ulushida; -1 — QQSsiz |
| items[].package_code | string yoki null | Qadoq kodi; mavjud bo‘lmasa null |
| items[].label | string | Birlik markirovkasi; mavjud bo‘lmasa bo‘sh |
Natija: cart_id, status (open, process, finished yoki canceled), receipt_id (yopilgan chek ID, tugamaguncha null), created_at va updated_at (kassaning mahalliy vaqti, YYYY-MM-DD HH:mm:ss), total (chegirmadan keyingi summa, tiyin), items. Har bir pozitsiya: item_id, name, barcode, icps, price (birlik narxi), quantity (×1000), discount, amount (chegirmadan keyin), vat_value, package_code va label. Barcha pul qiymatlari tiyinda.
Yangi savat open holatida. Kassir ochganda process, fiskal chek yopilganda finished bo‘ladi. Dastlabki so‘rov takrori joriy holatni qaytaradi.
Javob namunasi
{
"jsonrpc": "2.0",
"result": {
"cart_id": "0123456789abcdef0123456789abcdef",
"status": "open",
"receipt_id": null,
"created_at": "2026-11-12 10:00:00",
"updated_at": "2026-11-12 10:00:00",
"total": 10000,
"items": [
{
"item_id": 101,
"name": "Тестовый товар",
"barcode": "4780000000000",
"icps": "00000000000000000",
"price": 11000,
"quantity": 1000,
"discount": 1000,
"amount": 10000,
"vat_value": 0,
"package_code": null,
"label": ""
}
]
},
"ok": true,
"id": 2
}
Xatolar: umumiy; 701001 — tovar yo‘q/o‘chirilgan; 701003 — noto‘g‘ri parametrlar, jumladan qo‘llanmaydigan cart_id, narx, miqdor, chegirma, markirovka yoki limit; 703100 — kalit ziddiyati. Markirovka xatolari uchun xato kodi.