Shopware Extensiones Shopware

Contador de Cestas para Shopware 6: prueba social «En más de 20 cestas» en la ficha de producto

La prueba social que convierte: muestre cuántos clientes ya tienen este producto en su cesta.

En Shopware, una cesta no existe como filas en una tabla: se serializa en una única columna payload de la tabla cart. Mostrar «este producto está en 23 cestas» exigiría deserializar todas las cestas de la tienda en cada visita a una ficha de producto, algo impracticable. Este plugin resuelve el problema de otra forma: mantiene su propio índice (token de cesta, producto, canal de venta, indicador de pedido) alimentado en tiempo real por los eventos de cesta de Shopware, y luego cuenta ese índice con una única consulta indexada en caché. El resultado es una insignia de prueba social basada en sus datos reales de cesta, sin impacto medible en el tiempo de renderizado de la ficha.

De un vistazo
  • Insignia «En más de 20 cestas» bajo el bloque de compra de la ficha de producto
  • Recuento real de cestas en curso, deduplicado por token de cesta y limitado al canal de venta
  • Índice dedicado alimentado por los eventos de cesta, sorteando la serialización de Shopware
  • Umbral de visualización, ventana temporal, tramo redondeado o número exacto, caché configurable
  • Compatible con Shopware 6.5, 6.6 y 6.7, textos traducidos a 6 idiomas
Shopware 6.5 / 6.6 / 6.7 PHP 8.1+ Multicanal de venta 6 idiomas Código fuente incluido
  • Reembolso de 30 días
  • 12 meses de actualizaciones
  • Soporte 24h
www.datafirefly.com/es/
Insignia «En más de 20 cestas» mostrada bajo el bloque de compra de una ficha de producto Shopware 6
v1.0.0 · actualizado 2026-08-11
Qué hace

La versión corta.

01

Prueba social inmediata

Una insignia «En más de 20 cestas» bajo el bloque de compra, activada solo por encima del umbral que usted define. Por debajo no se muestra nada, de modo que el mensaje siempre resulta favorable.

02

Basado en sus datos reales

Recuento de las cestas que contienen realmente el producto, deduplicado por token de cesta y limitado al canal de venta actual. Ninguna cifra inventada, ninguna simulación aleatoria.

03

Un índice, no una deserialización

Shopware serializa la cesta en un único payload. El plugin mantiene una tabla de índice alimentada por CartSavedEvent, lo que convierte un problema imposible en una consulta indexada de pocos milisegundos.

04

Rendimiento controlado

Caché integrada con duración configurable, vaciada automáticamente al cambiar la configuración. Ningún recálculo SQL en cada visita, incluso en picos de tráfico.

05

Variantes agregadas

En un producto con variantes, las cestas de todas las variantes se suman en el contador del producto padre. Una talla 42 en tres cestas y una talla 43 en dos cestas muestran cinco cestas, no dos contadores aislados.

06

Configurable al detalle

Umbral, ventana temporal, solo cestas activas, modo tramo o exacto, paso de redondeo, ubicación encima o debajo del bloque de compra, tres estilos de insignia, periodo de retención.

La versión larga

Todo lo que querrías saber antes de instalar.

Una mirada detallada a cómo funciona Contador de Cestas para Shopware 6: prueba social «En más de 20 cestas» en la ficha de producto, por qué lo construimos así y la lógica detrás de las características anteriores.

§ 01

Por qué este módulo no existe de forma nativa en Shopware

En PrestaShop, contar las cestas que contienen un producto se hace con una unión sobre la tabla de líneas de cesta. En Shopware esa tabla no existe: la cesta completa se serializa en una columna payload de la tabla cart, a menudo comprimida. Una consulta SQL no puede saber lo que contiene una cesta sin deserializarla, y deserializar varios miles de cestas en cada visita a una ficha de producto queda descartado. Esa es la razón por la que este tipo de prueba social es habitual en PrestaShop y poco frecuente en Shopware.

§ 02

La solución: un índice alimentado por eventos

El plugin crea una tabla df_cart_popularity que asocia un token de cesta, un identificador de producto, un canal de venta, una cantidad y un indicador de pedido. Ese índice se actualiza en cada persistencia de la cesta mediante CartSavedEvent: productos añadidos, cantidades modificadas, líneas eliminadas, todo se sincroniza en dos consultas. El recuento se convierte entonces en un simple COUNT DISTINCT sobre un índice compuesto, ejecutado una vez por duración de caché y por producto. El sobrecoste en el lado de la cesta es de unas dos consultas indexadas por modificación, invisible en un perfil de rendimiento.

§ 03

Dos formas de mostrar el número

El modo tramo redondea el contador a la baja según el paso que usted defina, para un efecto «En más de 20 cestas» que resulta creíble y evoluciona por franjas. El modo exacto muestra la cifra real para las tiendas que prefieren la transparencia total, con una variante en singular gestionada automáticamente. Las tres formulaciones viven en los snippets de Shopware y se modifican por idioma desde la administración, sin tocar el código y con un marcador dinámico para el número.

§ 04

Un recuento honesto y configurable

La ventana temporal limita el recuento a las cestas actualizadas recientemente, lo que evita acumular cestas fantasma de hace meses. La opción solo cestas activas excluye las cestas ya convertidas en pedido, detectadas mediante CartConvertedEvent. La limitación por canal de venta impide que un pico en su tienda alemana infle el contador de la tienda francesa. Cada una de estas opciones puede sobrescribirse canal por canal desde la configuración del plugin.

§ 05

Compatibilidad 6.5 a 6.7 sin concesiones

La plantilla extiende únicamente el bloque externo del buy widget y llama a su padre, lo que la hace inmune a los renombrados de bloques internos ocurridos entre 6.5 y 6.7 y compatible con los temas que personalizan el bloque de compra. La limpieza de retención funciona sin tarea programada ni cola de mensajes, porque la firma del gestor de tareas cambió entre 6.5 y 6.6: se ejecuta como máximo una vez por hora, o bajo demanda con el comando CLI. La estructura de visualización se adjunta tanto a la entidad producto como a la página, lo que cubre el renderizado mediante el elemento Buy box de Shopping Experiences y también la vista rápida.

§ 06

Estándares DataFirefly

Plugin desarrollado sin dependencia de Composer, renderizado del lado servidor, sin biblioteca JavaScript externa y sin llamada de red saliente. Una única tabla creada, eliminada al desinstalar cuando decide no conservar los datos. Ningún dato personal registrado: el índice solo contiene el token de cesta seudónimo y la referencia del producto, con una retención configurable. Código fuente PHP y Twig sin ofuscar, licencia perpetua, 12 meses de actualizaciones incluidas.