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

E-commerce

Facturer des missions de recrutement par jalons sous WooCommerce

Un cabinet de recrutement veut encaisser sa mission en trois temps, liés à l'avancement réel du processus plutôt qu'à un simple découpage calendaire. Voici le montage WooCommerce retenu.

Par Clément Hadrot • 16 septembre 2026 • 4 min de lecture • Aucun commentaire
Facturer des missions de recrutement par jalons sous WooCommerce

wp wc shop_order list –status=pending –format=table : cette commande WP-CLI, lancée chaque matin par l’équipe administrative d’un cabinet de recrutement, sert à vérifier quels jalons de facturation restent en attente de déclenchement sur les missions en cours. Contrairement à un abonnement classique facturé à date fixe, une mission de recrutement se facture par étapes liées à l’avancement réel du processus, pas au calendrier.

Le cabinet a retenu trois jalons : un tiers du montant à la signature du mandat, un tiers à la présentation d’une liste de candidats validée par le client, et le solde à l’embauche effective du candidat retenu. Ce découpage ne correspond à aucune date fixe connue à l’avance, ce qui exclut d’emblée une solution d’abonnement ou de paiement échelonné automatique basée sur le temps.

Structurer chaque jalon comme un produit distinct plutôt qu’un abonnement

Plutôt que de chercher à automatiser un découpage temporel qui ne correspond pas à la réalité du processus de recrutement, le cabinet a choisi de créer trois produits WooCommerce distincts pour chaque mission signée : « Jalon signature », « Jalon présentation candidats » et « Jalon embauche », chacun avec un prix calculé comme un tiers du montant total négocié pour cette mission précise.

  • Un produit variable par mission, la variation portant sur le montant total négocié avec ce client précis.
  • Les trois jalons créés en même temps, mais seul le premier passe en commande active à la signature du mandat.
  • Les deux jalons suivants restent en statut brouillon jusqu’à ce que l’équipe déclenche manuellement leur passage en commande facturable.

Déclencher manuellement chaque jalon selon l’avancement réel

Automatiser entièrement le déclenchement d’un jalon serait risqué : seule une personne de l’équipe recrutement peut confirmer qu’une liste de candidats a été effectivement validée par le client, ou qu’une embauche est bien intervenue. Le cabinet a donc conservé une action manuelle, réalisée depuis le tableau de bord WooCommerce, qui fait passer le produit correspondant du statut brouillon au statut publié puis génère automatiquement une commande liée au client concerné :

add_action( 'transition_post_status', function( $nouveau, $ancien, $article ) {
    if ( 'product' !== $article->post_type || 'publish' !== $nouveau || 'draft' !== $ancien ) {
        return;
    }
    if ( ! has_term( 'jalon-recrutement', 'product_cat', $article->ID ) ) {
        return;
    }
    generer_commande_pour_jalon( $article->ID );
}, 10, 3 );
L'essentiel à retenir : Trois produits distincts plutôt qu'un seul découpage automatique ; Chaque jalon se débloque manuellement selon l'avancement ; Le suivi du candidat reste hors du périmètre de la boutique

Un lien clair entre chaque jalon et la mission d’origine

Pour éviter toute confusion entre plusieurs missions en cours pour un même client, chaque produit de jalon porte une métadonnée mission_id qui le relie à un identifiant de mission unique, enregistré au moment de la signature du mandat. Cette métadonnée apparaît également sur la commande générée, ce qui permet à l’équipe comptable de rapprocher chaque paiement reçu avec la bonne mission, sans dépendre uniquement du nom du client, insuffisant lorsque plusieurs mandats sont actifs simultanément.

Un tableau de suivi simple plutôt qu’un système complexe

Un tableau de bord personnalisé, construit à partir d’une requête sur les commandes filtrées par la métadonnée mission_id, affiche pour chaque mission active les trois jalons et leur statut respectif : en attente, facturé, payé. Ce tableau suffit largement au cabinet, sans nécessiter d’extension de gestion de projet ou de facturation récurrente, dont la logique ne correspondrait de toute façon pas à ce découpage par avancement.

Ce que cette organisation ne couvre volontairement pas

Le suivi du processus de recrutement lui-même, avec les candidatures reçues, les entretiens menés et les évaluations des candidats, reste entièrement hors du périmètre de la boutique WooCommerce. Cette dernière ne sert qu’à matérialiser et facturer les trois jalons commerciaux, une séparation volontaire qui évite de transformer une boutique en ligne en outil de gestion de candidatures, un usage pour lequel elle n’a jamais été pensée.

En résumé

Facturer une mission par jalons liés à l’avancement réel, plutôt qu’à une date fixe, se résout sous WooCommerce avec trois produits distincts par mission et un déclenchement manuel de chaque jalon par l’équipe compétente. La rigueur ne vient pas d’un mécanisme technique complexe, mais du lien maintenu entre chaque jalon facturé et l’identifiant de mission qui lui correspond, condition nécessaire pour ne jamais confondre deux mandats actifs chez un même client.

Partager :

À propos de l'auteur

Clément Hadrot

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

Voir tous ses articles

Dans la même veine

À lire aussi