Sorozatszámok API

Termék sorozatszámok (serial numberek, LOT/sarzs tételek) lekérése és bontása

Alap URL

https://{tenant}.logzi.com/api/stock_serial/

Minden kérés JSON választ ad vissza. Sikeres válasz esetén result.code == 1 (HTTP 200), hiba vagy nem található rekord esetén result.code == 0 (HTTP 203).

Megjegyzés: A sorozatszámok automatikusan keletkeznek a raktári bevét/kiadás folyamatban. Az API-n keresztül lekérdezhetők és a LOT (sarzs) tételek bonthatók; új sorozatszám felvitele és törlése nem elérhető.

Működés

A termék serialnumber_required beállítása határozza meg, hogyan kezeli a rendszer a sorozatszámokat:

  • 1 – egyedszám köteles: minden darab külön sorozatszám sor, a quantity mindig 1.
  • 2 – LOT (sarzs) szám köteles: egy sor több darabot jelent, a quantity a LOT-ban lévő mennyiség.
  • 3 – LOT szám és szavatossági idő köteles: mint a LOT, de a sorhoz date_expire (lejárat) is tartozik.

A bontó végpontok (save_separate, save_separate_all) a LOT-os sorokat osztják szét. Bontáskor az új sor(ok) a forrás sor minden adatát (termék, raktár, helykód, raklap, sorozatszám/LOT azonosító, lejárat, létrehozás dátuma) és a hozzá tartozó bizonylat kapcsolatokat is megkapják, a készlet összmennyisége nem változik.

A bontás csak nem felhasznált (used = 0), nem törölt (remove = 0) sorra lehetséges.

GET /api/stock_serial/get

Egyetlen sorozatszám rekord lekérése azonosító alapján. Törölt (remove = 1) rekord nem adható vissza.

Query paraméterek

Paraméter Típus Kötelező Leírás
id int A sorozatszám rekord egyedi azonosítója (db_stock_serial.id)

Válasz mezők (data objektum)

MezőTípusLeírás
idintA sorozatszám rekord azonosítója
product_idintA termék azonosítója
store_idintA raktár (telephely) azonosítója, ahol a tétel található
company_idintA cég azonosítója, amelyhez a tétel tartozik
serial_numberstringA sorozatszám vagy LOT (sarzs) azonosító, legfeljebb 30 karakter
quantityfloatMennyiség: egyedszám köteles terméknél 1, LOT-os terméknél a LOT-ban lévő darabszám
usedint0 = elérhető (nincs felhasználva), 1 = felhasznált
removeintTörlés jelző, a lekérdezés csak a 0 értékű rekordokat adja vissza
store_locality_idint | nullA raktári helykód azonosítója, ha a tétel helykódhoz van rendelve
pallet_idint | nullA raklap azonosítója, ha a tétel raklaphoz van rendelve
date_createdatetimeA sorozatszám létrehozásának időpontja (ÉÉÉÉ-HH-NN ÓÓ:PP:MM)
date_expiredatetime | nullSzavatossági (lejárati) idő, csak a lejárat köteles LOT-nál kitöltött
chkstringBelső ellenőrző azonosító (32 karakter), az integrációban nem használandó

Példa kérés

GET /api/stock_serial/get?id=42
X-API-KEY: {az_api_kulcsod}

Példa válasz

{
  "result": { "code": 1, "message": null },
  "data": {
    "id": 42,
    "product_id": 5,
    "store_id": 1,
    "date_create": "2024-03-15 10:22:00",
    "company_id": 1,
    "serial_number": "LOT-2024-00042",
    "remove": 0,
    "used": 0,
    "chk": "5f4dcc3b5aa765d61d8327deb882cf99",
    "store_locality_id": 7,
    "pallet_id": null,
    "quantity": 50,
    "date_expire": "2026-03-15 00:00:00"
  }
}

Nem található rekord

HTTP 203
{
  "result": { "code": 0, "message": "Not found" },
  "data": null
}
GET /api/stock_serial/list

Sorozatszámok lapozható listájának lekérése szűrési lehetőségekkel. Csak nem törölt (remove = 0), készletes termékhez tartozó rekordok szerepelnek, azonosító szerint csökkenő sorrendben.

Query paraméterek

