Skip to main content
Nascondi le righe che l’acquirente non dovrebbe vedere, rinomina le righe che si leggono male e controlla l’ordine in cui tutto viene renderizzato, il tutto senza toccare ciò che è effettivamente nel carrello. Questo sostituisce il vecchio pattern di nascondere gli elementi del carrello con CSS o style.display = 'none'. Un line transform viene applicato ogni volta che il carrello renderizza, quindi sopravvive ad aggiornamenti, re-render e riaperture del drawer.

Nascondere una riga

Nascondere non è rimuovere. Una riga nascosta rimane nel carrello dell’acquirente, rimane nel totale e arriva fino al checkout; semplicemente non viene disegnata nel drawer. Esce però da getCart().items e da itemCount, quindi anche il tuo stesso codice smette di vederla. Se vuoi che sparisca davvero, usa removeItem.
Cose che vale la pena nascondere comunemente:

Rietichettare una riga

I quattro setter disponibili su una riga:

Controllare l’ordine

Un comparator ha la stessa forma che Array.prototype.sort si aspetta, e viene eseguito dopo il nascondere e il rinominare:
Restituisci 0 per le coppie che non ti interessano. I comparator si compongono come criteri di spareggio, quindi il primo che restituisce un valore diverso da zero decide quella coppia e restituire 0 passa la decisione al successivo invece di imporre un ordine.

Nascondere un intero blocco, non una riga

Un line transform lavora sulle righe del carrello. Per mostrare impostazioni di blocco diverse per paese, mercato o valuta (per esempio livelli di Rewards diversi), usa le condizioni nel cart editor. Nessun codice richiesto, e sopravvive ai redesign del carrello. Il totale del carrello e il contenuto del carrello non sono tipi di condizione dell’editor. Ricorri all’SDK quando la tua regola è qualcosa che le condizioni non possono esprimere (ID di prodotti nel carrello, un totale personalizzato e così via). In tal caso, interroga lo shadow root per una classe pubblica cart-external-*:
Questo viene eseguito dopo ogni render, quindi il blocco può lampeggiare a vista prima che il tuo codice lo nasconda. Il rendering condizionale non ha quel problema, quindi preferiscilo ovunque sia applicabile.

Cose da fare bene

  • I transform sono chiamate di set-up. Registrali all’inizio del tuo script Initialization; non serve ready().
  • I transform di tutti vengono eseguiti. Il tuo si compone con quelli registrati da altre app. Non puoi sostituire i loro, e loro non possono eliminare il tuo.
  • Un transform non può cambiare prezzo, quantità o identità. Cambia solo ciò che viene renderizzato. Usa le azioni per modifiche reali.
  • Un transform che lancia un errore viene saltato silenziosamente. Gli altri vengono comunque eseguiti. Controlla aftersellCartDebugEvents durante lo sviluppo.
  • registerLineTransform restituisce una funzione di deregistrazione, se hai bisogno di annullarlo in seguito.

Dove andare adesso