Il blocco Custom code aggiunge il tuo HTML o React al carrello. Mettilo in qualsiasi sezione del drawer, oppure annidalo dentro Cart items come sotto-blocco così si ripete per ogni riga. A differenza degli altri blocchi, non ha impostazioni Content né una sezione Design: il blocco è il codice, quindi lavori interamente nella sua scheda Code.

Aggiungere e attivare un blocco Custom code
- Aggiungi un blocco Custom code a qualsiasi sezione, o come sotto-blocco sotto Cart items.
- Selezionalo e apri la scheda Code.
- Scegli HTML o React component. I nuovi blocchi hanno HTML come predefinito.
- Scrivi il tuo codice.
- Se hai scelto React, fai clic su Compile.
- Attiva “Use custom template”. Per questo blocco, quell’interruttore significa “mostra il mio codice personalizzato”, ed è disattivo per impostazione predefinita, quindi non viene renderizzato nulla finché non lo abiliti.
- Mantieni attivo l’interruttore a occhio nella barra laterale così il blocco resta visibile agli acquirenti.
Comportamento
- Il blocco non renderizza nulla finché il carrello non è stato caricato.
- Non renderizza nulla nemmeno quando l’occhio della barra laterale è disattivo, “Use custom template” è disattivo, il codice è vuoto, oppure React non riesce a compilare o renderizzare. Poiché un errore è silenzioso, controlla il tuo blocco in anteprima prima di pubblicare.
Modalità HTML
- I tag
<script>inline non vengono eseguiti, e la modalità HTML non ha accesso all’SDK né awindow. - Per la logica, usa la modalità React o gli script personalizzati con il Cart SDK.
Token
%, o una quantità), pronte da inserire nel markup:
Esempio
Modalità React
add-to-cart.
- L’editor blocca il wrapper su
function CustomCode(props: CustomCodeProps) { … }, e tu modifichi solo il corpo tra quelle righe. - Devi fare clic su Compile e poi attivare “Use custom template”, prima che il blocco appaia.
- Il tuo componente può usare
useState,useEffect,useMemo,useRefeuseCallback. - A differenza della modalità HTML, React viene eseguito nel contesto della pagina, quindi può chiamare
windowe il Cart SDK quando disponibili. - Se il tuo componente genera errori a runtime, il blocco non renderizza nulla e il resto del carrello continua a funzionare.
Prop
$12.50 è 1250, non 12.50. Non sono stringhe di denaro formattate come i token HTML.
Le strutture di cart e line
cart e line sono gli stessi oggetti che l’SDK espone ovunque, quindi sono documentati una sola volta nel riferimento dell’oggetto carrello: ogni campo del carrello, di una riga e di un bundle.
Quelli che userai di più: cart.items, cart.itemCount, cart.totalPrice, line.title, line.quantity, line.finalLinePrice.
Tre cose specifiche di questo blocco:
lineè impostata solo su un sotto-blocco di Cart items, dove il tuo componente viene renderizzato una volta per riga. Posizionato come sezione,lineènulle leggi invececart.items.- I figli dei bundle non sono in
cart.items. Quando le righe sono raggruppate in un bundle, appare solo la riga anchor; i suoi figli si trovano inline.bundle.children. - Nemmeno le righe nascoste da un line transform sono presenti, anche se contano comunque nel
cart.totalPrice.
Esempi
props.line per contenuti per prodotto. Il blocco viene renderizzato una volta per riga, contrassegnato con il prodotto e la variante di quella riga:
Leggere i metadata di arricchimento
cart.items contiene un campo metadata: un oggetto vuoto {} finché un cart enricher non lo popola. Una volta popolato, è indicizzato per l’id dell’enricher e contiene i dati Storefront per il prodotto o la variante di quella riga:
metadata è sempre presente e per impostazione predefinita è un oggetto vuoto {} finché il fetch asincrono dell’enricher non è completato (il test “non ancora arricchito” è Object.keys(item.metadata).length === 0). Usa l’optional chaining (item.metadata?.enricherId) quando leggi la chiave di un enricher specifico, dato che quella chiave è assente finché l’arricchimento non arriva.
Leggere i codici sconto e gli sconti per riga
cart.discountCodes elenca i codici sconto applicati al carrello, e le discountAllocations di ogni riga elencano gli sconti applicati a quella specifica riga:
Posizionamento e limiti
- Regione: qualsiasi (superiore, corpo o inferiore). Disponibile anche come sotto-blocco di Cart items.
- Massimo: illimitato.
- Stato: carrello pieno e vuoto (come blocco di sezione). Come sotto-blocco di Cart items, viene renderizzato solo quando il carrello ha righe, un’istanza per riga.
- Non è bloccato, quindi puoi rimuoverlo o nasconderlo.
- Non c’è una sezione Design per blocco. Personalizza lo stile attraverso il tuo markup, il CSS personalizzato e le tue impostazioni di design globali.