« Onze champs personnalisés attachés à chaque commande, six qui n’arrivaient jamais dans HubSpot. » C’est le constat dressé après trois semaines d’utilisation de l’extension officielle HubSpot pour WooCommerce par une agence B2B qui pilotait ses prospects et clients depuis le CRM.
Le besoin initial semblait simple : chaque commande WooCommerce contenait des informations utiles à l’équipe commerciale — secteur d’activité du client, origine du contact, taille d’entreprise — saisies via des champs personnalisés sur le tunnel de commande. L’attente était que l’intégration officielle les fasse remonter automatiquement sur la fiche contact HubSpot.
Ce que le connecteur synchronise nativement
L’extension HubSpot pour WooCommerce synchronise par défaut un socle standard : e-mail, nom, historique de commandes, produits achetés, montant total dépensé, et statut d’abandon de panier. Ce socle alimente les listes et les workflows HubSpot de base — relance de panier abandonné, segmentation par montant d’achat — sans configuration supplémentaire.
Ce que le connecteur ne fait pas nativement : remonter des champs personnalisés créés via des hooks maison sur le tunnel de commande. Les order meta ajoutées via woocommerce_checkout_update_order_meta restent dans la base WordPress et ne traversent pas automatiquement vers HubSpot, quelle que soit leur importance pour l’équipe commerciale.
Diagnostic : où regarder en premier

Le premier réflexe a été de vérifier les journaux de synchronisation exposés dans l’écran d’administration HubSpot (menu Intégrations → WooCommerce → Journal de synchronisation). Ces journaux confirmaient que les commandes partaient bien vers HubSpot, avec un statut « Réussi » — ce qui a d’abord orienté à tort vers une fausse piste côté HubSpot, alors que le problème se situait en amont, dans ce qui était effectivement envoyé.
Une inspection des requêtes sortantes, via un point d’arrêt temporaire sur le filtre woocommerce_hubspot_order_properties exposé par l’extension, a révélé la liste exacte des propriétés transmises : le connecteur envoie une liste fixe de propriétés WooCommerce standards, ignorant silencieusement toute meta non déclarée explicitement.
Le mappage manuel, champ par champ
La correction s’est faite en deux temps. D’abord, côté HubSpot, création des propriétés personnalisées correspondantes dans les paramètres du CRM (Propriétés → Créer une propriété), une étape que la documentation de l’extension mentionne mais que l’équipe avait sautée en pensant que HubSpot les créerait automatiquement à réception.
add_filter( 'woocommerce_hubspot_order_properties', function( $properties, $order ) {
$properties['secteur_activite'] = $order->get_meta( '_secteur_activite' );
$properties['origine_contact'] = $order->get_meta( '_origine_contact' );
$properties['taille_entreprise'] = $order->get_meta( '_taille_entreprise' );
return $properties;
}, 10, 2 );
Sans la création préalable de la propriété côté HubSpot, l’appel API renvoyait une erreur silencieuse dans le journal détaillé (accessible uniquement en activant le mode debug de l’extension), du type PROPERTY_DOESNT_EXIST, sans faire échouer la synchronisation globale de la commande.
Ce qu’il faut vérifier après chaque ajout de champ
- La propriété existe côté HubSpot, avec le nom interne exact attendu par le filtre.
- Le type de propriété HubSpot (texte, nombre, liste déroulante) correspond au format de la donnée envoyée.
- Le journal détaillé de synchronisation (pas le journal standard) ne mentionne aucune erreur
PROPERTY_DOESNT_EXISTou de type incompatible. - Une commande de test remonte bien la nouvelle valeur sur la fiche contact, pas seulement sur la fiche transaction.
Conseil maison : ne faites jamais confiance à un journal de synchronisation qui affiche « Réussi » sans vérifier le contenu réellement transmis. Une synchronisation peut réussir tout en n’envoyant qu’une fraction des données attendues.
En résumé
L’intégration HubSpot-WooCommerce couvre correctement les données transactionnelles standards, mais tout champ personnalisé reste à la charge du développeur, des deux côtés du pont : création de la propriété dans HubSpot, puis mappage explicite via le filtre dédié dans WooCommerce. Le paramétrage des workflows HubSpot qui exploitent ensuite ces données — scoring, séquences d’e-mails — reste une étape distincte, entièrement pilotée côté CRM.