Calcolatore sconto 1+1
Con cinque articoli in un'offerta compra uno, ricevi uno ne paga tre, due sono in omaggio e lo sconto reale è del 40 %. Inserisca il prezzo unitario, la quantità e i numeri dell'offerta per vedere lo sconto e il totale da pagare. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Prezzo unitario
- 10
- Quantità
- 5
- Qtà da pagare
- 1
- Qtà omaggio
- 1
- Dimensione gruppo
- 2
- Cicli offerta
- 2
- Resto
- 1
- Articoli pagati
- 3
Le promozioni al dettaglio come uno più uno, due più uno e altri adesivi compra-X-ricevi-Y-gratis sembrano semplici sullo scaffale e diventano confuse in cassa quando la quantità del carrello non è multiplo netto del ciclo offerta. Gli acquirenti vogliono un solo numero onesto: quale percentuale di sconto effettivo sto ottenendo davvero, e qual è il totale da pagare dopo gli articoli omaggio. Quantità non positive vengono rifiutate con un errore di validazione chiaro così che carrelli senza senso non diventino sconti finti.
Come si calcola la percentuale di sconto compra-X-ricevi-Y
Parta da un solo prezzo di listino unitario espresso in un’unità monetaria. Poi scelga quantity, il numero di quegli articoli identici che porta in cassa, che deve essere intero positivo perché la cassa conta unità intere. Il classico uno più uno è X uguale a uno e Y uguale a uno; due più uno è X uguale a due e Y uguale a uno.
La dimensione del gruppo offerta è X più Y. I cicli offerta completi equivalgono all’intero floor di quantity diviso la dimensione del gruppo, e il resto è quantity modulo dimensione del gruppo. Gli articoli omaggio equivalgono a cicli completi per Y più il resto omaggio max di zero e resto meno X: paga ancora i primi X articoli di un gruppo incompleto, e solo gli articoli oltre X in quel resto diventano omaggio, fino a Y per ciclo completo.
Gli articoli pagati equivalgono a quantity meno articoli omaggio. La percentuale di sconto effettiva è cento per risparmio diviso totale listino quando il totale listino è positivo, e zero quando il totale listino è zero affinché beni listino gratis non inventino Infinity. La capacità non impila coupon, non applica imposte sulle vendite, non modella carrelli multi-SKU misti dove conta la regola del più economico omaggio, né converte valute; quelle sono intenzioni di prodotto separate con le proprie pagine quando la copertura cresce.
Dove i calcolatori BOGO compaiono nel lavoro reale
Acquirenti di alimentari e abbigliamento confrontano continuamente adesivi uno più uno con saldi a percentuale e hanno bisogno di una percentuale di sconto effettiva che tenga conto della dimensione del carrello che non cade su un multiplo netto del ciclo offerta. Commercianti e operatori e-commerce che costruiscono pagine promozione vogliono un totale da pagare trasparente affinché i risparmi pubblicizzati combacino con la cassa e i resi non sparino per regole di articoli omaggio fraintese.
Giornalismo e siti di confronto che valutano offerte settimanali di supermercato convertono promozioni di scaffale in un’unica cifra di percentuale di sconto affinché i lettori classifichino le offerte con equità. Se in seguito le servono carrelli multi-SKU del più economico omaggio, motori di coupon impilati, totali con imposte o conversione multi-valuta, li tratti come intenzioni di ricerca e landing separate invece di sovraccaricare questa pagina del calcolatore sconto uno più uno.
Casi d'uso
1+1 di scaffale vs saldi a percentuale
Converta adesivi compra-X-ricevi-Y-gratis in una percentuale di sconto effettiva per una quantità reale di carrello così da confrontare promozioni a percentuale fissa.
Controlli di onestà delle pagine promozione
Calcoli totali da pagare e conteggi di articoli omaggio per offerte BOGO pubblicizzate affinché le landing del commerciante combacino con l’aritmetica di cassa.
Domande frequenti
Come funziona il conteggio degli articoli omaggio compra-X-ricevi-Y?
Ogni gruppo completo di X+Y articoli concede Y omaggio. Per il resto r residuo, gli extra omaggio equivalgono a max(0, r − X). Gli articoli pagati equivalgono a quantity meno articoli omaggio.
Cos’è la percentuale di sconto effettiva?
È la vera percentuale sul listino dopo gli omaggio, non una pretesa nominale di scaffale.
Gestisce prezzi misti o carrelli multi-SKU?
Regole multi-SKU «il più economico omaggio» e coupon impilati sono fuori ambito di questo calcolatore.
Quanto costa?
Lo strumento nel browser è gratis e gira in locale.
Perché con cinque articoli non risparmio la metà?
Perché il quinto articolo apre un nuovo gruppo che non si completa, e in un gruppo incompleto si pagano prima gli articoli da acquistare. Così su cinque articoli ne paga tre e ne riceve due in omaggio: uno sconto reale del 40 %.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/life/bogo-discount \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"unit_price":10,"quantity":5,"buy_qty":1,"free_qty":1}'const res = await fetch("https://api.kit.forhosting.com/life/bogo-discount", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"unit_price": 10,
"quantity": 5,
"buy_qty": 1,
"free_qty": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/bogo-discount",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"unit_price": 10,
"quantity": 5,
"buy_qty": 1,
"free_qty": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/bogo-discount", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"unit_price":10,"quantity":5,"buy_qty":1,"free_qty":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"unit_price":10,"quantity":5,"buy_qty":1,"free_qty":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/bogo-discount", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"unit_price": 10,
"quantity": 5,
"buy_qty": 1,
"free_qty": 1
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.bogo_discount",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Come si calcola la percentuale di sconto compra-X-ricevi-Y
Quella cifra è unit_price: il prezzo di scaffale di un articolo identico prima della promozione, tenuto in un’unità per tutto il calcolo affinché non si insinui conversione di valuta silenziosa. Quindi imposti buy_qty a X e free_qty a Y per il testo offerta compra X ricevi Y gratis. Il totale listino è unit_price per quantity; il totale da pagare è unit_price per articoli pagati; il risparmio è totale listino meno totale da pagare. La pipeline è aritmetica in virgola mobile deterministica: senza semi casuali, senza timestamp di orologio, senza chiamate di rete e senza deriva di modello, così input identici producono sempre lo stesso JSON. quantity, buy_qty e free_qty devono essere interi positivi finiti; quantità zero o negative falliscono con invalid_input invece di inventare uno sconto. unit_price negativo fallisce; unit_price zero è consentito e produce totali zero e percentuale di sconto zero.
Cosa invia e cosa riceve indietro
Controlli classici: prezzo unitario dieci con quantità cinque sotto uno più uno: articoli omaggio due, pagati tre, listino cinquanta, da pagare trenta, risparmio venti, sconto quaranta per cento. Altro: prezzo unitario dodici con quantità sette sotto due più uno: articoli omaggio due, pagati cinque, listino ottantaquattro, da pagare sessanta, risparmio ventiquattro, sconto circa ventotto punto cinque sette. Invii quattro campi obbligatori. unit_price è un numero finito maggiore o uguale a zero per il prezzo di listino di un articolo. quantity è un intero positivo di quanti articoli porta. buy_qty è un intero positivo X del lato pagato del ciclo offerta. free_qty è un intero positivo Y di articoli omaggio concessi dopo ogni blocco pagato completo di X. Campi mancanti, stringhe non numeriche, NaN, Infinity, campi quantità frazionari, quantità zero o negative e unit_price negativo falliscono con invalid_input e non vengono addebitati. In caso di successo la risposta ecoa unit_price, quantity, buy_qty e free_qty ripuliti, riporta group_size come X più Y, deal_cycles come gruppi completi, remainder come articoli residui, paid_items e free_items come lo split di cassa, list_total e payable_total e savings come cifre monetarie nella stessa unità, e discount_percent come la percentuale effettiva sul totale listino. deal_label è una breve stringa umana come compra 1 ricevi 1 gratis, method è bogo_discount, e formula documenta free_items uguale a floor di quantity su X più Y per Y più max di zero e remainder meno X così blog e lettere offerta citano la stessa espressione. Una richiesta di quantità zero o negativa fallisce con invalid_input duro che menziona quantità non positive. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano saldo prepagato.
Dove i calcolatori BOGO compaiono nel lavoro reale
Educatori di finanza personale che insegnano matematica del consumatore assegnano schede BOGO e hanno bisogno di JSON deterministico per auto-correttori invece di totali a mano che derivano con l’arrotondamento. Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.
Casi di integrazione
Fixture di matematica del consumatore e auto-correttori
Produca in massa totali listino vs da pagare per problemi BOGO in classe e rifiuti quantità non positive con invalid_input duro.
Domande tecniche
Quali input vengono rifiutati?
quantity, buy_qty o free_qty non positivi o non interi; unit_price negativo; campi mancanti; NaN o Infinity. Falliscono con invalid_input e non vengono addebitati.