Het Custom code-blok voegt je eigen HTML of React toe aan de cart. Plaats het in elke sectie van de drawer, of nestel het binnen Cart items als sub-blok zodat het per regel wordt herhaald. In tegenstelling tot andere blokken heeft het geen Content-instellingen en geen Design-sectie: het blok is de code, dus je werkt volledig in het tabblad Code.

Een Custom code-blok toevoegen en inschakelen
- Voeg een Custom code-blok toe aan een sectie, of als sub-blok onder Cart items.
- Selecteer het en open het tabblad Code.
- Kies HTML of React component. Nieuwe blokken staan standaard op HTML.
- Schrijf je code.
- Als je React hebt gekozen, klik op Compile.
- Zet “Use custom template” aan. Voor dit blok betekent die schakelaar “toon mijn aangepaste code”, en hij staat standaard uit, dus er wordt niets gerenderd totdat je hem inschakelt.
- Houd de oog-schakelaar in de zijbalk aan zodat het blok zichtbaar blijft voor shoppers.
Gedrag
- Het blok rendert niets totdat de cart is geladen.
- Het rendert ook niets wanneer het oog in de zijbalk uitstaat, “Use custom template” uitstaat, de code leeg is, of React niet compileert of rendert. Omdat een fout stil is, controleer je blok in de voorvertoning voordat je publiceert.
HTML-modus
- Inline
<script>-tags worden niet uitgevoerd, en de HTML-modus heeft geen toegang tot de SDK ofwindow. - Gebruik voor logica de React-modus of Aangepaste scripts met de Cart SDK.
Tokens
%, of een aantal), klaar om in markup te plaatsen:
Voorbeeld
React-modus
add-to-cart-actie mee.
- De editor vergrendelt de wrapper op
function CustomCode(props: CustomCodeProps) { … }, en je bewerkt alleen de body tussen die regels. - Je moet op Compile klikken en daarna “Use custom template” inschakelen voordat het blok wordt getoond.
- Je component kan
useState,useEffect,useMemo,useRefenuseCallbackgebruiken. - In tegenstelling tot de HTML-modus draait React in de paginacontext, dus het kan
windowen de Cart SDK aanroepen wanneer die beschikbaar zijn. - Als je component tijdens runtime fouten gooit, rendert het blok niets en blijft de rest van de cart werken.
Props
$12.50 is 1250, niet 12.50. Het zijn geen geformatteerde geldstrings zoals de HTML-tokens.
De vorm van cart en line
cart en line zijn dezelfde objecten die de SDK overal elders blootstelt, dus ze zijn één keer gedocumenteerd in de cartobject-referentie: elk veld op de cart, op een regel en op een bundel.
De velden die je het meest zult gebruiken: cart.items, cart.itemCount, cart.totalPrice, line.title, line.quantity, line.finalLinePrice.
Drie dingen die specifiek zijn voor dit blok:
lineis alleen ingesteld op een Cart items-sub-blok, waar je component één keer per regel rendert. Geplaatst als sectie islinenullen lees je in plaats daarvancart.items.- Bundelkinderen staan niet in
cart.items. Wanneer regels tot een bundel zijn gegroepeerd, verschijnt alleen de ankerregel; de kinderen staan opline.bundle.children. - Regels die door een line transform zijn verborgen, staan er ook niet in, hoewel ze nog steeds meetellen in
cart.totalPrice.
Voorbeelden
props.line voor content per product. Het blok rendert één keer per regel, gemarkeerd met het product en de variant van die regel:
Verrijkingsmetadata lezen
cart.items heeft een metadata-veld: een leeg object {} totdat een cart enricher het vult. Eenmaal gevuld is het geïndexeerd op de id van de enricher en bevat het de Storefront-gegevens voor het product of de variant van die regel:
metadata is altijd aanwezig en staat standaard op een leeg object {} totdat de asynchrone fetch van de enricher is voltooid (de test voor “nog niet verrijkt” is Object.keys(item.metadata).length === 0). Gebruik optional chaining (item.metadata?.enricherId) bij het lezen van de sleutel van een specifieke enricher, omdat die sleutel afwezig is totdat de verrijking is geland.
Kortingscodes en regelkortingen lezen
cart.discountCodes bevat de kortingscodes die op de cart zijn toegepast, en de discountAllocations van elke regel bevatten de kortingen die op die specifieke regel zijn toegepast:
Plaatsing en limieten
- Regio: overal (boven, midden of onder). Ook beschikbaar als Cart items-sub-blok.
- Maximum: onbeperkt.
- Status: gevulde en lege cart (als sectieblok). Als Cart items-sub-blok rendert het alleen wanneer de cart regels heeft, één instantie per regel.
- Niet vergrendeld, dus je kunt het verwijderen of verbergen.
- Er is geen Design-sectie per blok. Style via je eigen markup, Aangepaste CSS en je globale Designinstellingen.