Produktparameter API

Verwaltung der Parameterwerte von Produktgruppen und Produkten - Abfrage, Liste, Speichern und Löschen

Basis-URL

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

Jede Anfrage liefert eine JSON-Antwort zurück. Bei einer erfolgreichen Antwort gilt result.code == 1, bei einem Fehler result.code == 0. Diese API verwaltet die Werte der den Produkten zugeordneten Parameter. Die Definition der verfügbaren Parameter (Name, Typ, Maßeinheit, Kategoriezuordnung) ist in der Produktparameter-Schema API enthalten, die Werte sind über das Feld param_schema_id damit verknüpft.

Wert auf Gruppenebene und auf Produktebene

Der Wert eines Parameters kann auf zwei Ebenen angegeben werden:

Ebeneproduct_idBeschreibung
GruppenebenenullDer Wert gilt für alle Produkte der Produktgruppe (product_group_id). Dies ist die übliche Standardebene.
ProduktebenebefülltDer Wert gilt für ein konkretes Produkt innerhalb der angegebenen Produktgruppe product_group_id.

Die Endpunkte get und save arbeiten je nach Angabe von product_id auf der entsprechenden Ebene: Ohne product_id wird nur der Wert auf Gruppenebene berücksichtigt.

Format von param_value je Typ

Der Wert ist entsprechend dem Feld param_type_id des Schemas zu interpretieren. Er wird als Text gespeichert, höchstens 1500 Zeichen.

param_type_idTypFormat des Werts
1ZahlZahl mit Dezimalpunkt als Text, z. B. "12.50". Die Anzahl der angezeigten Dezimalstellen ergibt sich aus dem Feld param_schema_round_decimal des Schemas, die Maßeinheit aus param_unit_id.
2TextFreitext, z. B. "Rot"
3Logisch"1" = ja, "0" = nein
4TextlinkVerweis als Text, z. B. "https://beispiel.de/datenblatt.pdf"
5WertemengeJSON-Array der ausgewählten Werte als Text, z. B. "[\"Gluten\",\"Milch\"]". Die Elemente stammen aus der Liste param_enum des Schemas. Beim Speichern kann param_value auch direkt als Array angegeben werden, die API speichert es als Text.

Felder des Wertdatensatzes

FeldTypBeschreibung
idintEindeutige Kennung des Wertdatensatzes
param_schema_idintKennung des Parameterschemas (Produktparameter-Schema API)
param_valuestringWert des Parameters (Format gemäß der obigen Tabelle), höchstens 1500 Zeichen
product_group_idintKennung der Produktgruppe
product_idintKennung des Produkts bei einem Wert auf Produktebene, bei einem Wert auf Gruppenebene null
GET /api/product_param/get

Abruf eines einzelnen Parameterwerts. Angegeben werden kann direkt die Kennung des Werts (id) oder die Kombination aus Produktgruppe und Schema. Mindestens ein Parameter muss angegeben werden, andernfalls lautet die Antwort result.code == 0 und die Meldung Not found.

Query-Parameter

ParameterTypErforderlichBeschreibung
idintKennung des Wertdatensatzes
product_group_idintKennung der Produktgruppe
param_schema_idintKennung des Parameterschemas
product_idintKennung des Produkts. Wenn angegeben, wird der Wert auf Produktebene gesucht, andernfalls nur der auf Gruppenebene.
Die Filter wirken UND-verknüpft und liefern den allerersten Treffer zurück. Verwenden Sie für einen exakten, eindeutigen Treffer die id oder das Paar product_group_id und param_schema_id.

Beispielanfrage

GET /api/product_param/get?product_group_id=120&param_schema_id=7
X-API-KEY: {ihr_api_schluessel}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 3451,
    "param_schema_id": 7,
    "param_value": "12.50",
    "product_group_id": 120,
    "product_id": null
  }
}
GET /api/product_param/list

Liste der Parameterwerte, ergänzt um die Daten des Schemas. Werte, die zu gelöschten Schemas (remove = 1) gehören, werden nicht angezeigt. Wenn es keine Treffer gibt, lautet die Antwort result.code == 0 und die Meldung Not found.

Query-Parameter

ParameterTypErforderlichBeschreibung
list_condition[product_group_id]intFilterung nach den Werten einer Produktgruppe
list_condition[product_id]intFilterung nach den Werten auf Produktebene eines Produkts
list_condition[param_schema_id]intFilterung nach einem Parameterschema
list_condition[param_value_not_empty]intBei 1 nur die befüllten (nicht leeren) Werte
list_condition[category_id]intVeralteter Filter auf das alte Feld category_id des Schemas (bei neueren Schemas nicht befüllt, liefert daher in der Regel keine Treffer)
Die Liste ist nicht paginierbar und gibt ohne Filter alle Parameterwerte des Tenants zurück. Bei großen Stammdatenbeständen kann dies eine sehr umfangreiche Antwort ergeben, daher empfiehlt es sich, mindestens den Filter product_group_id oder param_schema_id zu verwenden.

Zusätzliche Antwortfelder

Die Listenelemente enthalten die Felder der Tabelle Felder des Wertdatensatzes und zusätzlich:

