Webhook - Carrinho Abandonado
Este webhook é enviado quando um cliente abandona o carrinho sem finalizar a compra.
🔔 Quando é Disparado: Este webhook é enviado quando um cliente:
• Adiciona produtos ao carrinho
• Preenche seus dados
• Mas não finaliza a compra dentro do tempo configurado (padrão: 30 minutos)
Estrutura do Payload
| Campo | Tipo | Descrição |
|---|---|---|
cart_token |
string | Token único do carrinho abandonado |
abandoned_at |
datetime | Data e hora em que o carrinho foi considerado abandonado (ISO 8601) |
cart_amount |
integer | Valor total do carrinho em centavos |
recovery_url |
string | URL para recuperar o carrinho |
Customer (cliente)
| Campo | Tipo | Descrição |
|---|---|---|
customer.name |
string|null | Nome do cliente (se informado) |
customer.email |
string | E-mail do cliente |
customer.phone |
string|null | Telefone do cliente (se informado) |
Products (produtos)
Array com os produtos no carrinho
| Campo | Tipo | Descrição |
|---|---|---|
products[x].name |
string | Nome do produto |
products[x].code |
string | Código do produto |
products[x].price |
integer | Preço unitário em centavos |
products[x].quantity |
integer | Quantidade |
products[x].image_url |
string|null | URL da imagem do produto |
UTMs (rastreamento)
| Campo | Tipo | Descrição |
|---|---|---|
utms.src |
string|null | Origem do tráfego |
utms.utm_source |
string|null | UTM Source |
utms.utm_medium |
string|null | UTM Medium |
utms.utm_campaign |
string|null | UTM Campaign |
Exemplo de Webhook
{
"cart_token": "CART_ABC123XYZ",
"abandoned_at": "2024-10-07T15:30:00Z",
"cart_amount": 15000,
"recovery_url": "https://checkout.seudominio.com/r/CART_ABC123XYZ",
"customer": {
"name": "João Silva",
"email": "joao.silva@example.com",
"phone": "+5511987654321"
},
"products": [
{
"name": "Notebook Dell Inspiron",
"code": "NOTEBOOK_001",
"price": 12000,
"quantity": 1,
"image_url": "https://example.com/images/notebook.jpg"
},
{
"name": "Mouse Logitech",
"code": "MOUSE_001",
"price": 3000,
"quantity": 1,
"image_url": "https://example.com/images/mouse.jpg"
}
],
"utms": {
"src": "facebook",
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "notebook_promocao"
}
}
Casos de Uso
E-mail de Recuperação
Envie um e-mail personalizado para o cliente com um link para recuperar o carrinho, talvez com um cupom de desconto especial.
WhatsApp Automation
Dispare uma mensagem automática no WhatsApp lembrando o cliente sobre o carrinho abandonado.
Remarketing
Adicione o cliente em campanhas de remarketing no Google Ads, Meta Ads, etc.
Analytics
Registre métricas de abandono de carrinho para análise e otimização do funil de vendas.
Exemplo de Implementação
<?php
// Recebe o payload
$payload = file_get_contents('php://input');
$data = json_decode($payload, true);
// Extrai informações
$cartToken = $data['cart_token'];
$customer = $data['customer'];
$products = $data['products'];
$cartAmount = $data['cart_amount'];
$recoveryUrl = $data['recovery_url'];
// Verifica se já processou este webhook
if (webhookJaProcessado($cartToken)) {
http_response_code(200);
echo json_encode(['status' => 'already_processed']);
exit;
}
// Gera um cupom de desconto especial (10% off)
$cupom = gerarCupomDesconto([
'codigo' => 'RECUPERA' . substr($cartToken, -6),
'desconto_percentual' => 10,
'validade' => '+24 hours',
'uso_unico' => true,
'email_cliente' => $customer['email']
]);
// Prepara dados para o e-mail
$dadosEmail = [
'nome' => $customer['name'] ?? 'Cliente',
'produtos' => $products,
'valor_total' => formatarValor($cartAmount),
'valor_com_desconto' => formatarValor($cartAmount * 0.9),
'recovery_url' => $recoveryUrl,
'cupom_codigo' => $cupom['codigo'],
'cupom_desconto' => '10%',
'cupom_validade' => $cupom['validade_formatada']
];
// Envia e-mail de recuperação
enviarEmailCarrinhoAbandonado($customer['email'], $dadosEmail);
// Se tiver WhatsApp, envia mensagem também
if (!empty($customer['phone'])) {
enviarWhatsAppCarrinhoAbandonado($customer['phone'], [
'nome' => $customer['name'] ?? 'Cliente',
'recovery_url' => $recoveryUrl,
'cupom' => $cupom['codigo']
]);
}
// Registra no analytics
registrarEventoAnalytics('carrinho_abandonado', [
'cart_token' => $cartToken,
'valor' => $cartAmount,
'produtos_quantidade' => count($products),
'utm_source' => $data['utms']['utm_source'] ?? null,
'utm_campaign' => $data['utms']['utm_campaign'] ?? null
]);
// Adiciona em lista de remarketing
adicionarEmListaRemarketing([
'email' => $customer['email'],
'lista' => 'carrinho_abandonado',
'produtos' => array_column($products, 'code')
]);
// Marca webhook como processado
marcarWebhookComoProcessado($cartToken);
// Retorna sucesso
http_response_code(200);
echo json_encode([
'status' => 'success',
'cupom_gerado' => $cupom['codigo']
]);
Exemplo de E-mail de Recuperação
Template de E-mail Sugerido
Exemplo de conteúdo para recuperação de carrinho
Assunto: Esqueceu algo? Seus produtos estão te esperando!
Olá [Nome],
Notamos que você deixou alguns itens no carrinho. Que tal aproveitar agora?
E para te incentivar a finalizar a compra, preparamos um desconto especial de 10% válido por 24 horas!
Seu cupom:
RECUPERA123ABC
Este cupom é válido até [Data de Validade]
💡 Dica de Conversão: Estudos mostram que:
• E-mails enviados 1 hora após o abandono têm taxa de conversão ~20% maior
• Cupons de desconto entre 10-15% têm melhor ROI
• Sequências de 3 e-mails (1h, 24h, 72h) maximizam recuperações
🔗 Recovery URL: O campo recovery_url é um link único que leva o cliente de volta ao carrinho exatamente como ele deixou,
com todos os produtos e informações já preenchidas. Este link expira após 30 dias.