Verwendung von Sync-Modifikatoren

Lernen Sie, wie man Modifikatoren verwendet.

Überblick

Modifiers ist ein leistungsfähiges Tool, mit dem Sie die Produktdaten nach der Synchronisierung ändern können, ohne dass Sie einen Entwickler beauftragen müssen, Änderungen am Datenfeed vorzunehmen. Da es sich derzeit um ein experimentelles Tool handelt, können es vorerst nur die internen Sachbearbeiter nutzen. Wenden Sie sich also bitte an den Support, wenn Sie diese Funktion benötigen.

Es unterstützt die folgenden Befehle.

BefehlWirkung
setFügt ein Attribut zu allen Produkten hinzu
deleteEntfernt ein Attribut bei allen Produkten
updateAktualisiert ein Attribut für alle Produkte
typeÄndert den Typ eines Attributs für alle Produkte
splitZerlegt eine Zeichenkette durch ein Trennzeichen in eine Liste von Zeichenketten.
expressionWertet einen Ausdruck in einem Attribut aus
formatFormatiert eine Zeichenkette in einem Attribut
lowerFormatiert eine Zeichenkette in alle Kleinbuchstaben
upperFormatiert eine Zeichenkette in alle Großbuchstaben
capitalizeFormatiert eine Zeichenkette in Titelform, wobei das erste Zeichen großgeschrieben wird

Alle Befehle unterstützen auch die if-Klausel. Die if-Klausel kann zu jeder beliebigen Anweisung hinzugefügt werden, und der Befehl wird nur dann für das Attribut ausgeführt, wenn die Anweisung als wahr ausgewertet wird.

Befehle

Hier sind die einzelnen Befehle mit einem Beispiel, mit Variablen, wie benötigt. Alle Befehle benötigen einen Typ, der angibt, welcher Befehl ausgeführt werden soll, und ein Attribut, das angibt, für welches Attribut der Befehl ausgeführt werden soll.

Setzen

Nimmt einen neuen_Wert, der angibt, auf welchen Wert das Attribut gesetzt werden soll. Er kann sowohl als neues Attribut als auch als Ersatz für ein bestehendes Attribut verwendet werden.

{
  "type": "set",
  "attribute": ATTRIBUTE,
  "new_value": NEU_WERT
}

Beispiel In diesem Beispiel wird das Attribut “angezeigt” überschrieben, wenn das Produkt nicht mehr vorrätig ist.

{
    "type": "set",
    "attribute": "shown",
    "new_value": "false",
    "if": "stock < 1"
}

nach { “id”: 153, “name”: “Lineman Chute”, “price”: 200.00, }

Update

Wenn Sie kein Techniker sind und dies lesen. Halten Sie sich fest, 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 ersetzt jede übereinstimmende Gruppe durch den Inhalt von replace_by. Hier finden Sie ein hilfreiches Tool für die Erstellung Ihrer Regex.

Ein Beispiel für eine Regex könnte [/]+ mit einem replace_by von ’/’ sein, dies würde alle Stellen im Attribut nehmen, die mehrere / in einer Reihe haben und sie mit einem einzelnen / ersetzen. So würde https://test//tests zu https:/test/tests.

{
  "Typ": "Aktualisierung"
  "attribute": ATTRIBUTE
  "regexp": MATCH_REGEX
  "replace_by": STRING
}

Beispiel Hier werde ich einen Teil der URL entfernen, und zwar mit einer Regex, die den letzten Teil der URL bearbeitet, wobei ich darauf achte, das / zu entschlüsseln.

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "stock" : 0,
  "shown" : true,
  "price": 200.00,
}

Format

Ermöglicht die Formatierung von Attributstrings. Das Attribut hat wahrscheinlich bereits eine formatierbare Zeichenkette, die Sie entweder mit set oder update erstellt haben. Dies ermöglicht jedoch die dynamische Eingabe von anderen Teilen der Produktdaten in dieses Attribut.

Dies könnte mit dem Hinzufügen von {currency} am Ende des Preisattributs mit einem Update beginnen und dann wird der Aufruf von update die Währung des Produktattributs zum Preis hinzufügen.