Paraméter Típus Kötelező Leírás
list_offset int Lapozás eltolása, hány rekordot hagyjon ki az elejéről (alapértelmezett: 0). Egy kérés legfeljebb 10 000 rekordot ad vissza.
list_condition[product_id] int Szűrés a termék azonosítójára (pontos egyezés)
list_condition[used] int Felhasználtság: 0 = elérhető, 1 = felhasznált
list_condition[serial_number] string Szűrés a sorozatszámra / LOT azonosítóra (pontos egyezés)
list_condition[partnumber] string Szűrés a termék cikkszámára (pontos egyezés)
list_condition[item_id_used_0] int Egy bizonylat tételhez elérhető sorozatszámok: a nem felhasznált (used = 0) sorok és azok a sorok, amelyek már ehhez a tételhez (item_id) vannak kötve
list_condition[receipt_id] int Az adott bizonylathoz kötött sorozatszámok. Csak a receipt_type_id mezővel együtt érvényes.
list_condition[receipt_type_id] int A bizonylat típusának azonosítója. Csak a receipt_id mezővel együtt érvényes.
list_condition[store_locality_id] int Szűrés a raktári helykód azonosítójára
list_condition[product_name_partnumber] string Szűrés a termék nevére vagy cikkszámára (LIKE, helyettesítő karakter: %)
list_condition[product_name] string Szűrés a termék nevének részletére
list_condition[product_partnumber_barcode] string Szűrés a cikkszám részletére vagy a termék vonalkódjára
list_condition[date_create_from] date Létrehozás dátuma ettől (az adott nappal együtt), formátum: ÉÉÉÉ-HH-NN
list_condition[date_create_to] date Létrehozás dátuma eddig (az adott nappal együtt), formátum: ÉÉÉÉ-HH-NN
list_condition[date_expire_from] date Lejárati dátum ettől (az adott nappal együtt), formátum: ÉÉÉÉ-HH-NN
list_condition[date_expire_to] date Lejárati dátum eddig (az adott nappal együtt), formátum: ÉÉÉÉ-HH-NN

Válasz mezők (data tömb elemei)

Az elemek tartalmazzák a get végpont összes mezőjét, az alábbi eltérésekkel és kiegészítésekkel:

MezőTípusLeírás
stock_serial_idintA sorozatszám rekord azonosítója (megegyezik az id mezővel)
date_createstringLétrehozás időpontja, formátum: ÉÉÉÉ.HH.NN ÓÓ:PP:MM
date_expirestring | nullLejárati dátum, formátum: ÉÉÉÉ.HH.NN
product_unit_namestringA termék megnevezése
partnumberstringA termék cikkszáma
store_locality_barcodestring | nullA raktári helykód vonalkódja
pallet_barcodestring | nullA raklap vonalkódja
store_namestringA raktár (telephely) neve

Válasz mezők (params objektum)

MezőTípusLeírás
list_countintEgy kérésben visszaadható rekordok maximális száma (10 000)
list_offsetintA kérésben megadott eltolás
list_allintA szűrésnek megfelelő összes rekord száma

Példa kérés

GET /api/stock_serial/list?list_offset=0&list_condition[product_id]=5&list_condition[used]=0
X-API-KEY: {az_api_kulcsod}

Példa válasz

{
  "result": { "code": 1, "message": null },
  "data": [
    {
      "id": 42,
      "stock_serial_id": 42,
      "product_id": 5,
      "store_id": 1,
      "company_id": 1,
      "serial_number": "LOT-2024-00042",
      "quantity": 50,
      "used": 0,
      "remove": 0,
      "chk": "5f4dcc3b5aa765d61d8327deb882cf99",
      "store_locality_id": 7,
      "pallet_id": null,
      "date_create": "2024.03.15 10:22:00",
      "date_expire": "2026.03.15",
      "product_unit_name": "Laptop XYZ",
      "partnumber": "LTP-XYZ-001",
      "store_locality_barcode": "A-01-02",
      "pallet_barcode": null,
      "store_name": "Központi raktár"
    }
  ],
  "params": {
    "list_count": 10000,
    "list_offset": 0,
    "list_all": 1
  }
}
POST /api/stock_serial/save_separate

Egy LOT (sarzs) sorozatszám sorból megadott mennyiséget választ le egy új sorba. A forrás sor mennyisége csökken, az új sor ugyanazokkal az adatokkal (termék, raktár, helykód, raklap, sorozatszám/LOT azonosító, lejárat) jön létre a leválasztott mennyiséggel.

POST mezők - data objektum

MezőTípusKötelezőLeírás
stock_serial_idintA bontandó sorozatszám sor azonosítója. A sor nem lehet törölt és nem lehet felhasznált (used = 0).
quantityfloatA leválasztandó mennyiség. Nullánál nagyobbnak és a sor teljes mennyiségénél kisebbnek kell lennie.

