Trigger personalizzati per la vetrina
I trigger integrati per il negozio online coprono gli eventi segnalati da Shopify. Un trigger personalizzato per il negozio online copre tutto il resto che accade sul tuo negozio online: basta pubblicare un evento dal tuo tema con una sola riga di JavaScript e questo diventa un trigger che puoi utilizzare in Shopify Flow.
L'esempio più evidente è il menu a tendina del carrello. L'evento "cart view" di Shopify viene attivato sulla pagina /cart, ma la maggior parte dei temi moderni non reindirizza mai a quella pagina: invece, fa scorrere il menu a tendina per aprirlo. Shopify non segnala nulla, quindi nessuna app può rilevarlo. Pubblicare un proprio evento all'apertura del menu a tendina colma questa lacuna.
Altri usi che ne fanno i negozi:
- L'aggiunta alla lista dei desideri o il clic su "Avvisami", operazioni che Shopify non registra.
- Una guida alle taglie o una politica sui resi aperta, come indicazione relativa a un prodotto.
- Una modifica alla variante nel picker, che non comporta la visualizzazione di una nuova pagina (vedi Condizioni di attivazione di Storefront).
- Qualsiasi informazione già nota al tema o a un’app di terze parti, ma non a Shopify.
Come funziona
- Crea il trigger nell'app e assegnagli un nome, ad esempio
cart_drawer_opened. Come ogni trigger dello storefront, richiede l'accesso a Storefront Behaviour, che va concesso una sola volta nella pagina “Autorizzazioni”. - Copia il frammento di codice di una riga che l'app ti mostra e incollalo nel tuo tema nel punto in cui si verifica quella situazione. Se non sei sicuro di cosa incollare o dove, Genera codice trigger con l'intelligenza artificiale genera il frammento di codice per il tuo tema partendo da una descrizione in linguaggio semplice.
- Scrivi una trasformazione se desideri filtrare o modificare il contenuto da inviare, oppure lascia il campo vuoto per inoltrare tutto.
- Attivalo, quindi aggiungi un "Trigger personalizzato dello storefront" nel flusso e crea un ramo in base al nome dell'evento.
Il frammento di codice rappresenta l'intera integrazione dal punto di vista del tema:

