> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Riferimento delle regole delle Strategie

> Il catalogo completo di trigger, operatori, azioni, filtri e meccanismi di valutazione delle Strategie alla base dell'editor delle Strategie nell'app.

Questa pagina è il catalogo completo alla base dell'editor delle Strategie: ogni trigger e gli operatori che accetta, ogni azione, i filtri globali e il modo in cui viene valutata una Strategia. È il complemento della guida [Costruire le strategie](/it/aftersell/strategies_building_in_app): consultala quando ti servono tutti i dettagli su un'opzione specifica.

Una **regola** abbina dei **trigger** (il *quando*) a delle **azioni** (il *cosa*) e puoi combinare fino a cinque trigger con un unico interruttore **AND** / **OR**: con **AND** ogni trigger deve corrispondere, con **OR** ne basta uno qualsiasi. Le sezioni seguenti seguono questa struttura: prima [Trigger](#triggers) e [Azioni](#actions), poi i controlli a livello di Strategia che si applicano a tutte le regole: [ordinamento delle regole](#rule-priority-and-evaluation-order), [Filtri globali](#global-filters) e il [Catch all](#catch-all).

<div id="triggers">
  ## Trigger
</div>

I trigger determinano quando si attiva una regola. Tipi di trigger disponibili:

<div id="product-triggers">
  ### Trigger di prodotto
</div>

Targeting basato sui prodotti nel contesto (il carrello dell'acquirente, l'ordine appena completato o il prodotto visualizzato):

* **Specific product(s)** - corrisponde a prodotti Shopify specifici per ID
* **Collection** - corrisponde ai prodotti che appartengono a collezioni specifiche
* **Tag(s)** - corrisponde ai prodotti con tag specifici (ad es. "sale", "summer")
* **Title** - corrisponde al titolo del prodotto
* **Vendor** - corrisponde al nome del fornitore/marchio
* **Type** - corrisponde al campo del tipo di prodotto (ad es. "Apparel", "Electronics")
* **Handle** - corrisponde allo slug dell'URL del prodotto
* **Metafield** - corrisponde a coppie personalizzate namespace/chiave/valore dei metafield
* **Selling plan** - corrisponde a prodotti "subscription" o "one-time". Viene valutato solo quando il contesto della richiesta fornisce un selling plan per il prodotto: le superfici di upsell del checkout e post-acquisto di Aftersell non lo inviano, quindi lì il trigger non corrisponderà a meno che un'integrazione personalizzata non lo fornisca esplicitamente

<div id="customer-triggers">
  ### Trigger del cliente
</div>

Targeting basato su chi è l'acquirente:

* **Customer tag** - ad es. "VIP", "loyalty-gold"
* **Country code** - paese di fatturazione
* **Province code** - provincia/stato di fatturazione
* **Locale** - lingua del cliente (ad es. "en-US")
* **Accepts marketing** - stato del consenso al marketing
* **Order count** - numero di ordini precedenti
* **Total spent** - spesa complessiva

<div id="cart-triggers">
  ### Trigger del carrello
</div>

Targeting basato sullo stato complessivo del carrello:

* **Cart subtotal** - ad es. subtotale superiore a \$50
* **Item count** - quantità totale di articoli nel carrello
* **Line count** - numero di righe distinte
* **Cart attribute** - attributi personalizzati del carrello impostati tramite la cart API di Shopify
* **Cart note** - il campo nota del carrello

<div id="location-triggers">
  ### Trigger di località
</div>

Targeting basato sulla destinazione di spedizione dell'acquirente e sulla valuta del negozio:

* **Shipping country** - paese di destinazione della spedizione
* **Shipping province** - provincia/stato di destinazione della spedizione
* **Shipping method** - metodo di spedizione selezionato
* **Store currency** - il codice della valuta attiva del negozio

<div id="marketing-triggers">
  ### Trigger di marketing
</div>

Targeting basato sull'URL della pagina su cui è arrivato l'acquirente:

* **URL** - corrisponde a una sottostringa dell'URL di atterraggio, così puoi puntare a una campagna o a un canale specifico facendo corrispondere un parametro incluso nell'URL (ad es. `utm_source=newsletter`)

<div id="time-triggers">
  ### Trigger temporali
</div>

Targeting basato sul momento in cui viene valutata la richiesta, nell'orario del negozio:

* **Day of week** - il giorno corrente
* **Hour of day** - l'ora corrente

<div id="dynamic-triggers">
  ### Trigger dinamici
</div>

* **Always match** - un trigger senza condizione che si attiva sempre. Usalo per far eseguire una regola a ogni richiesta (è diverso dal [Catch all](#catch-all) a livello di Strategia, che si attiva solo quando nessun'altra regola corrisponde).

<Note>
  Non tutti i trigger vengono popolati su ogni superficie. Il checkout, ad esempio, invia solo il contesto di prodotto e carrello: lì i trigger del cliente, di località e di marketing non corrisponderanno. Consulta le guide [Implementare le Strategie](/it/aftersell/implementing_strategies_post_purchase_upsells) per sapere cosa invia ogni superficie.
</Note>

<div id="operators">
  ### Operatori
</div>

Ogni trigger usa un **operatore** per definire come viene confrontato il valore. Gli operatori disponibili dipendono dal tipo di trigger.

| Operatore | Descrizione |
| - | - |
| **Equals** | Corrisponde quando il campo è esattamente il valore specificato, ad es. vendor uguale a "Nike". |
| **Does not equal** | Corrisponde quando il campo è qualsiasi valore diverso da quello specificato; utile per escludere un tipo di prodotto o un fornitore specifico. |
| **Contains any** | Corrisponde quando un campo multivalore include almeno un valore del tuo elenco, ad es. un prodotto appartiene a una qualsiasi di diverse collezioni. |
| **Does not contain any** | Corrisponde quando un campo multivalore non include nessuno dei valori del tuo elenco, ad es. escludere i prodotti con tag "final-sale". |
| **Contains all** | Corrisponde quando un campo multivalore include tutti i valori del tuo elenco, ad es. un prodotto deve avere sia il tag "sale" sia il tag "summer". |
| **Does not contain all** | Corrisponde quando in un campo multivalore manca almeno uno dei valori del tuo elenco. |
| **Contains** | Corrisponde quando un campo di testo include il tuo valore come sottostringa, ad es. il titolo contiene "Gift". |
| **Does not contain** | Corrisponde quando un campo di testo non include il tuo valore. |
| **Greater than** | Corrisponde quando un campo numerico supera il tuo valore, ad es. il subtotale del carrello è superiore a \$75. |
| **Less than** | Corrisponde quando un campo numerico è inferiore al tuo valore, ad es. il numero di ordini è inferiore a 2 (acquirenti alla prima esperienza). |
| **Greater than or equal to** | Corrisponde quando un campo numerico raggiunge o supera il tuo valore, ad es. la spesa totale è di almeno \$500. |
| **Less than or equal to** | Corrisponde quando un campo numerico è pari o inferiore al tuo valore, ad es. il numero di articoli nel carrello non supera 3. |

Non tutti gli operatori sono disponibili per ogni trigger:

* Gli **operatori di elenco** (**Contains any / all** e le loro negazioni) si applicano a campi multivalore come tag, collezioni, tag cliente e prodotti specifici.
* Gli **operatori di testo** (**Equals**, **Contains** e le loro negazioni) si applicano a campi di testo a valore singolo come titolo, fornitore, handle, lingua, paese e URL.
* Gli **operatori numerici** si applicano a campi come subtotale del carrello, numero di articoli, numero di righe, numero di ordini, spesa totale e ora del giorno. Gli operatori numerici non hanno varianti "does not".
* Alcuni campi supportano solo **Equals** e **Does not equal**: selling plan, giorno della settimana e accepts marketing.

<div id="actions">
  ## Azioni
</div>

Le azioni creano l'esperienza che vuoi offrire al cliente. È qui che decidi quali prodotti proporre, come proporli ed eventuali dati aggiuntivi da passare insieme a essi. Una regola può avere più azioni configurate insieme per costruire l'esperienza completa.

Per ogni regola, tutte le azioni configurate contribuiscono a un unico pool combinato. Ad esempio, una regola con un'azione su prodotti specifici, un'azione su una collezione e un'azione basata sui tag restituirà insieme i prodotti di tutte e tre le fonti. Se un prodotto corrisponde a più fonti, viene deduplicato.

<div id="product-actions">
  ### Azioni di prodotto
</div>

Gli stessi attributi di prodotto disponibili per i trigger sono disponibili anche per la definizione delle azioni. Puoi restituire prodotti in base a:

* **Prodotti specifici** - scegli manualmente singoli prodotti dal tuo catalogo Shopify.
* **Collezione** - restituisci tutti i prodotti che appartengono a una collezione specifica.
* **Attributi di prodotto** - restituisci i prodotti che corrispondono a criteri come tag, fornitore, tipo di prodotto o metafield, gli stessi tipi di attributo usati nei trigger.

<div id="dynamic-actions">
  ### Azioni dinamiche
</div>

Le azioni dinamiche cambiano ciò che viene restituito in base a segnali in tempo reale anziché a un elenco fisso di prodotti. I tipi di azione dinamica disponibili includono:

* **Most popular** - i prodotti con le migliori prestazioni del tuo negozio per volume di vendite, sull'intero negozio o limitati a una collezione.
* **Recently purchased** - prodotti acquistati di recente nel negozio.
* **Inherit from when** - riutilizza i trigger della regola stessa (il "quando") come selettore di prodotti, in modo che i prodotti restituiti corrispondano agli stessi criteri per cui la regola si è attivata.
* **AI Recommendations** - suggerimenti personalizzati generati dal modello di raccomandazione di Aftersell.

<div id="filtering-actions">
  ### Azioni di filtro
</div>

Una volta assemblato il pool di prodotti, puoi configurare quanti prodotti vengono restituiti e in quale ordine:

* **Sort** - controlla quali prodotti vengono selezionati:
  * **Random** - una selezione casuale.
  * **Price: high → low** - vengono restituiti per primi i prodotti più costosi.
  * **Price: low → high** - vengono restituiti per primi i prodotti meno costosi.
* **Amount/Limit** - imposta il numero massimo di prodotti da restituire.
* **Type** - restringe il pool di prodotti assemblato a un singolo tipo di prodotto Shopify. Scegli **Equals** per una corrispondenza esatta o **Contains** per una corrispondenza di sottostringa (entrambi non fanno distinzione tra maiuscole e minuscole). Vengono mantenuti solo i prodotti il cui tipo corrisponde al valore inserito; gli altri vengono rimossi prima che venga applicato Amount/Limit.

<Info>
  Il filtro **Type** riduce il pool di prodotti assemblato dalle tue azioni di prodotto: è diverso dall'azione di prodotto **Product type**, che *restituisce* i prodotti di un determinato tipo. Usa il filtro quando vuoi limitare ciò che può restituire un'azione più ampia (come un'azione su una collezione o un'azione dinamica).
</Info>

<Info>
  Viene applicato prima Sort, poi Amount/Limit. Ad esempio, se l'ordinamento è impostato su **Random**, l'intero pool di prodotti viene mescolato prima che venga applicato il limite, quindi ottieni sempre una porzione casuale, non gli stessi prodotti in ordine casuale.
</Info>

<div id="key-value-actions">
  ### Azioni chiave-valore
</div>

Facoltativamente, puoi associare coppie chiave-valore a una regola. Quando la regola corrisponde, queste vengono restituite in `meta.data` nella risposta dell'API insieme ai risultati dei prodotti. Usi comuni:

* Testo dei banner promozionali
* Etichette delle campagne per le analitiche

<Note>
  Se più regole corrispondono ed emettono la stessa chiave, prevale il valore della prima regola corrispondente: le regole successive non possono sovrascriverlo.
</Note>

<div id="rule-priority-and-evaluation-order">
  ## Priorità delle regole e ordine di valutazione
</div>

Le regole all'interno di una Strategia vengono valutate in ordine, un passaggio alla volta. Il passaggio 1 viene valutato per primo, e così via. Puoi riordinare le regole trascinandole nell'editor delle Strategie. Il motore di valutazione:

1. Valuta i trigger di ogni regola rispetto al contesto fornito.
2. Raccoglie i prodotti da tutte le regole corrispondenti.
3. Deduplica e limita il risultato al massimo configurato (predefinito: 20 prodotti).

<div id="global-filters">
  ## Filtri globali
</div>

I filtri globali rendono i prodotti non idonei alla selezione in tutte le regole di una Strategia. Puoi accedervi tramite l'**icona del filtro** accanto al nome della Strategia, in alto a sinistra nell'editor delle Strategie.

Filtri globali disponibili:

* **Exclude out of stock** - esclude automaticamente qualsiasi prodotto attualmente non disponibile per l'acquisto.
* **Exclude input products** - esclude i prodotti che hanno attivato la regola (ad es. il prodotto che un acquirente sta visualizzando in una PDP), così non raccomandi mai lo stesso prodotto che l'acquirente sta già guardando.
* **Exclude by product tag** - esclude i prodotti con tag specifici.
* **Exclude by metafield** - esclude i prodotti che corrispondono a uno specifico namespace/chiave/valore di metafield.
* **Exclude by product ID** - esclude prodotti specifici per ID.
* **Require stock at location** - mantiene solo i prodotti con inventario disponibile in una sede scelta (richiede i permessi di lettura per inventario e sedi).

<div id="catch-all">
  ## Catch all
</div>

Catch all è una regola speciale che funge da passaggio finale di ogni valutazione di una Strategia. Non ha trigger; si attiva automaticamente se nessun'altra regola della Strategia corrisponde alla richiesta corrente.

Quando è abilitato, il Catch all garantisce che il tuo slot di raccomandazione non sia mai vuoto. La sua azione può essere configurata usando uno qualsiasi dei tipi di azione disponibili per le regole normali: prodotti specifici, collezioni, azioni dinamiche, ecc.

* **Abilita/disabilita** - attiva o disattiva la regola Catch all per la Strategia. Quando è disattivata, le richieste che non corrispondono a nessuna regola restituiranno un risultato vuoto.
* **Configura le azioni** - definisci cosa restituire usando qualsiasi combinazione dei tipi di azione disponibili, come per qualsiasi altra regola.

Quando si attiva il Catch all, la risposta dell'API indicherà `resolution.fallbackUsed: true`.
