# DfCartRecovery: recuperação de carrinho abandonado para Shopware 6

> Apresentação O DfCartRecovery acrescenta ao Shopware 6 (Community Edition) a recuperação de carrinhos abandonados, normalmente reservada ao plano Commercial: deteção dos carrinhos, até 3 emails de recuperação agendados, código promocional…

- Página: <https://www.datafirefly.com/pt/documentation/dfcartrecovery/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dfcartrecovery/index.md), [en](https://www.datafirefly.com/en/documentation/dfcartrecovery/index.md), [es](https://www.datafirefly.com/es/documentation/dfcartrecovery/index.md), [de](https://www.datafirefly.com/de/documentation/dfcartrecovery/index.md), [it](https://www.datafirefly.com/it/documentation/dfcartrecovery/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfcartrecovery/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfcartrecovery/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

O DfCartRecovery acrescenta ao Shopware 6 (Community Edition) a recuperação de carrinhos abandonados, normalmente reservada ao plano Commercial: deteção dos carrinhos, até 3 emails de recuperação agendados, código promocional único por cliente, ligação de restauro do carrinho num clique e acompanhamento das encomendas recuperadas. Sem serviços externos, sem build de administração: tudo se configura nas definições da extensão.

## Pré-requisitos

- Shopware 6.5, 6.6 ou 6.7 (Community Edition auto-alojada; o Shopware Cloud SaaS não é suportado)
- PHP 8.1 ou superior (8.2+ recomendado)
- O consumidor de mensagens e a execução das tarefas agendadas ativos (recomendação normal do Shopware em produção)
- O envio de emails a funcionar na loja (os emails de recuperação passam pelo serviço de email nativo do Shopware)

## Instalação

1. Descomprima o arquivo e coloque a pasta `DfCartRecovery` em `custom/plugins/`.
2. A partir da raiz do Shopware, execute:

```
bin/console plugin:refresh
bin/console plugin:install --activate DfCartRecovery
bin/console cache:clear
```

A tarefa agendada `df_cart_recovery.process` é registada automaticamente e corre a cada 15 minutos. Verifique que os seus workers estão a correr:

```
bin/console scheduled-task:run
bin/console messenger:consume async low_priority
```

A instalação cria a tabela de seguimento `df_cart_recovery` e o template de email «Recuperação de carrinho abandonado (DataFirefly)», pré-traduzido em FR, EN, DE, ES e IT.

## Configuração

Vá a **Extensões → As minhas extensões → DfCartRecovery → Configuração**. Três cartões de definições:

### Geral

- **Ativar a recuperação de carrinho**: interruptor global da extensão.
- **Valor mínimo do carrinho**: os carrinhos abaixo deste montante são ignorados (0 = sem mínimo).
- **Retenção dos dados (dias)**: os registos de seguimento mais antigos são eliminados automaticamente (30 dias por predefinição, ver a secção RGPD).

### Emails de recuperação

- **Número de emails**: 1, 2 ou 3 (2 por predefinição).
- **Email 1**: minutos após o abandono do carrinho (60 por predefinição, ou seja 1 hora).
- **Email 2**: minutos após o email 1 (1440 por predefinição, ou seja 24 horas).
- **Email 3**: minutos após o email 2 (4320 por predefinição, ou seja 72 horas).

A sequência 1 h / +24 h / +72 h é a norma comprovada do retargeting por email: mantenha-a como ponto de partida e ajuste depois segundo as suas estatísticas de recuperação.

### Código promocional

- **Incluir um código promocional único**: ativa a geração de códigos individuais.
- **Promoção para os códigos gerados**: selecione a promoção Shopware que vai transportar os códigos (ver abaixo).
- **Enviar o código com o email n.º**: 2 por predefinição; os clientes que voltam logo com o primeiro email encomendam sem desconto.
- **Prefixo do código**: CART por predefinição; os códigos gerados têm o aspeto `CART-7F3A91B2`.

## Criar a promoção para os códigos únicos

