Sconti e codici di sconto
Uno sconto è un incentivo sul prezzo offerto ai clienti per promuovere un acquisto. Un codice di sconto è un codice di calcolo il cui utilizzo rappresenta lo "sconto."
Viene utilizzato per calcolare le rettifiche di articoli dell'ordine. Ogni riga della tabella CALCODE
rappresenta un CalculationCode. I Calculationcode rappresentano modi di stabilire gli importi monetari associati agli OrderItem. Consentono di calcolare gli sconti, gli addebiti di spedizione, le imposte sulla vendita e le imposte di spedizione. E' possibile limitare l'assegnazione di un CalculationCode
a specifici TradingAgreement.
Nell'assegnare uno sconto a un prodotto
o a un gruppo di prodotti sono coinvolte due dimensioni. In primo luogo, lo sconto può essere assegnato a una o più voci di catalogo e a gruppi di
catalogo. L'assegnazione di un codice di calcolo a un gruppo catalogo equivale ad assegnarlo direttamente a tutte le voci di catalogo nel gruppo di catalogo.
Inoltre, gli articoli dell'ordine vengono raggruppati per il calcolo in uno dei seguenti modi: per accordo commerciale, per prodotto, per offerta o per indirizzo di spedizione. Ciò viene specificato dall'attributo groupBy. Per ogni gruppo di oggetti OrderItem viene eseguito un calcolo separato. Se non viene specificato alcun raggruppamento, tutti gli oggetti
OrderItems assegnati ad un oggetto CalculationCode vengono utilizzati per eseguire un singolo calcolo. Di seguito vengono elencati gli attributi utilizzati per calcolare differenti tipi di sconti:
- Sconti calcolati per accordo commerciale
L'attributo perTradingAgreement indica che tutti gli articoli dell'ordine in un gruppo devono avere lo stesso accordo commerciale per poter applicare il codice di calcolo. Ad esempio, si consideri l'accordo commerciale 123, che è associato a un codice di sconto, che offre un 10% di sconto se la spesa è superiore a 100 Euro. Nel raggruppamento perTradingAgreement, se vengono spesi 175 Euro sotto il contratto 123, lo sconto è di 17.50 Euro in meno del prezzo complessivo, che determina un totale di 57.50 Euro dopo lo sconto.
- Sconti calcolati per prodotto
L'attributo perProduct indica che tutti gli articoli dell'ordine in un gruppo devono essere associati allo stesso prodotto per poter applicare il codice di calcolo. Il prodotto può essere una voce del catalogo principale degli articoli, in base al tipo di relazione PRODUCT_ITEM contenuta nella tabella di database CATRELTYPE, se presente, o solo l'articolo stesso. Ad esempio, si supponga che un codice di sconto è assegnato a CatalogEntry object 1 e CatalogEntry object 2 e che un codice di sconto specifica uno sconto del 15% concesso quando vengono acquistati più di dieci articoli. Se l'attributo perProduct è impostato su true, comprando 7 pezzi di CatalogEntry 1 e 3 di CatalogEntry 2 lo sconto del 15% non viene concesso. Per ricevere lo sconto è necessario acquistare 10 o più pezzi per un solo oggetto CatalogEntry.
Tuttavia, se l'attributo perProduct è impostato su false, per lo sconto viene considerata la quantità totale.
- Sconti calcolati per offerta
Il raggruppamento attributi perOffer è appropriato per i codici di calcolo tasse. Ad esempio, l'istruzione
"Esenzione tasse su scarpe per bambini che costano meno di 30 Euro" fa riferimento al prezzo di un singolo paio di scarpe. Se nell'ordine sono comprese diverse paia di scarpe, ogni paio compreso nella fascia di prezzo menzionata è esentasse. Poichè ogni offerta rappresenta un prezzo diverso, gli oggetti OrderItem vengono raggruppati in base all'oggetto Offer per stabilire la quota di tasse basata sul prezzo unitario.
- Sconto calcolato per indirizzo di spedizione
Il raggruppamento perShippingAddress è adatto per calcolare le tariffe di spedizione dato che agli articoli dell'ordinein un gruppo è necessario applicare il medesimo codice di tariffe di spedizione. Ad esempio, si considerino l'ordine 15, l'ordine 25 e l'ordine 26. Tutti gli ordini sono stati effettuati nello stesso negozio, dallo stesso cliente e verranno distribuiti al medesimo indirizzo di spedizione. L'ordine 15 è stato effettuato il 3 Gennaio, e gli ordini 25 e 26 nel giorno seguente. Dato che gli ordini devono essere inviati al medesimo indirizzo, essi sono associati al medesimo codice di calcolo dello sconto che specifica uno sconto del 10% su ciascun ordine se si effettuano più di 2 ordini nel negozio entro lo stesso mese. Se l'attributo
perShippingAddress è true, il cliente sosterrà il 10%
in meno per ciascuno dei tre ordini dato che tutti e tre gli ordini sono stati effettuati in Gennaio.
Ai prodotti è possibile associare più sconti. Allo stesso modo anche i gruppi di membri
possono avere più sconti. Se a un oggetto Order è applicabile più di un codice di calcolo di sconto, i calcoli vengono eseguiti nella sequenza ascendente degli attributi di sequenza dell'oggetto CalculationCode relativo. Per questo motivo,l'utilizzo di un CalculationCode è riservato esclusivamente ai membri di alcuni gruppi come precisato nella tabella CALCODEMGP. In aggiunta, per limitare l'utilizzo di un CalculationCode a membri di alcuni gruppi, è necessario definirlo nella tabella CALRULEMGP.