Le WordPress d'aujourd'hui, décodé pour les développeurs

E-commerce

Synchroniser WooCommerce avec Sendinblue pour relancer les paniers abandonnés

Relancer automatiquement un panier abandonné suppose de brancher WooCommerce sur Sendinblue et de déclencher le bon scénario au bon moment, sans double envoi.

Par WordPress Développement • 4 novembre 2022 • 4 min de lecture • Aucun commentaire
Synchroniser WooCommerce avec Sendinblue pour relancer les paniers abandonnés

Combien de temps attendre avant de considérer qu’un panier est réellement abandonné, plutôt qu’un client simplement en train de comparer d’autres onglets avant de revenir finaliser son achat ? Un délai de vingt minutes d’inactivité constitue un compromis raisonnable, ni trop agressif, ni trop tardif, pour déclencher une relance automatique via Sendinblue.

Synchroniser les contacts avec les bons attributs

Sendinblue expose une API REST permettant de créer ou mettre à jour un contact avec des attributs personnalisés. Le hook woocommerce_created_customer ou, pour les achats en tant qu’invité, woocommerce_checkout_update_order_meta, constitue le point d’accroche pour synchroniser chaque client :

function synchroniser_contact_sendinblue(string $email, array $attributs): void
{
    $reponse = wp_remote_post('https://api.sendinblue.com/v3/contacts', [
        'headers' => [
            'api-key' => getenv('SENDINBLUE_API_KEY'),
            'content-type' => 'application/json',
        ],
        'body' => wp_json_encode([
            'email' => $email,
            'attributes' => $attributs,
            'updateEnabled' => true,
        ]),
    ]);

    if (is_wp_error($reponse)) {
        error_log('Échec synchro Sendinblue : ' . $reponse->get_error_message());
    }
}

Le paramètre updateEnabled à true évite une erreur de doublon si le contact existe déjà, ce qui simplifie grandement la logique côté WordPress : pas besoin de vérifier au préalable si le contact existe, l’API Sendinblue gère la création ou la mise à jour de façon transparente.

Détecter un panier abandonné sans extension supplémentaire

WooCommerce ne conserve pas nativement un panier persistant au-delà de la session en cours pour un visiteur non connecté, ce qui complique la détection d’abandon. Pour les clients connectés, le panier est conservé en session persistante ; il suffit alors de comparer l’horodatage de dernière modification du panier avec l’heure courante lors d’une tâche planifiée :

add_action('woocommerce_add_to_cart', function () {
    if (is_user_logged_in()) {
        update_user_meta(get_current_user_id(), '_derniere_maj_panier', time());
    }
});

// Tâche planifiée toutes les dix minutes
add_action('verifier_paniers_abandonnes', function () {
    $utilisateurs = get_users(['meta_key' => '_derniere_maj_panier']);
    foreach ($utilisateurs as $utilisateur) {
        $derniere_maj = (int) get_user_meta($utilisateur->ID, '_derniere_maj_panier', true);
        if (time() - $derniere_maj > 1200 && !panier_deja_relance($utilisateur->ID)) {
            declencher_relance_sendinblue($utilisateur);
        }
    }
});
L'essentiel à retenir : Synchroniser les contacts avec les bons attributs personnalisés ; Détecter un panier abandonné sans extension supplémentaire ; Déclencher le scénario Sendinblue au bon moment

Déclencher le bon scénario au bon moment

Sendinblue gère la logique d’e-mails (contenu, délai entre relances, nombre de tentatives) via son interface de scénarios d’automatisation, pas côté code WordPress. Le rôle du code se limite à déclencher un événement suivi par Sendinblue, généralement via l’ajout d’un attribut de contact ou l’appel d’un événement de suivi transactionnel dédié aux paniers abandonnés.

  • Éviter de déclencher deux fois la même relance pour un même panier, via un marqueur de relance déjà envoyée
  • Annuler la relance si le client finalise sa commande entre-temps, en supprimant le marqueur d’abandon au moment du paiement réussi
  • Ne synchroniser que le contenu du panier réellement utile à la relance (nom du produit, image, lien de retour au panier), pas l’intégralité de l’objet panier WooCommerce

Ce que cette intégration ne couvre pas

La rédaction du contenu des e-mails de relance, le nombre de relances et leur espacement relèvent de choix marketing propres à chaque boutique, configurés directement dans l’interface Sendinblue. Le code présenté ici s’arrête à la synchronisation des données et au déclenchement de l’événement, sans se prononcer sur la stratégie de contenu des campagnes elles-mêmes.

En résumé

Relancer des paniers abandonnés via Sendinblue demande surtout de fiabiliser deux points côté WooCommerce : la synchronisation propre des contacts avec l’API, et une détection d’abandon qui évite les doublons de relance. Le reste — contenu, cadence, scénario — se pilote entièrement depuis l’interface Sendinblue, sans code supplémentaire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi