Calculadora de doble descuento
Un precio de 100 con un 20 % de descuento y después otro 10 % queda en 72: ahorra 28 y no 30, porque el segundo descuento se aplica solo a los 80 restantes. Indique el precio original y los dos descuentos en orden. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Precio
- 100
- Primer descuento
- 20
- Segundo descuento
- 10
- Precio tras el primero
- 80
- Precio final
- 72
- Ahorros
- 28
- Porcentaje equivalente
- 28
Quien compra rara vez se encuentra con una sola rebaja. A una oferta de toda la tienda le sigue un cupón, un porcentaje extra de empleado se superpone a una etiqueta de liquidación, o un mercado apila el descuento del vendedor y luego un código de todo el sitio. Sumar los dos porcentajes infla la oferta: el veinte por ciento y luego el diez no es un treinta por ciento de descuento, porque el segundo recorte se aplica solo a lo que queda. Esta calculadora de doble descuento toma el precio original y dos descuentos porcentuales sucesivos, los aplica en orden y devuelve el precio final junto con el ahorro total para que un carrito, una publicación de oferta o un presupuesto fijen la cifra apilada antes de pagar. El cero por ciento en cualquiera de los pasos deja ese paso sin cambios; el cien por ciento en cualquiera de los pasos deja el saldo restante a cero.
Cómo se componen de verdad dos descuentos sucesivos
Dos descuentos porcentuales sucesivos no son lo mismo que un único porcentaje combinado. Un comercio anuncia un veinte por ciento, luego un cupón toma otro diez por ciento de lo que queda; un extra de empleado se asienta sobre una etiqueta de liquidación; un mercado apila el recorte del vendedor y después un código de todo el sitio. Sumar veinte y diez y llamar a la oferta un treinta por ciento infla el ahorro, porque el segundo recorte nunca ve el precio original.
El cero por ciento en cualquiera de los pasos es un resultado legítimo y deja ese paso sin cambios en lugar de un error: un SKU que solo lleva una de las dos ofertas sigue perteneciendo a un carrito de comparación. El cien por ciento en cualquiera de los pasos deja el saldo restante a cero: el resultado de ese paso es cero y los posteriores se quedan en cero.
Este punto no raspa catálogos de comercios, no añade un tercer cupón sobre los dos porcentajes que usted envía, no suma impuesto sobre ventas ni envío, y no convierte divisas. Usted aporta tres números; la calculadora los multiplica en orden y redondea cada cifra monetaria a dos decimales para que los goldens coincidan byte a byte entre entornos de ejecución.
Dónde resulta útil una calculadora de doble descuento
Los hogares que apilan una oferta de toda la tienda con un cupón recortado usan una calculadora de doble descuento para convertir el ticket original en un precio final comparable antes de añadir el artículo al carrito. Los equipos de producto conectan el mismo contrato a páginas de aterrizaje y teasers de correo que deben mostrar un precio de oferta apilado de un SKU de muestra sin llamar a un motor de promociones.
Es una búsqueda y un trabajo distintos de una calculadora de descuento genérica, de un factor de precio neto de descuento en cadena mayorista, del Cyber Monday y de un porcentaje efectivo de dos por uno: esas herramientas calculan una rebaja ordinaria, una cascada comercial de longitud variable orientada al NPF, un evento de un día con nombre propio o una tasa equivalente de dos por uno.
Una calculadora de doble descuento valora un importe original frente a exactamente dos porcentajes sucesivos y devuelve el precio final más el dinero ahorrado en esa pila. La validación fallida no consume saldo. Un tercer cupón, los umbrales de envío gratuito y el impuesto sobre ventas quedan fuera de esta identidad a propósito: incorpórelos en su propia capa después de tener el precio final bruto y el dinero ahorrado.
El orden de las dos tasas no cambia el producto sin redondear, pero el redondeo monetario tras el primer paso puede desplazar un céntimo si las intercambia, así que envíelas en el orden en que las aplicará la caja.
Qué puede hacer con ella
Previsualizar un extra de empleado sobre un artículo ya rebajado
Aplique primero el porcentaje de liquidación y después el extra de empleado, luego fije savings para que nómina o una tienda de personal puedan citar el precio apilado.
Preguntas frecuentes
¿Por qué el veinte por ciento y luego el diez no es un treinta por ciento de descuento?
El segundo descuento se aplica solo a lo que queda tras el primero. Sobre 100, el veinte por ciento deja 80; el diez por ciento de 80 es 8; el precio final es 72, así que el ahorro es 28 (un equivalente del 28 por ciento), no 30.
¿Qué ocurre si un descuento supera el 100 por ciento?
Un descuento sucesivo que supera el 100 por ciento no se factura.
¿Puede ser cero o cien por ciento cualquiera de los dos descuentos?
Sí. El cero por ciento deja ese paso sin cambios.
¿En qué se diferencia de un descuento en cadena o de una calculadora de un solo descuento?
Una calculadora de descuento genérica toma un único porcentaje. Una herramienta de descuento en cadena toma una cascada mayorista de longitud variable y devuelve un factor de precio neto. Esta calculadora son exactamente dos porcentajes minoristas sucesivos más el ahorro total.
¿Importa el orden de los dos descuentos?
Para el resultado exacto no: los dos porcentajes se multiplican igual en cualquier orden. Pero redondear a céntimos tras el primer paso puede mover el precio final un céntimo, así que introdúzcalos en el orden en que los aplica la tienda.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/fin/double-discount \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price":100,"first_discount":20,"second_discount":10}'const res = await fetch("https://api.kit.forhosting.com/fin/double-discount", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price": 100,
"first_discount": 20,
"second_discount": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/double-discount",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price": 100,
"first_discount": 20,
"second_discount": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/double-discount", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price":100,"first_discount":20,"second_discount":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price":100,"first_discount":20,"second_discount":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/double-discount", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"price": 100,
"first_discount": 20,
"second_discount": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.double_discount",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Un descuento que supera el cien por ciento se rechaza como invalid_input y no se factura.
Cómo se componen de verdad dos descuentos sucesivos
La identidad que usa esta calculadora es final_price igual a price por uno menos first_discount dividido entre cien, por uno menos second_discount dividido entre cien. El primer recorte produce un price_after_first intermedio, que luego se reduce con la segunda tasa. El ahorro total es el precio original menos ese final_price, que equivale a price por el porcentaje combinado equivalente una vez que el redondeo monetario se aplica en cada paso para que las partes sigan sumando la lista. price es el importe original en una sola moneda; first_discount y second_discount son las dos tasas anunciadas, escritas como las imprimen las franjas, de modo que veinte significa veinte por ciento, no veinte centésimas. El único porcentaje que coincidiría con el resultado apilado también se devuelve como equivalent_percent para que una hoja de cálculo conserve un número junto a los dos porcentajes que la gente teclea. Un descuento que supera el cien por ciento no es una rebaja en este contrato y se rechaza como invalid_input, porque una franja que imprime ciento veinte por ciento de descuento casi siempre es un error de datos, no un reembolso que usted pretendía modelar.
Contrato de entrada, forma de la respuesta y comportamiento ante errores
Si price es negativo, el manejador rechaza la solicitud porque un precio original no puede ser negativo; una muestra gratuita de cero se admite y produce precio final nulo y ahorro nulo. Si cualquiera de los descuentos es negativo, el manejador rechaza con un mensaje claro de que no se admite un descuento sucesivo negativo. El cero por ciento en un paso es válido y deja el importe de ese paso sin cambios. El cien por ciento en un paso es válido y pone a cero el precio restante. Envíe mediante POST un cuerpo JSON con tres números finitos obligatorios. price es el importe original en una unidad monetaria antes de cualquiera de los dos descuentos sucesivos; los alias original_price, list_price, original y amount apuntan al mismo campo para que una exportación de catálogo conserve los nombres de columna. first_discount es la primera tasa sucesiva de descuento aplicada al precio original, no una fracción: veinte significa veinte por ciento; se aceptan los alias first_percent, discount1, first y percent1. second_discount es la segunda tasa sucesiva aplicada a lo que queda tras el primer recorte; se aceptan los alias second_percent, discount2, second y percent2. Cada campo numérico puede llegar como número JSON o como cadena numérica. Los campos ausentes, las cadenas vacías y los valores no finitos fallan con invalid_input nombrando el campo. Si cualquiera de los descuentos supera cien, el manejador rechaza con invalid_input indicando que un descuento sucesivo que supera el 100 por ciento no se admite: esos fallos no se facturan. Si acierta, el cuerpo ecoa price redondeado a dos decimales, first_discount y second_discount, luego informa price_after_first como el importe tras solo el primer recorte, final_price como la cifra de pago tras ambos recortes redondeada a dos decimales, savings como price menos final_price, equivalent_percent como el único porcentaje que coincidiría con el resultado apilado, y una cadena formula que reafirma la identidad. Ejemplo: cien al veinte y luego al diez produce un price_after_first de ochenta, un final_price de setenta y dos, un savings de veintiocho y un equivalent_percent de veintiocho. Combine el JSON con su propia regla sobre qué SKU comparten esas dos tasas —toda la tienda más cupón, liquidación más extra de empleado, o recorte del vendedor más código del sitio— porque este punto multiplica los tres números que usted envía; no consulta un comercio, no aplica un tercer cupón ni convierte divisas. Mantenga las peticiones pequeñas, fije el final_price redondeado en las pruebas y obtendrá una cifra apilada reproducible para hojas, complementos LMS y workers de borde sin montar un motor de promociones propio.
Dónde resulta útil una calculadora de doble descuento
Los editores de sitios de ofertas introducen una lista publicada y los dos porcentajes anunciados, luego fijan final_price y savings para que una publicación no cite un treinta por ciento inventado que luego discrepe del pago. Como la implementación es parse de nivel A puro, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo y sin red de salida. Mantenga ambos descuentos entre cero y cien inclusive, fije el final_price redondeado en las pruebas y obtendrá una cifra apilada reproducible para teasers, carritos y workers de borde sin montar un motor de promociones propio.
Casos de integración
Apilar una oferta de tienda con un cupón antes de pagar
Convierta el ticket original más dos porcentajes anunciados en final_price para que una pila de veinte y luego diez no se cite como un falso treinta por ciento de descuento.
Comprobar una publicación de oferta frente a dos rebajas publicadas
Introduzca la lista de la página del comercio y ambos porcentajes, luego confirme que final_price y savings coinciden con la cifra apilada que está a punto de publicar.
Preguntas técnicas
¿Cuánto cuesta la calculadora de doble descuento?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo prepago de KIT a $0.002 por llamada correcta; la entrada no válida no se factura.