Comment vendre un tracteur d’occasion entre adhérents d’une même coopérative sans transformer le site en petites annonces ouvertes à tout le monde ? C’est la contrainte posée par une coopérative agricole qui souhaite fluidifier la revente de matériel entre ses membres, sans pour autant ouvrir une place de marché publique ni exposer le catalogue aux moteurs de recherche.
La réponse ne passe pas par une extension de place de marché multi-vendeurs classique, pensée pour des vendeurs professionnels ouverts au grand public, mais par une combinaison plus simple : un catalogue WooCommerce dont l’accès est restreint aux comptes adhérents, avec une saisie d’annonce simplifiée côté membre.
Restreindre l’accès au catalogue aux seuls comptes adhérents
La première brique consiste à empêcher tout visiteur non connecté, et non reconnu comme adhérent, de consulter le catalogue de matériel. Cela passe par une vérification sur les templates d’archive et de fiche produit, redirigeant vers la page de connexion tout accès non autorisé :
add_action( 'template_redirect', function() {
if ( is_woocommerce() && ! current_user_can( 'read_materiel_cooperative' ) ) {
wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );
exit;
}
} );
La capacité personnalisée read_materiel_cooperative est attribuée uniquement au rôle « Adhérent », créé pour l’occasion via add_role(), ce qui évite de mélanger cette restriction avec les rôles WooCommerce par défaut comme client ou administrateur boutique. Le catalogue reste par ailleurs exclu du sitemap XML et marqué en noindex via une balise meta conditionnelle, pour ne jamais apparaître dans les résultats de recherche publics.
Laisser chaque adhérent publier sa propre annonce sans ouvrir une boutique multi-vendeurs complète
Plutôt que de déployer une extension de place de marché complète, avec ses tableaux de bord vendeurs et ses commissions automatiques, la coopérative a opté pour un formulaire de dépôt d’annonce simplifié côté visiteur, construit avec le code court natif [product_page] couplé à un formulaire de soumission qui crée un brouillon de produit WooCommerce associé à l’adhérent connecté comme auteur.

Modérer chaque annonce avant publication
Chaque produit soumis par un adhérent est créé avec le statut draft plutôt que publish, ce qui permet à l’équipe de la coopérative de vérifier la cohérence de l’annonce, la photo fournie et la description avant mise en ligne effective. Un filtre sur wp_insert_post_data force ce statut initial quelle que soit l’action tentée depuis le formulaire public :
add_filter( 'wp_insert_post_data', function( $donnees ) {
if ( 'product' === $donnees['post_type'] && ! current_user_can( 'publish_products' ) ) {
$donnees['post_status'] = 'draft';
}
return $donnees;
} );
Un délai de rétractation interne entre adhérents
Même si le droit de rétractation légal ne s’applique pas entre particuliers dans ce contexte associatif, la coopérative a choisi d’imposer sa propre règle interne : un délai de 48 heures pendant lequel un adhérent peut annuler un accord de vente conclu via la plateforme, avant que la transaction ne soit considérée comme définitive dans le registre interne de la coopérative.
Le prix reste négocié hors plateforme, volontairement
Contrairement à une place de marché classique, aucun paiement en ligne ne transite par WooCommerce dans cette organisation : la plateforme sert uniquement de vitrine d’annonces et de mise en relation entre adhérents, le prix final et les modalités de paiement se négociant directement entre les deux parties, souvent lors d’une visite du matériel sur place. Ce choix évite à la coopérative de devenir elle-même intermédiaire financier de la transaction, avec les obligations réglementaires que cela impliquerait.
- Aucune passerelle de paiement configurée sur le catalogue de matériel d’occasion.
- Un simple bouton de mise en relation qui transmet les coordonnées de contact validées.
- Un statut de commande volontairement inutilisé, le produit servant uniquement de support d’annonce.
En résumé
Réserver un catalogue WooCommerce à une communauté fermée d’adhérents ne demande ni place de marché ni développement lourd : une restriction d’accès basée sur un rôle personnalisé, un formulaire de dépôt d’annonce en brouillon modéré, et l’acceptation assumée que le paiement reste hors plateforme suffisent à répondre à ce besoin précis, sans les coûts et la complexité d’une solution multi-vendeurs pensée pour un tout autre usage.