1. Na administração do Shopware, abra **Marketing → Promoções** e crie uma promoção (ou reutilize uma existente).
2. No separador geral, ative **Códigos promocionais individuais**.
3. Defina o desconto (percentagem ou montante), as condições e o período de validade como habitualmente.
4. Ative a promoção e selecione-a na configuração da extensão.

A promoção tem obrigatoriamente de ter os códigos individuais ativos: a extensão insere os códigos gerados nessa lista. Sem essa opção, os códigos enviados não serão aceites no checkout.

## Personalizar o email de recuperação

O conteúdo edita-se em **Definições → Modelos de email**, tipo «Recuperação de carrinho abandonado (DataFirefly)», para cada idioma da loja. Variáveis Twig disponíveis:

- `firstName` / `lastName`: nome próprio e apelido do cliente
- `items`: artigos do carrinho, cada um com `label` e `quantity`
- `total` e `currency`: montante do carrinho e código da moeda
- `recoveryUrl`: ligação de restauro do carrinho (a colocar no botão de ação)
- `voucherCode`: código promocional único (vazio se não estiver ativo ou no email sem código: envolva o bloco numa condição Twig)
- `shopName`: nome da loja do canal de venda
- `reminderNumber`: número do email em curso (1, 2 ou 3)

## A ligação de restauro

Cada email contém uma ligação única do tipo `/df-cart-recovery/token`, gerada no domínio do canal de venda do cliente, no idioma dele. Ao clicar, a extensão reconstrói o carrinho artigo a artigo, assinala os produtos que deixaram de estar disponíveis com uma mensagem no storefront, regista a data e hora do clique e reencaminha para a página do carrinho. As ligações inválidas ou expiradas reencaminham para a página inicial com uma mensagem explícita.

## Acompanhamento da recuperação

Assim que é feita uma encomenda, a extensão cruza o email do cliente com os carrinhos abandonados em curso: o registo passa a «recuperado» com o identificador da encomenda, a data e o número de emails enviados. Os emails param de imediato para esse carrinho. Os dados podem ser consultados na tabela `df_cart_recovery` (tokens, estados, cliques, encomendas ligadas) para os seus relatórios SQL ou BI.

## RGPD e dados

- Nenhum dado sai do seu servidor; nenhum serviço de terceiros é chamado.
- Os registos de seguimento são eliminados automaticamente após o prazo de retenção configurado.
- Na desinstalação, escolha «Eliminar todos os dados da aplicação» para apagar a tabela, o template de email e a configuração, ou conserve-os para manter o histórico.

## Resolução de problemas

### Nenhum email é enviado

- Verifique que a tarefa agendada está a correr: `bin/console scheduled-task:list` deve mostrar `df_cart_recovery.process` em estado scheduled, e os seus workers do messenger têm de estar ativos.
- Teste o envio de email global da loja (Definições → Agente de correio): a extensão usa o serviço de email normal.
- Controle o valor mínimo do carrinho e o prazo do email 1: um carrinho abandonado há 20 minutos com um prazo de 60 minutos ainda não é elegível.

### Os visitantes não recebem nada

É o comportamento esperado: sem endereço de email, nenhum envio é possível. Os visitantes passam a ser seguidos assim que se identificam (início de sessão ou criação de conta durante o checkout); a fusão do carrinho atualiza o registo com o endereço deles.

### O código promocional não aparece no email

- Verifique que a opção «Incluir um código promocional único» está ativa e que está selecionada uma promoção.
- A promoção tem de existir, estar ativa e ter os códigos individuais ativos.
- O código só é anexado a partir do email configurado (o 2.º por predefinição): o email 1 não o contém na configuração normal.

### A ligação de restauro reencaminha para a página inicial

O token é inválido ou o registo foi eliminado (retenção ultrapassada); o cliente recebe uma mensagem a convidá-lo a refazer o carrinho. Aumente a duração da retenção se os seus prazos de envio forem longos.
