Revisado por última vez en junio de 2026. Verificado con PrestaShop 1.7, 8 y 9. Nota para PS9: el back office está migrando hacia un único motor de descuentos reconstruido, con cuatro tipos de descuento (Catálogo, Carrito, Envío gratuito, Regalo) detrás de una bandera de funcionalidad; la distinción entre SpecificPrice y CartRule descrita aquí sigue siendo la base.

La mayoría de los comerciantes de PrestaShop descubren, normalmente por las malas, que la plataforma no tiene un sistema de descuentos, sino dos, y se solapan lo justo para causar daños reales. Configuras un precio específico del 25% en un producto, luego lanzas un cupón de "10% de descuento en todo" para una campaña, y un cliente se marcha discretamente con un 32,5% de descuento porque ambos se han acumulado. O al revés: creas una regla de carrito perfecta, nunca se aplica, y pasas una tarde averiguando que otra regla competidora con mayor prioridad se la ha comido en silencio. Esta guía va de la mecánica: cuál de los dos motores de descuento de PrestaShop debes usar, dónde está cada uno en el back office y qué ajustes concretos deciden si tu promoción genera ingresos o erosiona tu margen sin que te des cuenta.

Las preguntas estratégicas, cuándo lanzar una promoción a lo largo del calendario, cómo crear urgencia, cómo programar acciones para que se activen y desactiven solas, tienen cada una su propio espacio, y las iremos enlazando cuando corresponda. Esta entrada se centra en la herramienta en sí: cómo construir y mostrar correctamente una promoción en PrestaShop.

Los dos motores de descuento y por qué importa la diferencia

Lista de campañas de descuento que muestra los valores de descuento, los horarios, el número de usos y el estado de cada promoción
Una vista general de descuentos programados que lista cada campaña con su descuento, ventana horaria y uso, útil para gestionar rebajas a gran escala.

PrestaShop aplica descuentos en dos lugares completamente separados del código, y cuando entiendes cuál es cuál, desaparece la mayor parte de la confusión.

Un precio específico (la clase SpecificPrice) modifica el precio de un producto. Queda integrado en el precio que el cliente ve en la página del producto, en los listados y en el carrito; no hay ningún código que introducir ni nada que "aplicar". PrestaShop lo calcula dentro de Product::getPriceStatic(), por eso un precio específico puede generar automáticamente la visualización de precio tachado "antes/ahora".

Una regla de carrito (la clase CartRule, el motor detrás de lo que las tiendas antiguas llamaban "vales") actúa sobre el carrito completo. Se evalúa en el proceso de pago, una vez montado el carrito, y puede afectar al total del pedido, al envío o añadir un regalo. Puede requerir un código o aplicarse automáticamente, y puede estar limitada por condiciones que un precio específico simplemente no puede expresar ("gasto superior a 100 €", "solo para el grupo de clientes Mayoristas", "solo en el primer pedido").

La consecuencia práctica para ti como propietario de una tienda: si el descuento pertenece al producto, usa un precio específico; si pertenece al carrito o al cliente, usa una regla de carrito. Esa sola frase resuelve la mayoría de las dudas de "¿cuál uso?" antes de que empiecen.

Precio específicoRegla de carrito
Actúa sobreUn producto (o combinación)El carrito completo / total del pedido
Ubicación en el back officeEdición del producto → pestaña PrecioPrecios específicos; o en bloque desde Catálogo → Descuentos (1.6) / Reglas de carrito + Reglas de precios de catálogoCatálogo → Descuentos → Reglas de carrito
¿Requiere código?Nunca: es simplemente el precioOpcional: con código o automático
Visualización con precio tachadoSí, automáticaNo: el descuento aparece en el carrito, no en el producto
Condiciones que entiendeRango de fechas, grupo de clientes, país, moneda, tienda, cantidad mínimaTodo lo anterior más gasto mínimo, transportista, productos/categorías concretos, límites de uso por cliente, "destacar", "primer pedido"
Úsalo cuando…Rebajes productos concretos o crees un tramo por cantidadCupones, umbrales de envío gratuito, "gasta X y consigue Y", ofertas por grupo

