8 min

Trappole nella logica dei coupon: regole di accumulo che non rompono il carrello

Le insidie nella logica dei coupon possono compromettere i totali del checkout. Scopri regole di accumulo, esclusioni e schemi testabili per evitare doppi sconti e totali negativi.

Trappole nella logica dei coupon: regole di accumulo che non rompono il carrello

Perché la logica delle promo si rompe così spesso

Le promo sembrano semplici finché non le metti in un vero checkout. Un carrello cambia continuamente, mentre gli sconti spesso vengono scritti come regole isolate. È in quel divario che si manifestano la maggior parte delle insidie nella logica dei coupon.

La cosa difficile è che una sola nuova regola può cambiare i totali ovunque. Aggiungi “10% di sconto, ma non sugli articoli in saldo” e devi decidere cosa significa “in saldo”, quando viene verificato e su quale importo si applica il 10%. Se un'altra promo tocca gli stessi articoli, conta l'ordine e l'ordine cambia il prezzo.

Molti team mescolano anche la matematica con le regole di business. Una correzione rapida come “limita lo sconto al subtotale” viene copiata in tre posti e presto ottieni risposte diverse a seconda di dove il totale viene calcolato (pagina carrello, checkout, fattura, email).

I momenti ad alto rischio sono quando il sistema ricalcola i prezzi:

  • Aggiornamenti del carrello: variazione quantità, rimozione articolo, cambio metodo di spedizione
  • Modifiche dopo il pagamento: cambio indirizzo, annullamenti parziali, sostituzioni di articoli
  • Rimborsi e resi: riproporzionamento tra articoli, aggiustamenti tasse, credito in negozio
  • Modalità multi-valuta o tassazione: prezzi netti vs lordi, totali inclusivi di tasse

Un piccolo esempio: un cliente aggiunge un bundle, applica un codice “$20 off $100”, poi rimuove un articolo. Se il tuo codice continua a “ricordare” il vecchio subtotale, puoi finire per applicare $20 su un carrello da $85, o addirittura far diventare una riga articolo negativa.

Alla fine di questo post dovresti essere in grado di prevenire i fallimenti promozionali più comuni: doppi sconti, totali non corrispondenti tra schermate, totali negativi, sconti applicati ad articoli esclusi e rimborsi che non corrispondono a quanto il cliente ha pagato.

Inizia con regole chiare di accumulo e priorità

La maggior parte delle insidie nella logica dei coupon nasce da una frase mancante: quali sconti possono applicarsi insieme e in quale ordine. Se non riesci a spiegare le regole di accumulo in linguaggio semplice, il carrello prima o poi farà qualcosa di sorprendente.

Definisci l'accumulo con semplici affermazioni sì/no. Ad esempio: “Un coupon manuale per ordine. Le promo automatiche possono comunque applicarsi a meno che il coupon non dica che le blocca.” Quella riga previene combinazioni casuali che portano a doppi sconti.

Separa presto gli sconti a livello di articolo da quelli a livello di ordine. Le regole a livello di articolo cambiano il prezzo di prodotti specifici (per esempio 20% sulle scarpe). Le regole a livello di ordine cambiano il totale (per esempio $10 sul carrello). Mescolarli senza struttura è come far scivolare i totali tra pagina prodotto, carrello e checkout.

Decidi cosa significa “miglior affare” prima di scrivere il codice. Molti team scelgono “massimo risparmio”, ma questo può infrangere i limiti di prezzo. Potresti anche aver bisogno di regole come “mai scontare sotto il costo” o “mai rendere la spedizione negativa”. Scegli una regola vincente chiara così il motore non deve indovinare.

Un ordine di priorità semplice mantiene i conflitti prevedibili:

  • Promo automatiche prima (catalogo o stagionali)
  • Coupon manuale dopo (quello che il cliente ha inserito)
  • Credito del negozio o gift card per ultime (tender, non uno sconto)
  • Tasse e spedizione ricalcolate dopo gli sconti

