DataFirefly Cart History & Restore Links: histórico de carrinhos e links de restauro
Instalação, links de restauro no back office, página Os meus carrinhos guardados, definições, segurança dos links e resolução de problemas.
Instalação
Instale o módulo em Módulos > Gestor de módulos > Carregar um módulo enviando o ficheiro ZIP, ou copie a pasta dfcartrestore para o diretório /modules/ da loja e clique em Instalar.
A instalação cria uma tabela de registo (dfcartrestore_log), gera a chave secreta que assina os links e adiciona a página Os meus carrinhos guardados à conta de cliente. Nenhuma tabela nativa é alterada: os carrinhos restaurados são carrinhos normais do PrestaShop.
Funcionamento
Um link de restauro nunca transfere um carrinho. Quando alguém o abre, o módulo lê as linhas do carrinho de origem e adiciona-as uma a uma ao carrinho dessa pessoa, como se clicasse em «Adicionar ao carrinho» em cada artigo.
- O carrinho de origem nunca é alterado, mesmo que pertença a outro cliente ou esteja ligado a uma encomenda.
- Ninguém inicia sessão na conta do proprietário do carrinho, ao contrário do link nativo de recuperação de carrinho do PrestaShop.
- Os preços, as promoções, o stock, as quantidades mínimas e a disponibilidade para encomenda são os do momento do restauro.
- O mesmo link pode ser usado várias vezes, por várias pessoas.
Links de restauro no back office
Lista de carrinhos
Em Clientes > Carrinhos de compras, a coluna Link de restauro mostra um botão Copiar link em cada carrinho com produtos. O link é copiado para a área de transferência sem abrir o carrinho. Na exportação CSV da lista, esta coluna contém o URL completo.
Detalhe do carrinho
No topo da página do carrinho, uma caixa mostra o link completo com os botões Copiar link e Abrir, e o número de vezes que o link já foi usado. Se estiver definido um período de validade, é indicada a data de expiração.
Ficha do cliente
O bloco Carrinhos e links de restauro lista os 10 últimos carrinhos não vazios do cliente, com data, número de artigos, total dos produtos, estado da encomenda e botão de cópia.
O link é gerado no idioma e para a loja do carrinho: um cliente italiano recebe um link para a versão italiana da loja.
O que vê quem abre o link
Com a página de pré-visualização ativa (definição predefinida), o link abre uma página com os artigos do carrinho, as miniaturas e as quantidades. O visitante clica em Adicionar estes artigos ao meu carrinho para iniciar o restauro e é depois redirecionado para o carrinho ou para a finalização da compra, conforme a sua definição.
Uma mensagem resume o resultado: produtos adicionados, vales aplicados, quantidades ajustadas ao stock e artigos que não foi possível adicionar.
Para um orçamento preparado ao telefone, crie o carrinho em Encomendas > Adicionar nova encomenda, copie o seu link a partir da lista de carrinhos e envie-o ao cliente.
Página Os meus carrinhos guardados
O link Os meus carrinhos guardados aparece na conta de cliente e no bloco A minha conta do rodapé. A página lista os carrinhos do cliente com produtos, do mais recente para o mais antigo, cada um com:
- a data da última alteração, o número de artigos e o total dos produtos;
- o estado Encomendado com a referência e um link para a encomenda, ou Não encomendado;
- as miniaturas dos produtos e um detalhe expansível onde os artigos que deixaram de estar disponíveis são assinalados;
- o botão Restaurar este carrinho e, se a opção estiver ativa, o botão Copiar link de partilha.
O carrinho atual do cliente não aparece na lista. Em modo substituição, uma confirmação avisa o cliente de que o carrinho atual será substituído e de que o encontrará nesta mesma página.
Definições
Conta de cliente
- Mostrar o histórico de carrinhos na conta de cliente: ativa a página Os meus carrinhos guardados e os respetivos links.
- Comportamento do restauro: Substituir o carrinho atual cria um novo carrinho e deixa o anterior no histórico; Adicionar ao carrinho atual junta os artigos aos que já lá estão. Um visitante sem sessão junta sempre, porque não conseguiria recuperar um carrinho substituído.
- Mostrar os carrinhos já convertidos em encomenda: permite voltar a encomendar os mesmos artigos num clique.
- Carrinhos por página: de 1 a 50, 10 por predefinição.
- Período do histórico (dias): só são listados os carrinhos atualizados neste período, 365 por predefinição, 0 sem limite.
- Permitir que os clientes copiem um link de partilha: útil em B2B, quando um comprador prepara o carrinho e um colega faz a encomenda.
- Após restaurar, enviar o cliente para: página do carrinho ou finalização da compra. Se houver artigos ajustados ou ignorados, o cliente passa sempre pela página do carrinho para os ver.
Links de restauro
- Validade dos links (dias): aplica-se aos links gerados a partir de agora, 0 para links sem expiração.
- Mostrar uma página de pré-visualização antes de restaurar: recomendado, ver a secção Segurança.
- Manter os vales de desconto: Nunca, Apenas quando o cliente restaura a partir da conta (predefinição) ou Sempre. Um vale só é aplicado se ainda for válido para o novo carrinho e o seu titular. As regras automáticas sem código são reaplicadas pelo próprio PrestaShop.
Segurança dos links
Cada link contém o identificador do carrinho e uma assinatura HMAC-SHA256 calculada com a chave secreta do módulo. Um identificador alterado à mão torna o link inválido.
O botão Invalidar todos os links existentes gera uma nova chave secreta: todos os links partilhados até então deixam de funcionar e os novos links mostrados no back office funcionam normalmente.
As gateways de e-mail (Outlook Safe Links, Proofpoint, Mimecast) e as pré-visualizações de links do Slack, Teams ou WhatsApp abrem os links automaticamente. Se desativar a página de pré-visualização, cada abertura automática a partir de um navegador normal criaria um carrinho. Os bots reconhecidos veem sempre a página de pré-visualização, mesmo quando está desativada.
Regras aplicadas no restauro
- Produto desativado, não disponível para encomenda ou ausente da loja: ignorado.
- Combinação eliminada: ignorada.
- Quantidade inferior à quantidade mínima: aumentada para a quantidade mínima.
- Stock insuficiente sem encomendas fora de stock autorizadas: quantidade reduzida ao stock disponível se ainda respeitar o mínimo, caso contrário o artigo é ignorado.
- Produto personalizado: textos copiados, ficheiros enviados duplicados no servidor, para que eliminar a linha copiada nunca apague o ficheiro de uma encomenda.
- Nenhum artigo adicionado: o carrinho criado para o efeito é eliminado e o carrinho atual do visitante é reposto.
Registo dos restauros
A página de configuração mostra os 30 últimos restauros da loja: data, origem (link ou conta de cliente), carrinho de origem, novo carrinho, cliente ou visitante, número de artigos adicionados e ignorados. Os números de carrinho abrem a respetiva página no back office.
Para programadores
actionDfcartrestoreAfterRestore: executado após cada restauro bem-sucedido, comid_cart_source,id_carteorigin(linkouaccount).actionDfcartrestoreCustomizationCopy: executado após a cópia de uma personalização, comid_customization_source,id_customization,id_cart_sourceeid_cart. Um módulo que guarda os seus próprios dados por personalização (configurador, gravação) usa-o para os duplicar.
Resolução de problemas
A coluna ou a caixa não aparece para alguns funcionários
O PrestaShop ignora os hooks de um módulo quando o perfil do funcionário ligado não tem a permissão Ver nesse módulo (Parâmetros avançados > Equipa > Permissões, secção Módulos). Atribua esta permissão aos perfis em causa.
O link mostra «Este link não é válido.»
O programa de e-mail cortou o link, ou todos os links foram invalidados depois do envio. Copie um novo link no back office.
O link mostra «Este link expirou.»
O período de validade terminou. Copie um novo link ou aumente a validade dos próximos links.
O link Os meus carrinhos guardados não aparece na conta
Verifique se a opção da conta de cliente está ativa e depois limpe a cache da loja. Alguns temas não mostram o hook displayCustomerAccount; a página continua acessível em index.php?fc=module&module=dfcartrestore&controller=carts.
Compatibilidade
- PrestaShop 8.0 a 9.x, o mesmo ZIP cobre as duas versões.
- Multiloja, multilíngue e multimoeda.
- Sem dependência Composer.
- Interface disponível em francês, inglês, espanhol, alemão, italiano, neerlandês, polaco e português.