Skip to main content
Skjul linjer, kunden ikke bør se, omdøb linjer, der læses dårligt, og styr rækkefølgen, alt renderes i, alt sammen uden at røre ved, hvad der faktisk er i kurven. Dette erstatter det ældre mønster med at skjule kurvelementer med CSS eller style.display = 'none'. En line transform anvendes, hver gang kurven renderes, så den overlever opdateringer, re-renders og genåbninger af skuffen.

Skjul en linje

At skjule er ikke at fjerne. En skjult linje bliver i kundens kurv, bliver i totalen og går med til checkout; den tegnes bare ikke i skuffen. Den forsvinder dog fra getCart().items og itemCount, så din egen kode holder også op med at se den. Vil du have den væk for alvor, så brug removeItem.
Almindelige ting, der er værd at skjule:

Omdøb en linje

De fire settere, der er tilgængelige på en linje:

Styr rækkefølgen

En comparator har samme form, som Array.prototype.sort forventer, og kører efter skjul og omdøbning:
Returnér 0 for par, du ikke bekymrer dig om. Comparators sammensættes som tie-breakers, så den første, der returnerer en værdi forskellig fra nul, afgør det par, og at returnere 0 giver beslutningen videre til den næste i stedet for at påtvinge en rækkefølge.

Skjul en hel blok, ikke en linje

En line transform arbejder på kurvlinjer. For at vise forskellige blok-indstillinger efter land, marked eller valuta (for eksempel forskellige Rewards-niveauer) skal du bruge betingelser i cart editoren. Ingen kode kræves, og det overlever redesigns af kurven. Kurvtotal og kurvindhold er ikke betingelsestyper i editoren. Ræk ud efter SDK’et, når din regel er noget, betingelser ikke kan udtrykke (produkt-ID’er i kurven, en custom total og så videre). I det tilfælde forespørg shadow root’en efter en offentlig cart-external-*-klasse:
Dette kører efter hver render, så blokken kan blinke frem, før din kode skjuler den. Betinget rendering har ikke det problem, så foretræk det, hvor det passer.

Ting du skal have styr på

  • Transforms er opsætningskald. Registrér dem øverst i dit Initialization-script; ingen ready() nødvendig.
  • Alles transforms kører. Din sammensættes med alle registreret af andre apps. Du kan ikke erstatte deres, og de kan ikke droppe din.
  • En transform kan ikke ændre pris, antal eller identitet. Den ændrer kun, hvad der renderes. Brug actions til rigtige ændringer.
  • En transform, der kaster, springes over stille. Resten kører stadig. Tjek aftersellCartDebugEvents under udviklingen.
  • registerLineTransform returnerer en afregistreringsfunktion, hvis du senere skal fortryde den.

Hvor du kan gå hen herfra