Esempio: un carrello ha un 10% automatico su tutti gli articoli, più un coupon inserito per $15 off su ordini oltre $100. Se la tua priorità dice automatiche prima, puoi rispondere chiaramente: la soglia dei $100 usa il subtotale pre-sconto o quello scontato? Scrivilo e mantienilo coerente ovunque.

Una volta scritte, le regole di accumulo diventano regole testabili, non comportamenti nascosti. Questa è la via più rapida per evitare trappole in seguito.

Modella gli sconti come dati semplici ed espliciti

Molte insidie iniziano quando gli sconti sono sparsi in if-else nel codice del checkout. Un approccio più sicuro è trattare ogni promo come dati con tipo, ambito e limiti chiari. Così la matematica del carrello diventa un piccolo valutatore prevedibile.

Inizia nominando il tipo di sconto, non l'idea marketing. La maggior parte delle promo rientra in poche forme: percentuale, importo fisso, articolo gratis (buy X get Y) e spedizione gratis. Se riesci a esprimere una promo con uno di questi tipi, eviti casi speciali difficili da testare.

Poi rendi esplicito l'ambito. Lo stesso percentuale si comporta molto diversamente a seconda di cosa colpisce. Definisci se si applica all'intero ordine, a una categoria, a un prodotto, a una singola riga o alla spedizione. Se l'ambito è poco chiaro, sconti il subtotale sbagliato o sconti due volte.

Cattura i vincoli come campi, non commenti nel codice. I più comuni sono minimo di spesa, solo primo ordine e intervallo date. Registra anche come comportarsi con i prezzi in saldo: accumulare sopra, applicare al prezzo originale o escludere articoli scontati.

Uno schema compatto per una regola potrebbe includere:

  • type (percent, fixed, free_item, free_shipping)
  • scope (order, category, product, item, shipping)
  • constraints (min_spend, first_order, start_at, end_at)
  • floors (min_total = 0, min_item_price, optional min_margin)
  • rounding policy (per item vs per order)

Infine, aggiungi pavimenti di prezzo che il motore deve sempre rispettare: i totali non scendono mai sotto zero e, se il business lo richiede, gli articoli non vanno mai sotto costo (o sotto un prezzo minimo definito). Se lo implementi, eviti totali negativi e casi in cui “paghiamo il cliente”.

Se prototipi un motore sconti in Koder.ai, tieni questi campi visibili nella modalità di pianificazione così il valutatore resta semplice e testabile man mano che aggiungi promo.

Passo dopo passo: un modo sicuro per valutare le promo

La maggior parte delle insidie nasce quando i controlli di idoneità e la matematica si mescolano. Un pattern più sicuro è a due fasi: prima decidi cosa può applicarsi, poi calcoli gli importi. Questa separazione mantiene le regole leggibili e rende più facile prevenire stati errati (come totali negativi).

Un ordine deterministico di valutazione

Usa lo stesso ordine ogni volta, anche se le promo arrivano in ordine diverso dall'interfaccia o dall'API. La determinismo è importante perché trasforma “perché questo carrello è cambiato?” in una domanda a cui puoi rispondere.

Un flusso semplice che funziona bene:

  • Validate input: formato codice promo, finestra temporale, ambito cliente, valuta e che i prezzi siano non negativi.
  • Select eligible promos: esegui solo le verifiche di idoneità (niente soldi ancora). Costruisci una lista di candidati.
  • Resolve stacking and priority: applica le tue regole di accumulo (es: “un massimo di una promo a livello ordine”) e i tie-breaker (priorità, poi miglior valore, poi ID stabile).
  • Apply calculations: calcola gli sconti usando una base consistente (pre-tassa vs post-tassa, spedizione inclusa o no) e regole di arrotondamento.
  • Summarize totals: ricalcola i totali d'ordine dalle righe, poi limita a zero e applica massimi sconto.

