Pipeline commandes fournisseurs
Inklura génère vos commandes fournisseurs à partir de la demande client réelle, en flux tendu : chaque envoi à un fournisseur couvre une fenêtre de dates de livraison client, et le stock physique peut légitimement rester à zéro entre deux réceptions. Les brouillons se mettent à jour quand la demande change, et un e-mail fournisseur ne part qu'après votre relecture, ou après le contrôle avant envoi pour un fournisseur en envoi automatique.
Vue d'ensemble
flowchart LR
subgraph EV["Événements"]
CO["Commande client<br/>créée, modifiée, annulée,<br/>changement de statut"]
PS["Mise à jour PrestaShop"]
RC["Réception ou annulation<br/>d'une commande fournisseur"]
MA["Ajustement manuel de stock"]
end
CO --> W["Moteur de commandes<br/>fournisseurs"]
PS --> W
RC --> W
MA --> W
P30["Passe de contrôle<br/>toutes les 30 min"] --> W
REC["Réconciliation<br/>chaque matin"] --> W
W --> SO["Brouillons de commande<br/>+ entrées prévues"]
SO -->|"préparation<br/>chaque matin"| REV["File de relecture<br/>des e-mails"]
REV -->|"envoi"| SENT["Envoyée"]
SENT --> LIV["Réception<br/>et mise à jour du stock"]
Trois sources alimentent le même calcul :
| Source | Rythme | Rôle |
|---|---|---|
| Recalcul sur événement | quelques secondes après l'événement, si activé pour votre espace | met à jour les brouillons des fournisseurs concernés quand une commande ou un stock change |
| Passe de contrôle | toutes les 30 minutes | ajoute les nouvelles demandes et recalcule les brouillons existants, y compris le retrait des lignes dont la demande a disparu |
| Réconciliation quotidienne | chaque matin | recalcul complet : corrige les écarts restants et annule les brouillons devenus orphelins |
Un seul calcul s'exécute à la fois pour un même site. Si vous lancez un recalcul depuis le back-office pendant qu'un autre est en cours, il est refusé avec le message « Réessayez dans une minute ».
Ce qui déclenche un recalcul
Le recalcul sur événement est activé espace par espace. Quand il l'est, le moteur recalcule les brouillons des fournisseurs concernés à chaque événement qui change la demande ou l'offre :
- Commande client : création, modification, annulation, changement de statut, suppression ;
- Commande fournisseur : annulation, réception ;
- Boutique PrestaShop : création et mise à jour de commandes reçues en temps réel (voir Synchronisation PrestaShop) ;
- Ajustement manuel de stock depuis le back-office.
Une rafale de changements sur les mêmes produits est regroupée en un seul recalcul, qui ne touche que les fournisseurs des produits concernés. Sans recalcul sur événement, ces changements sont pris en compte par la passe de 30 minutes suivante.
Les créneaux d'envoi
Chaque fournisseur porte, sur sa fiche :
- des créneaux d'envoi récurrents (un jour et une heure, par exemple mardi 10:00) ;
- un délai de livraison en jours, qui décide sur quel créneau tombe chaque commande client (pour un fournisseur rattaché à une commande groupée, ce sont les créneaux et le délai du fournisseur qui passe la commande groupée) ;
- un délai de réception facultatif, qui sert seulement à estimer quand la marchandise arrivera.
Une commande client est affectée au créneau qui permet une livraison à temps. Le moteur cherche un créneau dans la fenêtre suivante :
envoi au plus tôt = date de livraison − (délai de livraison + 1 jour de marge) // début de journée
envoi au plus tard = date de livraison − délai de livraison // fin de journée
Si aucun créneau ne tombe dans cette fenêtre, le moteur prend un créneau plus tôt qui permet quand même de livrer à la date demandée (la marchandise arrive en avance, mais à l'heure).
Une commande client sans date de livraison est placée d'après sa date de facturation.
Exemple : un fournisseur à deux créneaux
Exemple : un marchand dont le fournisseur a deux créneaux d'envoi (mardi 10:00 et jeudi 18:00) et un délai de livraison de 2 jours. Un client commande pour une livraison le vendredi :
date de livraison = vendredi
envoi au plus tôt = vendredi − (2 + 1) = mardi // début de journée
envoi au plus tard = vendredi − 2 = mercredi // fin de journée
Le seul créneau dans la fenêtre [mardi, mercredi] est mardi 10:00 : la demande y est
affectée. Une livraison du jeudi tombe aussi sur mardi ; les livraisons du samedi et du
dimanche basculent sur le créneau du jeudi 18:00.
Le délai de livraison décide sur quel envoi tombe chaque commande client. Si les réceptions arrivent plus tôt ou plus tard que prévu, réglez le délai de réception de la fiche fournisseur plutôt que le délai de livraison : modifier ce dernier déplacerait des commandes client vers un autre envoi, voire les laisserait sans créneau. Voir La semaine type.
Les créneaux déjà passés
Le moteur ne crée jamais de brouillon sur un créneau déjà passé, et un envoi fournisseur ne peut jamais être daté d'avant la commande client qui l'a déclenché.
Quand une commande client arrive trop tard pour qu'un créneau restant livre à temps, la demande est exclue : elle n'est ajoutée à aucun prochain e-mail fournisseur, car une marchandise qui arriverait après la livraison au client ne servirait à rien. C'est à vous de traiter ce cas directement (stock existant, achat ponctuel, report de la livraison). Le contrôle avant envoi du bon suivant la signale en « Avant réception » (voir Garde-fous). Avec plusieurs créneaux par semaine, ce cas reste rare.
Une commande client déjà couverte par un envoi parti n'est jamais remise dans l'envoi suivant, même si sa date de livraison est proche ou passée. Cela évite de commander deux fois la même marchandise.
Calcul des quantités
Pour chaque produit et chaque créneau, le moteur calcule :
besoin = demande client du créneau (+ approvisionnement de base éventuel)
majoré = besoin + arrondi supérieur (besoin × majoration %)
suggéré = max(0, majoré − stock retenu)
colis = arrondi supérieur (suggéré / taille du colis)
unités = colis × taille du colis // unités réellement commandées
- Le stock retenu est le stock que le moteur accepte de déduire. Il vaut 0 pour un produit sans gestion de stock, et pour un fournisseur en fabrication à la commande (sauf si le stock du produit a été validé). Un stock négatif compte pour 0. Le moteur retire aussi les livraisons client déjà dues mais pas encore validées, et ajoute la marchandise déjà en route qu'aucune commande client ne réclame. La page Écarts de stock affiche, sous « Retenu », le stock de départ de ce calcul.
- Consommation dans l'ordre : quand la demande d'un produit s'étale sur plusieurs créneaux, le stock est consommé créneau par créneau. Le premier créneau absorbe le stock, les suivants commandent le reste.
- Arrondi au colis supérieur : aucune quantité n'est perdue à l'arrondi. Une ligne est créée même à quantité 0 : elle garde la trace des commandes client couvertes. Une ligne à 0 ne figure pas dans l'e-mail envoyé au fournisseur, et une commande dont toutes les lignes sont à 0 n'est pas envoyée : la demande est déjà couverte, ce n'est pas une erreur.
La taille du colis vient du conditionnement du produit (type d'emballage ou quantité par colis), à défaut 1.
Quels produits entrent dans le calcul
Un produit entre dans le calcul s'il a un fournisseur par défaut et au moins l'un des éléments suivants : la gestion de stock activée, un approvisionnement de base, le statut de produit générique, ou une demande client dans la fenêtre de calcul. Un produit sans gestion de stock mais avec des commandes client est donc commandé dès la passe suivante. Un produit désactivé reste pris en compte tant qu'il a de la demande à livrer. Seule compte la demande dont la date de livraison est encore à venir.
La réconciliation compare l'état attendu de vos commandes fournisseurs à l'état enregistré et applique les corrections minimales. Une commande brouillon qui ne correspond plus à aucune demande est annulée (pas supprimée), avec un motif d'annulation enregistré.
Un produit, un fournisseur, un envoi
Chaque produit se commande chez un seul fournisseur : son fournisseur par défaut. Le moteur crée ou met à jour exactement une commande fournisseur par couple (fournisseur, créneau d'envoi). Un recalcul retombe toujours sur la commande existante au lieu d'en créer une seconde.
Quand la demande d'un produit s'étale sur plusieurs créneaux, elle produit une ligne par créneau, sur la commande de chaque créneau. Chaque ligne indique les commandes client qu'elle couvre.
Produits génériques
Un produit générique est un produit d'achat qui regroupe plusieurs références vendues en boutique (ses « enfants ») sous une seule ligne fournisseur. Cas typique : plusieurs formats vendus au client, commandés au fournisseur dans une unité commune (le kilo, par exemple).
Chaque enfant est relié au générique avec un facteur de conversion :
quantité générique = quantité enfant × facteur de conversion
- Seul le générique apparaît chez le fournisseur. Les enfants reliés ne génèrent jamais de ligne fournisseur propre, ce qui évite qu'un même besoin apparaisse deux fois dans l'e-mail.
- La demande s'additionne : la demande de chaque enfant est convertie puis ajoutée à celle du générique. Le total est arrondi à l'unité supérieure, puis au colis, comme pour tout produit. Une fraction d'unité commande donc un colis entier :
Exemple : 2 commandes d'un enfant × 1 × 0,05 = 0,10 → arrondi 1 → 1 colis
- Le stock se lit sur les enfants. Un générique n'a pas de stock propre : le moteur déduit le stock retenu de chaque enfant, converti avec le même facteur. Le stock d'un enfant suivi compte même si le fournisseur du générique est en fabrication à la commande.
Majoration
La majoration s'ajoute au besoin avant la déduction du stock (voir le calcul plus haut). Un nouveau fournisseur a une « Majoration par défaut » de 5 % ; réglez-la à 0 % pour commander à l'exact.
Le pourcentage propre à un produit (« Majoration spécifique (%) » sur la fiche produit, ou la colonne « Majoration (%) » de la liste des produits d'un fournisseur) l'emporte sur celui du fournisseur, y compris quand il vaut 0 %. Voir Réglages.
Cycle de vie d'une commande fournisseur
stateDiagram-v2
[*] --> Brouillon : génération automatique ou manuelle
Brouillon --> Brouillon : recalcul, préparation de l'e-mail
Brouillon --> Envoyee : envoi après relecture
Brouillon --> Annulee : annulation
Envoyee --> Brouillon : remise en brouillon
Envoyee --> Confirmee : réception complète
Envoyee --> Annulee : annulation
state "Livraison" as LIV {
[*] --> EnAttente
EnAttente --> Partielle : réception partielle
Partielle --> Complete : réception complétée
EnAttente --> Complete : réception totale
EnAttente --> Probleme : problème signalé
}
Envoyee --> LIV : réception
Confirmee --> LIV : réception
Le statut de la commande (DRAFT, SENT, CONFIRMED, CANCELLED) et l'état de sa livraison
(PENDING, PARTIAL, COMPLETE, ISSUE) sont suivis séparément. Une commande passe en
CONFIRMED quand sa réception est complète ; vous pouvez aussi changer son statut à la main.
Seule une commande envoyée peut être remise en brouillon.
Les entrées prévues
Chaque ligne de commande fournisseur crée une entrée prévue (« Entrée virtuelle » dans le back-office). Elle n'augmente pas le stock affiché ; elle sert aux projections, par exemple dans « Mon stock ».
- Un recalcul remet les entrées prévues en phase avec les lignes actuelles.
- Une annulation supprime les entrées prévues de la commande.
- Une réception enregistre l'entrée réelle dans le stock, puis retire les entrées prévues : le stock est devenu physique.
- Annuler une réception inverse le mouvement et rétablit les entrées prévues.
E-mails fournisseurs : préparation, relecture, envoi
- Préparation (chaque matin) : pour chaque brouillon à envoyer, l'e-mail est rendu (sujet, contenu, destinataires) et placé dans la file de relecture. Rien n'est envoyé.
- Relecture (back-office) : la file de relecture affiche l'e-mail tel qu'il partira. Vous pouvez modifier le sujet et les destinataires, reporter l'envoi, re-préparer l'e-mail ou annuler la commande. Voir Écrans du back-office.
- Envoi : avant l'envoi, les lignes actuelles sont comparées à celles de la préparation. Si elles ont changé (une commande client arrivée entre-temps, par exemple), l'envoi est refusé avec le message « Re-préparez puis renvoyez ». Même chose si le créneau du bon a changé. Ce que vous avez relu est donc exactement ce qui part.
Destinataires, par ordre de priorité : ceux que vous avez saisis dans la file de relecture, sinon les adresses « Email destinataire » de la fiche fournisseur, sinon l'e-mail général du fournisseur. Si aucune adresse valable n'est trouvée, l'e-mail n'est pas envoyé.
Une commande annulée n'est jamais envoyée, même si son e-mail était déjà préparé.
Si l'envoi automatique est actif pour un fournisseur, ses brouillons partent seuls peu après l'heure du créneau, après un contrôle avant envoi. Le fonctionnement et ses limites sont détaillés dans Garde-fous.
Après l'envoi : la réception
Après l'envoi, la commande attend sa réception. La date de réception attendue se calcule à partir du créneau d'envoi et du délai de réception du fournisseur (ou, s'il est vide, de son délai de livraison).
- Vous confirmez la réception dans le back-office : le stock augmente du nombre d'unités reçues (colis × taille du colis). C'est le chemin normal.
- Si vous oubliez, la plateforme valide automatiquement la réception d'une commande envoyée une fois sa date de réception attendue dépassée d'au moins 12 heures (délai par défaut). Ce délai évite de valider une livraison qui n'a pas encore eu lieu.
Le déroulé heure par heure est décrit dans la chronologie quotidienne, et l'enregistrement des mouvements de stock dans Chemins d'écriture.
La vie d'une commande client
Un client commande sur votre boutique (PrestaShop ou commande saisie dans Inklura) avec une date de livraison souhaitée. C'est cette date, pas la date d'achat, qui détermine le créneau d'envoi fournisseur.
La commande arrive en temps réel (ou lors de la synchronisation périodique). Une sortie prévue (« Sortie virtuelle ») est enregistrée ; le stock physique ne baisse pas encore.
Le moteur recalcule les brouillons des fournisseurs des produits commandés, tout de suite si le recalcul sur événement est actif pour votre espace, sinon à la passe de 30 minutes suivante.
La demande est affectée au créneau d'envoi qui permet une livraison à temps. La quantité du créneau est la demande moins le stock retenu, arrondie au colis supérieur. La ligne du brouillon garde la référence de la commande client et crée une entrée prévue.
Le matin, l'e-mail fournisseur est préparé et placé dans la file de relecture. Rien ne part.
Vous relisez, ajustez si besoin, et envoyez. Si les lignes ont changé depuis la préparation, l'envoi est refusé tant que vous n'avez pas re-préparé l'e-mail. La commande passe à l'état envoyée.
La marchandise arrive. Vous confirmez la réception : le stock augmente et les entrées prévues de la commande sont retirées. En cas d'oubli, la plateforme valide la réception automatiquement 12 heures après la date attendue.
Vous validez la livraison au client (commande par commande, ou « Valider la tournée du jour ») : le stock baisse. Il peut passer en négatif si la marchandise est partie avant que sa réception soit saisie ; la prochaine réception compense. La demande suivante repart de ce stock.
Voir aussi
- Vue d'ensemble
- Le ledger de stock : stock retenu, stock négatif
- Chemins d'écriture : comment chaque mouvement est enregistré
- Chronologie quotidienne : les tâches planifiées sur 24 h
- La semaine type : créneaux, délai de réception, quand compter le stock
- Synchronisation PrestaShop
- Écrans du back-office : file de relecture, pages stock
- Réglages : ce que vous réglez sur les fiches fournisseur et produit
- Garde-fous : ce qui protège vos commandes, et ce que vous voyez quand un garde-fou se déclenche