---
title: "Récupération de panier abandonné"
description: "Récupérez les ventes perdues grâce à une séquence d'emails intelligente en plusieurs étapes qui ramène les clients pour finaliser leur achat."
url: https://tajo.io/fr/docs/skills/email-marketing/abandoned-cart/
markdown: https://tajo.io/fr/docs/skills/email-marketing/abandoned-cart.md
lang: fr-FR
robots: noindex
---

Demandez un accès anticipé

Indiquez votre prénom et votre adresse e-mail professionnelle. Nous vous enverrons un lien pour confirmer votre demande d’accès à Tajo.

# Récupération de panier abandonné

Récupérez les ventes perdues grâce à une séquence d’emails intelligente en plusieurs étapes. Ce skill surveille l’abandon de panier et envoie automatiquement des emails de récupération personnalisés pour faire revenir les clients.

## Vue d’ensemble

| Propriété | Valeur |
| --- | --- |
| **Catégorie** | Email marketing |
| **Statut** | Stable |
| **Version** | 3.0 |
| **Déclencheurs** | `cart_abandoned`, `cart_recovered` |
| **Taux de récupération moyen** | 10-15 % |

## Fonctionnement

```mermaid
graph TD
    A[Customer adds to cart] -->|Leaves site| B{Cart abandoned?}
    B -->|No checkout in 30min| C[Trigger: cart_abandoned]
    C --> D[Wait 1 hour]
    D --> E{Purchased?}
    E -->|No| F[Send Email #1]
    F --> G[Wait 24 hours]
    G --> H{Purchased?}
    H -->|No| I[Send Email #2 + Discount]
    I --> J[Wait 48 hours]
    J --> K{Purchased?}
    K -->|No| L[Send Email #3 - Final]
    E -->|Yes| M[Stop sequence]
    H -->|Yes| M
    K -->|Yes| M
    L --> N[Mark as lost]
```

## Configuration

### Configuration de base

```yaml
skills:
  abandoned-cart:
    enabled: true

    # Cart abandonment detection
    detection:
      inactivity_threshold: 30m  # Minutes before cart is abandoned
      min_cart_value: 25         # Minimum cart value to trigger
      exclude_logged_out: false  # Include guest carts

    # Email sequence
    sequence:
      - delay: 1h
        template_id: 101
        subject: "Forgot something?"

      - delay: 24h
        template_id: 102
        subject: "Your cart is waiting"
        include_discount: true
        discount_percent: 10

      - delay: 48h
        template_id: 103
        subject: "Last chance - items selling fast"
        include_discount: true
        discount_percent: 15
        discount_expiry: 24h

    # Stop conditions
    stop_on:
      - cart_recovered
      - order_placed
      - unsubscribe
```

### Configuration avancée

```yaml
skills:
  abandoned-cart:
    # Segment-specific timing
    timing:
      vip_customers:
        first_email: 30m
        discount_threshold: 0  # Always include discount
      new_customers:
        first_email: 2h
        discount_threshold: 50  # Discount only if cart > $50
      repeat_customers:
        first_email: 1h
        discount_threshold: 100

    # A/B testing
    ab_testing:
      enabled: true
      variants:
        - name: "urgency"
          subject: "Items in your cart are selling fast!"
          weight: 50
        - name: "friendly"
          subject: "Did you forget something?"
          weight: 50

    # Exclusions
    exclude:
      - email_domain: ["temp-mail.com", "disposable.com"]
      - customer_tag: ["wholesale", "staff"]
      - product_category: ["gift-cards"]
```

## Déclencheurs

### cart\_abandoned

Se déclenche lorsqu’un panier est inactif depuis le seuil configuré.

#### Données d'événement

| Parameter | Type | Description |
| --- | --- | --- |
| `cart_id` required | string | Identifiant unique du panier |
| `customer_email` required | string | Adresse email du client |
| `items` required | array | Tableau d'articles du panier avec nom, prix, quantité, image\_url |
| `total` required | number | Valeur totale du panier |
| `currency` optional | string | Code de devise (ex. USD, EUR) Default: `USD` |
| `recovery_url` required | string | URL pour récupérer le panier |
| `abandoned_at` required | datetime | Date et heure d'abandon du panier |

Exemple de charge utile :

```json
{
  "event": "cart_abandoned",
  "timestamp": "2024-01-15T14:30:00Z",
  "data": {
    "cart_id": "cart_abc123",
    "customer_email": "jane@example.com",
    "items": [
      {
        "id": "prod_123",
        "name": "Premium Headphones",
        "price": 199.99,
        "quantity": 1,
        "image_url": "https://cdn.example.com/headphones.jpg",
        "variant": "Black"
      },
      {
        "id": "prod_456",
        "name": "Phone Case",
        "price": 29.99,
        "quantity": 2,
        "image_url": "https://cdn.example.com/case.jpg"
      }
    ],
    "subtotal": 259.97,
    "shipping": 0,
    "tax": 20.80,
    "total": 280.77,
    "currency": "USD",
    "recovery_url": "https://store.example.com/cart/recover/abc123",
    "abandoned_at": "2024-01-15T14:00:00Z"
  }
}
```

### cart\_recovered

Se déclenche lorsqu’un client revient et finalise son achat.