Crear un precio específico (rebajas a nivel de producto)

Abre un producto, ve a la pestaña Precio y baja hasta Precios específicosAñadir un precio específico. El formulario parece recargado, pero los campos que realmente deciden el comportamiento son pocos:

  • Aplicar a: deja el grupo de clientes, país, moneda y tienda en "Todos" para una rebaja pública normal. Acotar el grupo es la forma de dar a Mayoristas un precio distinto al de Minoristas sin duplicar la ficha del producto.
  • Disponible desde / hasta: establece ambas fechas y PrestaShop activa y desactiva el precio por ti. No tienes que acordarte de apagarlo; esta es la forma más sencilla de descuento programado, y para cualquier cosa más elaborada (ventanas recurrentes, rebajas progresivas) consulta los descuentos programados.
  • Descuento: elige Importe (por ejemplo, 10 € de descuento) o Porcentaje y, esto es clave, selecciona impuestos incluidos o impuestos excluidos. Equivocarse aquí es el error más común con los precios específicos: un "10 € de descuento" configurado sin impuestos acaba siendo mayor de lo que el cliente espera cuando se añade el IVA.
  • A partir de [cantidad]: ponlo por encima de 1 para crear un precio escalonado del tipo "compra 5 o más por 8 € cada uno". Déjalo en 1 para una rebaja directa.

Como el resultado es el precio, PrestaShop muestra el precio original tachado junto al nuevo sin trabajo adicional: la señal visual que hace que una rebaja parezca una oportunidad. Una advertencia útil: un precio específico siempre manda en la página del producto, así que si alguna vez te preguntas por qué un producto no muestra su precio completo, el culpable habitual es un precio específico antiguo y sin fecha. El equivalente en bloque, descontar una categoría entera o todo el catálogo mediante una regla en lugar de producto por producto. Es la pantalla Reglas de precios de catálogo, que escribe precios específicos en bloque según condiciones, en vez de hacerlo producto a producto.

El formulario Añadir un precio específico en la pestaña Precio de un producto: las fechas Desde/Hasta y el selector de impuestos incluidos/excluidos son los dos campos que más suelen hacer tropezar.

Leer qué está realmente activo: la tabla ps_specific_price

Cuando un producto no muestra su precio completo y no encuentras el culpable en la interfaz, es más rápido leer la tabla directamente. Un precio específico es simplemente una fila en ps_specific_price (ajusta el prefijo ps_ para que coincida con tu instalación). Esta es una comprobación de solo lectura: nada de aquí cambia datos:

-- Every active specific price on one product (id_product = 42),
-- including which are dateless/permanent vs. time-boxed.
SELECT id_specific_price, id_product, id_shop, id_group,
       reduction, reduction_type, `from`, `to`
FROM ps_specific_price
WHERE id_product = 42
ORDER BY `from`;

Una fila con from y to establecidos ambos en 0000-00-00 00:00:00 es un precio específico permanente, sin ventana de fechas: esa es la rebaja sin fecha que sobrescribe silenciosamente el precio completo. reduction_type puede ser amount o percentage, y reduction es el valor (un porcentaje se guarda como fracción, así que 0.250000 significa 25%). Las Reglas de precios de catálogo también aparecen aquí, escriben filas en ps_specific_price en bloque, , por eso la mecánica en bloque y la de producto individual se comportan igual una vez activas.

Crear una regla de carrito (el motor de cupones y carrito)

