SW Shopware 6 Iniciante

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.

Atualizado Versão do módulo 1.0.0

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úmero
  • dfCartPopularity.badge.textExact: modo exato, contém o marcador do número
  • dfCartPopularity.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.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte