Produkt-API

Verwaltung von Produkten und Artikeln — Abruf, Erstellung, Änderung und Bestandsinformationen

Basis-URL

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

Jede Anfrage liefert eine JSON-Antwort zurück. Bei Erfolg ist result.code == 1, im Fehlerfall result.code == 0.

GET /api/product/get

Abruf eines einzelnen Produkts anhand von ID, Artikelnummer, Barcode oder Produktgruppe, mit vollständigen Details.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
id int Die eindeutige Kennung des Produkts (oder verwenden Sie stattdessen den Parameter partnumber)
partnumber string Suche anhand der Artikelnummer (falls id nicht angegeben ist)
barcode string Suche anhand des Barcodes
product_group_id int Suche anhand der Produktgruppen-ID
store_id int Lagerkennung — zur Rückgabe von Bestandsinformationen

Beispielanfrage

GET /api/product/get?id=42&store_id=1
X-API-KEY: {ihr_api_schluessel}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 42,
    "type_id": 6,
    "product_group_id": 10,
    "partnumber": "TERM-0042",
    "name": "Minta termék",
    "product_name": "Minta termék",
    "product_unit_name": "db",
    "vtsz": "8471300000",
    "weight_netto": "0.500",
    "weight_brutto": "0.600",
    "active_id": 1,
    "price": 5000,
    "tax_id": 2,
    "currency_id": 1,
    "incoming_price": 3500,
    "incoming_currency_id": 1,
    "incoming_tax_id": 2
  }
}
GET /api/product/get_stock

Abruf der Bestandsinformationen eines Produkts nach Lager.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
id int Die Produktkennung (oder partnumber)
partnumber string Suche anhand der Artikelnummer (Alternative zu id)
list_condition[store_id] int Filterung nach einem bestimmten Lager

Beispielanfrage

GET /api/product/get_stock?id=42&list_condition[store_id]=1
X-API-KEY: {ihr_api_schluessel}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 42,
    "partnumber": "TERM-0042",
    "quantity_phy": "120.000000",
    "quantity_acc": "5.000000"
  }
}
GET /api/product/get_extended

Abruf eines Produkts mit erweiterten Daten — inklusive Verfügbarkeit und reservierter Menge.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
id int Die eindeutige Kennung des Produkts (oder partnumber)
partnumber string Suche anhand der Artikelnummer
store_id int Lagerfilter für den Bestand

Beispielanfrage

GET /api/product/get_extended?id=42
X-API-KEY: {ihr_api_schluessel}
GET /api/product/list

Abruf einer paginierbaren Liste von Produkten mit Filtermöglichkeiten.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
list_offset int Versatz für die Paginierung (Standard: 0)
list_count int Anzahl der Treffer pro Seite (Standard: 10)
list_condition[partnumber] string Filterung nach Artikelnummer (LIKE)
list_condition[name] string Filterung nach Produktname (LIKE)
list_condition[type_id] int Filterung nach Produkttyp (1–6)
list_condition[product_category_id] int Filterung nach Produktkategorie-ID
list_condition[active_id] int Filterung nach Status (1=aktiv, 0=inaktiv)
list_condition[store_id] int Lagerbestandsfilter — nur im jeweiligen Lager verfügbare Produkte

Beispielanfrage

GET /api/product/list?list_offset=0&list_count=20&list_condition[active_id]=1
X-API-KEY: {ihr_api_schluessel}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": [
    {
      "id": 42,
      "type_id": 6,
      "partnumber": "TERM-0042",
      "name": "Minta termék",
      "product_name": "Minta termék",
      "product_unit_name": "db",
      "active_id": 1,
      "price": 5000,
      "incoming_price": 3500
    }
  ],
  "params": {
    "list_count": 20,
    "list_offset": 0,
    "list_all": 158
  }
}
GET /api/product/list_extended

Erweiterte Liste der Produkte — mit vollständiger Preisliste, Bestand und zugehörigen Daten.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
list_offset int Versatz für die Paginierung (Standard: 0)
list_count int Anzahl der Treffer pro Seite
list_condition array Array der Filterbedingungen (wie bei /list)
list_params array Zusätzliche Parameter

Beispielanfrage

GET /api/product/list_extended?list_offset=0&list_count=10
X-API-KEY: {ihr_api_schluessel}
GET /api/product/list_group

Paginierbare Liste der Produktgruppen — Daten auf Gruppenebene mit Bestands- und Preisinformationen.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
list_offset int Versatz für die Paginierung (Standard: 0)
list_condition[active_id] int Filterung nach Status (1=aktiv, 0=inaktiv)
list_condition[type_id] int Filterung nach Produkttyp (1–6)

Beispielanfrage