Traccia un dettaglio e una cronologia di audit

Quando applichi promo, non memorizzare solo un singolo “totale sconto”. Tieni una scomposizione per riga e per ordine così puoi riconciliare i totali e spiegarli.

Al minimo, registra:

  • Quale regola o promo è stata applicata (ID e versione) e la sua priorità
  • Perché si è applicata (fatti di idoneità come “categoria=scarpe”, “cart subtotal >= 50”)
  • Cosa ha cambiato (ID righe interessate, importo base, importo sconto, arrotondamento)
  • Cosa ha impedito (es: “bloccato da esclusione: ha già sconto a livello articolo”)

Esempio: un carrello ha due articoli, uno è già in saldo. Fase 1 marca il codice idoneo solo per l'articolo a prezzo pieno. Fase 2 applica il 10% su quella riga, lascia la riga in saldo invariata, poi ricalcola i totali d'ordine dalla scomposizione per riga così non sconti due volte per errore.

Codifica le esclusioni senza creare spaghetti logici

Mantieni il controllo completo del codice sorgente
Esporta il codice sorgente in modo che il team possa rivedere il motore sconti e ampliarlo in seguito.

Molte insidie cominciano quando le esclusioni sono nascoste in branche speciali tipo “se codice è X, salta Y”. Funziona per una promo, poi si rompe quando arriva la prossima.

Un pattern più sicuro è: mantieni un unico flusso di valutazione e rendi le esclusioni un set di controlli che possono rifiutare una combinazione di promo prima di calcolare soldi. Così gli sconti non si applicano a metà.

Tratta le esclusioni come dati, non come branching

Invece di codificare comportamenti, dai a ogni promo un piccolo “profilo di compatibilità” esplicito. Per esempio: tipo promo (coupon vs vendita automatica), ambito (articoli, spedizione, ordine) e regole di combinazione.

Supporta entrambi:

  • Lista “Cannot combine with” (denylist): la promo A blocca la promo B.
  • Lista “Only combine with” (allowlist): la promo A può accumulare solo con un insieme nominato.
  • Flag di regola come “blocks automatic sales” o “requires no other coupons.”

La chiave è che il tuo motore faccia le stesse domande per ogni promo e poi decida se l'insieme è valido.

Rendi i conflitti espliciti, incluse le vendite automatiche

Le vendite automatiche vengono spesso applicate prima, poi arriva un coupon e le sovrascrive silenziosamente. Decidi in anticipo cosa deve succedere:

  • Il coupon si accumula sopra la vendita
  • Il coupon si applica solo agli articoli non in saldo
  • Il coupon è rifiutato se è presente una vendita

Scegline uno per promo e codificalo come controllo, non come percorso di calcolo alternativo.

Un modo pratico per evitare sorprese è validare la simmetria. Se “WELCOME10 non può combinarsi con FREESHIP” deve essere reciproco, codificalo in modo che blocchi entrambe le direzioni. Se non è reciproco, fallo intenzionalmente e rendilo visibile nei dati.

Esempio: è in corso una vendita automatica del 15% a livello sito. Un cliente inserisce un coupon del 20% destinato solo a articoli a prezzo pieno. I tuoi controlli dovrebbero rifiutare gli articoli in saldo per il coupon prima di calcolare i totali, invece di scontarli e poi cercare di correggere i numeri.

Se costruisci le regole in una piattaforma come Koder.ai, tieni questi controlli come uno strato separato e testabile così puoi cambiare le regole senza riscrivere la matematica.

Casi limite che causano totali non corrispondenti

La maggior parte delle controversie sulle promo non riguarda lo sconto principale. Succede quando lo stesso carrello viene calcolato in due modi leggermente diversi e il cliente vede un numero nel carrello e un altro al checkout.

