Système Magento Order Management (OMS) pour l’erreur de traitement Adobe Commerce
Cet article fournit une solution au problème lorsque vous obtenez une erreur getMode()
dans l’interface de ligne de commande exécutant bin/magento oms:messages:process
dans le système de Magento Order Management (OMS) pour Adobe Commerce.
Produits et versions concernés
Cette erreur se produit lors de l’utilisation des versions 3.1.1 et 3.2.0 de MCOM Connector. Ce problème est résolu dans MCOM Connector 3.3.0. Il n’est pas spécifique à une version MDC ou MOM.
Problème
Lors de l’exécution de la commande suivante dans l’interface de ligne de commande :
bin/magento oms:messages:process
Un message d’erreur similaire au suivant est généré dans l’interface de ligne de commande :
<project-id>@<project-id>:~$ php bin/magento oms:messages:process
Processing messages...
PHP Fatal error:Uncaught Error: Call to a member function getMode()
on null in /app/<project-id>/vendor/magento/module-inventory-message-bus/Handler/OnAggregateStockUpdatedSubscriber.php:64
Stack trace:
#0 [internal function]: Magento\InventoryMessageBus\Handler\OnAggregateStockUpdatedSubscriber->onUpdated(Object(Magento\InventoryMessageBus\Model\Event\OnAggregateStockUpdated))
#1 /app/<project-id>/vendor/magento/module-service-bus/Message/SingleMessageProcessor.php(81):
call_user_func(Array, Object(Magento\InventoryMessageBus\Model\Event\OnAggregateStockUpdated))
#2 [internal function]: Magento\ServiceBus\Message\SingleMessageProcessor->Magento\ServiceBus\Message\\{closure}(Array)
#3 /app/<project-id>/vendor/magento/module-service-bus/Message/SingleMessageProcessor.php(86):
array_map(Object(Closure), Array)
#4 /app/<project-id>/vendor/magento/module-service-bus/Message/Processor.php(110):
Magento\ServiceBus\Message\SingleMessageProcessor->process(Object(Magento\CommonMessageBus\Message\Message))
#5 /app/t in /app/<project-id>/vendor/magento/module-inventory-message-bus/Handler/OnAggregateStockUpdatedSubscriber.php
on line 64
Cause
Â
Cela se produit lorsque le connecteur tente de traiter des messages magento.inventory.source_management
. Connector tente de traiter ces messages comme s’ils étaient un message magento.inventory.source_stock_management.update
nécessitant une valeur de mode. Comme il n'y a pas de mode dans les messages magento.inventory.source_mangement
, l'erreur se produit.
Solution
Pour résoudre le problème, exécutez l’instruction SQL suivante dans l’interface de ligne de commande qui supprime tous les enregistrements de la table mcom_api_messages
:
delete from mcom_api_messages;
Lecture connexe
- Tutoriel de configuration du connecteur OMS
- Bonnes pratiques pour la modification des tables de base de données dans le manuel de mise en oeuvre de Commerce