GET /api/product/list_group?list_offset=0&list_condition[active_id]=1
X-API-KEY: {ihr_api_schluessel}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": [
    {
      "id": 10,
      "product_group_id": 10,
      "name": "Minta termék csoport",
      "type_id": 1,
      "type_name": "Variációs termék",
      "active_id": 1,
      "partnumber_list": "TERM-001, TERM-002",
      "quantity_phy": "240.000000",
      "price": 5000,
      "incoming_price": 3500
    }
  ],
  "params": {
    "list_count": 10,
    "list_offset": 0,
    "list_all": 42
  }
}
GET /api/product/get_group

Abruf einer einzelnen Produktgruppe mit allen Ausführungen (Varianten) und deren Preisliste.

Query-Parameter

Parameter Typ Pflichtfeld Beschreibung
product_group_id int Die Kennung der Produktgruppe
language_id int Sprachkennung (Standard: 1 — Ungarisch)

Beispielanfrage

GET /api/product/get_group?product_group_id=10
X-API-KEY: {ihr_api_schluessel}
POST /api/product/save

Erstellung oder Änderung eines Produkts. Die Datenstruktur hängt vom Wert von type_id ab.

Produkttypen (type_id)

1VariantenproduktMehrere Ausführungen (Varianten) — die Angabe des item[]-Arrays ist erforderlich
2DienstleistungEinfaches Produkt
3PaketproduktPaket aus einfachen Produkten
4Virtuell – EintrittskarteFür Tickettypen
5RezepturproduktAus Zutaten hergestellt
6Einfaches ProduktAm häufigsten verwendeter Typ

A) Felder auf Gruppenebene — gültig für alle Typen

Diese Felder betreffen die Tabelle db_product_group. Bei einer Änderung bleibt der Wert nicht ausgefüllter Felder unverändert.

Feld Typ Pflichtfeld Beschreibung
id int 0 = neues Produkt, >0 = Änderung eines bestehenden Produkts (product_id)
type_id int Produkttyp (1–6) — bei einem neuen Produkt erforderlich, bei einer Änderung nicht notwendig
product_group_id int 0 = Erstellung einer neuen Gruppe, >0 = Änderung einer bestehenden Gruppe
name string Name des Produkts. Falls nicht angegeben, gilt folgende Fallback-Reihenfolge: product_nameproduct_group_nameproduct_unit_name
product_name string Individuelle Produktbezeichnung (Fallback für name)
product_group_name string Gruppenbezeichnung (Fallback für name)
vtsz string KN/TESZOR-Zolltarifnummer (z. B. 8471300000)
description string Kurzbeschreibung
description_long string Ausführliche Beschreibung (HTML erlaubt)
meta_title string SEO-Titel
meta_keyword string SEO-Schlüsselwörter (durch Komma getrennt)
meta_description string SEO-Beschreibung
packaging_note string Verpackungshinweis
active_id int Aktiver Status (1=aktiv, 0=inaktiv — Standard: 1)
partner_id int Kennung des Herstellers/Partners
acquisition_partner_id int Kennung des bevorzugten Lieferanten
unnumber_id int Kennung der UN-Nummer (Gefahrgut)
category_id int Kennung der Produkthauptkategorie
default_store_id int Kennung des Standardlagers
default_store_locality_id int Kennung des Standard-Lagerplatzes
ledger_number_in_id int Kennung der Hauptbuch-Kontonummer (eingehend)
ledger_number_out_id int Kennung der Hauptbuch-Kontonummer (ausgehend)
ledger_number_out_abroad_id int Kennung der Hauptbuch-Kontonummer (Export)
acquisition_auto int Automatische Bestellung (0/1)
serialnumber_required int Seriennummernpflichtig (0=nein, 1=ja)
stockable int Verwaltet Bestand (0/1 — Standard: 1 bei type_id=1)
synchronizable int Webshop-Synchronisierung (0/1 — Standard: 1)
integration_use_price_list int Aktualisierung des Verkaufspreises bei Webbestellung (0/1)
drs int DRS-Pflichtrückgabesystem (0/1)
excisable int Verbrauchsteuerpflichtiges Produkt (0/1)
tax_inverse int Produkt mit Reverse-Charge-Besteuerung (0/1)
service_intermediate int Vermittelte Dienstleistung (0/1)
erase_code int Datenlöschcode (0/1)
package int Gebinde/Verpackungsmittel (0/1)
size_width decimal Breite (cm)
size_height decimal Höhe (cm)
size_depth decimal Tiefe (cm)

B) item[]-Array — ausschließlich bei type_id = 1 (Variantenprodukt)

Mindestens 1 Element ist erforderlich. Jede Ausführung (Variante) besitzt eine eigene Artikelnummer. Die Preise sind auf Ebene der Ausführung anzugeben.