Inizia bloccando l'ordine delle operazioni. Decidi e documenta se gli sconti a livello di articolo avvengono prima degli sconti a livello di ordine e dove si colloca la spedizione. Una regola comune: prima sconti articolo, poi sconto d'ordine sul subtotale rimanente, poi sconti sulla spedizione. Qualunque sia la scelta, usa la stessa sequenza esatta ovunque mostri un totale.

La tassa è la trappola successiva. Se i prezzi includono la tassa, uno sconto riduce anche la parte di tassa. Se i prezzi sono esclusivi di tassa, la tassa si calcola dopo gli sconti. Mescolare questi modelli in parti diverse del flusso è una delle classiche insidie perché due calcoli corretti possono comunque discordare se assumono basi diverse per la tassa.

I problemi di arrotondamento sembrano piccoli ma generano molti ticket. Decidi se arrotondare per riga (ogni SKU dopo lo sconto) o solo a livello d'ordine e mantieni la precisione della valuta. Con coupon percentuali, l'arrotondamento per riga può scostarsi di qualche centesimo rispetto all'arrotondamento d'ordine, soprattutto con molti articoli a basso prezzo.

Ecco casi limite da gestire esplicitamente:

  • Resi e rimborsi parziali: riproporziona gli sconti tra gli articoli così i rimborsi non superano quanto è stato pagato.
  • Modifiche del carrello dopo aver applicato un coupon: rivaluta idoneità e limiti quando si aggiungono o rimuovono articoli.
  • Cambi della spedizione: cambio indirizzo o metodo può cambiare importi tassabili e idoneità allo sconto di spedizione.
  • Cambi di quantità: ripetere lo stesso articolo può superare soglie (per esempio min spend o buy-X-get-Y).
  • Articoli con tassazione mista: alcuni articoli possono essere non tassabili ma comunque idonei alle promo.

Un esempio concreto: un coupon del 10% sull'ordine più spedizione gratuita sopra i $50. Se il coupon si applica prima del controllo della soglia, il subtotale scontato potrebbe scendere sotto $50 e la spedizione smette di essere gratuita. Scegli un'interpretazione, codificala come regola e rendila coerente in carrello, checkout e rimborsi.

Bug promozionali comuni e come si verificano

La maggior parte delle insidie appare quando il carrello viene valutato da più di un percorso. Una promo può essere applicata a livello di riga in un punto e di nuovo a livello d'ordine in un altro, e entrambi sembrano “corretti” isolatamente.

Ecco i bug più frequenti e la causa tipica dietro ciascuno:

  • Doppio sconto sugli stessi articoli: la stessa promozione è applicata una volta nel prezzo articolo e di nuovo nel totale di ordine, spesso perché due servizi cercano entrambi di applicare sconti.
  • Totali negativi o righe negative: un importo fisso viene permesso di superare l'ammontare idoneo (per esempio $20 off su un subtotale idoneo di $12) senza un pavimento a zero.
  • Percentuale applicata dopo uno sconto per errore: il motore applica il 10% su un prezzo già ridotto quando la regola intendeva “10% sul prezzo di listino”, perché il codice usa il prezzo corrente invece del prezzo base.
  • Minimo di spesa verificato sul subtotale sbagliato: la regola controlla il subtotale pre-sconto ma il business si aspettava post-sconto (o viceversa), portando a promo che si applicano o falliscono in modo sorprendente.
  • Articoli esclusi che comunque ricevono il coupon: l'idoneità si basa su tag prodotto, ma tag mancanti o incoerenti (o un percorso di fallback) trattano gli articoli sconosciuti come idonei.

Esempio concreto: un carrello ha due articoli, uno idoneo e uno escluso. Se il motore calcola correttamente il “subtotale idoneo” per la promo percentuale, ma poi sottrae un importo fisso dal totale dell'ordine, l'articolo escluso risulta scontato comunque.

Il pattern più sicuro è calcolare ogni promo contro un “importo idoneo” esplicito e restituire una rettifica limitata (mai sotto zero), più una traccia chiara di cosa ha interessato. Se generi il motore sconti in uno strumento come Koder.ai, fallo uscire con la traccia in dati semplici così i test possono asserire esattamente quali righe erano idonee e quale subtotale è stato usato.

