Data

Modificatori

Impara a usare i modificatori.

Panoramica #

Modifiers è uno strumento potente che ti consente di modificare i dati del prodotto dopo la sincronizzazione senza la necessità di coinvolgere uno sviluppatore per apportare modifiche nel data-feed. Poiché attualmente è uno strumento sperimentale, solo il personale interno del Clerk può utilizzarlo per ora. Quindi contatta il supporto se hai bisogno di questa funzionalità.

Supporta i seguenti comandi.

ComandoEffetto
setAggiunge un attributo a tutti i prodotti
deleteRimuove un attributo da tutti i prodotti
updateAggiorna un attributo su tutti i prodotti
typeCambia il tipo di un attributo su tutti i prodotti
splitDivide una stringa per separatore, in un elenco di stringhe.
appendAggiunge un valore a un attributo di elenco esistente
expressionValuta un’espressione in un attributo
formatFormatta una stringa in un attributo
lowerFormattta una stringa in caratteri minuscoli
upperFormattta una stringa in caratteri maiuscoli
capitalizeFormattta una stringa in maiuscolo per il primo carattere

Tutti i comandi supportano anche la clausola if. La clausola if può essere aggiunta a qualsiasi cosa con una dichiarazione, e il comando verrà eseguito sull’attributo solo se la dichiarazione è valutata come vera.

Comandi #

Ecco ciascuno dei comandi con un esempio, con variabili come necessario. Tutti i comandi richiedono un tipo che specifica quale comando eseguire, e un attributo che indica su quale attributo eseguire il comando.

Set #

Richiede un new_value che mostra quale valore impostare per l’attributo, può essere utilizzato sia come un nuovo attributo, sia sopra uno esistente per sostituirlo.

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

Esempio In questo esempio sovrascriverò l’attributo ‘shown’ se il prodotto è esaurito.

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

Prima #

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

Dopo #

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

Delete #

Elimina l’attributo fornito da tutti i prodotti.

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

Esempio Qui rimuoverò l’attributo shown per tutti i prodotti.

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

Prima #

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

Dopo #

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

Update #

Se non sei tecnico e stai leggendo questo. Preparati perché stiamo usando regex con la libreria python.

Update richiede l’attributo regexp che è un’espressione regex che corrisponde ad alcune parti dell’attributo e sostituisce ciascun gruppo corrispondente con il contenuto di replace_by. Ecco uno strumento utile per creare la tua regex.

Un esempio di regex potrebbe essere [/]+ con un replace_by di ’/’, questo prenderebbe tutti i posti nell’attributo che hanno più / in fila e li sostituirebbe con un singolo /. Quindi https://test//tests diventerebbe https:/test/tests.

{
  "type":"update",
  "attribute": "ATTRIBUTE",
  "regexp": "MATCH_REGEX",
  "replace_by": "STRING",
}

Esempio Qui rimuoverò una parte dell’url, con una regex che corrisponde all’ultima parte dell’url, assicurandomi di eseguire l’escape del /.

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

Prima #

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

Dopo #

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

Type #

Consente di cambiare i tipi in un attributo. Quindi se i dati sono un numero e hai bisogno che sia una stringa, puoi usare questo per fare il typecast.

{
  "type":"type",
  "attribute": "ATTRIBUTE",
  "new_type": any of ["string", "int", "float", "boolean"]
}

Esempio Qui stiamo cambiando il tipo del prezzo, da stringa a float.

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

Prima #

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

Dopo #

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

Split #

Consente di dividere una stringa per un separatore, in un elenco di stringhe. Per impostazione predefinita, divide per virgola se non viene fornito alcun separatore.

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

Esempio Qui stiamo dividendo un attributo con categorie.

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

Prima #

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

Dopo #

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

Append #

Consente di aggiungere nuovi valori a un attributo di elenco esistente.