Feld Typ Pflichtfeld Beschreibung
item[n][id] int 0 = neue Ausführung, >0 = Änderung einer bestehenden
item[n][partnumber] string Artikelnummer — mind. 3 Zeichen, im System eindeutig
item[n][product_unit_id] int Kennung der Mengeneinheit (z. B. Stk, kg, l)
item[n][product_unit_value] decimal Gebindemenge (z. B. 0.5, 1.0, 6.0)
item[n][product_unit_name] string Individuelle Bezeichnung der Ausführung (z. B. "0,5-l-Flasche")
item[n][product_url] string Artikelspezifischer URL-Slug
item[n][quantity_min] decimal Mindestbestand (Warnschwelle)
item[n][quantity_opt] decimal Optimaler Bestand
item[n][quantity_max] decimal Maximaler Bestand
item[n][weight_netto] decimal Nettogewicht in kg (Komma als Dezimaltrennzeichen wird akzeptiert)
item[n][weight_brutto] decimal Bruttogewicht in kg (inkl. Verpackung)
item[n][warranty_month] int Garantie in Monaten
item[n][remove] int 1 = Löschmarkierung (Soft Delete)
PREISFELDER — auf Ebene der Ausführung
item[n][price] decimal Netto-Verkaufspreis
item[n][currency_id] int Kennung der Verkaufswährung
item[n][tax_id] int Kennung des Umsatzsteuersatzes (Verkauf)
item[n][incoming_price] decimal Netto-Einkaufspreis
item[n][incoming_currency_id] int Kennung der Einkaufswährung
item[n][incoming_tax_id] int Kennung des Umsatzsteuersatzes (Einkauf)
item[n][incoming_cost_price] decimal Selbstkostenpreis
item[n][price_on_sale] decimal Aktions-Verkaufspreis
item[n][price_on_sale_date_end] datetime Ablaufdatum der Aktion (YYYY-MM-DD HH:ii:ss)
item[n][price_discount] decimal Rabattbetrag (%)
item[n][list_price] decimal Unverbindliche Preisempfehlung (UVP)
item[n][list_currency_id] int Kennung der Währung der Preisempfehlung
item[n][list_tax_id] int Kennung des Umsatzsteuersatzes der Preisempfehlung

C) Felder auf Produktebene — bei type_id = 2, 3, 4, 5, 6

Bei diesen Typen sind die Felder auf Root-Ebene anzugeben (nicht im item[]-Array). Die Preise werden ebenfalls auf Root-Ebene gespeichert.

Feld Typ Pflichtfeld Beschreibung
partnumber string Artikelnummer — mind. 3 Zeichen, im System eindeutig
weight_netto decimal Nettogewicht in kg
weight_brutto decimal Bruttogewicht in kg (inkl. Verpackung)
warranty_month int Garantie in Monaten
product_url string Produkt-URL-Slug
PREISFELDER — auf Root-Ebene
price decimal Netto-Verkaufspreis
currency_id int Kennung der Verkaufswährung
tax_id int Kennung des Umsatzsteuersatzes (Verkauf)
incoming_price decimal Netto-Einkaufspreis
incoming_currency_id int Kennung der Einkaufswährung
incoming_tax_id int Kennung des Umsatzsteuersatzes (Einkauf)
incoming_cost_price decimal Selbstkostenpreis
price_on_sale decimal Aktions-Verkaufspreis
price_on_sale_date_end datetime Ablaufdatum der Aktion (YYYY-MM-DD HH:ii:ss)
price_discount decimal Rabattbetrag (%)
list_price decimal Unverbindliche Preisempfehlung (UVP)
list_currency_id int Kennung der Währung der Preisempfehlung
list_tax_id int Kennung des Umsatzsteuersatzes der Preisempfehlung

Beispielanfrage — TYPE 1 (Variantenprodukt, mit item[]-Array)

POST /api/product/save
X-API-KEY: {ihr_api_schluessel}
Content-Type: application/json

{
  "data": {
    "id": 0,
    "type_id": 1,
    "product_group_id": 0,
    "name": "Ásványvíz",
    "vtsz": "2201100090",
    "description": "Természetes ásványvíz",
    "active_id": 1,
    "stockable": 1,
    "synchronizable": 1,
    "category_id": 5,
    "item": [
      {
        "id": 0,
        "partnumber": "ASVANY-05L",
        "product_unit_id": 3,
        "product_unit_value": 0.5,
        "product_unit_name": "0,5l palack",
        "remove": 0,
        "price": 120,
        "currency_id": 1,
        "tax_id": 2,
        "incoming_price": 75,
        "incoming_currency_id": 1,
        "incoming_tax_id": 2
      },
      {
        "id": 0,
        "partnumber": "ASVANY-15L",
        "product_unit_id": 3,
        "product_unit_value": 1.5,
        "product_unit_name": "1,5l palack",
        "remove": 0,
        "price": 250,
        "currency_id": 1,
        "tax_id": 2,
        "incoming_price": 160,
        "incoming_currency_id": 1,
        "incoming_tax_id": 2
      }
    ]
  }
}

