Comment filtrer l'import des commandes WooCommerce dans DHL Express Commerce ?

Marre de voir toutes vos commandes WooCommerce remonter dans DHL Express Commerce ? Découvrez le snippet PHP pour n'importer que les livraisons DHL.

DHL Express Commerce : Comment n'importer que les commandes avec une méthode de livraison DHL ?

Si vous utilisez l'extension ou la plateforme DHL Express Commerce pour gérer vos expéditions WooCommerce, vous avez certainement remarqué un comportement natif assez contraignant : l'API synchronise et importe l'intégralité des commandes au statut "En cours" (Processing), peu importe le mode de livraison choisi par le client (Point Relais, Retrait en magasin, Colissimo, etc.).

Résultat : votre tableau de bord DHL se retrouve pollué par des centaines de commandes que vous ne traiterez jamais via leur service.

Puisque les règles d'automatisation de DHL Express Commerce ne permettent pas de supprimer ou d'archiver automatiquement les commandes hors-DHL à l'import, la solution consiste à filtrer le flux de l'API REST directement à la source, sur votre site WooCommerce.

Voici le guide pas à pas et le code personnalisé pour résoudre ce problème définitivement.

Étape 1 : Créer une clé API WooCommerce dédiée à DHL

Pour des raisons de sécurité et pour permettre au code de fonctionner sans perturber vos autres outils (ERP, CRM, autres transporteurs), vous devez impérativement utiliser une clé API REST dédiée exclusivement à DHL.

  1. Dans votre tableau de bord WordPress, allez dans WooCommerce > Réglages > Onglet Avancé > REST API.
  2. Cliquez sur Ajouter une clé.
  3. Nommez-la explicitement (ex: "Intégration DHL Express Commerce"), attribuez-la à un utilisateur administrateur et définissez les permissions sur Lecture/Écriture.
  4. Copiez immédiatement la Clé client (qui commence par ck_...). C'est cette Consumer Key qui va nous servir de signature pour identifier le robot de DHL.
  5. Renseignez cette clé dans votre interface de configuration sur DHL Express Commerce (dans le menu Settings -> Integrations).

Étape 2 : Ajouter le snippet PHP de filtrage en amont

Ce script utilise le hook woocommerce_rest_orders_prepare_object_query. Lorsque DHL interroge l'API de votre site, le code intercepte la requête SQL, analyse toutes les commandes "En cours", et ne retourne à DHL que les identifiants des commandes dont la méthode d'expédition contient le mot-clé "DHL".

Ajoutez ce code dans le fichier functions.php de votre thème enfant ou via un plugin de gestion de snippets (comme WP Code ou Code Snippets) :

PHP

/* Filtrer proprement les commandes lues par DHL Express Commerce via la requête API */
add_filter('woocommerce_rest_orders_prepare_object_query', 'filtrer_requete_sql_api_dhl', 10, 2);

function filtrer_requete_sql_api_dhl($args, $request) {
   // 1. Renseignez ici la clé API Consumer Key dédiée à DHL
   $dhl_consumer_key = 'ck_votre_cle_api_ici_...';

   // On vérifie de manière stricte si la requête provient de la clé API de DHL
   if (isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER'] === $dhl_consumer_key) {
       
       // 2. Récupérer toutes les commandes en cours (processing)
       $orders = wc_get_orders(array(
           'status' => 'processing',
           'limit'  => -1,
       ));

       $order_ids_with_dhl = array();

       // 3. Extraction des IDs dont la méthode d'expédition contient le terme "DHL"
       foreach ($orders as $order) {
           $shipping_methods = $order->get_shipping_methods();
           foreach ($shipping_methods as $method) {
               if (stripos($method->get_name(), 'DHL') !== false) {
                   $order_ids_with_dhl[] = $order->get_id();
                   break;
               }
           }
       }

       // 4. Application du filtre strict sur la réponse de l'API REST
       if (!empty($order_ids_with_dhl)) {
           $args['post__in'] = array_map('intval', $order_ids_with_dhl);
       } else {
           // Si aucune commande ne correspond, on force un tableau vide propre pour l'API
           $args['post__in'] = array(0);
       }
   }

   return $args;
}

Comment ça fonctionne ?

  • Isolation complète : Le script détecte la variable $_SERVER['PHP_AUTH_USER']. Si une autre clé API (comme celle de votre logiciel de facturation ou de gestion de stock) interroge le site, le script l'ignore et transmet toutes les commandes normalement.
  • Compatibilité HPOS : En utilisant la fonction native wc_get_orders, le code reste parfaitement compatible avec les dernières versions de WooCommerce et l'activation du stockage haute performance des commandes (HPOS).
  • Nettoyage automatique : Lors de la prochaine synchronisation, seules les commandes contenant le mot "DHL" (ex: DHL Express, Livraison à domicile par DHL) apparaîtront dans l'onglet "New" de votre espace DHL.

Note : Les commandes hors-DHL déjà importées avant la mise en place du code devront être archivées manuellement une dernière fois.

Besoin d'aide pour configurer vos flux logistiques WooCommerce ?

La manipulation du fichier functions.php et des clés API requiert de la rigueur pour éviter de bloquer le tunnel de commande ou les autres connecteurs de votre boutique en ligne.

Vous préférez déléguer cette intégration en toute sécurité ? Je peux m'occuper de la configuration de vos modules de transporteurs et optimiser vos flux de commandes. Contactez-moi directement via le bouton flottant en bas à droite de votre écran pour m'expliquer votre besoin, et je reviendrai vers vous rapidement.

Solution IA développée par Soyoo

Un vendeur d'élite,
encapsulé dans un widget.

Pour nos clients e-commerce, nous avons développé EcomBot : un Agent IA programmé pour analyser le besoin, fouiller votre catalogue et conclure la vente automatiquement.

Recommandations & Upsell Il suggère les produits parfaits pour gonfler votre panier moyen.
🛡️
Sauvetage de Paniers Il détecte les hésitations et intervient (ex: code promo) avant l'abandon.
📈
Preuve de ROI Infaillible Vous visualisez dans le dashboard les ventes qu'il a directement générées.
Vendeur Expert IA
● En ligne et prêt à vous conseiller
Je cherche le canapé d'angle bleu de votre collection, autour de 800€.
Le modèle bleu est victime de son succès. Cependant, j'ai trouvé 2 alternatives premium en stock :
Canapé Cloud Velvet
789 €
Fauteuil Oslo Tissu
459 €