Shopify.analytics.publish("cart_drawer_opened", {
// anything you want the Flow to receive
itemCount: 3,
total: "129.90"
});Dare un nome all'evento
Il nome dell'evento è ciò su cui si basa il ramo del flusso di lavoro in Flow, quindi scegli un nome chiaro e non modificarlo una volta che i flussi di lavoro lo utilizzano.
I nomi possono contenere lettere, numeri, trattini bassi e trattini; devono iniziare con una lettera o un numero e possono contenere fino a 64 caratteri. L'app converte ciò che digiti in uno "slug", quindi Cart drawer opened diventa cart_drawer_opened.
Il nome è associato a uno spazio dei nomi interno, pertanto non potrà mai entrare in conflitto con un evento Shopify o con un trigger personalizzato webhook con lo stesso nome.
Filtraggio e rimodellamento
I dati che passi come secondo argomento vengono inseriti in Flow come output del trigger. Se è tutto ciò che ti serve, hai finito.
Se vuoi attivare l'evento solo in determinati casi, oppure inviare campi diversi da quelli pubblicati dal tema, scrivi una trasformazione (lo stesso modulo JavaScript utilizzato da Trigger personalizzati). Restituisci un oggetto per attivare l'evento, restituisci null per ignorarlo:
export async function transform(payload, topic, shop, ctx) {
// Anything you published is on `payload`.
if ((payload.itemCount || 0) < 2) return null;
return {
itemCount: payload.itemCount,
total: payload.total,
// Present only when the shopper is signed in.
customerId: payload.customerId,
};
}Come utilizzarlo in Shopify Flow
Ogni trigger personalizzato dello storefront viene visualizzato in Flow con lo stesso nome: "Trigger personalizzato dello storefront". Aggiungilo a un flusso di lavoro, quindi aggiungi una condizione in cui eventName corrisponda al nome che hai scelto.
È proprio questo che permette a un singolo trigger di Flow di riattivare tutti gli eventi del tuo negozio online. Il trigger riporta anche il nome che gli hai assegnato nell'app e l'output della tua trasformazione.
È volutamente distinto dal "Custom Trigger", che supporta l'Trigger personalizzati basato sui webhook. I due si differenziano in un aspetto che vale la pena conoscere: un trigger personalizzato basato sui webhook viene eseguito sui nostri server ed è affidabile, mentre un evento "Storefront" dipende dal fatto che il browser dell'acquirente riesca a raggiungerci e dal suo consenso all'utilizzo dei dati analitici.
Cosa non inviare
Il secondo argomento della funzione publish è interamente sotto il tuo controllo, il che significa che è tua responsabilità evitare di inserirvi dati personali.
Invia gli identificatori e i dati: gli ID del prodotto e delle varianti, le quantità, i prezzi e la descrizione dell'evento. L'ID del cliente che ha effettuato l'accesso viene aggiunto automaticamente, se presente, quindi non è necessario inserirlo manualmente.
Non inviare nomi, indirizzi e-mail, numeri di telefono o indirizzi postali. Il tuo flusso di lavoro può ricavare tutte queste informazioni dall’ID cliente in Flow, quindi non c’è alcun vantaggio nell’inserirle in un evento dello storefront; inoltre, così facendo, un evento di analisi si trasforma in un evento contenente dati personali.
Consuma il traffico incluso nel mio piano?▾
Sì. Ogni evento che ci viene trasmesso viene conteggiato, compresi quelli che la tua trasformazione ignora restituendo un valore null - la stessa regola descritta all'indirizzo Trigger personalizzati. Gli eventi ignorati dal browser a causa del mancato consenso non ci vengono mai trasmessi e non vengono mai conteggiati.
Poiché sei tu a decidere dove inserire lo snippet, puoi controllare direttamente il volume. Un evento di apertura del cassetto si verifica molto meno spesso rispetto alla visualizzazione di un prodotto.
Posso pubblicare lo stesso evento da più di un posto?▾
Sì. Ciò che conta è il nome, non da dove viene pubblicato. Inserire nel payload un’indicazione della provenienza è una buona idea se si desidera che il flusso di lavoro riesca a distinguerli.
L'apertura di due cassetti conta come un unico evento?▾
No. Gli eventi intenzionali vengono trattati separatamente, poiché la pubblicazione due volte di solito significa che l’evento si è verificato effettivamente due volte. Ciò differisce dai trigger integrati, che raggruppano le ripetizioni della stessa visualizzazione di pagina.
Posso modificare il nome dell'evento in un secondo momento?▾
È possibile, ma il flusso di lavoro Flow applica un filtro su quel nome, quindi modificarlo blocca l'esecuzione del flusso di lavoro finché non si aggiorna la condizione; inoltre, è necessario aggiornare lo snippet nel tema in modo che corrisponda. Considerate il nome come fisso una volta che un flusso di lavoro lo utilizza.
Come posso testarlo prima che venga pubblicato sul mio negozio online?▾
La pagina del trigger nell'app include un test che esegue la tua trasformazione e avvia il tuo flusso di lavoro Flow, così puoi osservarne l'esecuzione dall'inizio alla fine senza modificare il tuo tema. Il test non consuma la tua quota.
Una volta inserito lo snippet nel tema, la pagina "Cronologia eventi" mostra gli eventi in tempo reale man mano che si verificano.
Funziona nelle pagine di pagamento?▾
La pubblicazione tramite il codice del proprio tema riguarda la pagina principale del negozio. La procedura di checkout viene gestita da Shopify e non è possibile aggiungere codice del tema in quella sezione; pertanto, in quel caso è necessario utilizzare i trigger integrati “Errore durante il checkout” e “Codice sconto rifiutato durante il checkout”.
Prossimi passi
- Condizioni di attivazione di Storefront - i trigger integrati nella vetrina online e il funzionamento del pixel.
- Genera codice trigger con l'intelligenza artificiale - Lascia che sia l'IA a scrivere per te il frammento di codice del tema o la trasformazione.
- Trigger personalizzati - lo stesso concetto applicato agli eventi webhook di Shopify, con l'affidabilità garantita dal lato server.
- Piani e utilizzo - cosa si intende per "evento".

