Le scénario est toujours le même. Une commande tombe le samedi soir sur la boutique en ligne. Le client paie, reçoit sa confirmation, attend. Le lundi matin, quelqu'un ouvre les commandes web et découvre que l'article a été vendu en magasin vendredi après-midi. Il faut appeler, s'excuser, rembourser.
La faute n'est pas au vendeur du magasin, qui a fait son travail. Elle n'est pas au client. Elle vient d'une situation structurelle : deux systèmes tiennent chacun leur propre compte du même stock physique, et rien ne les relie.
Tant que cette situation dure, la survente n'est pas un incident. C'est une conséquence mathématique, et elle se reproduira à chaque montée de trafic.
Le principe : une seule source de vérité
La règle fondatrice tient en une phrase : le stock est détenu par un seul système, et tous les canaux le consultent.
Ce système est celui de la gestion, pas celui de la boutique. Ce n'est pas un choix technique mais logique : le stock physique bouge en magasin, en dépôt, à la réception fournisseur, lors des retours et des inventaires. La boutique en ligne ne voit qu'une partie de ces mouvements. Elle est un canal de vente, pas un registre de stock.
┌──────────────────┐
│ Stock G-stock │ ← source de vérité unique
└────────┬─────────┘
┌─────────────────┼─────────────────┐
▼ ▼ ▼
Boutique en ligne Magasin Marketplace
Une fois cette décision prise, toutes les autres deviennent simples. Tant qu'elle ne l'est pas, aucun réglage technique ne rattrapera le problème.
Ce qui circule, et dans quel sens
Une synchronisation e-commerce n'est pas un flux unique. Ce sont quatre flux distincts, avec des sens et des fréquences différents.
| Donnée | Sens | Fréquence |
|---|---|---|
| Fiches produits et prix | Gestion → Boutique | À chaque modification |
| Quantités disponibles | Gestion → Boutique | En temps réel |
| Commandes | Boutique → Gestion | En temps réel |
| Statut d'expédition | Gestion → Boutique | À chaque changement |
Les deux lignes du milieu ne tolèrent aucun retard. Les deux autres peuvent attendre quelques minutes sans conséquence. Cette distinction évite de sur-dimensionner l'ensemble : on met les moyens là où le décalage coûte cher.
Empêcher la survente pour de bon
Trois mécanismes, à mettre en place ensemble. Pris isolément, chacun laisse passer des cas.
Le stock réservé. Dès qu'une commande web est enregistrée, la quantité est réservée dans la gestion — avant même la préparation. Sans réservation, la même pièce reste vendable pendant tout le temps du traitement.
Le stock tampon. Vous ne publiez pas la totalité du stock en ligne. Sur une référence dont il reste trois pièces, vous en affichez deux. Le tampon absorbe les écarts d'inventaire, la casse et les ventes magasin simultanées. Il se règle par famille de produits : élevé sur les produits à forte rotation en magasin, nul sur les références vendues exclusivement en ligne.
La synchronisation événementielle. Chaque mouvement de stock pousse immédiatement la nouvelle quantité vers la boutique, au lieu d'attendre le prochain cycle. Une synchronisation toutes les quinze minutes laisse une fenêtre de quinze minutes pendant laquelle deux clients peuvent acheter la même dernière pièce.
Les décisions à prendre avant de brancher
Ces quatre points se tranchent avant l'installation du connecteur. Les découvrir en production coûte cher.
L'identifiant commun. Chaque produit doit porter la même référence unique des deux côtés. C'est la clé qui relie les deux catalogues. Un catalogue web construit avec des références libres devra être repris ligne à ligne — c'est presque toujours le poste de travail le plus lourd du projet.
Qui fait autorité sur le prix. Si le prix vient de la gestion, toute modification faite dans l'administration de la boutique sera écrasée au cycle suivant. Il faut le dire clairement à l'équipe web, sous peine de longues incompréhensions.
Le traitement des remises et promotions web. Une promotion créée côté boutique doit-elle redescendre dans la gestion pour que la marge reste juste ? Le plus souvent oui, et c'est rarement prévu au départ.
Le cas des ventes multi-dépôts. Si vous avez plusieurs points de stock, lequel sert la boutique ? Un dépôt dédié, la somme de tous, ou un sous-ensemble ? Publier la somme de tous les dépôts sans capacité de transfert rapide produit des délais de livraison intenables.
Une mise en route sans casse
- Nettoyer le catalogue. Références uniques, doublons supprimés, unités cohérentes. Cette étape n'est pas optionnelle : une synchronisation propage un catalogue sale plus vite qu'une équipe ne peut le corriger.
- Aligner les deux catalogues sur l'identifiant commun et vérifier les orphelins des deux côtés.
- Connecter en lecture seule. Le système lit les commandes web mais ne pousse pas encore le stock. Vous comparez pendant une semaine.
- Activer le flux de stock sur une famille de produits, pas sur tout le catalogue.
- Étendre progressivement, en surveillant les écarts après chaque extension.
- Régler les tampons à la baisse une fois la confiance établie.
L'étape 3 est celle que l'on saute par impatience, et c'est celle qui révèle les incohérences de catalogue à coût nul.
Les signaux qui doivent alerter
Trois indicateurs se surveillent chaque semaine pendant les deux premiers mois : le nombre de commandes web annulées pour indisponibilité, l'écart entre le stock affiché en ligne et le stock réel, et le délai entre la commande et sa descente dans la gestion.
Si le premier ne descend pas, le tampon est trop faible ou la synchronisation trop lente. Si le deuxième grandit, un mouvement de stock échappe au système — souvent les retours ou la casse, rarement saisis en temps réel.
Le rôle du logiciel
Une bonne synchronisation ne se remarque pas. Elle se mesure au fait que personne, le lundi matin, n'ouvre plus un fichier pour vérifier ce qui a été vendu où.
G-stock tient le stock de référence et le publie vers WooCommerce, Shopify et Magento, avec réservation à la commande, tampon paramétrable par famille, remontée des commandes en temps réel et renvoi du statut d'expédition. Les mêmes flux sont accessibles par l'API pour une plateforme sur mesure.