Válasz mezők (data objektum)

MezőTípusLeírás
stock_serial_idintA forrás sor azonosítója
new_stock_serial_idintAz újonnan létrejött sor azonosítója
quantity_separatedfloatAz új sorba leválasztott mennyiség
quantity_leftfloatA forrás sorban maradt mennyiség

Hibaüzenetek (result.message)

ÜzenetMikor
Not foundA data mező hiányzik vagy üres
ex_stock_serial_separate_itemA stock_serial_id hiányzik, érvénytelen, nem létezik vagy törölt
ex_stock_serial_separate_usedA sor már fel van használva (used = 1)
ex_stock_serial_separate_qtyA quantity nem szám, nem nagyobb nullánál, vagy nem kisebb a teljes mennyiségnél
ex_unknown_msgIsmeretlen hiba a mentés közben. Hiba esetén a művelet teljes egészében visszavonásra kerül.

Példa kérés

POST /api/stock_serial/save_separate
X-API-KEY: {az_api_kulcsod}
Content-Type: application/json

{
  "data": {
    "stock_serial_id": 42,
    "quantity": 20
  }
}

Példa válasz

{
  "result": { "code": 1, "message": "success_msg" },
  "data": {
    "stock_serial_id": 42,
    "new_stock_serial_id": 57,
    "quantity_separated": 20,
    "quantity_left": 30
  }
}
POST /api/stock_serial/save_separate_all

Egy LOT (sarzs) sorozatszám sort teljes egészében egyedekre bont: annyi 1 darabos sor lesz, ahány darab a sor mennyisége volt (pl. 50 darabos sorból 50 db 1 darabos sor). Az eredeti sor megmarad, mennyisége 1-re csökken, a többi (mennyiség - 1) sor újonnan jön létre ugyanazokkal az adatokkal.

POST mezők - data objektum

MezőTípusKötelezőLeírás
stock_serial_idintA bontandó sorozatszám sor azonosítója. A sor nem lehet törölt és nem lehet felhasznált (used = 0), a mennyisége pozitív egész szám, legalább 2 és legfeljebb 25 000.

Válasz mezők (data objektum)

MezőTípusLeírás
stock_serial_idintAz eredeti sor azonosítója (ez is 1 darabos sor lesz)
quantity_beforefloatAz eredeti sor mennyisége a bontás előtt
countintA bontás utáni sorok száma (az eredeti sorral együtt, megegyezik a quantity_before értékével)
stock_serial_idsint[]Az összes sor azonosítója: az eredeti sor az első, utána az újonnan létrejött sorok növekvő sorrendben

Hibaüzenetek (result.message)

ÜzenetMikor
Not foundA data mező hiányzik vagy üres
ex_stock_serial_separate_itemA stock_serial_id hiányzik, érvénytelen, nem létezik vagy törölt
ex_stock_serial_separate_usedA sor már fel van használva (used = 1)
ex_stock_serial_separate_qty_integerA sor mennyisége nem pozitív egész szám
ex_stock_serial_separate_singleA sor mennyisége 1, nincs mit bontani
ex_stock_serial_separate_max_rowsA sor mennyisége meghaladja az egyszerre bontható 25 000 darabot (az üzenet végén a megengedett maximum szerepel)
ex_unknown_msgIsmeretlen hiba a mentés közben. Hiba esetén a művelet teljes egészében visszavonásra kerül.
Figyelem: A művelet nem vonható vissza az API-n keresztül (a sorok visszaegyesítésére nincs végpont). A nagy mennyiségű bontás hosszabb ideig tarthat.

Példa kérés

POST /api/stock_serial/save_separate_all
X-API-KEY: {az_api_kulcsod}
Content-Type: application/json

{
  "data": {
    "stock_serial_id": 42
  }
}

Példa válasz (3 darabos sor bontása)

{
  "result": { "code": 1, "message": "success_msg" },
  "data": {
    "stock_serial_id": 42,
    "quantity_before": 3,
    "count": 3,
    "stock_serial_ids": [42, 58, 59]
  }
}

Vedd fel a kapcsolatot velünk

Érdeklődsz a szoftverünkkel kapcsolatban, írj bátran!

Segítségre van szükséged?

Ha nem találod a választ és szükséged van segítségre

Regisztrációdat hozd létre most,
fizess később!

Próbáld ki 3 napig ingyen, kockázatok és kötöttségek nélkül!