Algorithme de priorité Source
Les stocks personnalisés comprennent une liste attribuée de sources à vendre et expédient les stocks de produits disponibles par l'intermédiaire de votre storefront. L’algorithme de priorité Source utilise l’ordre des sources affectées en stock pour recommander des déductions de produit par source lors de la facturation et de l’expédition de la commande.
Lorsqu’il est exécuté, l’algorithme :
- Passe par l'ordre configuré des sources au niveau du stock, en commençant par le haut
- Recommande une quantité à expédier et une origine par produit en fonction de l'ordre dans la liste, de la quantité disponible et de la quantité commandée
- Continue dans la liste jusqu'à ce que l'expédition de la commande soit remplie
- Ignore les sources désactivées si elles figurent dans la liste
Pour configurer, affecter et commander des sources à un stock personnalisé. Voir Hiérarchisation des sources pour un stock.
L'exemple suivant détaille les origines mappées dans l'ordre, la quantité disponible, l'origine et le montant recommandés à déduire et à expédier. La source principale est un Drop Shipper au Royaume-Uni avec une quantité disponible de 240.
Algorithme De Priorité De Distance
L'algorithme de priorité de distance compare l'emplacement de l'adresse de destination d'expédition avec les emplacements source afin de déterminer la source la plus proche pour exécuter les expéditions. La distance peut être déterminée par la distance physique ou le temps passé à voyager d'un endroit à un autre, en utilisant des emplacements de base de données importés ou des directions de Google (conduite, marche ou vélo).
Vous disposez de deux options pour calculer la distance et le temps pour trouver la source la plus proche pour l'exécution de l'expédition :
-
Google MAP - Utilise les services de Google Maps Platform pour calculer la distance et le temps entre l'adresse de destination d'expédition et les emplacements sources (adresse et coordonnées GPS). Cette option utilise la latitude et la longitude de la source. Une clé API Google est requise avec l’API Geocoding et l’API Distance Matrix activées. Cette option nécessite un plan de facturation Google et peut entraîner des frais via Google.
-
Calcul hors ligne - Calcule la distance à l’aide des données de géocode téléchargées et importées afin de déterminer la source la plus proche de l’adresse de destination d’expédition. Cette option utilise les codes pays de l’adresse et de la source d’expédition. Pour configurer cette option, vous pouvez avoir besoin de l'aide d'un développeur pour télécharger et importer initialement des géocodes à l'aide d'une ligne de commande.
Pour configurer, sélectionnez des configurations et effectuez des étapes supplémentaires telles que la clé API Google ou le téléchargement des données d’expédition. Voir Configurer l’algorithme de priorité de distance.
Algorithmes personnalisés
Commerce prend en charge le développement personnalisé et les extensions pour ajouter des algorithmes alternatifs afin de hiérarchiser les sources. Par exemple, vous pouvez avoir un algorithme de priorité basé sur la géographie et un autre basé sur les dépenses en stock ou un attribut du client. Lorsque le coût des stocks change, votre implémentation peut facilement modifier les algorithmes pour garantir le coût le plus bas.
Réservations
Au lieu de déduire ou d'ajouter immédiatement des quantités en stock de produits, les réservations conservent les quantités en stock jusqu'à ce que les commandes soient expédiées ou annulées. Les réservations fonctionnent entièrement en arrière-plan pour mettre automatiquement à jour votre quantité vendable au niveau du stock.
inventory.reservations.updateSalabilityStatus
s’exécute en continu. Pour vérifier s’il est en cours d’exécution, utilisez la commande bin/magento queue:consumers:list
. Si le client de la file d’attente de messages n’est pas répertorié, démarrez-le : bin/magento queue:consumers:start inventory.reservations.updateSalabilityStatus
.Réservation de commande
Les réservations sont bloquées sur les quantités en stock déduites de la quantité vendable lors de la soumission d'une commande. Les réservations sont au niveau du stock, en comptant par rapport aux quantités jusqu'à ce que la commande soit facturée et expédiée, annulée, etc. Lors de l'expédition de la commande, vous pouvez utiliser les recommandations SSA ou saisir manuellement des déductions de quantité par origine. Lors de l'expédition, les réservations sont automatiquement effacées et la quantité déduite. La quantité vendable est recalculée pour le stock avec une quantité mise à jour et les montants de réservation restants dans le système.
Le diagramme suivant permet de définir le processus de réservation au cours d’une commande et jusqu’à l’expédition.
Un client passe une commande. Commerce vérifie la quantité disponible en stock actuelle. Si un stock suffisant est disponible au niveau du stock, une réservation met en attente temporairement le SKU du produit (pour ce stock) et recalcule la quantité à vendre.
Après avoir facturé la commande, vous déterminez les montants de produit à déduire et à expédier à partir de vos sources. L'expédition est traitée et envoyée au client à partir d'une ou plusieurs sources sélectionnées. Les quantités sont déduites automatiquement de la quantité en stock d'origine et les réservations sont effacées. Pour obtenir des détails complets et des exemples, voir À propos du statut de la commande et des réservations.
Calculs de réservation
Le système crée une réservation pour chaque produit lorsque les événements suivants se produisent :
- Un client ou un commerçant passe une commande.
- Un client ou un commerçant annule entièrement ou partiellement une commande.
- Le commerçant crée une expédition pour un produit physique.
- Le marchand crée une facture pour un produit virtuel ou téléchargeable.
- Le marchand émet un avoir.
Les réservations sont des opérations en ajout uniquement, similaires à un journal d’événements. Une valeur de quantité négative est affectée à la réservation initiale. Toutes les réservations suivantes créées lors du traitement de la commande sont des valeurs positives. Lorsque la commande est terminée, la somme de toutes les réservations pour le produit est de 0.
Avant que le système puisse émettre une réservation en réponse à une nouvelle commande, il détermine s'il y a suffisamment d'articles vendables pour exécuter la commande. Les quantités suivantes entrent dans le calcul :
-
Quantité StockItem. La quantité StockItem est le montant cumulé du stock provenant de toutes les sources physiques pour le canal de vente actuel. Prenons un exemple où la source Baltimore contient 20 unités d’un produit, la source Austin en contient 25, et la source Reno en contient 10. Lorsque toutes ces sources sont liées au Stock A, le nombre de StockItem pour ce produit est de 55 (20 + 25 + 10). (Lorsque des articles sont expédiés, l'indexeur de stock met à jour les quantités disponibles à chaque origine.)
-
Réserves en suspens. Le système totalise toutes les réservations initiales qui n'ont pas été compensées. Ce nombre est toujours négatif. Si le client A a une réservation pour dix articles et que le client B a une réservation de 5 articles, les réservations en attente pour le produit total sont de -15.
Par conséquent, le commerçant peut exécuter une commande entrante tant que le client commande moins de 40 (55 + -15) unités.
Lorsque vous terminez le traitement d’une commande (Terminé, Annulé, Fermé), toutes les réservations dans le cadre de cette commande doivent être résolues sur 0
. Cette opération efface toutes les quantités disponibles.