Questo potrebbe essere l’aggiunta di stringhe aggiuntive a un attributo tags, o l’aggiunta di una nuova categoria a un attributo categories.

{
  "type": "append",
  "attribute": LIST_ATTRIBUTE,
  "append_element": VALUE_TO_APPEND,
}

Esempio Qui aggiungerò un nuovo tag al prodotto se ha un prezzo inferiore a 100.

{
  "type": "append",
  "attribute": "tags",
  "append_element": "Cheap-Product",
  "if": "price < 100"
}

Prima #

{
  "name": "Lineman Goalkeeper",
  "price": 99.99,
  "tags": ["boots", "brand-lineman"]
}

Dopo #

{
  "name": "Lineman Goalkeeper",
  "price": 99.99,
  "tags": ["boots", "brand-lineman", "Cheap-Product"]
}

Expression #

Valuta un’espressione che si trova nell’attributo dato. Ad esempio, se c’è la stringa ‘price * 0.8’ all’interno di un attributo e eseguiamo l’espressione su di esso, il risultato sarà l'80% di ciò che c’è nell’attributo prezzo.

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

Esempio Valuta un’espressione che si trova nell’attributo dato. Ad esempio, se c’è la stringa ‘price * 0.8’ all’interno di un attributo e eseguiamo l’espressione su di esso, il risultato sarà l'80% di ciò che c’è nell’attributo prezzo.

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

Prima #

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

Dopo #

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

If #

Se if è aggiunto a uno qualsiasi dei comandi sopra con una dichiarazione, il comando verrà eseguito solo sugli attributi dove la dichiarazione data è valutata come vera.

Gli operatori disponibili sono:

OperatoreSignificato
=Corrisponde a tutti i prodotti dove l’attributo è uguale al valore.
!=Corrisponde a tutti i prodotti dove l’attributo non è uguale al valore.
>Corrisponde a tutti i prodotti dove l’attributo è maggiore del valore.
>=Corrisponde a tutti i prodotti dove l’attributo è maggiore o uguale al valore.
<Corrisponde a tutti i prodotti dove l’attributo è inferiore al valore.
inCorrisponde a una sottostringa in una stringa o a un elemento in un elenco

Quando si confronta un attributo con un valore specifico, la sintassi è:

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

Quando si valuta una sottostringa in una stringa o un elemento in un elenco, la sintassi è:

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

Esempio Confronto con un valore specifico

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

Esempio Controllo di una sottostringa

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

Le dichiarazioni if possono anche essere raggruppate utilizzando ‘and’/‘or’ nelle dichiarazioni:

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

Combinazioni #

I Modifiers possono essere combinati per creare modifiche più complesse, utilizzando qualsiasi numero di comandi diversi. Ecco alcuni esempi:

Formattazione del prezzo #

Ecco un esempio di più modifiche concatenate insieme. Qui sto creando un nuovo attributo chiamato price_alt per un prodotto specifico. Prende sia il prezzo che la valuta e crea un nuovo campo con essi.

[{
  "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"
}]

Questo creerebbe un nuovo campo chiamato price_alt con il prezzo e DKK alla fine.

Prima #

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

Dopo #

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

Creazione di un elenco di tag #

Qui stiamo creando un nuovo attributo di elenco chiamato color_tags e aggiungendo tag specifici ad esso per migliori opzioni di filtro:

[{
  "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"
}]

Questo creerebbe un nuovo attributo chiamato color_tags con i seguenti valori:

Prima #

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
  "tags": ["chute", "category-boots", "type-goalkeeper", "red", "blue", "green"]
}

Dopo #

{
  "id": 153,
  "name": "Lineman Chute",
  "price": 200.00,
  "tags": ["chute", "category-boots", "type-goalkeeper", "red", "blue", "green"],
  "color_tags": ["red", "blue", "green"]
}

Questa pagina è stata tradotta da un'utile intelligenza artificiale, quindi potrebbero esserci errori linguistici. Grazie per la comprensione.