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.