Ve a Catálogo → Descuentos → Reglas de carrito → Añadir nueva regla de carrito. El formulario tiene cuatro pestañas, y cada una corresponde a una decisión real:

  • Información: el nombre visible para el cliente, un código opcional (si lo dejas en blanco, la regla se vuelve automática), Destacar (PrestaShop anima al cliente a aplicarla en el carrito), Uso parcial (permite arrastrar el valor restante del vale a un pedido futuro; desactívalo para descuentos porcentuales) y Prioridad, que decide en qué orden se evalúan las reglas cuando pueden aplicarse varias.
  • Condiciones: la puerta de entrada. Limita por grupo de clientes, rango de fechas, importe mínimo, transportista, productos o categorías concretos, cantidad total disponible, cantidad por usuario y "solo el primer pedido del cliente". Esto es todo lo que un precio específico no puede hacer.
  • Acciones: la recompensa: un descuento de porcentaje o de importe fijo, envío gratuito y/o un regalo (un producto concreto añadido sin coste). Puedes combinar envío gratuito y descuento en una sola regla.

Dos ajustes aquí provocan la mayoría de los tickets de "mi cupón no funciona". El primero es el silencioso, cerca de la acción de descuento: "Aplicar un descuento a… Producto específico" frente al pedido, y el selector de impuestos incluidos / excluidos, la misma trampa que con los precios específicos. El segundo son los límites "Total disponible" y "Total disponible para cada usuario" en la pestaña Condiciones: fija "cada usuario" en 1 para un código de un solo uso por cliente, y vigila el límite global si una campaña deja de canjearse de repente.

Reglas de carrito automáticas frente a reglas con código

Dejar vacío el campo Código convierte una regla de carrito en un descuento automático: se aplica en cuanto se cumplen las condiciones, sin que el cliente tenga que escribir nada. Eso es exactamente lo que quieres para "envío gratuito a partir de 50 €" o "10% de descuento este fin de semana, sin código". Un código, en cambio, sirve para una distribución dirigida: una lista de correo electrónico, un influencer, una campaña de recuperación para un segmento concreto. El mecanismo es idéntico; la única diferencia es si rellenas ese campo.

Acumulación de descuentos: el ajuste que protege tu margen

Aquí es donde se esconden las pérdidas no previstas, así que merece precisión y no una explicación vaga. Tres reglas gobiernan lo que ocurre cuando los descuentos se encuentran:

  • Los precios específicos siempre se aplican: son el precio del producto, punto. No hay un interruptor de "desactivado" en el proceso de pago.
  • Por defecto, una regla de carrito se acumula sobre el precio específico ya rebajado. Así, un producto con un precio específico del 25%, más una regla automática de carrito del 10%, se vende con aproximadamente un 32,5% de descuento: no un 35%, porque el segundo descuento se calcula sobre el precio ya rebajado, pero sigue siendo más profundo de lo que quizá pretendías.
  • Para impedirlo, excluye los productos rebajados en la propia regla de carrito: en la pestaña Acciones usa "Excluir productos con descuento" para que la regla ignore cualquier producto que ya tenga un precio específico. Entre dos reglas de carrito, la Prioridad de cada regla y sus condiciones deciden cuál se dispara; PrestaShop aplicará varias reglas de carrito juntas salvo que sus condiciones o tus exclusiones lo impidan.

Decide tu política de acumulación antes de que la campaña se active, no cuando llegue el informe de márgenes. Marcar "excluir productos con descuento" lleva dos minutos y sale más barato que un fin de semana de pedidos con un 32,5% de descuento accidental. Algunos productos no deberían entrar nunca en una promoción, y existe una disciplina para eso, tratada en por qué algunos productos no deberían ponerse nunca en oferta.

Hacer visible la promoción

Un descuento que el cliente no percibe no convierte mejor que el precio completo. PrestaShop te da parte de esto gratis y deja el resto en tus manos:

  • Precio tachado: automático para precios específicos, en la página del producto y en los listados. Sin configuración; es la razón principal para preferir un precio específico cuando quieres una rebaja visible frente a una regla de carrito oculta.
  • La etiqueta del porcentaje de descuento: el tema por defecto puede mostrar una bandera "-25%" a partir de un precio específico. Si tu tema la oculta, es un ajuste de plantilla, no una función ausente.
  • Insignias de oferta en los listados: para etiquetas más expresivas ("LIQUIDACIÓN", "ÚLTIMAS UNIDADES", un "-30%" personalizado), nuestro módulo Custom Product Badges las superpone sobre las imágenes de producto en las páginas de categoría, donde el tachado por sí solo puede pasar desapercibido.
  • Anuncios en todo el sitio: una campaña necesita un banner en cuanto el visitante llega. Banner Revolution se encarga de esto sin tener que involucrar a un diseñador.
  • Un destino dedicado para la promoción: apunta una categoría o página CMS a tus productos en oferta para que la propuesta tenga una URL que puedas incluir en un email y en un anuncio.