FeldTypBeschreibung
param_namestringBezeichnung des Parameters aus dem Schema
param_type_idintTyp des Parameters (1 = Zahl, 2 = Text, 3 = logisch, 4 = Textlink, 5 = Wertemenge)
param_type_namestringBezeichnung des Parametertyps
param_schema_round_decimalintAnzahl der Dezimalstellen bei Parametern vom Typ Zahl
unit_name_shortstringKurzname der Maßeinheit, null, wenn es keine Maßeinheit gibt
category_idintVeraltetes Feld, in der Regel leer. Die Kategoriezuordnung des Schemas liefert das Feld category_ids der Produktparameter-Schema API.
category_namestringVeraltetes Feld, in der Regel leer

Beispielanfrage

GET /api/product_param/list?list_condition[product_group_id]=120&list_condition[param_value_not_empty]=1
X-API-KEY: {ihr_api_schluessel}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": [
    {
      "id": 3451,
      "param_schema_id": 7,
      "param_value": "12.50",
      "product_group_id": 120,
      "product_id": null,
      "param_name": "Bruttogewicht",
      "category_id": null,
      "param_type_id": 1,
      "param_schema_round_decimal": 2,
      "unit_name_short": "kg",
      "category_name": null,
      "param_type_name": "Zahl"
    },
    {
      "id": 3452,
      "param_schema_id": 9,
      "param_value": "[\"Gluten\",\"Milch\"]",
      "product_group_id": 120,
      "product_id": null,
      "param_name": "Allergene",
      "category_id": null,
      "param_type_id": 5,
      "param_schema_round_decimal": 0,
      "unit_name_short": null,
      "category_name": null,
      "param_type_name": "Wertemenge"
    }
  ]
}
POST /api/product_param/save

Erstellung oder Änderung eines Parameterwerts. Die Angabe von id ist nicht erforderlich: Wenn sie fehlt, sucht das System anhand von product_group_id, param_schema_id und (falls vorhanden) product_id nach dem bestehenden Wert und ändert diesen, gibt es keinen, wird ein neuer erstellt. So entsteht beim mehrfachen Senden derselben Anfrage kein doppelter Wert.

POST-Felder - data-Objekt

FeldTypErforderlichBeschreibung
idintKennung eines bestehenden Wertdatensatzes. Ist sie angegeben, existiert aber nicht, endet die Anfrage mit dem Fehler Not found.
param_schema_idintKennung des Parameterschemas
product_group_idintKennung der Produktgruppe
param_valuestring | arrayWert des Parameters im Format, das seinem Typ entspricht (siehe oben). Beim Typ Wertemenge kann auch ein Array angegeben werden. Ein leerer Text ("") ist ebenfalls gültig, dann wird der Wert gelöscht, der Datensatz bleibt aber erhalten.
product_idintKennung des Produkts zum Speichern eines Werts auf Produktebene. Fehlt sie, wird ein Wert auf Gruppenebene gespeichert.
Die product_id kann bei einem bestehenden Datensatz durch eine Änderung weder gelöscht noch auf null gesetzt werden: Ein Datensatz auf Produktebene bleibt auf Produktebene. Der Wert auf Gruppenebene kann ohne Angabe von product_id geändert werden.

POST-Felder - params-Objekt (optional)

FeldTypPflichtBeschreibung
create_webhookint1 = nach dem Speichern wird ein Produkt-Upload-Ereignis (Webhook) für die aktiven Integrationen erstellt, bei denen der Produkt-Upload aktiviert ist, sodass die Parameteränderung auch an den Webshop übertragen wird. Das Ereignis wird für synchronisierbare Produkte erstellt: bei einem Wert auf Produktebene für das jeweilige Produkt, bei einem Wert auf Gruppenebene (ohne product_id) für alle Produkte der Produktgruppe. Existiert für das Produkt bereits ein nicht gesendetes Ereignis, wird kein Duplikat erstellt.

Beispielanfrage - Zahlenwert auf Gruppenebene

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

{
  "data": {
    "param_schema_id": 7,
    "product_group_id": 120,
    "param_value": "12.50"
  },
  "params": {
    "create_webhook": 1
  }
}

Beispielanfrage - Wert auf Produktebene

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

{
  "data": {
    "param_schema_id": 2,
    "product_group_id": 120,
    "product_id": 845,
    "param_value": "Rot"
  }
}

Beispielanfrage - Wert vom Typ Wertemenge

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

{
  "data": {
    "param_schema_id": 9,
    "product_group_id": 120,
    "param_value": ["Gluten", "Milch"]
  }
}

Beispielantwort

{
  "result": { "code": 1, "message": "success" },
  "data": {
    "id": 3451
  }
}
POST /api/product_param/delete

Löschung eines Parameterwerts anhand der ID. Die Löschung ist endgültig: Der Datensatz wird entfernt (das Parameterschema bleibt davon unberührt). Wenn Sie nur den Inhalt des Werts leeren möchten, verwenden Sie den Endpunkt save mit leerem param_value.

POST-Felder

FeldTypErforderlichBeschreibung
idintKennung des zu löschenden Parameter-Wertdatensatzes

POST-Felder - params-Objekt (optional)

FeldTypPflichtBeschreibung
create_webhookint1 = nach dem Löschen wird ein Produkt-Upload-Ereignis (Webhook) für das Produkt des gelöschten Wertes erstellt, bei einem Wert auf Gruppenebene für alle Produkte der Produktgruppe (Details siehe Endpunkt save).

Beispielanfrage

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

{
  "id": 3451,
  "params": {
    "create_webhook": 1
  }
}

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!