Rendi le regole testabili con la suite di test giusta

Refattorizza senza regressioni
Apporta modifiche alle promo in sicurezza con snapshot e rollback quando una nuova regola rompe i totali.

La maggior parte delle insidie emerge perché i test controllano solo il totale finale. Una buona suite verifica sia l'idoneità (questa promo dovrebbe applicarsi?) sia la matematica (quanto deve togliere?), con una scomposizione leggibile da confrontare nel tempo.

Costruisci i test dal piccolo al reale

Inizia con unit test che isolano una regola alla volta. Mantieni l'input piccolo, poi espandi a scenari di carrello completi.

  • Test unità idoneità: la promo si applica dato il tipo di cliente, le date, i tag prodotto e il minimo di spesa?
  • Test unità matematica: dato un subtotale idoneo fisso, il calcolo corrisponde alle regole di arrotondamento e valuta?
  • Test di scenario: articoli misti, quantità, spedizione, tassa e un paio di promo in competizione.
  • Test “carrello cambiato”: prezzo aggiornato, articolo rimosso o quantità cambiata tra valutazione e checkout.
  • Test snapshot della scomposizione: salva l'allocazione expected sconto riga-per-riga, non solo il totale finale.

Dopo aver ottenuto copertura, aggiungi alcuni controlli “sempre veri”. Questi catturano i casi strani che non hai pensato di scrivere a mano.

  • Il totale non scende mai sotto 0.00.
  • Uno sconto non aumenta mai il totale.
  • Lo sconto applicato non è mai maggiore della base idonea.
  • Rimuovere un articolo non idoneo non può aumentare lo sconto.

Un piccolo esempio di carrello

Immagina un carrello con 2 articoli: una maglia $40 (idonea) e una gift card $30 (esclusa). Spedizione $7. Una promo è “20% su abbigliamento, max $15”, più una seconda “$10 off su ordini oltre $50” che non può accumularsi con sconti percentuali.

Il tuo test di scenario dovrebbe affermare quale promo vince (priorità), confermare che la gift card è esclusa e verificare l'esatta allocazione: 20% di $40 è $8, spedizione intatta, totale finale corretto. Salva quella scomposizione come uno snapshot golden così i refactor successivi non cambino silenziosamente quale promo si applica o inizino a scontare righe escluse.

Lista di controllo veloce pre-lancio

Prima di pubblicare una nuova promo, fai un'ultima passata con una checklist che cattura i fallimenti che i clienti notano subito: totali strani, messaggi confusi e rimborsi che non tornano. Questi controlli aiutano a prevenire le insidie perché costringono le regole a comportarsi allo stesso modo in ogni carrello.

Esegui questi controlli contro un piccolo set di carrelli “tricky” (un articolo, molti articoli, aliquote fiscali miste, spedizione e una riga ad alta quantità). Salva i carrelli così puoi rieseguirli ogni volta che cambi il codice dei prezzi.

I cinque controlli che catturano la maggior parte dei fallimenti

  • Guardrail sui totali: il totale finale e il prezzo netto di ogni riga non devono mai scendere sotto zero. Se uno sconto eccede ciò a cui può applicarsi, limitalo e registra l'importo limitato.
  • Matematica spiegabile: la scomposizione mostrata al cliente (per promo, per riga, per spedizione) deve sommare esattamente all'importo finale pagato. Se non lo spieghi in una frase, le regole sono troppo vaghe.
  • Una sola policy di accumulo, niente sorprese: decidi e verifica cosa può accumularsi (coupon con promo automatiche, percentuale con fisso, sconto spedizione con sconto articolo). Rendi l'ordine di priorità esplicito e conferma che corrisponde a quanto dirà il team support.
  • Arrotondamento coerente: scegli una regola di arrotondamento (per riga vs per ordine, half-up vs bankers, decimali specifici per valuta). Documentala e testala con prezzi come $0.99, quantità come 3 e sconti percentuali misti.
  • Rimborsi e resi corretti: i resi parziali devono rimborsare la giusta porzione di sconti, tasse e spedizione. Testa “restituisci 1 di 3 articoli”, “restituisci l'articolo scontato per primo” e “rimborso dopo scadenza promo”.