Si quieres que la promoción en sí se sienta como un evento, temporizadores de cuenta atrás, páginas de oferta destacada, urgencia que no se convierta en presión. , Ese es un tema aparte; empieza por ventas flash sin ser manipulador y por nuestro Sales Revolution, creado específicamente para ello.

Un marco de decisión para la próxima promoción

Cuando estés a punto de crear una promoción, pásala por cuatro preguntas y la herramienta adecuada de PrestaShop aparece sola:

  • ¿El descuento está ligado a un producto o al carrito? Producto → precio específico (y obtienes el precio tachado gratis). Carrito, umbral de gasto o segmento de clientes → regla de carrito.
  • ¿El cliente tiene que hacer algo para obtenerlo? Si debe "simplemente ocurrir", eso es una regla de carrito automática o un precio específico fechado. Si es ganado o dirigido, dale un código a la regla de carrito.
  • ¿Puede chocar con otro descuento? Si hay un precio específico activo, decide ahora la acumulación: marca "excluir productos con descuento" en cualquier regla de carrito que no deba sumarse.
  • ¿Debe empezar y terminar por sí solo? Una ventana sencilla → las fechas desde/hasta en cualquiera de las dos herramientas. Recurrente o progresiva → descuentos programados.

Packs y tarjetas regalo: herramientas cercanas que conviene conocer

Dos mecánicas relacionadas suelen confundirse con "una promoción". Una regla de carrito de regalo es la forma nativa de hacer "compra esto y llévate aquello gratis", pero para vender conjuntos de varios productos con precio cerrado como una unidad, eso ya es venta por packs propiamente dicha; consulta packs de productos. Y si una campaña trata en realidad de dar crédito de tienda a los clientes en lugar de una rebaja, las tarjetas regalo para PrestaShop son otro instrumento: una regla de carrito con valor que el cliente conserva, no un descuento que tú empujas.

Medir si la promoción funcionó de verdad

La trampa al medir una promoción es celebrar los ingresos mientras el beneficio cae en silencio. Cuando termine una campaña, mira más allá de la cifra de facturación y revisa cuatro cosas en tus estadísticas: ingresos frente al periodo anterior equivalente (¿la promoción creó demanda o solo adelantó pedidos que iban a llegar de todos modos?), margen medio por pedido (más ingresos con un margen más fino pueden significar menos beneficio real), clientes nuevos frente a clientes recurrentes (¿captaste a alguien, o descontaste a personas que habrían pagado el precio completo?) y la caída posterior a la promoción (un bajón justo después de terminar una promoción es señal de que has entrenado a los clientes para esperar). Dale volumen real antes de juzgar: unos pocos días de datos pueden engañarte con el ruido normal de una semana a otra.

El resumen honesto: los dos motores de PrestaShop son sencillos cuando dejas de tratarlos como si fueran uno solo. Un precio específico es el precio del producto, con tachado gratuito y ventana de fechas. Una regla de carrito es la lógica del carrito, con condiciones, códigos y el selector de exclusión que impide que dos descuentos se conviertan en un margen que nunca aceptaste. Si aciertas con esa mecánica, el resto de la estrategia promocional, cuándo lanzar rebajas durante el año (el calendario estacional), cómo prepararte para las grandes campañas (automatización para Black Friday). Se construye sobre una base que no hace aguas.

Reglas de carrito frente a precios específicos: respuestas rápidas

¿Por qué mi producto sigue mostrando un precio rebajado si eliminé el descuento?

