Alterar a Combinação no Carrinho PrestaShop: instalação e configuração
Instalar e configurar a alteração de combinação no carrinho: modos de apresentação, stock, controlos no servidor, histórico e integração com o tema.
Apresentação
O módulo permite ao cliente alterar a combinação de um produto (tamanho, cor ou qualquer outro atributo) diretamente na página do carrinho, sem remover a linha. A nova combinação mantém a quantidade, a morada de entrega e a posição da linha. O stock e a quantidade mínima são verificados pelo servidor antes da troca.
Instalação
- Em Módulos > Gestor de módulos, clique em Enviar um módulo e envie o ficheiro
dfcartcombination-1.0.0.zip. - O módulo liga-se aos hooks
displayCartExtraProductActionseactionFrontControllerSetMediae cria a tabelaps_dfcartcombination_logpara o histórico. - Abra a configuração do módulo. Está tudo ativo por predefinição, no modo botão com janela.
- Adicione ao carrinho um produto com pelo menos duas combinações e abra a página do carrinho para verificar a apresentação. Se nada aparecer, limpe a cache em Parâmetros avançados > Desempenho.
Definições
- Ativar o módulo: desativado, nada é carregado na página do carrinho.
- Modo de apresentação: Botão com janela de seleção (uma ligação «Alterar» por linha) ou Listas pendentes na linha do carrinho (uma lista por grupo de atributos, alteração aplicada ao selecionar).
- Colocar sob os atributos do produto: move o seletor para baixo dos atributos da linha. Desative para o deixar onde o tema chama o hook, normalmente na coluna de ações junto ao caixote do lixo.
- Mostrar o preço por combinação: preço da combinação escolhida, preço riscado em caso de desconto e diferença face à linha atual. O preço segue a apresentação com ou sem IVA do grupo do cliente.
- Mostrar o estado do stock: Em stock, Apenas X disponíveis, Disponível por encomenda ou Esgotado. A mensagem «Apenas X» usa o limite de quantidade restante definido no PrestaShop. Nada é mostrado se a gestão de stock estiver desativada.
- Mostrar a imagem da combinação: primeira imagem associada à combinação, caso contrário a imagem de capa do produto.
- Combinações indisponíveis: Mostrar desativadas ou Ocultar. O valor da linha atual fica sempre visível.
- Produtos excluídos: IDs de produtos separados por vírgulas. O seletor não aparece para estes produtos e o servidor recusa qualquer alteração.
- Cor de destaque: cor do botão principal e dos valores selecionados.
- Registar o histórico de alterações: alimenta as estatísticas apresentadas sob o formulário.
Lado do cliente
Modo janela
O botão Alterar abre uma janela com a imagem da combinação, o nome do produto e a quantidade da linha. Os grupos de atributos seguem a ordem do catálogo:
- grupos do tipo cor: amostras, com a textura do atributo se existir;
- grupos do tipo rádio ou lista: botões, ou uma lista pendente acima de 8 valores.
Em baixo, o preço, a diferença de preço e o estado do stock da seleção atualizam-se a cada clique. O botão Atualizar carrinho fica inativo enquanto a seleção for igual à linha ou estiver indisponível. A janela fecha com Escape, a cruz ou um clique fora, e pode ser usada pelo teclado (setas entre os valores de um grupo). No telemóvel, abre a partir da parte inferior do ecrã.
Modo listas pendentes
Cada grupo de atributos passa a ser uma lista na linha. A alteração é enviada assim que um valor é escolhido. As linhas de atributos que o tema já mostra (por exemplo «Tamanho: S») são ocultadas para evitar duplicação. Uma mensagem sob as listas indica a atualização em curso ou o eventual erro.
Combinação inexistente
Se o valor escolhido não existir com os outros atributos selecionados (M Azul ausente do catálogo, por exemplo), o módulo passa para a combinação existente que contém esse valor e mantém mais atributos atuais, dando prioridade a uma combinação encomendável.
Controlos antes da troca
O navegador envia o produto, a combinação atual e a escolhida. O servidor verifica depois:
- o token da sessão;
- que o produto está ativo e disponível para encomenda, e que o modo catálogo está desativado;
- que a combinação escolhida pertence ao produto e à loja;
- que a linha original ainda está no carrinho, sem personalização;
- que o produto não está ligado a uma regra de carrinho com brinde deste carrinho;
- que a quantidade final atinge a quantidade mínima da combinação;
- que o stock cobre a quantidade final, exceto se a venda sem stock for permitida para o produto.
A nova combinação é adicionada com o método nativo updateQty e depois a antiga é removida com deleteProduct. Se a remoção falhar, a adição é anulada. Se a combinação escolhida já estiver no carrinho, as quantidades são somadas numa única linha. Caso contrário, a nova linha retoma a data de adição da antiga para manter o seu lugar no carrinho.
Após a troca, o módulo dispara o evento updateCart do PrestaShop. O tema recarrega então a lista, os totais e o mini carrinho. Se o tema não reagir em 3 segundos, a página é recarregada.
Linhas não abrangidas
- produtos sem combinações ou com uma única combinação;
- linhas com personalização (texto, ficheiro);
- produtos oferecidos por uma regra de carrinho;
- produtos excluídos na configuração.
Histórico e estatísticas
Sob o formulário de configuração, o bloco Histórico de alterações mostra:
- o número de alterações e de carrinhos abrangidos em 30 dias;
- o número de carrinhos alterados que se tornaram encomendas, com a taxa;
- os 10 produtos mais alterados;
- as 20 últimas alterações, com a combinação de partida e a escolhida.
O botão Limpar histórico elimina os dados da loja atual. Um produto muitas vezes alterado para o tamanho acima indica uma tabela de tamanhos ou uma página de produto a rever.
Temas e personalização
O tema Classic e a maioria dos temas derivados chamam displayCartExtraProductActions em cada linha do carrinho. Se o seu tema não o chamar, o script cria o seletor a partir das ligações de remoção das linhas (data-id-product e data-id-product-attribute). O ficheiro JavaScript só é carregado na página do carrinho.
Para ajustar o estilo, sobreponha no CSS do tema as variáveis --dfcc-accent, --dfcc-text e --dfcc-border, ou as classes .dfcc-edit, .dfcc-modal__dialog e .dfcc-option.
Com um tema muito personalizado ou um módulo de carrinho lateral, teste a alteração de combinação numa cópia da loja, como convidado e como cliente com sessão iniciada.
Para programadores
Após cada alteração bem-sucedida, o módulo executa o hook actionDfCartCombinationChange com os parâmetros cart, id_product, id_product_attribute_from, id_product_attribute_to e quantity. Um módulo de terceiros pode ligar-se a ele para sincronizar um CRM ou uma ferramenta de análise.
Limitações conhecidas
- Na versão 1.0.0, as linhas personalizadas mantêm a sua combinação.
- A alteração faz-se na página do carrinho, não no resumo do processo de encomenda nem no mini carrinho.
- Um módulo de carrinho lateral que não use o evento
updateCartsó se atualiza quando a página é recarregada.