Se costruisci le regole in un generatore come Koder.ai, aggiungi questi casi come test automatici insieme alle definizioni. L'obiettivo è semplice: ogni nuova promo fallisca velocemente nei test invece che nel carrello di un cliente.

Uno scenario realistico di accumulo per validare le regole

Distribuisci un servizio promo testabile
Distribuisci e ospita rapidamente il servizio promo in modo che i test corrispondano al comportamento in produzione.

Ecco un piccolo carrello che espone la maggior parte delle insidie senza complicarsi troppo.

Assumi queste regole (scrivile esattamente così nel sistema):

  • Promo automatica applicata prima, a livello di articolo, solo su articoli full-price idonei
  • Coupon a livello d'ordine, $15 off, richiede almeno $100 di merce idonea
  • “Merce idonea” esclude articoli in saldo, spedizione e tasse
  • Lo sconto coupon non può superare il subtotale idoneo dopo le promo precedenti
  • La tassa si calcola dopo gli sconti (sulla merce scontata più la spedizione)

Carrello e promo

Carrello:

VocePrezzoNote
Articolo A$60full-price, idoneo
Articolo B$40full-price, idoneo
Articolo C$30articolo in saldo, escluso
Spedizione$8commissione

Promo:

  • Promo 1: vendita automatica weekend 10% sugli articoli idonei
  • Promo 2: coupon $15 off, min $100 di merce idonea, esclude articoli in saldo

Walkthrough e scomposizione finale

  1. Verifica minimo coupon: la merce idonea prima degli sconti è $60 + $40 = $100, quindi il coupon può applicarsi.

  2. Applica Promo 1 (10% sugli articoli idonei): $100 x 10% = $10 di sconto. Il subtotale idoneo diventa $90.

  3. Applica Promo 2 ($15 off): il cap è $90, quindi si applicano tutti i $15. Nuovo subtotale idoneo: $75.

Totali:

  • Merce: idonea $75 + articolo in saldo $30 = $105
  • Spedizione: $8
  • Tassa (8%): (105 + 8) x 0.08 = $9.04
  • Totale finale: $105 + $8 + $9.04 = $122.04

Ora cambia una cosa: il cliente rimuove l'Articolo B ($40). La merce idonea diventa $60, quindi il coupon non supera più il minimo. Rimane solo la promo automatica al 10%: l'Articolo A diventa $54, la merce è $54 + $30 = $84 e il totale finale diventa $99.36. Questo è il tipo di “piccola modifica” che spesso rompe i carrelli se idoneità e ordine non sono espliciti.

Passi successivi: pubblicare promo in sicurezza e mantenerle manutenibili

Il modo più rapido per evitare insidie è trattare le promo come regole di prodotto, non come “un po' di matematica nel checkout”. Prima di pubblicare, scrivi una breve specifica che chiunque nel team possa leggere e approvare.

Includi quattro cose, in linguaggio semplice:

  • Regole di accumulo (cosa può combinarsi e cosa no)
  • Ordine di priorità (qual è lo sconto che vince quando due targettano gli stessi articoli)
  • Esclusioni (categorie, brand, articoli in saldo, abbonamenti, gift card)
  • Pavimenti e limiti (min subtotale, max sconto e “mai sotto $0”)

Dopo il rilascio, monitora i totali come monitoreresti gli errori. Un bug sugli sconti spesso sembra un ordine valido finché la finanza non lo vede.

