Il drawer del carrello mostra il regalo o il bundle al prezzo pieno
Se il drawer del carrello mostra un regalo o un articolo del bundle al prezzo pieno, mentre il totale del carrello e il checkout sono corretti, controlla come il drawer legge e aggiorna i prezzi. I vecchi campi Liquid del prezzo possono omettere gli sconti automatici e il drawer può anche mantenere un'istantanea obsoleta del carrello. Questo articolo spiega come distinguere i due casi.
Controllo rapido: il totale è corretto?
Prima di modificare qualsiasi cosa, verifica dove appare effettivamente il prezzo errato:
- Se il prezzo per riga nel drawer sembra errato, cioè mostra il prezzo pieno per un regalo o un articolo scontato, ma il subtotale del carrello in fondo al drawer e il totale del checkout sono corretti, si tratta solo di un problema di visualizzazione. Continua a leggere.
- Se è errato il totale del checkout, si tratta di un problema diverso, ad esempio un'altra app di sconti che applica sconti cumulativi oppure uno sconto non corrispondente. Questo articolo non tratta questo caso.
Bundlex non esegue il rendering del drawer del carrello. Lo sconto viene applicato da una funzione di sconto del carrello Shopify che viene eseguita al checkout e Bundlex non può riscrivere la visualizzazione del prezzo per riga del tema.
Perché il drawer mostra il prezzo pieno
Bundlex applica lo sconto tramite una funzione di sconto del carrello Shopify. La funzione alloca lo sconto sulle righe del carrello, che Shopify considera una forma di sconto automatico.
Il problema riguarda il modo in cui alcuni temi eseguono il rendering di ogni riga del carrello. I drawer del carrello più vecchi o personalizzati mostrano il prezzo della riga usando i campi Liquid line_item.price e line_item.line_price. La documentazione di Shopify indica questi campi come obsoleti perché non riflettono gli sconti automatici. Di conseguenza, il drawer mostra il prezzo originale senza sconto, anche se Shopify ha registrato correttamente lo sconto su quella riga.
Il risultato visibile ai clienti: ogni riga del bundle mostra lo stesso prezzo unitario pieno e una riga gratuita, cioè un regalo, può sembrare a pagamento. Nel frattempo, il subtotale e il checkout sono corretti perché vengono calcolati a partire dai valori scontati.
Verificalo con /cart.js
Puoi dimostrare che lo sconto viene applicato correttamente, indipendentemente da ciò che mostra il drawer:
- Nel negozio online, aggiungi il bundle, oppure l'offerta con il regalo gratuito, al carrello.
- Nel browser, apri
/cart.jssullo stesso negozio, ad esempio visitahttps://yourstore.com/cart.js. - Trova la riga interessata e controlla
final_priceefinal_line_price.
Per una riga con regalo gratuito funzionante, vedrai qualcosa come final_price: 0 e final_line_price: 0, con lo sconto elencato sotto discounts di quella riga, cioè il titolo dell'offerta e l'importo scontato. Controlla quali campi il tuo drawer visualizza effettivamente. La deprecazione descritta sopra riguarda line_item.price e line_item.line_price di Liquid; una risposta /cart.js da sola non identifica la fonte dei dati del drawer.
Interpretazione del risultato:
final_price/final_line_priceriflettono lo sconto, ma il drawer mostra il prezzo pieno. Controlla sia i campi visualizzati dal drawer sia se viene aggiornato dopo le modifiche al carrello.final_pricenon riflette lo sconto. In questo caso il problema non riguarda la visualizzazione del drawer. Controlla invece il lato della funzione del carrello, ad esempio se il bundle è stato taggato correttamente, se il metafield dello sconto è aggiornato o se si applicano regole di idoneità del cliente come B2B o i tag cliente.
La soluzione: usa final_price e final_line_price
Se lo snippet Liquid del drawer del carrello usa questi campi obsoleti per il prezzo corrente, sostituiscili con i relativi equivalenti final_:
line_item.pricediventaline_item.final_priceline_item.line_pricediventaline_item.final_line_price
I campi final_ includono sconti a livello di riga. Se il tuo carrello a scomparsa utilizza JavaScript, verifica anche che visualizzi una risposta aggiornata del carrello o sezioni del tema aggiornate dopo le modifiche. Sostituire un campo del prezzo non corregge un'istantanea obsoleta.
Poiché il valore
priceper riga è un attributo Liquid statico, Bundlex non può riscriverlo al posto tuo. I dati dello sconto sono già presenti infinal_price; il tema deve solo leggerli.
Se utilizzi un prezzo di confronto nativo
Se le tue varianti includono anche un compare_at_price Shopify, ovvero un prezzo barrato come "50% di sconto", quel badge viene visualizzato dal tema a partire dai dati della variante e non è correlato allo sconto Bundlex. Dopo il passaggio ai campi final_, il prezzo della riga rifletterà lo sconto Bundlex, mentre il prezzo di confronto barrato continuerà a essere visualizzato secondo la configurazione del tema.
L'altro caso: una riga regalo residua a $0
Un sintomo correlato ma distinto: un cliente sceglie un'offerta che include un regalo gratuito, poi riduce la quantità dell'articolo principale al di sotto della soglia dell'offerta. La riga principale passa correttamente a un livello inferiore, ma una riga del regalo gratuito rimane nel carrello mostrando $0.
Ecco perché. Quando la quantità scende al di sotto della soglia, la funzione del carrello interrompe correttamente l'applicazione dello sconto e rimuove l'allocazione. Tuttavia, una funzione del carrello Shopify non può rimuovere una riga del carrello perché non dispone di un'operazione di rimozione. Per un regalo gratuito configurato come variante di catalogo a $0, non esiste un prezzo a cui "tornare", quindi la riga del regalo che non soddisfa più i requisiti rimane semplicemente a $0.
Per gestire questo caso, Bundlex include una pulizia lato widget che viene eseguita dopo una modifica al carrello e rimuove la riga del regalo orfana. Esistono alcune condizioni che determinano quando può essere eseguita:
- Solo regali gratuiti. Gli extra a pagamento vengono gestiti dall'integrità del bundle, non da questa pulizia.
- Percorsi di modifica del carrello supportati. Quando è attivo un widget Bundlex completo, la pulizia gestisce sia le modifiche al carrello tramite fetch sia quelle tramite XHR. Nelle pagine in cui è in esecuzione solo lo script di pulizia dei regali senza un widget, l'intercettazione copre solo le modifiche tramite fetch. Il comportamento di aggiornamento del tema può comunque influire su ciò che viene visualizzato nel carrello a scomparsa.
- La pulizia viene eseguita al meglio delle possibilità. Se un passaggio non riesce, la riga del regalo potrebbe rimanere visibile fino alla successiva interazione con il carrello.
Dopo aver rimosso una riga, Bundlex invia eventi di aggiornamento del carrello per richiedere il nuovo rendering del tema. Su Dawn e sui temi Shopify gratuiti basati su Dawn, Bundlex ridisegna anche il carrello a scomparsa, la pagina del carrello e il conteggio sull'icona del carrello. Non esiste un singolo evento di aggiornamento del carrello implementato da tutti i temi Shopify, quindi negli altri temi che non ascoltano questi eventi il carrello a scomparsa può rimanere obsoleto fino alla successiva interazione. Il punto più importante è che i calcoli del carrello sono sempre corretti. Al cliente non viene addebitata la riga residua a $0 e il totale del checkout è accurato indipendentemente da ciò che il carrello a scomparsa mostra temporaneamente.
Riepilogo
- Il carrello a scomparsa mostra il prezzo intero, ma il totale e il checkout sono corretti: verifica la presenza di campi Liquid del prezzo obsoleti o di dati del carrello non aggiornati.
- Verifica con
/cart.js:final_price/final_line_priceriflettono lo sconto. - Correzione nel tema: sostituisci quei campi con
final_priceefinal_line_price. - Una riga regalo residua a $0 dopo la riduzione della quantità è prevista, perché Shopify non può rimuovere le righe; Bundlex la elimina nei temi supportati e il prezzo è sempre corretto al checkout.
Questo articolo è stato utile?
Il tuo feedback ci aiuta a migliorare la documentazione.