Modifikatoren
Übersicht #
Modifiers ist ein leistungsstarkes Tool, das es Ihnen ermöglicht, die Produktdaten nach der Synchronisierung zu ändern, ohne einen Entwickler zur Änderung des Datenfeeds hinzuzuziehen. Da es sich derzeit um ein experimentelles Tool handelt, kann es vorerst nur vom internen Clerk-Personal verwendet werden. Bitte wenden Sie sich an den Support, wenn Sie diese Funktionalität benötigen.
Es unterstützt die folgenden Befehle.
Befehl | Wirkung |
---|---|
set | Fügt allen Produkten ein Attribut hinzu |
delete | Entfernt ein Attribut von allen Produkten |
update | Aktualisiert ein Attribut bei allen Produkten |
type | Ändert den Typ eines Attributs bei allen Produkten |
split | Teilt einen String nach Separator in eine Liste von Strings. |
append | Fügt einem bestehenden Listenattribut einen Wert hinzu |
expression | Bewertet einen Ausdruck in einem Attribut |
format | Formatiert einen String in einem Attribut |
lower | Formatiert einen String in Kleinbuchstaben |
upper | Formatiert einen String in Großbuchstaben |
capitalize | Formatiert einen String in Titel-Schreibweise mit dem ersten Zeichen in Großbuchstaben |
Alle Befehle unterstützen auch die if-Klausel. Die if-Klausel kann zu allem mit einer Aussage hinzugefügt werden, und der Befehl wird nur auf das Attribut ausgeführt, wenn die Aussage als wahr bewertet wird.
Befehle #
Hier sind die einzelnen Befehle mit einem Beispiel, mit Variablen nach Bedarf. Alle Befehle benötigen einen Typ, der angibt, welchen Befehl auszuführen ist, und ein Attribut, das angibt, auf welches Attribut der Befehl ausgeführt werden soll.
Set #
Nimmt einen new_value, der zeigt, welchen Wert das Attribut erhalten soll, und kann sowohl als neues Attribut als auch zur Ersetzung eines bestehenden Attributs verwendet werden.
{
"type":"set",
"attribute": ATTRIBUTE,
"new_value": NEW_VALUE
}
Beispiel In diesem Beispiel werde ich das Attribut ‘shown’ überschreiben, wenn das Produkt nicht auf Lager ist.
{
"type": "set",
"attribute": "shown",
"new_value": "false",
"if": "stock < 1"
}
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"stock" : 0,
"shown" : true,
"price": 200.00,
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"stock" : 0,
"shown" : false,
"price": 200.00,
}
Delete #
Löscht das angegebene Attribut von allen Produkten.
{
"type":"delete",
"attribute": ATTRIBUTE
}
Beispiel Hier werde ich das Attribut shown für alle Produkte entfernen.
{
"type":"delete",
"attribute": "shown"
}
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"shown": true,
"price": 200.00,
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
}
Update #
Wenn Sie nicht-technisch sind und dies lesen. Schnallen Sie sich an, denn wir verwenden regex mit der python Bibliothek.
Update nimmt das Attribut regexp, das ein Regex-Ausdruck ist, der auf einige Teile des Attributs passt und jede übereinstimmende Gruppe mit dem Inhalt von replace_by ersetzt. Hier ist ein hilfreiches Tool, um Ihr Regex zu erstellen.
Ein Beispiel für ein Regex könnte [/]+ mit einem replace_by von ’/’ sein, dies würde alle Stellen im Attribut, die mehrere / hintereinander haben, durch ein einzelnes / ersetzen. So würde https://test//tests zu https:/test/tests werden.
{
"type":"update",
"attribute": "ATTRIBUTE",
"regexp": "MATCH_REGEX",
"replace_by": "STRING",
}
Beispiel Hier werde ich einen Teil der URL entfernen, mit einem Regex, der den letzten Teil der URL abgleicht, wobei ich sicherstelle, dass ich das / escapiere.
{
"type":"update",
"attribute": "url",
"regexp": "\/\/__example",
"replace_by": ""
}
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"url": "https://example.domain/product/153//__example",
"price": 200.00
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"url": "https://example.domain/product/153",
"price": 200.00
}
Type #
Erlaubt das Ändern von Typen in einem Attribut. Wenn die Daten also eine Zahl sind und Sie sie als String benötigen, können Sie dies verwenden, um sie zu typisieren.
{
"type":"type",
"attribute": "ATTRIBUTE",
"new_type": any of ["string", "int", "float", "boolean"]
}
Beispiel Hier ändern wir den Typ des Preises von einem String in einen Float.
{
"type":"type",
"attribute": "price",
"new_type": "float"
}
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"price": "200",
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
}
Split #
Erlaubt das Teilen eines Strings nach einem Separator in eine Liste von Strings. Standardmäßig wird nach Komma geteilt, wenn kein Separator angegeben ist.
{
"type":"split",
"attribute": "ATTRIBUTE",
"separator": "STRING"
}
Beispiel Hier teilen wir ein Attribut mit Kategorien.
{
"type":"split",
"attribute": "string_categories"
}
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"string_categories": "lineman, chute"
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"string_categories":["lineman","chute"]
}
Append #
Erlaubt das Hinzufügen neuer Werte zu einem bestehenden Listenattribut.
Dies könnte das Hinzufügen zusätzlicher Strings zu einem tags
-Attribut oder das Hinzufügen einer neuen Kategorie zu einem categories
-Attribut sein.
{
"type": "append",
"attribute": LIST_ATTRIBUTE,
"append_element": VALUE_TO_APPEND,
}
Beispiel Hier werde ich ein neues Tag zum Produkt hinzufügen, wenn es einen Preis unter 100 hat.
{
"type": "append",
"attribute": "tags",
"append_element": "Cheap-Product",
"if": "price < 100"
}
Vorher #
{
"name": "Lineman Goalkeeper",
"price": 99.99,
"tags": ["boots", "brand-lineman"]
}
Danach #
{
"name": "Lineman Goalkeeper",
"price": 99.99,
"tags": ["boots", "brand-lineman", "Cheap-Product"]
}
Expression #
Bewertet einen Ausdruck, der im gegebenen Attribut enthalten ist. Wenn zum Beispiel der String ‘price * 0.8’ in einem Attribut vorhanden ist und wir den Ausdruck darauf ausführen, wird das Ergebnis 80% von dem sein, was im Preisattribut steht.
{
"type":"expression",
"new_value": NEW_VALUE,
"attribute": ATTRIBUTE
}
Beispiel Bewertet einen Ausdruck, der im gegebenen Attribut enthalten ist. Wenn zum Beispiel der String ‘price * 0.8’ in einem Attribut vorhanden ist und wir den Ausdruck darauf ausführen, wird das Ergebnis 80% von dem sein, was im Preisattribut steht.
[
{
"type": "expression",
"attribute": "price_alt",
"new_value": "price * 0.65"
}
]
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
"price_alt": "130.0",
}
If #
Wenn if zu einem der oben genannten Befehle mit einer Aussage hinzugefügt wird, wird der Befehl nur auf Attribute ausgeführt, bei denen die gegebene Aussage als wahr bewertet wird.
Verfügbare Operatoren sind:
Operator | Bedeutung |
---|---|
= | Entspricht allen Produkten, bei denen das Attribut gleich dem Wert ist. |
!= | Entspricht allen Produkten, bei denen das Attribut nicht gleich dem Wert ist. |
> | Entspricht allen Produkten, bei denen das Attribut größer als der Wert ist. |
>= | Entspricht allen Produkten, bei denen das Attribut größer oder gleich dem Wert ist. |
< | Entspricht allen Produkten, bei denen das Attribut kleiner als der Wert ist. |
in | Entspricht einem Teilstring in einem String oder einem Element in einer Liste |
Beim Vergleichen eines Attributs mit einem bestimmten Wert ist die Syntax:
{
"type":"delete"
"attribute": ATTRIBUTE,
"if":"ATTRIBUTE OPERATOR VALUE"
}
Beim Bewerten eines Teilstrings in einem String oder eines Elements in einer Liste ist die Syntax:
{
"type":"delete"
"attribute": ATTRIBUTE,
"if":"VALUE in ATTRIBUTE"
}
Beispiel Vergleich mit einem bestimmten Wert
{
"type": "set",
"attribute": "shown",
"new_value": "false",
"if": "stock < 1"
}
Beispiel Überprüfung eines Teilstrings
{
"type": "set",
"attribute": "shown",
"new_value": "false",
"if": "'withdrawn' in name"
}
if-Aussagen können auch mit ‘and’/‘or’ in Aussagen gruppiert werden:
{
"type": "set",
"attribute": "shown",
"new_value": "false",
"if": "(stock < 1 and 'withdrawn' in name) or brand = 'Nike'"
}
Kombinationen #
Modifiers können kombiniert werden, um komplexere Änderungen zu erstellen, wobei beliebig viele verschiedene Befehle verwendet werden. Hier sind einige Beispiele:
Preisformatierung #
Hier ist ein Beispiel für mehrere zusammenhängende Modifikationen. Hier erstelle ich ein neues Attribut namens price_alt für ein bestimmtes Produkt. Es nimmt sowohl den Preis als auch die Währung und erstellt ein neues Feld mit ihnen.
[{
"type":"set",
"attribute":"price_alt",
"new_value":"{price}{currency}",
"if":"id == 153"
},{
"type":"update",
"attribute":"price_alt",
"regexp":"o",
"replace_by":"i",
"if":"id == 153"
},{
"type":"format",
"attribute":"price_alt",
"currency":"DKK",
"if":"id == 153"
}]
Dies würde ein neues Feld namens price_alt mit dem Preis und DKK am Ende erstellen.
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
"price_alt": "200.00DKK"
}
Erstellen einer Tags-Liste #
Hier erstellen wir ein neues Listenattribut namens color_tags
und fügen spezifische Tags hinzu, um bessere Filteroptionen zu bieten:
[{
"type": "set",
"attribute": "color_tags",
"new_value": []
},
{
"type": "append",
"attribute": "color_tags",
"append_element": "red",
"if": "'red' in tags"
},
{
"type": "append",
"attribute": "color_tags",
"append_element": "blue",
"if": "'blue' in tags"
},
{
"type": "append",
"attribute": "color_tags",
"append_element": "green",
"if": "'green' in tags"
}]
Dies würde ein neues Attribut namens color_tags
mit den folgenden Werten erstellen:
Vorher #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
"tags": ["chute", "category-boots", "type-goalkeeper", "red", "blue", "green"]
}
Danach #
{
"id": 153,
"name": "Lineman Chute",
"price": 200.00,
"tags": ["chute", "category-boots", "type-goalkeeper", "red", "blue", "green"],
"color_tags": ["red", "blue", "green"]
}
Diese Seite wurde von einer hilfreichen KI übersetzt, daher kann es zu Sprachfehlern kommen. Vielen Dank für Ihr Verständnis.