Wenn die benötigten Daten kein Attribut des Produkts sind, können Sie auch das zusätzliche Attribut zum Befehl hinzufügen.

{
  "type": "format",
  "attribute": ATTRIBUTE,
  ... : ... #(kann weitere Attribute enthalten, die für die Formatierung erforderlich sind)
}

Beispiel Hier füge ich eine Währung am Ende des Preises hinzu. Zuerst muss ich den Typ in eine Zeichenkette ändern, dann die formatierte Syntax einfügen und dann die Formatierung vornehmen. Der Aktualisierungsbefehl fügt den Wert in replace_by an das Ende des Preises an.

[
{ "type": "type",
  "attribut": "preis",
  "new_type": "string"
},{
  "type": "update",
  "attribut": "preis",
  "regexp":"$",
  "replace_by":"{currency}"
},{
  "type": "format",
  "attribute": "Preis",
  "currency":" DKK"
}
]

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "stock" : 0,
  "shown" : false,
  "price": 200.00,
}

nach { “id”: 153, “name”: “Lineman Chute”, “price”: 200.00, “preis_alt”: “130.0”, }

Wenn

Wenn if zu einem der oben genannten Befehle mit einer Anweisung hinzugefügt wird, wird der Befehl nur bei Attributen ausgeführt, bei denen die angegebene Anweisung als wahr ausgewertet wird.

Für ein Beispiel siehe das Beispiel des Befehls Set.

{
  "type": "delete"
  "Attribut": ATTRIBUTE,
  "if": "price &lt; 200"
}

Beispiel für mehrere Änderungen

Hier ist ein Beispiel für eine Verkettung mehrerer Änderungen. 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",
  "attribut": "preis_alt",
  "new_value":"{proce}{currency}",
  "if": "id == 153"
},{
  "type": "update",
  "attribut": "preis_alt",
  "regexp": "o",
  "replace_by": "i",
  "if": "id == 153"
},{
  "type": "format",
  "attribut": "preis_alt",
  "currency": "DKK",
  "if": "id == 153"
}]

Löschen

Löscht das angegebene Attribut aus allen Produkten.

{
  "type":"delete",
  "attribute": ATTRIBUTE
}

Beispiel Hier werde ich das Attribut “angezeigt” für alle Produkte entfernen.

{
  "type":"delete",
  "attribute": "shown"
}

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "shown": true,
  "price": 200.00,
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
}

Update

Wenn Sie nicht technisch versiert sind und dies lesen. Halten Sie sich fest, 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 ersetzt jede übereinstimmende Gruppe durch den Inhalt von replace_by. Hier finden Sie ein hilfreiches Tool für die Erstellung Ihrer Regex.

Ein Beispiel für eine Regex könnte [/]+ mit einem replace_by von ’/’ sein, dies würde alle Stellen im Attribut nehmen, die mehrere / in einer Reihe haben und sie mit einem einzelnen / ersetzen. So würde https://test//tests zu https:/test/tests.

{
  "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 bearbeitet, wobei ich darauf achte, dass das / entschlüsselt wird.

{
  "type":"update",
  "attribute": "url",
  "regexp": "\/\/__example",
  "replace_by": ""
}

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "url": "https://example.domain/product/153//__example",
  "price": 200.00
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "url": "https://example.domain/product/153",
  "price": 200.00
}

Typ

Erlaubt die Änderung von Typen in einem Attribut. Wenn es sich bei den Daten also um eine Zahl handelt und Sie eine Zeichenkette 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 wird der Typ des Preises von einem String in einen Float geändert.

{
  "type":"type",
  "attribute": "price",
  "new_type": "float"
}

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "price": "200",
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
}

Aufteilen

Ermöglicht die Aufteilung einer Zeichenkette durch ein Trennzeichen in eine Liste von Zeichenketten. Standardmäßig wird durch ein Komma getrennt, wenn kein Trennzeichen angegeben wird.

{
  "type":"split",
  "attribute": "ATTRIBUTE",
  "separator": "STRING"
}

Beispiel Hier wird ein Attribut mit Kategorien aufgeteilt.

