# WhatsApp Commerce Suite Shopware — Guide d'installation et de configuration

> Prérequis Shopware 6.5, 6.6 ou 6.7 (codebase unique), PHP 8.1 minimum Un compte WhatsApp Business avec un numéro vérifié dans Meta Business Suite Une app Meta de type Business avec…

- Page: <https://www.datafirefly.com/documentation/dfwhatsappcommerce-shopware/>
- Langue: fr
- Mis à jour le: 2026-08-06
- Autres langues: [en](https://www.datafirefly.com/en/documentation/dfwhatsappcommerce-shopware/index.md), [es](https://www.datafirefly.com/es/documentation/dfwhatsappcommerce-shopware/index.md), [de](https://www.datafirefly.com/de/documentation/dfwhatsappcommerce-shopware/index.md), [it](https://www.datafirefly.com/it/documentation/dfwhatsappcommerce-shopware/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfwhatsappcommerce-shopware/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfwhatsappcommerce-shopware/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfwhatsappcommerce-shopware/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

## Prérequis

- Shopware 6.5, 6.6 ou 6.7 (codebase unique), PHP 8.1 minimum
- Un compte **WhatsApp Business** avec un numéro vérifié dans Meta Business Suite
- Une app Meta de type **Business** avec le produit WhatsApp activé
- Le worker de file d'attente et le runner de tâches planifiées Shopware actifs (`messenger:consume` et `scheduled-task:run`)

## Installation

1. Copiez le dossier `DfWhatsAppCommerce` dans `custom/plugins/` (ou téléversez le zip via Extensions → Mes extensions).
2. Installez et activez : ``` bin/console plugin:refresh bin/console plugin:install --activate DfWhatsAppCommerce bin/console cache:clear ```
3. Compilez l'administration et le storefront : ``` bin/build-administration.sh bin/build-storefront.sh ```

L'installation crée 5 tables dédiées préfixées `df_wac_` et 2 tâches planifiées (relance panier toutes les 15 min, batch catalogue horaire). Tout est supprimé proprement à la désinstallation, sauf si vous cochez « conserver les données ».

## Configuration Meta Cloud API

### 1. Récupérer les identifiants

Dans [developers.facebook.com](https://developers.facebook.com), créez une app Business et ajoutez le produit WhatsApp. Récupérez : le **jeton permanent** (utilisateur système avec permissions `whatsapp_business_messaging` et `catalog_management`), le **Phone number ID**, le **WABA ID** et l'**App secret** (Paramètres de l'app → Général).

### 2. Créer le catalogue

Dans Meta Commerce Manager, créez un catalogue et connectez-le à votre compte WhatsApp Business. Notez l'**ID du catalogue**.

### 3. Configurer le webhook

Dans l'app Meta → WhatsApp → Configuration :

- URL de rappel : `https://votreboutique.tld/df-wac/webhook`
- Jeton de vérification : la valeur que vous saisissez dans la config du plugin (champ « Webhook verify token »)
- Abonnez-vous au champ `messages`

Renseignez l'**App secret** dans la configuration du plugin : sans lui, la signature `X-Hub-Signature-256` des webhooks n'est pas validée.

### 4. Saisir la configuration dans Shopware

Réglages → Système → Plugins → DataFirefly WhatsApp Commerce Suite. Renseignez la carte « API Meta Cloud », puis testez depuis le tableau de bord (Marketing → WhatsApp Commerce) : bouton **Tester la connexion API** et envoi d'un message test.

## Les 4 modules

### Catalogue Meta

Trois modes : temps réel (à chaque enregistrement de produit), batch horaire, ou manuel. Les variantes sont envoyées individuellement avec le `retailer_id` `sw_{numéro d'article}`. Excluez des catégories si besoin. La resynchronisation complète (lots de 100) se lance depuis le tableau de bord.

### Commande conversationnelle

Machine à états 6 niveaux. Mots-clés reconnus (FR/EN/DE) : `menu`, `panier`, `payer`, `humain`, `reset`, `aide`. La langue du client est détectée automatiquement. Le transfert humain envoie un e-mail à l'adresse configurée avec le lien de la conversation.

### Relance panier abandonné

3 relances configurables (60 min, 24 h, 72 h par défaut) envoyées par la tâche planifiée toutes les 15 minutes, aux clients dont le téléphone de facturation est connu. Le code promo saisi en config est joint à la 3e relance et appliqué automatiquement au panier restauré.

Rendez le champ téléphone obligatoire dans Réglages → Boutique → Connexion / inscription pour maximiser la couverture des relances.

### Lien de paiement signé & notifications

Les liens de checkout et de récupération de panier sont signés HMAC SHA-256 avec expiration configurable (72 h par défaut). Notifications automatiques : confirmation de commande, expédition (avec n° de suivi), échec de paiement.

## Templates HSM à créer dans Meta Business Suite

| Template | Variables corps | Bouton |
| --- | --- | --- |
| Relance 1 & 2 | {{1}} nom client, {{2}} total panier | URL dynamique (suffixe = token) |
| Relance 3 | {{1}} nom, {{2}} total, {{3}} code promo | URL dynamique (suffixe = token) |
| Confirmation | {{1}} nom, {{2}} n° commande, {{3}} total | — |
| Expédition | {{1}} nom, {{2}} n° commande, {{3}} n° suivi | CTA suivi (optionnel) |
| Échec paiement | {{1}} nom, {{2}} n° commande | CTA relance (optionnel) |

Pour les relances, le bouton URL du template doit avoir pour base `https://votreboutique.tld/df-wac/cart/restore?token=` avec suffixe dynamique `{{1}}`. Saisissez les noms des templates approuvés dans la configuration du plugin.

## Administration

Marketing → WhatsApp Commerce : tableau de bord KPI (conversations, non-lus, paniers, taux de récupération, erreurs), page **Conversations** (fil style WhatsApp Web, réponse directe), **Paniers abandonnés**, **Catalogue** (journal de sync) et **Journaux** (filtres niveau/canal).

Règle Meta : les réponses libres depuis l'admin ne sont délivrées que dans les 24 h suivant le dernier message du client. Au-delà, utilisez un template HSM.

## Dépannage

- **Rien ne s'affiche en front** : vérifiez que le « Numéro WhatsApp public » est renseigné (le bouton flottant et les CTA en dépendent), puis `bin/console cache:clear`.
- **Webhook 403** : jeton de vérification différent entre Meta et le plugin, ou App secret erroné.
- **Relances non envoyées** : vérifiez que `scheduled-task:run` et `messenger:consume` tournent, que le module est actif et que les templates HSM sont approuvés.
- **Produits non synchronisés** : consultez la page Catalogue (statuts pending/synced/error) et les Journaux, canal `catalog`.

## RGPD

Aucune donnée n'est envoyée à des tiers hors Meta WhatsApp Cloud API. Conversations et numéros sont stockés localement dans les tables `df_wac_` et supprimés à la désinstallation.