Imposta monitoraggio che segnali ordini con schemi insoliti, come totali quasi zero, totali negativi, sconti maggiori del subtotale o picchi di carrelli “100% off”. Instrada gli alert nello stesso posto degli errori di checkout e tieni un piccolo playbook su come disabilitare una promo in sicurezza.

Per aggiungere nuove promo senza regressioni, usa un flusso ripetibile: aggiorna prima la specifica, codifica la regola come dati (non codice ramificato), aggiungi test per alcuni carrelli “normali” più uno o due edge case cattivi, quindi esegui l'intera suite di test prima di fare il merge.

Se vuoi implementare e iterare più rapidamente, puoi prototipare i flussi del motore promo in Koder.ai usando la modalità di pianificazione, poi usare snapshot e rollback mentre affini i test. Ti aiuta a provare cambi di regola rapidamente senza perdere una versione nota funzionante.

Domande frequenti

Quali sono le regole di cumulabilità dei coupon?

Definisci una sola policy di cumulabilità prima di scrivere codice. Specifica quali promozioni automatiche, coupon, offerte di spedizione e crediti del negozio possono combinarsi, poi stabilisci l'ordine in cui il carrello le valuta.

Come posso impedire che un coupon crei un totale negativo?

Applica lo sconto fisso solo all'importo idoneo e limita il risultato a zero. Ricalcola questo limite ogni volta che il carrello cambia, invece di riutilizzare un subtotale precedente.

Come può un coupon escludere gli articoli in saldo?

Mantieni gli articoli in saldo nel carrello, ma escludili dal subtotale idoneo per il coupon prima di calcolare lo sconto. Salva questa esclusione nella regola promozionale, così ogni schermata usa lo stesso risultato.

Le promozioni automatiche dovrebbero essere applicate prima dei codici coupon?

Usa una sequenza di valutazione fissa. Per esempio, applica prima le promozioni sugli articoli, poi i coupon sull'ordine, quindi le offerte di spedizione, e calcola le imposte dopo se la tua policy fiscale lo richiede.

Quali dati dovrebbe includere una regola di sconto?

Assegna a ogni promozione un tipo, un ambito, vincoli, esclusioni, soglie minime e una policy di arrotondamento. Il motore di valutazione potrà così usare la stessa struttura dati invece di gestire casi speciali sparsi.

Perché serve una traccia di audit delle promozioni?

Registra l'ID e la versione della promozione applicata, le righe interessate, l'importo base idoneo, l'importo dello sconto, il risultato dell'arrotondamento e le eventuali promozioni bloccate. Così assistenza e finanza possono spiegare il prezzo finale senza ricostruire l'ordine a mano.

Quando il checkout dovrebbe ricalcolare uno sconto?

Rivaluta ogni promozione quando cambiano quantità, articoli, indirizzo, metodo di spedizione, valuta o impostazioni fiscali. Un coupon valido può diventare non valido dopo che il cliente rimuove un articolo o scende sotto una soglia di spesa.

Come posso evitare che i totali del carrello e del checkout non coincidano?

Scegli un solo metodo di arrotondamento, ad esempio arrotondare ogni riga o solo il totale dell'ordine, e usalo ovunque. Piccole differenze diventano visibili quando uno sconto percentuale si applica a più articoli a basso prezzo.

Come dovrebbero gestire gli sconti i rimborsi parziali?

Ripartisci lo sconto originale tra gli articoli acquistati e rimborsa solo la quota pagata per quell'articolo, compresa la relativa rettifica fiscale. Non calcolare il rimborso in base alle regole promozionali attuali, perché la promozione potrebbe essere scaduta o il carrello potrebbe essere cambiato.

Quali test individuano il maggior numero di bug nelle promozioni?

Verifica idoneità, calcoli, esclusioni, conflitti di cumulabilità, modifiche al carrello, arrotondamenti, imposte e resi parziali. Verifica anche che nessuno sconto superi la sua base idonea e che i totali non scendano mai sotto zero.

Related posts