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:
| Ebene | product_id | Beschreibung |
|---|---|---|
| Gruppenebene | null | Der Wert gilt für alle Produkte der Produktgruppe (product_group_id). Dies ist die übliche Standardebene. |
| Produktebene | befüllt | Der 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_id | Typ | Format des Werts |
|---|---|---|
1 | Zahl | Zahl 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. |
2 | Text | Freitext, z. B. "Rot" |
3 | Logisch | "1" = ja, "0" = nein |
4 | Textlink | Verweis als Text, z. B. "https://beispiel.de/datenblatt.pdf" |
5 | Wertemenge | JSON-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
| Feld | Typ | Beschreibung |
|---|---|---|
id | int | Eindeutige Kennung des Wertdatensatzes |
param_schema_id | int | Kennung des Parameterschemas (Produktparameter-Schema API) |
param_value | string | Wert des Parameters (Format gemäß der obigen Tabelle), höchstens 1500 Zeichen |
product_group_id | int | Kennung der Produktgruppe |
product_id | int | Kennung des Produkts bei einem Wert auf Produktebene, bei einem Wert auf Gruppenebene null |
/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
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | int | Kennung des Wertdatensatzes | |
product_group_id | int | Kennung der Produktgruppe | |
param_schema_id | int | Kennung des Parameterschemas | |
product_id | int | Kennung des Produkts. Wenn angegeben, wird der Wert auf Produktebene gesucht, andernfalls nur der auf Gruppenebene. |
id oder das Paar product_group_id und param_schema_id.
Beispielanfrage
GET /api/product_param/get?product_group_id=120¶m_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
}
}
/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
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
list_condition[product_group_id] | int | Filterung nach den Werten einer Produktgruppe | |
list_condition[product_id] | int | Filterung nach den Werten auf Produktebene eines Produkts | |
list_condition[param_schema_id] | int | Filterung nach einem Parameterschema | |
list_condition[param_value_not_empty] | int | Bei 1 nur die befüllten (nicht leeren) Werte | |
list_condition[category_id] | int | Veralteter Filter auf das alte Feld category_id des Schemas (bei neueren Schemas nicht befüllt, liefert daher in der Regel keine Treffer) |
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:
| Feld | Typ | Beschreibung |
|---|---|---|
param_name | string | Bezeichnung des Parameters aus dem Schema |
param_type_id | int | Typ des Parameters (1 = Zahl, 2 = Text, 3 = logisch, 4 = Textlink, 5 = Wertemenge) |
param_type_name | string | Bezeichnung des Parametertyps |
param_schema_round_decimal | int | Anzahl der Dezimalstellen bei Parametern vom Typ Zahl |
unit_name_short | string | Kurzname der Maßeinheit, null, wenn es keine Maßeinheit gibt |
category_id | int | Veraltetes Feld, in der Regel leer. Die Kategoriezuordnung des Schemas liefert das Feld category_ids der Produktparameter-Schema API. |
category_name | string | Veraltetes 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"
}
]
}
/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
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | int | Kennung eines bestehenden Wertdatensatzes. Ist sie angegeben, existiert aber nicht, endet die Anfrage mit dem Fehler Not found. | |
param_schema_id | int | Kennung des Parameterschemas | |
product_group_id | int | Kennung der Produktgruppe | |
param_value | string | array | Wert 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_id | int | Kennung des Produkts zum Speichern eines Werts auf Produktebene. Fehlt sie, wird ein Wert auf Gruppenebene gespeichert. |
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)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
create_webhook | int | 1 = 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
}
}
/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
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
id | int | Kennung des zu löschenden Parameter-Wertdatensatzes |
POST-Felder - params-Objekt (optional)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
create_webhook | int | 1 = 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": {}
}
Interessierst du dich für unsere Software? Schreib uns einfach!
Jetzt registrieren,
später bezahlen!