Custom code-blokken tilføjer din egen HTML eller React til carten. Placér den i en hvilken som helst sektion af skuffen, eller indlejr den i Cart items som en under-blok, så den gentages for hver linje. I modsætning til andre blokke har den ingen Content-indstillinger og ingen Design-sektion: blokken er koden, så du arbejder udelukkende i dens Code-fane.

Tilføj og aktivér en Custom code-blok
- Tilføj en Custom code-blok til en hvilken som helst sektion, eller som en under-blok under Cart items.
- Vælg den, og åbn Code-fanen.
- Vælg HTML eller React component. Nye blokke er som standard HTML.
- Skriv din kode.
- Hvis du valgte React, skal du klikke på Compile.
- Slå “Use custom template” til. For denne blok betyder den kontakt “vis min tilpassede kode”, og den er som standard slået fra, så intet vises, før du aktiverer den.
- Hold sidebarens øje-knap slået til, så blokken forbliver synlig for kunder.
Adfærd
- Blokken viser intet, før carten er indlæst.
- Den viser heller intet, når sidebarens øje er slået fra, “Use custom template” er slået fra, koden er tom, eller React ikke kan kompilere eller rendere. Fordi en fejl er tavs, bør du tjekke din blok i forhåndsvisning, før du publicerer.
HTML-tilstand
- Inline
<script>-tags kører ikke, og HTML-tilstanden har ingen adgang til SDK’et ellerwindow. - Til logik skal du bruge React-tilstand eller Tilpassede scripts med Cart SDK.
Tokens
% eller et antal), klar til at indsætte i markup:
Eksempel
React-tilstand
add-to-cart-handling.
- Editoren låser wrapperen til
function CustomCode(props: CustomCodeProps) { … }, og du redigerer kun kroppen mellem de linjer. - Du skal klikke på Compile og derefter slå “Use custom template” til, før blokken vises.
- Din komponent kan bruge
useState,useEffect,useMemo,useRefoguseCallback. - I modsætning til HTML-tilstanden kører React i sidens kontekst, så den kan kalde
windowog Cart SDK, når de er tilgængelige. - Hvis din komponent kaster fejl ved kørsel, viser blokken intet, og resten af carten fungerer fortsat.
Props
$12.50 er 1250, ikke 12.50. De er ikke formaterede pengestrenge som HTML-tokens.
Cart- og line-formerne
cart og line er de samme objekter, som SDK’et eksponerer alle andre steder, så de er dokumenteret én gang i cart-objekt-referencen: hvert felt på carten, på en linje og på en bundle.
De, du oftest vil bruge: cart.items, cart.itemCount, cart.totalPrice, line.title, line.quantity, line.finalLinePrice.
Tre ting specifikke for denne blok:
lineer kun sat på en Cart items-under-blok, hvor din komponent renderes én gang pr. linje. Placeret som en sektion erlinenull, og du læser i stedetcart.items.- Bundle-underordnede er ikke i
cart.items. Når linjer er grupperet i en bundle, vises kun ankerlinjen; dens underordnede ligger påline.bundle.children. - Linjer skjult af en linjetransformation er der heller ikke, selvom de stadig tæller med i
cart.totalPrice.
Eksempler
props.line til indhold pr. produkt. Blokken renderes én gang pr. linje, mærket med den linjes produkt og variant:
Læsning af berigelses-metadata
cart.items har et metadata-felt: et tomt objekt {}, indtil en cart enricher udfylder det. Når det er udfyldt, er det nøglet efter enricherens id og indeholder Storefront-dataene for den linjes produkt eller variant:
metadata er altid til stede og er som standard et tomt objekt {}, indtil enricherens asynkrone hentning fuldføres (testen for “endnu ikke beriget” er Object.keys(item.metadata).length === 0). Brug optional chaining (item.metadata?.enricherId), når du læser en specifik enrichers nøgle, da den nøgle er fraværende, indtil berigelsen lander.
Læsning af rabatkoder og linjerabatter
cart.discountCodes viser de rabatkoder, der er anvendt på carten, og hver linjes discountAllocations viser de rabatter, der er anvendt på den specifikke linje:
Placering og grænser
- Region: alle (top, brødtekst eller bund). Også tilgængelig som en Cart items-under-blok.
- Maksimum: ubegrænset.
- Tilstand: fyldt og tom cart (som sektionsblok). Som en Cart items-under-blok renderes den kun, når carten har linjer, én instans pr. linje.
- Ikke låst, så du kan fjerne eller skjule den.
- Der er ingen Design-sektion pr. blok. Stil gennem din egen markup, Tilpasset CSS og dine globale Designindstillinger.