```json
{
  "event": "cart_recovered",
  "timestamp": "2024-01-15T16:45:00Z",
  "data": {
    "cart_id": "cart_abc123",
    "customer_email": "jane@example.com",
    "order_id": "order_789",
    "recovered_via": "email_1",  // Which email triggered recovery
    "time_to_recover": "2h15m"
  }
}
```

## Modèles d’email

### Variables de modèle

Utilisez ces variables dans vos modèles d’email Brevo :

| Variable | Description | Exemple |
| --- | --- | --- |
| `params.FIRSTNAME` | Prénom du client | Jane |
| `params.CART_URL` | URL de récupération du panier | https://… |
| `params.CART_TOTAL` | Total du panier formaté | 280,77 $ |
| `params.ITEM_COUNT` | Nombre d’articles | 3 |
| `params.ITEMS` | Tableau JSON des articles | \[…\] |
| `params.DISCOUNT_CODE` | Code de réduction généré | SAVE10-ABC |
| `params.DISCOUNT_PERCENT` | Pourcentage de réduction | 10 |
| `params.EXPIRY_DATE` | Date d’expiration de la réduction | 17 janv. 2024 |

### Séquence d’emails recommandée

**Email 1 (1 heure)** : rappel en douceur

- Objet : « Vous avez oublié quelque chose, {{ params.FIRSTNAME }} ? »
- Focus : rappeler le contenu du panier
- Pas encore de réduction

**Email 2 (24 heures)** : urgence + incitation

- Objet : « Votre panier vous attend + 10 % de réduction »
- Focus : réduction limitée dans le temps
- Inclure un code de réduction

**Email 3 (48 heures)** : dernier coup de pouce

- Objet : « Dernière chance - 15 % expirent bientôt »
- Focus : rareté + réduction plus forte
- Expiration de la réduction dans 24 heures

## Exemples de code

### Activer le skill de panier abandonné

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.skills.enable('abandoned-cart', {
  detection: {
    inactivityThreshold: '30m',
    minCartValue: 25
  },
  sequence: [
    { delay: '1h', templateId: 101 },
    { delay: '24h', templateId: 102, discountPercent: 10 },
    { delay: '48h', templateId: 103, discountPercent: 15 }
  ]
});
```

### Suivre l’abandon de panier

```javascript
// Call this when cart activity is detected
await tajo.events.track('cart_updated', {
  cartId: 'cart_abc123',
  customerEmail: 'jane@example.com',
  items: cartItems,
  total: 280.77
});

// Call this when customer leaves without checkout
// (typically from a beforeunload event or session timeout)
await tajo.events.track('cart_abandoned', {
  cartId: 'cart_abc123',
  customerEmail: 'jane@example.com',
  items: cartItems,
  total: 280.77,
  recoveryUrl: 'https://store.example.com/cart/recover/abc123'
});
```

### Générer des codes de réduction

```javascript
// Generate a unique discount code
const discount = await tajo.discounts.create({
  type: 'percentage',
  value: 10,
  expiresIn: '7d',
  usageLimit: 1,
  prefix: 'SAVE10'
});

// discount.code => "SAVE10-ABC123"
```

## Analytique

Suivez la performance de récupération des paniers abandonnés :

| Indicateur | Description |
| --- | --- |
| **Taux d’abandon** | % de paniers abandonnés |
| **Taux de récupération** | % de paniers abandonnés récupérés |
| **Revenu récupéré** | Revenu total des paniers récupérés |
| **Taux d’ouverture des emails** | % d’emails de récupération ouverts |
| **CTR des emails** | Taux de clic sur les emails de récupération |
| **Délai de récupération** | Temps moyen entre l’abandon et l’achat |

```javascript
const stats = await tajo.skills.getStats('abandoned-cart', {
  period: '30d'
});

console.log(stats);
// {
//   abandonmentRate: 68.5,
//   recoveryRate: 12.3,
//   revenueRecovered: 15420.50,
//   emailsSent: 2340,
//   emailOpenRate: 45.2,
//   emailCtr: 8.7,
//   avgTimeToRecovery: '4h32m'
// }
```

## Bonnes pratiques

Le timing est essentiel

Envoyez le premier email dans les 1 à 2 heures suivant l’abandon. Les taux de récupération chutent considérablement après 24 heures.

1. **Personnalisez les objets** - Utilisez le nom du client et le contenu du panier
2. **Affichez le contenu du panier** - Incluez des images des produits dans l’email
3. **Créez de l’urgence** - Mentionnez un stock faible ou des réductions limitées dans le temps
4. **Facilitez la récupération** - Liens de récupération de panier en un clic
5. **Testez votre séquence** - Faites des tests A/B sur le timing, les objets et les réductions
6. **Respectez les désabonnements** - Arrêtez la séquence immédiatement en cas de désabonnement

## Skills associés

- Événements de panier - Suivre l’activité des paniers
- Abandon de navigation - Récupérer les sessions de navigation
- Reconquête - Réengager les clients inactifs

## Étapes suivantes

1. Configurez le suivi de panier sur votre plateforme
2. Créez des modèles d’email dans Brevo
3. Configurez l’intégration des codes de réduction
4. Surveillez les performances dans le tableau de bord
