Item.Upsert
Kassaning umumiy katalogiga tovar qo‘shadi yoki uni to‘liq yangilaydi; savat uchun mahalliy ID qaytaradi. Tovarlar ushbu kassaning barcha integratsiyalariga ochiq.
Integratsiyaning Bearer tokenini HTTP sarlavhasida yuboring. Batafsil — API avtorizatsiyasi.
Kirish parametrlari
| Nomi | Ma’lumot turi | Majburiyligi | Tavsif |
|---|---|---|---|
| items | array | Majburiy | 1–150 tovar; bir so‘rovda external_id takrorlanmaydi |
| items[].item_id | int64 | external_id bo‘lmasa | Mavjud mahalliy tovar ID, 0 dan katta; kassadagi istalgan tovar |
| items[].external_id | string | item_id bo‘lmasa | Butun kassa uchun umumiy kalit, 1–100 belgi; chetdagi bo‘shliqlar olinadi |
| items[].name | string | Majburiy | Nomi, 1–60 belgi |
| items[].barcode | string | Ixtiyoriy | 21 belgigacha; sukutda bo‘sh |
| items[].icps | string | Majburiy | Aynan 17 raqam |
| items[].price | int64 | Majburiy | Birlik narxi, tiyin, >= 0 |
| items[].vat_value | int64 | Majburiy | QQS foizi ×100; kassada mavjud stavka |
| items[].unit_kkm_code | int64 | Ixtiyoriy | Mavjud o‘lchov birligi kodi; sukutda 1 |
| items[].package_code | string | Ixtiyoriy | Ushbu IKPU qadoq kodi; berilmasa birinchi mavjud qadoq olinadi |
| items[].owner_type | int32 | Majburiy | 0 — olib sotish; 1 — ishlab chiqarish; 2 — xizmat |
item_id, external_id yoki ikkalasini yuboring. item_id bo‘lmasa yangi tashqi kalit tovar yaratadi, mavjud kalit esa istalgan integratsiya tokenidan o‘sha tovarni yangilaydi. item_id kassada qo‘lda yaratilgan tovarni ham yangilaydi; noma’lum ID uchun 701001. Ikkala identifikator bir tovarni ko‘rsatishi kerak. Kalitsiz tovarga yangi kalit berish mumkin; mavjud kalit boshqasiga almashtirilmaydi. Faqat yangilash uchun item_id yuboring.
Eski tashqi kalit bir nechta tovarga bog‘langan bo‘lsa, item_id siz 701003 qaytadi. Umumiy kalit uchun tovarni aniq tanlashga ikkala maydonni yuboring. Qolgan tovarlar o‘z item_id qiymatlari bilan saqlanadi. Bir xil IKPU tovarlarni birlashtirmaydi. Bir so‘rovda o‘sha tovarni turli identifikatorlar bilan ikki marta yangilash rad etiladi. Barcha majburiy rekvizitlarni qayta yuboring; bu qisman yangilash emas. O‘chirilgan tovar yangilanganda tiklanadi.
IKPU, qadoq, QQS va amal qilish davri chek qoidalari bilan tekshiriladi. Berilgan nom IKPU nomiga almashtirilmaydi; faqat chetdagi bo‘shliqlar olinadi. Ma’lumotnoma shtrixkodni aniqlashtirishi mumkin; zarur bo‘lsa 600 stavkasi qo‘yiladi. Markirovka va to‘lov cheklovlari IKPUdan olinadi. Alohida birlik markirovkasi talab qilinmaydi. Bitta tovar xato bo‘lsa butun so‘rov saqlanmaydi.
So‘rov namunasi
Authorization: Bearer <integration-token>
Content-Type: application/json;charset=utf-8
{
"jsonrpc": "2.0",
"method": "Item.Upsert",
"params": {
"items": [
{
"external_id": "SKU-001",
"name": "Тестовый товар",
"barcode": "4780000000000",
"icps": "00000000000000000",
"price": 10000,
"vat_value": 0,
"owner_type": 0
}
]
},
"id": 1
}
Mavjud tovarni mahalliy ID bilan yangilash (barcha majburiy rekvizitlar qayta yuboriladi):
{
"jsonrpc": "2.0",
"method": "Item.Upsert",
"params": {
"items": [
{
"item_id": 101,
"name": "Sinov tovari 250 g",
"barcode": "4780000000000",
"icps": "00000000000000000",
"price": 12000,
"vat_value": 0,
"owner_type": 0
}
]
},
"id": 2
}
Chiqish parametrlari
| Nomi | Ma’lumot turi | Tavsif |
|---|---|---|
| items | array | Tovarlar ro‘yxati |
| items[].external_id | string | Umumiy tashqi kalit; faqat item_id bilan yangilanganda va kalit bo‘lmasa bo‘sh |
| items[].item_id | int64 | Cart.Add uchun mahalliy tovar ID |
| items[].created | boolean | Yangi tovar yaratilganligi |
| items[].name | string | Tovar nomi |
| items[].barcode | string | Shtrixkod; mavjud bo‘lmasa bo‘sh |
| items[].price | int64 | Birlik narxi, tiyinda |
| items[].vat_value | int64 | QQS foizning yuzdan bir ulushida; -1 — QQSsiz |
| items[].icps | string | IKPU kodi |
| items[].package_code | string yoki null | Qadoq kodi; mavjud bo‘lmasa null |
result.items kirish tartibida external_id, item_id, created (yangi tovar), haqiqiy name, barcode, price, vat_value, icps, package_code (bo‘lmasa null) qaytaradi. Misollardagi identifikatorlar xayoliy; haqiqiy tovar ma’lumotlarini ishlating.
Javob namunasi
{
"jsonrpc": "2.0",
"result": {
"items": [
{
"external_id": "SKU-001",
"item_id": 101,
"created": true,
"name": "Тестовый товар",
"barcode": "4780000000000",
"price": 10000,
"vat_value": 0,
"icps": "00000000000000000",
"package_code": null
}
]
},
"ok": true,
"id": 1
}
Xatolar: umumiy xatolar, 701001 — item_id bo‘yicha tovar topilmadi; 701003 — tovar maydonlari, identifikatorlar ziddiyati, QQS/birlik/qadoq; 705511 — IKPU ma’lumoti yo‘q. Ma’lumotnoma xizmati xatosida tegishli kod qaytariladi va tovarlar saqlanmaydi.