Introduction
WooChrono Click & Collect transforme vos points de vente physiques en lieux de retrait pour votre boutique WooCommerce. Vos clients réservent un créneau et viennent récupérer leur commande ; vos équipes préparent et remettent les commandes depuis un tableau de bord dédié — sur ordinateur ou sur tablette.
Choix du retrait au checkout, boutique la plus proche par code postal, réservation d'un créneau horaire, paiement en boutique, fiches boutique et store locator.
Tableau de bord Préparations, statuts de commande, scan QR, mode tablette, alertes retard, disponibilité et stock par boutique.
Multi-boutiques illimité, géoloc française gratuite, jours fériés auto, compatible HPOS.
Prérequis
| Composant | Minimum | Recommandé |
|---|---|---|
| WordPress | 6.0 | 6.5+ |
| WooCommerce | 8.0 | 10.0+ |
| PHP | 8.1 | 8.2+ |
| HTTPS | Requis pour le scan QR (accès caméra) et la géolocalisation HTML5 | |
| Contrat transporteur | Aucun — le retrait en boutique ne nécessite aucun compte transporteur | |
Installation
woochrono-local-pickup.zip depuis votre espace client sur woochrono.com.Local Pickup → Licence — collez votre clé d'activation.Licence
La licence active les mises à jour automatiques et le support. Selon la formule, elle couvre 1, 3 ou 5 installations WordPress.
Activer
Chemin : Local Pickup → Licence
| Formule | Installations | Durée |
|---|---|---|
| Solo | 1 site | 1 an |
| Confort | 1 site | 2 ans |
| Multi | 3 sites | 1 an |
| Agence | 5 sites | 1 an |
Points de retrait
Chaque point de retrait est une « boutique » avec sa propre adresse, ses horaires et sa capacité. Le nombre de points de retrait est illimité quelle que soit la formule.
Créer une boutique
Chemin : Local Pickup → Points de retrait → Ajouter. Les boutiques sont enregistrées comme un type de contenu dédié (wclp_location).
| Champ | Description |
|---|---|
| Nom | Nom affiché au client (ex : « Boutique Centre-Ville ») |
| Adresse | Rue, code postal, ville. Géocodée automatiquement pour le calcul de distance. |
| Horaires d'ouverture | Plages matin / après-midi par jour (voir §Horaires) |
| Durée de créneau | Granularité des créneaux proposés (ex : 30 min) |
| Capacité par créneau | Nombre de retraits simultanés possibles sur un même créneau |
| Délai minimum | Temps minimum entre la commande et le 1ᵉʳ créneau proposé |
| Fiche vitrine | Photo (image mise en avant), présentation, services proposés, avis : alimente la fiche boutique publique et le store locator (voir §Vitrine) |
Horaires & créneaux
Les horaires définissent quand les créneaux de retrait sont proposés au client. Un éditeur visuel par jour permet de configurer matin et après-midi indépendamment.
Jours fériés & fermetures
Déclarez les jours où la boutique est fermée. Les créneaux ne seront pas proposés ces jours-là.
Un clic pré-remplit tous les jours fériés français, avec calcul automatique des dates mobiles (Pâques, Ascension, Pentecôte).
Ajoutez vos propres dates de fermeture exceptionnelle (congés, inventaire, etc.) via le calendrier.
Géolocalisation
Le client trouve la boutique la plus proche par code postal ou par géolocalisation du navigateur. Les boutiques sont triées par distance croissante.
| Méthode | Description |
|---|---|
| Par code postal | Le client saisit son CP, l'API Adresse (api-adresse.data.gouv.fr) renvoie les coordonnées, les boutiques sont triées par distance. |
| Géolocalisation HTML5 | Avec accord du client, le navigateur fournit sa position GPS (nécessite HTTPS). |
| Carte | Affichage des points de retrait sur une carte Leaflet / OpenStreetMap (chargée à la demande). |
Réglages avancés
| Réglage | Description |
|---|---|
| Rayon de recherche | Distance maximale (km) pour proposer une boutique au client |
| Premier créneau disponible | Met en avant le créneau le plus proche dans le temps pour la boutique sélectionnée |
| Transition automatique | Bascule une commande payée directement en « À préparer » (voir §Statuts) |
| Marge de retard | Délai après le créneau au-delà duquel une commande est marquée « En retard » (30 min par défaut) |
| Disponibilité produit par boutique | Active l'onglet « Disponibilité retrait » sur les produits (voir §Disponibilité) |
| Stock par boutique et Mode de stock | Active les quantités par boutique et leur lien avec le stock WooCommerce (voir §Stock) |
| Paiement en boutique | Propose le règlement sur place lors du retrait (voir §Paiement) |
| Fiches boutique publiques | Active les pages vitrine par boutique et leur mode de rendu (voir §Vitrine) |
Parcours au checkout
Cohabitation WooChrono
Si le plugin principal WooChrono (Chronopost / Fresh) est installé, les deux modules cohabitent automatiquement.
Au panier, le client bascule entre la livraison transporteur et le retrait en boutique en un clic.
Sans WooChrono principal, Click & Collect fonctionne seul avec WooCommerce.
Notifications
Chemin : Local Pickup → Notifications. Informez automatiquement vos clients aux étapes clés du retrait.
| Événement | Notification |
|---|---|
| Commande confirmée | Récapitulatif du retrait : boutique, adresse, créneau réservé |
| Commande prête | Message « votre commande est prête à être retirée » + QR code de retrait |
| Rappel (optionnel) | Rappel avant le créneau de retrait |
Disponibilité par boutique
Tous vos produits ne sont pas forcément proposés dans toutes vos boutiques. La disponibilité par boutique permet d'indiquer, produit par produit, les boutiques où il n'est pas disponible au retrait. Par défaut, un produit est disponible partout : rien à configurer tant que vous n'avez pas d'exception.
Activer
Chemin : Local Pickup → Réglages → Comportement → Disponibilité produit par boutique. Un onglet « Disponibilité retrait » apparaît alors dans chaque fiche produit.
| Où saisir | Usage |
|---|---|
| Fiche produit | Onglet « Disponibilité retrait » : une case par boutique, décochée = non proposé dans cette boutique |
| Liste des produits | Colonne « Retrait » (Toutes / Aucune / X sur N), modification rapide et actions groupées « activer / désactiver dans une boutique » |
| Écran Disponibilité & stocks | Local Pickup → Disponibilité & stocks : matrice produits × boutiques pour une saisie en masse, avec recherche, filtre par catégorie et boutons « tout » par ligne ou colonne |
Seules les boutiques capables de servir tous les produits du panier sont proposées. Si aucune ne convient, un message liste les produits en cause et oriente vers la livraison. Le contrôle est répété côté serveur à la validation.
Badge « Disponible en retrait dans N boutiques » sous le prix (insertion automatique ou shortcode [woochrono_pickup_availability]). Message configurable quand aucune boutique ne propose le produit.
Stock par boutique v1.11
Au-delà du oui / non de la disponibilité, indiquez combien de pièces chaque boutique possède réellement. Le plugin affiche ces quantités au client, n'autorise au checkout que les boutiques qui ont assez de pièces pour le panier, décrémente automatiquement le stock de la boutique choisie à la commande et le rétablit à l'annulation. Tout est désactivé par défaut.
Activer et saisir
Local Pickup → Réglages → Comportement → Stock par boutique. Choisissez aussi le Mode de stock (voir plus bas), « Indépendant » si vous hésitez.Local Pickup → Disponibilité & stocks.| Case « Stock » | Signification |
|---|---|
| Vide | Quantité non gérée dans cette boutique : le produit y est toujours disponible au retrait (comportement historique) |
| Un nombre | Pièces disponibles au retrait dans cette boutique |
| 0 | Épuisé dans cette boutique : plus aucun retrait possible tant que vous ne remettez pas du stock |
Ce que voit le client
Sous le badge de retrait, une ligne par boutique : « Disponible », « 3 en stock » ou « Épuisé » en grisé. Produits simples ; les produits variables gardent le badge global.
Une boutique sans stock suffisant reste visible mais grisée, avec un repère « Stock insuffisant » et le détail : « Bougie (2 demandés, 1 en stock) ». Refus côté serveur si contournement.
La sélection de produits n'affiche plus les produits épuisés dans cette boutique et indique « En stock · N » sur ceux dont la quantité est gérée.
Les trois modes de stock
Exemple pour tout le tableau : vous avez 10 bougies, 6 dans l'entrepôt pour les commandes livrées et 4 dans votre boutique de Toulon.
| Indépendant | WooCommerce = stock total | WooCommerce = réserve en ligne | |
|---|---|---|---|
| Stock WooCommerce | Ce que vous voulez, sans lien avec les boutiques | Toutes vos pièces : 10 (Toulon 4 à côté, livrable = 6) | Les pièces livrables seulement : 6 (Toulon 4 à côté) |
| Commande retrait | Baisse la boutique | Baisse la boutique et WooCommerce | Baisse la boutique seulement, WooCommerce ne bouge pas |
| Commande livraison | Comportement WooCommerce | Baisse WooCommerce ; refusée si la réserve (Woo − boutiques) ne suffit pas | Baisse WooCommerce ; refusée si le stock Woo ne suffit pas |
| Produit à 0 dans WooCommerce | Comportement WooCommerce | Rupture | Achetable au retrait si une boutique en a (« Disponible en retrait boutique ») |
| Contrainte de saisie | Aucune | Somme des boutiques ≤ stock WooCommerce, sinon refus avec notice | Aucune |
Paiement en boutique
Proposez à vos clients de régler sur place au moment du retrait, sans passerelle supplémentaire : le plugin s'appuie sur le « Paiement à la livraison » natif de WooCommerce, l'active à la volée pour les commandes retrait uniquement et le renomme « Paiement à la boutique ».
Activer
Chemin : Local Pickup → Réglages → Paiement en boutique. Aucune configuration dans WooCommerce → Paiements n'est nécessaire, même si le paiement à la livraison n'y est pas activé.
| Réglage | Description |
|---|---|
| Modes proposés au retrait | En ligne et en boutique au choix du client · En boutique uniquement · En ligne uniquement |
| Libellé et description | Texte affiché au checkout à la place de « Paiement à la livraison » |
Vitrine & store locator
Donnez une existence publique à vos boutiques : une page « Nos boutiques » avec carte et recherche, et une fiche par boutique optimisée pour le référencement local.
Shortcode [woochrono_locator] : carte plein écran, panneau des boutiques triées par distance, recherche par adresse ou géolocalisation, filtres « Ouvert maintenant » et par service, popup avec photo, horaires, itinéraire et appel. Barre de recherche autonome [woochrono_locator_search] pour la page d'accueil.
Une page par boutique (adresse, horaires, prochain retrait disponible, services, avis, sélection de produits disponibles au retrait, FAQ) avec données structurées LocalBusiness. Rendu au choix : page autonome du plugin ou page WordPress native via votre thème.
| Intégration | Description |
|---|---|
| Shortcodes | [wclp_store_hero], [wclp_store_infos], [wclp_store_produits], [wclp_store_horaires], [wclp_store_avis], [wclp_store_faq], [wclp_store_cta]… pour composer une fiche section par section |
| Blocs Gutenberg | Une collection « WooChrono Boutique » avec un bloc par section, choix de la boutique dans le bloc |
| Widgets Elementor | Catégorie « WooChrono Boutique », mêmes sections, avec contrôles de couleurs, typographies et espacements |
| Avis | Saisis manuellement sur la boutique (auteur, note, texte, rôle) ou importés depuis Google avec une clé API Places et un Place ID |
?wclp_shop=ID).Dashboard Préparations
Chemin : Local Pickup → Préparations. Le poste de pilotage de vos retraits, introduit en v1.10. Il regroupe toutes les commandes de retrait, classées par créneau, avec un suivi en temps réel.
| Élément | Description |
|---|---|
| Compteurs (KPI) | Nombre de commandes par état : à préparer, en préparation, prêtes, en retard, remises |
| Filtres temporels | Aujourd'hui · Demain · Cette semaine |
| Liste de commandes | Classées par créneau, avec client, numéro, nombre d'articles et statut |
| Actualisation auto | La liste se rafraîchit automatiquement (en pause quand l'onglet est en arrière-plan) |
wclp_manage_pickups (accordée aux administrateurs et gestionnaires de boutique) ou manage_woocommerce.Statuts de commande
Chaque commande de retrait suit un cycle de vie clair. Les statuts sont des statuts de commande WooCommerce dédiés.
| Statut | Slug | Signification |
|---|---|---|
| À préparer | wclp-to-prepare | Commande payée, en attente de préparation |
| En préparation | wclp-preparing | Un employé a commencé à rassembler les articles |
| Prête | wclp-ready | Commande prête, client notifié qu'il peut venir la chercher |
| Remise | — | Commande retirée par le client (équivaut à terminée) |
Scan QR à la remise
Au comptoir, retrouvez et validez une commande en scannant le QR code du client — ou en saisissant simplement son numéro de commande.
Mode tablette (page comptoir)
Une page plein écran dédiée à la tablette de la boutique, sans l'interface d'administration WordPress autour. Idéale en favori sur l'écran du comptoir.
La page est accessible via une URL contenant un secret. Selon la configuration des permaliens, l'URL prend la forme /pickup-{secret}/ ou un format avec paramètres.
Commandes du jour, filtres aujourd'hui / demain / semaine, checklist des articles à préparer, bouton de scan intégré.
Alertes retard
Une commande qui dépasse son créneau de retrait est automatiquement signalée pour que vos équipes réagissent vite.
Les commandes en retard apparaissent en haut du dashboard, avec un badge « En retard » et la durée du retard (ex : « +2j 15h »).
Un compteur rouge s'affiche directement sur le menu « Local Pickup » de WordPress — visible sans même ouvrir le dashboard.
Sécurité
Le plugin a passé un audit de sécurité pré-production (v1.10.0). Protections en place :
| Vecteur | Protection appliquée |
|---|---|
| Injection SQL | Requêtes préparées et bornées (limites sur les lectures de commandes) |
| XSS | esc_html(), esc_attr() sur tous les outputs |
| CSRF | Nonce WP sur tous les formulaires et handlers AJAX |
| Accès non autorisé | Capacité wclp_manage_pickups / manage_woocommerce vérifiée avant chaque action |
| QR codes | Jetons signés (HMAC) vérifiés au scan |
| Page tablette | Secret généré via générateur cryptographique, comparaison à temps constant |
| Transitions | Appliquées uniquement sur de vraies commandes de retrait, vers des statuts autorisés |
| Accès direct PHP | defined('ABSPATH') dans tous les fichiers |
RGPD & données personnelles
- Aucune donnée cliente transmise à des services tiers.
- Stockage 100 % sur votre serveur WordPress (base de données locale).
- Géolocalisation via api-adresse.data.gouv.fr (service public français, gratuit).
- Carte via OpenStreetMap (tuiles serveur EU), chargée à la demande.
- Pas de Google Maps, pas de Mapbox, pas de CDN exposant les données.
- Export & effacement des données client via les outils WordPress natifs.
Compatibilité HPOS
WooChrono Click & Collect est entièrement compatible avec le High Performance Order Storage de WooCommerce 8+.
FeaturesUtil::declare_compatibility). Toutes les lectures/écritures de commande passent par l'API WooCommerce (wc_get_order()), compatible wc_orders.Désinstallation
Le plugin se désinstalle proprement, sans laisser de résidus techniques, et sans détruire vos données métier par défaut.
| À la suppression | Comportement |
|---|---|
| Éléments techniques | Transients, données de session, secret tablette, tâches planifiées, capacités de rôle : toujours nettoyés |
| Données métier | Réglages, points de retrait, métadonnées de commande : conservés par défaut |
| Suppression totale | Uniquement si l'option wclp_uninstall_delete_all est activée au préalable |
FAQ
Vérifiez qu'au moins une boutique est créée, que ses horaires génèrent des créneaux à venir, et que l'adresse du client est dans le rayon de recherche configuré.
Le panier demande plus de pièces que cette boutique n'en a. Le client peut réduire sa quantité ou choisir une autre boutique ; vous pouvez corriger la quantité dans « Disponibilité & stocks ».
Non. Tant qu'aucune quantité n'est saisie, tout reste disponible comme avant. Vous pouvez renseigner vos stocks progressivement.
L'accès caméra exige une connexion HTTPS et l'autorisation du navigateur. À défaut, utilisez la saisie du numéro de commande.
Sur permaliens « simples », l'URL jolie peut ne pas fonctionner : le plugin bascule alors sur un format à paramètres. Régénérez l'URL depuis les réglages si besoin.
Oui, en autonomie totale avec WooCommerce seul.
Un nombre illimité, quelle que soit la formule. La formule détermine le nombre d'installations WordPress, pas le nombre de boutiques.
Changelog
Le stock par boutique, de bout en bout
- Stock par boutique : quantité par produit et par boutique (produits simples et variations). Vide = non géré, 0 = épuisé.
- Décrément automatique du stock boutique à la commande retrait, restock à l'annulation ou au remboursement, notes de commande détaillées.
- Fiche produit : détail par boutique sous le badge de retrait. Checkout : boutiques sans stock suffisant grisées avec le détail des manques, refus serveur. Fiche boutique : « En stock · N ».
- Trois modes de liaison avec le stock WooCommerce : indépendant, WooCommerce = stock total, WooCommerce = réserve en ligne.
- Écran « Disponibilité & stocks » : saisie en masse des quantités dans la matrice produits × boutiques, une ligne par variation.
- Correctifs : une commande annulée libère bien son créneau sous HPOS ; le filtre disponibilité × boutique du picker fonctionne de nouveau.
Vos boutiques en vitrine
- Disponibilité produit par boutique : onglet produit, colonne et actions groupées dans la liste, écran matrice, badge sur la fiche produit, filtrage au checkout.
- Paiement en boutique : règlement sur place au retrait, sans passerelle supplémentaire.
- Store locator
[woochrono_locator]: carte, recherche, filtres « Ouvert maintenant » et par service. - Fiches boutique publiques optimisées SEO local, avec shortcodes, blocs Gutenberg et widgets Elementor par section, prochain créneau en direct, avis manuels ou Google.
Le poste de préparation en boutique
- Tableau de bord Préparations : suivi des commandes en temps réel (à préparer, en préparation, prêtes, remises), classées par créneau, avec un compteur par état.
- Mode tablette comptoir : page plein écran dédiée, sans interface WordPress, à mettre en favori sur la tablette de la boutique.
- Scan QR à la remise : retrouvez et validez une commande via la caméra ou le numéro de commande. Aucun matériel dédié requis.
- Alertes retard : les commandes hors créneau remontent en tête avec un repère rouge et la durée du retard, visible jusque dans le menu WordPress.
- Interface d'administration modernisée, plus claire et plus rapide à lire.
- Audit de sécurité pré-production, désinstallation propre (données métier conservées par défaut), compatibilité permaliens « simples ».
- Notifications client par e-mail et SMS (compte SMS du marchand).
- Éditeur de messages personnalisables.
- Génération de QR codes de retrait sécurisés.
- Lancement : points de retrait multi-boutiques, créneaux horaires, géolocalisation par code postal, jours fériés automatiques, tableau de bord.
- Compatibilité thèmes (Elementor, Divi, XStore…), bascule Livraison / Retrait au panier, renforcement sécurité.