Smart Collection
La creazione di Smart Collection permette di andare a generare collezioni dinamiche che dipendono da condizioni applicate sui campi (di base e metafield) di ciascun prodotto.
- È possibile definire condizioni multiple, collegate tra loro tramite
ANDoOR. - È possibile impostare il tipo di relazione della condizione (default:
EQUAL) - Per i TAG la condizione di EQUAL viene gestita da Shopify come un CONTAINS
- La chiave primaria per identificare una smart collection può essere title o handle, in base al valore configurato nell'header specifico (vedi sotto)
- È possibile associare un immagine alla collection (N.B. in aggiornamento, se non fornita e presente su Shopify, verrà mantenuta quella presente)
- È possibile associare metafields personalizzati alla collezione, a patto che siano stati defininiti come custom data su Shopify.
- È possibile definire *traduzioni multilingua per i campi title, description, handle e per i metafields, così da supportare più lingue nella visualizzazione della collection
- È possibile pubblicare sul solo Store Online di Shopify, oppure su tutti i canali di vendita previsti per lo shop.
Chiavi disponibili per le regole (key)
Queste chiavi rappresentano i campi base di Shopify utilizzabili nelle regole di una Smart Collection.
| Chiave | Descrizione |
|---|---|
metafield | vedi nell'esempio sotto (qui) |
tag | Tag associati al prodotto |
title | Titolo del prodotto |
type | Tipo di prodotto |
compareAtPrice | Prezzo di confronto (utilizzato per indicare sconti) |
inventory | Quantità disponibile in magazzino |
price | Prezzo di vendita del prodotto |
variant_title | Titolo della variante |
weight | Peso del prodotto |
vendor | Fornitore/marca del prodotto |
Operatori disponibili (operator)
Questi operatori determinano il tipo di confronto applicato tra il valore della chiave e quello indicato nella regola.
| Operatore | Descrizione |
|---|---|
EQUALS | Valore esattamente uguale |
NOT_EQUALS | Valore diverso |
GREATER_THAN | Maggiore di (solo per valori numerici) |
LESS_THAN | Minore di (solo per valori numerici) |
CONTAINS | Il valore contiene la stringa indicata |
NOT_CONTAINS | Il valore non contiene la stringa indicata |
STARTS_WITH | Il valore inizia con la stringa indicata |
ENDS_WITH | Il valore termina con la stringa indicata |
IS_SET | Il campo è valorizzato |
IS_NOT_SET | Il campo non è valorizzato |
Condizioni con Metafields
È possibile utilizzare i metafield come soggetti delle smart collection. Questi devono essere già configurati su Shopify nella sezione custom data. Per utilizzarli:
- Impostare il campo
keycon il nome del metafield - Specifica
conditionTargetper indicare dove è definito il metafield (sul prodotto o sulla variante)
ConditionTarget (solo per metafield)
Questi target vanno usati per indicare dove si trova il metafield:
Target (conditionTarget) | Descrizione |
|---|---|
PRODUCT | Il metafield è associato al prodotto |
PRODUCTVARIANT | Il metafield è associato alla variante |
Esempio
{
"rules": [
{
"conditionTarget": "PRODUCT",
"operator": "GREATER_THAN",
"key": "logistic_weight", // Chiave del metafield
"value": "10"
},
{
"conditionTarget": "PRODUCTVARIANT",
"key": "subtitle", // Chiave del metafield
"value": "subtitle value"
}
]
}
Gestione delle Traduzioni
Le Smart Collection supportano la definizione di traduzioni multi-lingua per i principali campi e per i metafields. Le traduzioni si definiscono all’interno di un oggetto translations, che contiene le lingue supportate e le relative stringhe tradotte.
Campi traducibili
title: titolo della collectiondescription: descrizione della collectionhandle: identificativo univoco testuale usato per l’URLmetafields: traduzioni specifiche per ogni chiave di metafield
Esempio
{
"translations": {
"title": {
"it": "Smart Collection TAG Iphone 12",
"fr": "Collection intelligente TAG Iphone 12"
},
"description": {
"it": "Questa smart collection permette di raggruppare tutti i prodotti che hanno come tag Iphone12",
"fr": "Cette collection intelligente vous permet de regrouper tous les produits qui ont le tag Iphone12"
},
"handle": {
"it": "collezione-iphone-12",
"fr": "collection-iphone-12"
},
"metafields": {
"test": {
"it": "Metafield tradotto",
"fr": "Métachamp traduit"
},
"test_2": {
"it": "Metafield tradotto",
"fr": "Métachamp traduit"
}
}
}
}
Pubblicazione della collection
Nel suo comportamento standard, una Smart Collection viene pubblicata solamente sullo Store Online di Shopify.
Qualora lo shop prevedesse più canali di vendita, è possibile pubblicare collezione su tutti i canali di vendita.
Questo avviene attraverso il campo booleano isPublishedOnAllChannels, che se impostato al valore true
consente di pubblicare la collezione su tutti i canali, mentre se impostato al valore false, o se non valorizzato,
va a pubblicare solo sullo Store Online di Shopify.
Esempio
{
"title": "Smart Collection TAG Iphone 12",
"description": "This smart collection allows you to group all the products that have the Iphone12 tag",
"handle": "smart-collection-iphone-12",
"rules": [
{
"conditionTarget": "PRODUCT",
"operator": "GREATER_THAN",
"key": "logistic_weight",
"value": "10"
},
{
"conditionTarget": "PRODUCTVARIANT",
"key": "subtitle",
"value": "subtitle value"
}
],
"isPublishedOnAllChannels": true // pubblica la collection su tutti i canali di vendita
}
Esempi
1. Caso base: condizione singola con traduzioni
In questo esempio viene creata una smart collection che raggruppa tutti i prodotti con il tag Iphone12 e include le traduzioni.
{
"title": "Smart Collection TAG Iphone 12",
"description": "This smart collection allows you to group all the products that have the Iphone12 tag",
"handle": "smart-collection-iphone-12",
"rules": [
{
"key": "tag",
"value": "Iphone12"
}
],
"media": {
"alternativeText": "iphone12",
"url": "https://urldellimmagine.jpg"
},
"metafields": {
"test": "Translated metafield",
"test_2": ""
},
"translations": {
"title": {
"it": "Smart Collection TAG Iphone 12",
"fr": "Collection intelligente TAG Iphone 12"
},
"description": {
"it": "Questa smart collection permette di raggruppare tutti i prodotti che hanno come tag Iphone12",
"fr": "Cette collection intelligente vous permet de regrouper tous les produits qui ont le tag Iphone12"
},
"handle": {
"it": "collezione-iphone-12",
"fr": "collection-iphone-12"
},
"metafields": {
"test": {
"it": "Metafield tradotto",
"fr": "Métachamp traduit"
},
"test_2": {
"it": "Metafield tradotto",
"fr": "Métachamp traduit"
}
}
}
}
2.Condizioni multiple in AND
In questo caso le condizioni devono tutte essere verificate (logica AND).
{
"isConditionOr": false, // Condizioni in AND
"title": "Smart Collection TAG Iphone Pesanti",
"description": "Questa smart collection permette di raggruppare tutti i prodotti che hanno come tag Iphone12 e hanno un peso maggiore a 10 kg",
"handle": "collection-iphone-12-pesanti",
"rules": [
{
"key": "tag",
"value": "Iphone12"
},
{
"operator": "GREATER_THAN",
"key": "weight",
"value": "10"
}
]
}
3.Condizioni multiple in OR
In questo esempio le condizioni sono collegate con logica OR: viene inclusi prodotti che hanno almeno una delle condizioni vere.
{
"isConditionOr": true, // Condizioni in OR
"title": "Smart Collection TAG Iphone Pesanti",
"description": "Questa smart collection permette di raggruppare tutti i prodotti che hanno come tag Iphone12 e hanno un peso maggiore a 10 kg",
"handle": "collection-iphone-12-pesanti",
"rules": [
{
"key": "tag",
"value": "Iphone12"
},
{
"operator": "GREATER_THAN",
"key": "weight",
"value": "10"
}
]
}
Configurazioni flusso smart collections
Oltre alle configurazioni base del flusso dati è necessario aggiungere le seguenti impostazioni sui Settings Override:
| Campo | Valore | Note |
|---|---|---|
Base Url | https://adapt.flowlyze.com | url degli adapter |
Resource Path | /api/adp/shopify/egress/sync-smart-collection-to-shopify | path dell'adapter per le smart collections |
Headers :: x-api-key | ********** | api key di verifica interazione endpoint |
Headers :: x-shopify-graphql-url | https://SHOPIFYURL.myshopify.com/ | url dello shopify con cui connettersi |
Headers :: x-shopify-access-token | shpat_CODICEALFANUMERICO | secret della custom app creata per l'integrazione |
Headers :: x-collection-identifier | title/handle | Indica quale campo utilizzare come chiave univoca per identificare la smart collection durante le operazioni di creazione o aggiornamento (deafult: title) |