# DataFirefly Loyalty — Programa de Fidelización Shopware 6

> Instalación, configuración y uso de DataFirefly Loyalty: puntos, niveles, canje de vales y solución de problemas.

- Página: <https://www.datafirefly.com/es/documentation/dfloyalty-shopware/>
- Idioma: es
- Actualizado el: 2026-10-08
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/dfloyalty-shopware/index.md), [en](https://www.datafirefly.com/en/documentation/dfloyalty-shopware/index.md), [de](https://www.datafirefly.com/de/documentation/dfloyalty-shopware/index.md), [it](https://www.datafirefly.com/it/documentation/dfloyalty-shopware/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfloyalty-shopware/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfloyalty-shopware/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfloyalty-shopware/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## Presentación

DataFirefly Loyalty añade un programa de fidelización completo a Shopware 6: sus clientes ganan puntos en cada pedido, suben de nivel con multiplicadores y convierten sus puntos en vales basados en las promociones nativas de Shopware. La extensión funciona en Shopware 6.5, 6.6 y 6.7 con un único ZIP, sin ninguna compilación.

## Instalación

### Desde la administración

1. Vaya a **Extensiones > Mis extensiones**.
2. Haga clic en **Subir extensión** y seleccione el archivo `DfLoyalty-1.0.0.zip`.
3. Haga clic en **Instalar** y active la extensión.

### Por línea de comandos

```
bin/console plugin:refresh
bin/console plugin:install --activate DfLoyalty
bin/console cache:clear
```

La instalación crea dos tablas dedicadas: `df_loyalty_account` (una fila por cliente) y `df_loyalty_transaction` (el registro de todas las operaciones de puntos).

No se necesita ninguna compilación JavaScript: la extensión no incluye ningún módulo de administración compilado, lo que garantiza la compatibilidad con las ramas 6.5, 6.6 y 6.7.

## Configuración

Abra **Extensiones > Mis extensiones > DataFirefly Loyalty > Configurar**. Todos los ajustes están disponibles por canal de venta: puede activar el programa en una sola tienda o aplicar tasas diferentes según el canal.

### Atribución de puntos

- **Activar el programa**: interruptor general. Desactivado, la página de la cuenta del cliente devuelve un error 404 y no se atribuye ningún punto.
- **Disparador de atribución**: _Pago cobrado_ (estado de transacción `paid`, recomendado) o _Pedido completado_ (estado de pedido `completed`).
- **Puntos por unidad monetaria**: puntos ganados por unidad gastada. Por defecto: 1.
- **Base de cálculo**: importe del pedido con o sin impuestos.
- **Incluir gastos de envío**: por defecto, el envío queda excluido del cálculo.

### Niveles

Se pueden configurar tres niveles, cada uno con un nombre, un umbral y un multiplicador. Los umbrales se aplican a los **puntos acumulados de por vida** (que nunca disminuyen con un canje), y el multiplicador se aplica a todas las ganancias futuras.

- **Nivel 1** — por defecto: Bronce, desde 0 puntos, multiplicador ×1.0
- **Nivel 2** — por defecto: Plata, desde 500 puntos, multiplicador ×1.25
- **Nivel 3** — por defecto: Oro, desde 2 000 puntos, multiplicador ×1.5

Ejemplo: un cliente Plata (×1.25) que realiza un pedido de 100 € brutos con una tasa de 1 punto por euro gana 125 puntos.

### Canje de vales

- **Tasa de conversión**: puntos necesarios por 1 € de vale. Por defecto: 100 (100 puntos = 1,00 €).
- **Mínimo de canje**: puntos mínimos para canjear. Por defecto: 200.
- **Incremento de canje**: los puntos se convierten en múltiplos de este valor. Por defecto: 100.
- **Validez de los vales**: duración del vale en días. Por defecto: 90.

## Funcionamiento para el cliente

Una entrada **Programa de fidelidad** aparece en el menú de la cuenta del cliente. La página `/account/loyalty` muestra:

- el saldo de puntos disponible y el total de puntos acumulados de por vida;
- el nivel actual con una barra de progreso hacia el siguiente nivel;
- el formulario de canje de vales;
- el historial de las últimas 50 operaciones (ganancias, canjes, revocaciones).

Cuando un cliente canjea sus puntos, la extensión crea una **promoción nativa de Shopware**: un código único del tipo `LOYAL-XXXXXXXX`, reservado a su cuenta, de un solo uso, con un descuento fijo en el carrito. El código se aplica en el carrito como cualquier código promocional. Todas las promociones generadas se encuentran en **Marketing > Promociones**.

## Cancelaciones y reembolsos

Cuando un pedido pasa al estado _Cancelado_ o su pago pasa al estado _Reembolsado_, los puntos ganados en ese pedido se revocan automáticamente. La operación queda registrada en el historial del cliente con la etiqueta «Anulados». La revocación es idempotente: solo puede producirse una vez por pedido.

En la versión 1.0, un reembolso parcial no se prorratea: es el paso del pago completo al estado _Reembolsado_ lo que activa la revocación de todos los puntos del pedido.

## Seguridad e integridad de los datos

- El débito de puntos es atómico a nivel de base de datos: dos canjes simultáneos no pueden gastar dos veces el mismo saldo.
- Cada operación se inscribe en un registro de solo anexado, con referencia de pedido, tipo, puntos con signo y código del vale cuando corresponde.
- La creación del vale y la escritura contable se ejecutan en la misma transacción SQL: nunca un vale sin débito ni un débito sin vale.

## Solución de problemas

### El enlace Programa de fidelidad no aparece en la cuenta

La extensión inyecta su enlace mediante el bloque Twig `page_account_sidebar_link_orders`. Si su tema personalizado eliminó o renombró este bloque, añada el enlace manualmente en la plantilla de la barra lateral de la cuenta, apuntando a la ruta `frontend.account.dfloyalty.page`.

### No se atribuyen los puntos

1. Compruebe que el programa está activado para el canal de venta correspondiente.
2. Compruebe el disparador configurado: con _Pago cobrado_, la transacción debe alcanzar el estado `paid`; con _Pedido completado_, el pedido debe alcanzar `completed`.
3. Vacíe la caché tras cualquier cambio de configuración: `bin/console cache:clear`.

### Desinstalación

Durante la desinstalación, Shopware ofrece conservar los datos. Si desmarca esta opción, las tablas `df_loyalty_account` y `df_loyalty_transaction` se eliminan definitivamente — los vales ya generados permanecen, ya que son promociones estándar de Shopware.