Beispielanfrage — TYPE 6 (Einfaches Produkt)

POST /api/product/save
X-API-KEY: {ihr_api_schluessel}
Content-Type: application/json

{
  "data": {
    "id": 0,
    "type_id": 6,
    "product_group_id": 0,
    "name": "Irodai szék",
    "partnumber": "SZEK-001",
    "vtsz": "9401300000",
    "description": "Ergonomikus irodai szék",
    "active_id": 1,
    "weight_netto": 12.5,
    "weight_brutto": 14.0,
    "warranty_month": 24,
    "price": 45000,
    "currency_id": 1,
    "tax_id": 2,
    "incoming_price": 28000,
    "incoming_currency_id": 1,
    "incoming_tax_id": 2
  }
}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "product_group_id": 15,
    "product_id": 48,
    "partnumber": "SZEK-001"
  }
}
POST /api/product/delete

Löschen eines Produkts. Es kann nur ein Produkt gelöscht werden, dem keine Bestandsbewegung zugeordnet ist.

POST-Felder — data-Objekt

Feld Typ Pflichtfeld Beschreibung
id int Die Kennung der zu löschenden Produktgruppe (product_group_id)

Beispielanfrage

POST /api/product/delete
X-API-KEY: {ihr_api_schluessel}
Content-Type: application/json

{
  "data": {
    "id": 15
  }
}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}
POST /api/product/save_weight

Aktualisierung des Netto- und Bruttogewichts eines Produkts anhand der Artikelnummer. Erfasst eine Version in der Tabelle db_product_data.

POST-Felder — data-Objekt

Feld Typ Pflichtfeld Beschreibung
partnumber string Die Artikelnummer des Produkts (eindeutige Kennung)
weight_netto decimal Nettogewicht in kg
weight_brutto decimal Bruttogewicht in kg (inkl. Verpackung)

Beispielanfrage

POST /api/product/save_weight
X-API-KEY: {ihr_api_schluessel}
Content-Type: application/json

{
  "data": {
    "partnumber": "TERM-0042",
    "weight_netto": 0.48,
    "weight_brutto": 0.62
  }
}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}
POST /api/product/save_warehouse_info

Aktualisierung der Lagerinformationen und des Bruttogewichts eines Produkts. Erfasst eine Version sowohl in der Tabelle db_product_data als auch in db_product_group_data.

POST-Felder — data-Objekt

Feld Typ Pflichtfeld Beschreibung
partnumber string Die Artikelnummer des Produkts
weight_brutto decimal Bruttogewicht in kg
store_id int Kennung des Standardlagers
store_locality_id int Kennung des Standard-Lagerplatzes

Beispielanfrage

POST /api/product/save_warehouse_info
X-API-KEY: {ihr_api_schluessel}
Content-Type: application/json

{
  "data": {
    "partnumber": "TERM-0042",
    "weight_brutto": 0.62,
    "store_id": 1,
    "store_locality_id": 14
  }
}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}
POST /api/product/save_extra

Aktualisierung der Maßangaben, der Lagerplatzierung und des Barcodes eines Produkts anhand der Artikelnummer. Falls der angegebene Barcode noch nicht existiert, wird er automatisch angelegt.

POST-Felder — data-Objekt

Feld Typ Pflichtfeld Beschreibung
partnumber string Die Artikelnummer des Produkts
size_width decimal Breite (cm)
size_height decimal Höhe (cm)
size_depth decimal Tiefe (cm)
weight_brutto decimal Bruttogewicht in kg
store_id int Kennung des Standardlagers
store_locality_id int Kennung des Standard-Lagerplatzes
barcode string EAN/Barcode — falls noch nicht vorhanden, wird er automatisch in der Tabelle db_product_barcode angelegt

Beispielanfrage

POST /api/product/save_extra
X-API-KEY: {ihr_api_schluessel}
Content-Type: application/json

{
  "data": {
    "partnumber": "TERM-0042",
    "size_width": 30.5,
    "size_height": 20.0,
    "size_depth": 15.0,
    "weight_brutto": 0.62,
    "store_id": 1,
    "store_locality_id": 14,
    "barcode": "5901234123457"
  }
}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {}
}

Nimm Kontakt mit uns auf

Interessierst du dich für unsere Software? Schreib uns einfach!

Brauchst du Hilfe?

Wenn du keine Antwort findest und Unterstützung brauchst

Jetzt registrieren,
später bezahlen!

Teste es 3 Tage kostenlos, ohne Risiko und Verpflichtungen!