Casi siempre por un precio específico sobrante sin fecha de finalización. Un precio específico es el precio del producto, así que sobrescribe el precio base hasta que eliminas la fila, y uno antiguo y sin fecha sigue aplicándose en silencio. Revisa la pestaña Precio del producto por si hay un precio específico perdido, o lee ps_specific_price directamente (la consulta anterior) para encontrar cualquier fila de ese producto con una fecha to en blanco. Las Reglas de precios de catálogo también escriben filas aquí, así que revísalas también.

Un cliente recibió más descuento del que pretendía: ¿cómo ha pasado?

Los dos sistemas de descuento se acumulan por defecto. Un precio específico del 25% más una regla automática de carrito del 10% vende con alrededor de un 32,5% de descuento, porque la regla de carrito se calcula sobre el precio de línea ya reducido. Para impedirlo, marca "Excluir productos con descuento" en la pestaña Acciones de la regla de carrito (disponible cuando el tipo de descuento es Porcentaje). Decide tu política de acumulación antes de la campaña, luego haz un pedido de prueba real y lee el total final.

Mi código de cupón no se aplica: ¿qué debería comprobar primero?

Tres causas habituales, en orden: la ventana de fechas (Válido desde / Válido hasta en Condiciones, y no hay ninguna barrera que impida poner "hasta" antes que "desde"), los límites de uso (Total disponible, o Total disponible para cada usuario alcanzando su límite) y las condiciones no cumplidas (gasto mínimo, grupo de clientes, solo primer pedido). Si se supone que el código debe aplicarse automáticamente, confirma que el campo Código esté realmente vacío, no configurado con un valor que nadie está escribiendo.

¿Debo usar un precio específico o una regla de carrito para "20% de descuento en esta categoría"?

Un precio específico; más concretamente, una Regla de precios de catálogo limitada a la categoría. Eso reduce el precio mostrado mientras los clientes navegan, con el precio "antes" tachado, que es el efecto de oferta visible que esperan los compradores. Una regla de carrito no revelaría el descuento hasta el proceso de pago, así que un cliente que está navegando nunca vería la oferta que le haría añadir el producto al carrito.

¿Cambia esta mecánica en PrestaShop 9?

La lógica subyacente de SpecificPrice y CartRule sigue aplicándose, pero PS9 reorganiza el back office en un único motor de descuentos con cuatro tipos: Catálogo, Carrito, Envío gratuito y Regalo. Ese nuevo motor se entrega detrás de una bandera de funcionalidad, así que una tienda PS9 por defecto sigue mostrando las pantallas conocidas de Reglas de carrito y Reglas de precios de catálogo. La distinción "precio del producto frente a lógica del carrito" de esta guía se traslada directamente en cualquiera de los dos casos.

Compartir esta publicación:
David Miller

David Miller

Fundador, mypresta.rocks

David Miller es un especialista en PrestaShop con más de una década de experiencia práctica y fundador de mypresta.rocks, un estudio de desarrollo con sede en Tychy, Polonia. Crea y mantiene un catálogo de 152 módulos PrestaShop, incluidas 21 suites «Revolution» que abarcan SEO, checkout, seguridad, rendimiento, marketing, búsqueda, soporte y gestión de almacén, que mejoran tiendas reales cada día, probados en PrestaShop 1.7.8, 8.x y 9.x. También se encarga del mantenimiento de tiendas en producción que facturan millones al año, por lo que su trabajo se mide por ventas reales, no por demos. Su experiencia abarca todo el comercio electrónico, rendimiento, seguridad, SEO y marketing, y va más allá de PrestaShop, hasta WooCommerce, Shopify y sistemas a medida. En el blog escribe sobre la parte técnica de PrestaShop: qué hace realmente la plataforma, qué se rompe en producción y qué soluciones aguantan.

Comentarios

Aún no hay comentarios. ¡Sé el primero!
¿Te gustó este artículo?

Recibe nuestros últimos consejos, guías y actualizaciones de módulos en tu bandeja de entrada.

Puede darse de baja en cualquier momento. Para ello, consulte nuestra información de contacto en el aviso legal.

Cargando...
Volver arriba