Calculadora de precio efectivo 2x1
Una oferta 2x1 o de compre X y obtenga Y puede parecer generosa sin mostrar cuánto cuesta realmente cada artículo de la cesta que usted piensa comprar.
Ejecutar — gratis
Esta calculadora aplica la promoción a una cantidad concreta, separa los artículos pagados de los gratuitos y muestra el total normal, el promocional, el ahorro total y el precio efectivo por unidad. Admite tanto el 2x1 clásico como ofertas de compre dos y obtenga uno gratis, con un mismo precio normal para todos los artículos. Así resulta sencillo compararlas con rebajas ordinarias y descuentos porcentuales.
Introduzca la promoción tal como se anuncia
Empiece por el precio unitario normal antes de la promoción e indique después la cantidad total que desea llevarse. La cantidad importa porque una oferta 2x1 no se aplica por igual a cualquier cesta. Seis artículos pueden completar tres grupos 2x1, mientras que cinco completan dos grupos y dejan uno a precio completo. Use la cantidad de compra para X en compre X y obtenga Y gratis, y la cantidad gratuita para Y. El 2x1 clásico utiliza 1 en ambos campos; compre dos y obtenga uno gratis utiliza 2 y 1. Todas las cantidades representan artículos enteros y deben ser enteros positivos. El precio unitario puede ser cero, pero no negativo ni infinito. Se presupone que todos los artículos tienen el mismo precio y que la promoción concede las unidades gratuitas cuando se cumple el requisito de pago. Introduzca los artículos realmente adquiridos, no el número de grupos promocionales, para que los sobrantes se calculen correctamente.
Comprenda el precio efectivo y el ahorro
La calculadora considera que cada grupo promocional contiene la cantidad de compra más la cantidad gratuita. Cuenta los grupos completos y luego examina los artículos restantes. En un grupo parcial se pagan primero X artículos; los posteriores pasan a ser gratuitos hasta alcanzar el límite del grupo. Los artículos pagados son la cantidad total menos los gratuitos. El total normal multiplica el precio unitario por todos los artículos, mientras que el total promocional solo lo multiplica por los pagados. El ahorro total es la diferencia. Por último, el precio efectivo por artículo divide el total promocional entre todos los artículos recibidos, incluidos los gratuitos. Esta suele ser la cifra más útil para comparar. Un segundo artículo nominalmente gratis solo reduce el coste unitario si existe una pareja válida; una unidad suelta queda a precio completo y eleva el promedio. Los resultados se redondean de forma estable a doce decimales. No se añaden impuestos, envío, cupones, cuotas ni conversiones de moneda.
Compare la promoción con alternativas reales
Compare el resultado por artículo con el precio unitario real de otras ofertas. Así evita enfrentar un reclamo llamativo con un descuento menor que quizá cueste menos para la cantidad elegida. Una promoción puede convenir si usted necesita todas las unidades, pero comprar de más para desbloquear regalos puede aumentar el gasto y generar desperdicio. Revise tanto el total promocional como el precio efectivo: el promedio puede ser atractivo aunque el importe de caja supere su presupuesto. Los comercios pueden revisar etiquetas y pruebas de pago; docentes y equipos de compras pueden explicar o comparar grupos incompletos. El cálculo es determinista y no usa red, fecha, azar ni fuentes externas, por lo que la misma entrada siempre produce el mismo resultado. Las llamadas API usan el precio base publicado de $0.002. La herramienta presupone artículos idénticos. Las reglas del artículo mixto más barato, límites de canje, descuentos parciales o acumulación de ofertas requieren cálculos separados.
Qué puede hacer con ella
Comparar promociones de alimentación
Convierta una oferta 2x1 en el coste efectivo de cada artículo para la cantidad exacta de su lista.
Comprobar una cesta en línea
Confirme cuántos productos deberían ser gratuitos y compare el total promocional previsto con la caja.
Evaluar ofertas de proveedores
Transforme ofertas de cajas compre X y obtenga Y en una cifra unitaria coherente para comparar compras.
Preguntas frecuentes
¿Qué es el precio efectivo por artículo?
Es el total promocional dividido entre todos los artículos recibidos, incluidos los que la oferta convierte en gratuitos.
¿Admite compre dos y obtenga uno gratis?
Sí. Establezca buy_quantity en 2 y free_quantity en 1, e indique después la cantidad total adquirida.
¿Qué ocurre con un grupo promocional incompleto?
Primero se cumple el requisito de pago. Solo las unidades restantes que lo superan pueden ser gratuitas dentro del grupo parcial.
¿Pueden tener precios distintos los artículos?
No. El cálculo presupone artículos idénticos con un solo precio normal y no aplica la regla del artículo más barato gratis.
¿Cuánto cuesta un cálculo por API?
Cada solicitud API utiliza el precio base publicado de $0.002.
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/life/bogo-effective-price \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"unit_price":12.5,"quantity":7,"buy_quantity":2,"free_quantity":1}'const res = await fetch("https://api.kit.forhosting.com/life/bogo-effective-price", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"unit_price": 12.5,
"quantity": 7,
"buy_quantity": 2,
"free_quantity": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/bogo-effective-price",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"unit_price": 12.5,
"quantity": 7,
"buy_quantity": 2,
"free_quantity": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/bogo-effective-price", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"unit_price":12.5,"quantity":7,"buy_quantity":2,"free_quantity":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"unit_price":12.5,"quantity":7,"buy_quantity":2,"free_quantity":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/bogo-effective-price", 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
{
"unit_price": 12.5,
"quantity": 7,
"buy_quantity": 2,
"free_quantity": 1
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.bogo_effective_price",
"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. |