Contador de Carrinhos Shopware 6: instalação e configuração
Instalar, inicializar o índice e configurar o selo «Em mais de 20 carrinhos» no Shopware 6.5, 6.6 e 6.7.
A extensão DfCartPopularity apresenta na página de produto um selo com o número de carrinhos que contêm atualmente o produto, por exemplo «Em mais de 20 carrinhos». A contagem assenta nos seus dados reais de carrinho.
Pré-requisitos
- Shopware 6.5, 6.6 ou 6.7 em instalação auto-alojada (o SaaS Shopware Cloud não aceita extensões de servidor)
- PHP 8.1 ou superior
- Acesso SSH para os comandos de consola e a compilação do tema
Instalação
Carregue o ZIP em Extensões e depois As minhas extensões, ou copie a pasta para custom/plugins/, e execute:
bin/console plugin:refresh
bin/console plugin:install --activate DfCartPopularity
bin/console cache:clear
./bin/build-storefront.sh
A compilação do storefront é necessária uma vez, para integrar a folha de estilos do selo. Num ambiente gerido por um pipeline de deploy, esse passo costuma já fazer parte do processo normal.
Inicializar o índice
Na instalação, o índice está vazio: os contadores partem de zero e enchem-se à medida que os clientes alteram o carrinho. Para apresentar números credíveis logo no primeiro dia, execute a reconstrução:
bin/console df:cart-popularity:rebuild
O comando lê os carrinhos já guardados na loja e alimenta o índice. É idempotente e pode ser reexecutado sem risco. A opção --truncate esvazia o índice antes da reconstrução.
Os carrinhos já convertidos em encomenda são eliminados pelo Shopware da tabela de carrinhos. A reconstrução só vê portanto os carrinhos ativos, que é exatamente o âmbito pretendido.
Configuração
Definições, Sistema, Extensões, DataFirefly Cart Popularity, e depois Configurar. Cada opção pode ser substituída canal de venda a canal de venda.
Apresentação
- Ativar o selo: o acompanhamento dos carrinhos continua mesmo com o selo desativado, pelo que os dados ficam prontos para o dia em que o ativar.
- Limiar mínimo (predefinição 5): abaixo desse número de carrinhos nada é apresentado.
- Modo de apresentação: escalão arredondado ou número exato.
- Passo do escalão (predefinição 10): uma contagem de 23 aparece como «mais de 20». Se a contagem for inferior ao passo, a extensão passa automaticamente ao número exato em vez de anunciar um escalão falso.
- Posição: acima ou abaixo do bloco de compra.
- Estilo do selo: fundo leve, contorno ou texto simples.
Regras de contagem
- Janela temporal (predefinição 7 dias): só são contados os carrinhos atualizados nessa janela. O valor 0 desativa a janela.
- Apenas carrinhos ativos: exclui os carrinhos já convertidos em encomenda.
- Limitar ao canal de venda: evita que um pico numa loja inflacione o contador de outra.
- Agregar as variantes: todas as variantes de um produto partilham o contador do produto principal. Desative esta opção se cada variante deve ter o seu próprio contador.
Desempenho e retenção
- Tempo de vida da cache (predefinição 900 segundos): a consulta de contagem só é executada uma vez por tempo de vida e por produto. O valor 0 desativa a cache. A cache é limpa automaticamente a cada gravação da configuração.
- Retenção (predefinição 60 dias): os registos mais antigos são eliminados. A limpeza é executada automaticamente, no máximo uma vez por hora, sem depender do message queue.
Personalizar o texto
A etiqueta do selo vive nos snippets do Shopware. Definições, Snippets, e pesquise dfCartPopularity. Estão disponíveis três chaves:
dfCartPopularity.badge.textTier: modo escalão, contém o marcador do númerodfCartPopularity.badge.textExact: modo exato, contém o marcador do númerodfCartPopularity.badge.textSingular: modo exato com um único carrinho
O marcador escreve-se %count% e tem de ser mantido na sua formulação. São fornecidas as traduções inglesa, alemã, francesa, espanhola, italiana e polaca.
Como funciona a contagem
O Shopware serializa o carrinho completo numa coluna payload da tabela cart, muitas vezes comprimida. Nenhuma consulta SQL consegue portanto saber o que um carrinho contém sem o desserializar. A extensão mantém a sua própria tabela df_cart_popularity que associa um token de carrinho, um produto, um canal de venda, uma quantidade e um indicador de encomenda.
Essa tabela é sincronizada a cada persistência de carrinho através do CartSavedEvent, em duas consultas indexadas. O evento CartConvertedEvent marca as linhas como encomendadas no momento da passagem a encomenda. A apresentação faz então uma simples contagem distinta sobre um índice composto, colocada em cache.
Não é registado qualquer dado pessoal: o índice contém apenas o token de carrinho, que é um identificador técnico pseudonimizado, a referência do produto, o canal de venda e marcas temporais.
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
Resolução de problemas
O selo não aparece
Verifique por ordem: o selo está ativo para o canal de venda em causa, o número de carrinhos atinge o limiar, a janela temporal não exclui todos os carrinhos, e o storefront foi de facto recompilado após a instalação. Limpe também a cache HTTP se a página for servida a partir da cache.
O selo aparece sem estilo
A folha de estilos da extensão é integrada na compilação do tema. Execute de novo ./bin/build-storefront.sh ou bin/console theme:compile.
O comando de reconstrução indica carrinhos ignorados
Esses carrinhos usam um formato de payload que o comando não sabe ler, tipicamente um armazenamento de carrinho externo. Serão indexados normalmente na próxima alteração feita pelo cliente, uma vez que o acompanhamento por eventos funciona independentemente do modo de armazenamento.
Desinstalação
A desinstalação com eliminação dos dados do utilizador elimina a tabela df_cart_popularity e a configuração da extensão. Conservando os dados do utilizador, a tabela mantém-se e os contadores retomam tal como estavam em caso de reinstalação.