SW Shopware 6 Principiante

Contador de Cestas para Shopware 6: instalación y configuración

Instalar, inicializar el índice y configurar la insignia «En más de 20 cestas» en Shopware 6.5, 6.6 y 6.7.

Actualizado Versión del módulo 1.0.0

El plugin DfCartPopularity muestra en la ficha de producto una insignia con el número de cestas que contienen actualmente el producto, por ejemplo «En más de 20 cestas». El recuento se basa en sus datos reales de cesta.

Requisitos

  • Shopware 6.5, 6.6 o 6.7 en instalación autoalojada (el SaaS Shopware Cloud no acepta plugins de servidor)
  • PHP 8.1 o superior
  • Acceso SSH para los comandos de consola y la compilación del tema

Instalación

Suba el ZIP desde Extensiones y luego Mis extensiones, o copie la carpeta en custom/plugins/, y ejecute:

bin/console plugin:refresh
bin/console plugin:install --activate DfCartPopularity
bin/console cache:clear
./bin/build-storefront.sh

La compilación del storefront es necesaria una vez, para incorporar la hoja de estilos de la insignia. En un entorno gestionado por un pipeline de despliegue, ese paso suele formar parte ya del proceso estándar.

Inicializar el índice

Tras la instalación el índice está vacío: los contadores parten de cero y se llenan a medida que los clientes modifican su cesta. Para mostrar cifras creíbles desde el primer día, lance la reconstrucción:

bin/console df:cart-popularity:rebuild

El comando lee las cestas ya almacenadas en la tienda y alimenta el índice. Es idempotente y puede relanzarse sin riesgo. La opción --truncate vacía el índice antes de reconstruirlo.

Shopware elimina de la tabla de cestas aquellas ya convertidas en pedido. La reconstrucción solo ve, por tanto, las cestas activas, que es exactamente el alcance esperado.

Configuración

Ajustes, Sistema, Plugins, DataFirefly Cart Popularity y luego Configurar. Cada opción puede sobrescribirse canal de venta por canal de venta.

Visualización

  • Activar la insignia: el seguimiento de cestas sigue funcionando con la insignia desactivada, así los datos están listos el día que la active.
  • Umbral mínimo (por defecto 5): por debajo de ese número de cestas no se muestra nada.
  • Modo de visualización: tramo redondeado o número exacto.
  • Paso del tramo (por defecto 10): un recuento de 23 se muestra como «más de 20». Si el recuento es inferior al paso, el plugin pasa automáticamente al número exacto en lugar de anunciar un tramo falso.
  • Ubicación: encima o debajo del bloque de compra.
  • Estilo de la insignia: fondo suave, contorno o texto simple.

Reglas de recuento

  • Ventana temporal (por defecto 7 días): solo se cuentan las cestas actualizadas dentro de esa ventana. El valor 0 la desactiva.
  • Solo cestas activas: excluye las cestas ya convertidas en pedido.
  • Limitar al canal de venta: evita que un pico en una tienda infle el contador de otra.
  • Agregar variantes: todas las variantes de un producto comparten el contador del padre. Desactive la opción si cada variante necesita su propio contador.

Rendimiento y retención

  • Duración de la caché (por defecto 900 segundos): la consulta de recuento se ejecuta una vez por duración y por producto. El valor 0 desactiva la caché. La caché se vacía automáticamente al guardar la configuración.
  • Retención (por defecto 60 días): los registros más antiguos se eliminan. La limpieza se ejecuta automáticamente, como máximo una vez por hora, sin depender de la cola de mensajes.

Personalizar el texto

El texto de la insignia reside en los snippets de Shopware. Ajustes, Snippets y busque dfCartPopularity. Hay tres claves disponibles:

  • dfCartPopularity.badge.textTier: modo tramo, contiene el marcador del número
  • dfCartPopularity.badge.textExact: modo exacto, contiene el marcador del número
  • dfCartPopularity.badge.textSingular: modo exacto con una sola cesta

El marcador se escribe %count% y debe conservarse en su formulación. Se incluyen las traducciones al inglés, alemán, francés, español, italiano y polaco.

Cómo funciona el recuento

Shopware serializa la cesta completa en una columna payload de la tabla cart, a menudo comprimida. Ninguna consulta SQL puede saber lo que contiene una cesta sin deserializarla. El plugin mantiene su propia tabla df_cart_popularity que asocia un token de cesta, un producto, un canal de venta, una cantidad y un indicador de pedido.

Esa tabla se sincroniza en cada persistencia de la cesta mediante CartSavedEvent, con dos consultas indexadas. El evento CartConvertedEvent marca las filas como pedidas en el momento de realizar el pedido. La visualización realiza entonces un simple recuento distinto sobre un índice compuesto, guardado en caché.

No se registra ningún dato personal: el índice solo contiene el token de cesta, que es un identificador técnico seudónimo, la referencia del producto, el canal de venta y marcas de tiempo.

Comandos CLI

bin/console df:cart-popularity:rebuild
bin/console df:cart-popularity:rebuild --truncate
bin/console df:cart-popularity:cleanup
bin/console df:cart-popularity:cleanup --days=30

Resolución de problemas

La insignia no aparece

Compruebe por orden: la insignia está activada para ese canal de venta, el número de cestas alcanza el umbral, la ventana temporal no excluye todas las cestas y el storefront se recompiló tras la instalación. Vacíe también la caché HTTP si la página se sirve desde caché.

La insignia aparece sin estilo

La hoja de estilos del plugin se integra en la compilación del tema. Vuelva a ejecutar ./bin/build-storefront.sh o bin/console theme:compile.

El comando de reconstrucción indica cestas omitidas

Esas cestas usan un formato de payload que el comando no sabe leer, normalmente un almacenamiento de cesta externalizado. Se indexarán con normalidad en la siguiente modificación del cliente, ya que el seguimiento por eventos funciona con independencia del modo de almacenamiento.

Desinstalación

La desinstalación con eliminación de los datos de usuario borra la tabla df_cart_popularity y la configuración del plugin. Si conserva los datos de usuario, la tabla permanece y los contadores se reanudan tal cual en caso de reinstalación.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte