Skip to main content
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.
Animeret forhåndsvisning af tilføjelse og aktivering af en Custom code-blok i Aftersell Cart-editoren

Tilføj og aktivér en Custom code-blok

  1. Tilføj en Custom code-blok til en hvilken som helst sektion, eller som en under-blok under Cart items.
  2. Vælg den, og åbn Code-fanen.
  3. Vælg HTML eller React component. Nye blokke er som standard HTML.
  4. Skriv din kode.
  5. Hvis du valgte React, skal du klikke på Compile.
  6. 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.
  7. Hold sidebarens øje-knap slået til, så blokken forbliver synlig for kunder.
Både øje-knappen og “Use custom template” skal være slået til, for at blokken vises.

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

HTML-tilstanden erstatter et lille sæt tokens i din markup. Den er til statisk eller token-drevet indhold, ikke til at køre logik.

Tokens

Token-værdier er formaterede strenge (butikkens pengeformat, en procentdel med % eller et antal), klar til at indsætte i markup:

Eksempel

React-tilstand

React-tilstanden kompilerer en komponent og giver den cart-data plus en 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, useRef og useCallback.
  • I modsætning til HTML-tilstanden kører React i sidens kontekst, så den kan kalde window og 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

Totaler og besparelsesbeløb er heltal i valutaens mindste enhed (cent for USD), så $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:
  • line er kun sat på en Cart items-under-blok, hvor din komponent renderes én gang pr. linje. Placeret som en sektion er line null, og du læser i stedet cart.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

Vis vareantallet:
Som en Cart items-under-blok skal du bruge 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

Hver vare i 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.

Hvornår du skal bruge custom code-blok vs. tilpasset skabelon vs. tilpasset script