{
  "type":"split",
  "attribute": "string_categories"
}

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "string_categories": "lineman, chute"
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "string_categories":["lineman","chute"]
}

Format

Ermöglicht die Erstellung einer formatierten Zeichenkette.

Dies könnte ein neuer Wert sein, der als {price} {currency} bezeichnet wird.

Wenn die benötigten Daten kein Attribut des Produkts sind, können Sie das zusätzliche Attribut auch dem Befehl hinzufügen.

{
  "type":"format",
  "attribute": ATTRIBUTE,
  "new_value": VALUE_TO_SET,
  ... : ... #(can include more attributes that are needed for formating)
}

Beispiel Hier füge ich eine Währung am Ende des Preises hinzu. Zuerst muss ich den Typ in eine Zeichenkette ändern, dann die formatierte Syntax einfügen und dann die Formatierung vornehmen. Der Aktualisierungsbefehl fügt den Wert in replace_by an das Ende des Preises an.

[
{
  "type":"format",
  "attribute": "price_with_currency",
  "new_value": "{price} {currency}"
}
]

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "currency": "DKK",
  "price": 200.00,
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "currency": "DKK",
  "price": 200.00,
  "price_with_currency": "200.00 DKK"
}

Ausdruck

Wertet einen Ausdruck aus, der im angegebenen Attribut enthalten ist. Wenn beispielsweise die Zeichenkette “Preis * 0,8” in einem Attribut enthalten ist und wir Expression darauf anwenden, ist das Ergebnis 80 % dessen, was im Attribut Preis enthalten ist.

{
  "type":"expression",
  "new_value": NEW_VALUE,
  "attribute": ATTRIBUTE
}

Beispiel Wertet einen Ausdruck aus, der im angegebenen Attribut enthalten ist. Wenn zum Beispiel die Zeichenkette “Preis * 0,8” in einem Attribut enthalten ist und wir den Ausdruck darauf anwenden, ist das Ergebnis 80 % dessen, was im Attribut “Preis” steht.

[
    {
        "type": "expression",
        "attribute": "price_alt",
        "new_value": "price * 0.65"
    }
]

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
  "price_alt": "130.0",
}

Wenn

Wenn if zu einem der oben genannten Befehle mit einer Anweisung hinzugefügt wird, wird der Befehl nur bei Attributen ausgeführt, bei denen die angegebene Anweisung als wahr ausgewertet wird.

Verfügbare Operatoren sind:

OperatorBedeutung
=Entspricht allen Produkten, bei denen das Attribut gleich dem Wert ist.
!=Entspricht allen Produkten, bei denen das Attribut nicht gleich dem Wert ist.
&gt;Finde alle Produkte, bei denen das Attribut größer als der Wert ist.
&gt;=Finde alle Produkte, bei denen das Attribut größer als oder gleich dem Wert ist.
&lt;Entspricht allen Produkten, bei denen das Attribut kleiner als der Wert ist.
`inEntspricht einer Teilzeichenkette in einer Zeichenkette oder einem Element in einer Liste

Beim Vergleich eines Attributs mit einem bestimmten Wert lautet die Syntax wie folgt:

{
  "type":"delete"
  "attribute": ATTRIBUTE,
  "if":"ATTRIBUTE OPERATOR VALUE"
}

Bei der Auswertung einer Teilzeichenkette in einer Zeichenkette oder eines Elements in einer Liste lautet 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 Prüfen einer Teilzeichenkette

{
    "type": "set",
    "attribute": "shown",
    "new_value": "false",
    "if": "'withdrawn' in name"
}

if statements can be also grouped using ‘and’/‘or’ in statements:

{
    "type": "set",
    "attribute": "shown",
    "new_value": "false",
    "if": "(stock < 1 and 'withdrawn' in name) or brand = 'Nike'"
}

Beispiel für mehrere Änderungen

Hier ist ein Beispiel für eine Verkettung mehrerer Änderungen. 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"
}]

Dadurch würde ein neues Feld mit der Bezeichnung price_alt entstehen, das den Preis und die DKK am Ende enthält.

Vor

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
}

Nach

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
  "price_alt": "200.00DKK"
}