PS PrestaShop Principiante

DataFirefly Order Vouchers — Guía completa

Instalar y utilizar la visualización de los códigos promocionales usados y del importe del descuento en la lista de pedidos del back office, para PrestaShop 8 y 9.

Actualizado Versión del módulo 1.0.0

Presentación y requisitos

DataFirefly Order Vouchers añade dos columnas a la lista de pedidos del back office: el o los códigos promocionales utilizados en cada pedido, y el importe total del descuento (formateado en la moneda del pedido). El módulo no crea ninguna tabla, no escribe nada en la base de datos y no sobrescribe ningún controlador: simplemente lee los bonos ya registrados en tus pedidos y los muestra en la parrilla.

  • Compatible con PrestaShop 8.0 a 9.x.
  • PHP 7.4 a 8.3.
  • Multitienda y multilenguaje (FR/EN/ES/DE/IT).
  • Sin sobrescritura de archivos: solo los hooks nativos de la parrilla Symfony de pedidos.

Los datos provienen de las tablas order_cart_rule y cart_rule. Un pedido sin bono muestra simplemente una celda vacía en ambas columnas.

Instalación

  1. Descarga el archivo dfordervouchers.zip desde tu cuenta de cliente.
  2. En el back office, ve a Módulos > Gestor de módulos.
  3. Haz clic en Subir un módulo y suelta el archivo.
  4. La instalación registra los dos hooks de la parrilla de pedidos. No se requiere ninguna configuración.

Justo después de la instalación, abre Pedidos > Pedidos: las dos nuevas columnas aparecen justo después de la columna «Total».

El módulo no tiene página de configuración: funciona inmediatamente tras la instalación, sin ningún ajuste.

Las dos columnas añadidas

Código(s) promocional(es)

Esta columna muestra el código de cada bono realmente aplicado al pedido. Cuando un pedido combina varios códigos, se agrupan, se eliminan duplicados y se separan por comas. Las promociones automáticas (reglas de carrito sin código) no se muestran en esta columna, ya que no tienen código que presentar.

Descuento

Esta columna totaliza el importe descontado en el pedido, tal como se registró en el momento de la validación (con impuestos por defecto), y lo muestra en la moneda del pedido. Un pedido en libras o dólares muestra por tanto su importe en su propia moneda. Si no se aplicó ningún descuento, la celda permanece vacía.

Cómo funciona

A partir de PrestaShop 1.7.7, la lista de pedidos se basa en la parrilla Symfony. El módulo se conecta a ella mediante dos hooks oficiales:

  • actionOrderGridDefinitionModifier: añade las dos columnas a la definición de la parrilla, justo después de la columna «Total».
  • actionOrderGridQueryBuilderModifier: enriquece la consulta de la parrilla con dos subconsultas correlacionadas sobre order_cart_rule y cart_rule.

Como las subconsultas están correlacionadas con el ID del pedido, no producen ninguna duplicación de filas y no entran en conflicto con la agrupación interna de la parrilla. El importe reutiliza la moneda ya unida por el núcleo en la consulta de la parrilla.

El módulo es de solo lectura: nunca escribe en la base de datos ni modifica ningún pedido. Se puede instalar y desinstalar sin ningún impacto en tus datos.

Casos particulares

Varios códigos en un pedido

Todos los códigos se muestran, separados por comas. El importe de la columna «Descuento» suma todos los bonos aplicados al pedido.

Promociones automáticas sin código

Por defecto, la columna «Descuento» suma todas las reducciones del pedido, incluidas las posibles promociones automáticas sin código. La columna «Código(s) promocional(es)» solo muestra los bonos que tienen un código. Existe bajo petición una variante que limita el importe únicamente a los bonos con código.

Multidivisa

El importe siempre se muestra en la moneda del pedido correspondiente, reutilizando la moneda unida por la parrilla nativa.

Multitienda

La visualización respeta el contexto de tienda actual del back office, exactamente como la parrilla nativa de pedidos.

Ordenación y personalización

Las etiquetas de ambas columnas son traducibles mediante el sistema de traducción de módulos de PrestaShop, en los cinco idiomas. Como la ordenación nativa de la parrilla se basa en una lista blanca de campos, hacer clic en la cabecera de estas columnas calculadas no activa ninguna ordenación pero no provoca ningún error.

FAQ y resolución de problemas

Las columnas no aparecen

Comprueba que el módulo esté instalado y activado en el Gestor de módulos, luego recarga la página Pedidos > Pedidos. Las columnas aparecen justo después de la columna «Total».

La columna «Descuento» está vacía aunque se muestra un código

Esto puede ocurrir si el bono registrado en el pedido tiene un valor nulo, por ejemplo un bono de envío gratuito. El código sigue mostrándose, pero el importe descontado es igual a cero.

¿Funciona el módulo en PrestaShop 8 y 9?

Sí. Se apoya en la parrilla Symfony de pedidos presente en ambas versiones, mediante los hooks oficiales de definición y de query builder.

¿Qué ocurre al desinstalar?

Al desinstalar simplemente se eliminan los dos hooks. Como no se creó ninguna tabla ni se escribió ningún dato, no queda nada en la base de datos.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte