cancel
Showing results for 
Search instead for 
Did you mean: 

Magento 2 + ERP Inventory Issues with 3rd Party Module

Magento 2 + ERP Inventory Issues with 3rd Party Module

We run a Magento 2 based website that uses a customized API from Epicor Eclipse (called ECC) to run the site to sync products, inventory and all other data.

 

The issue we have is that we use a 3rd party module called WiseRobot (https://wiserobot.com/products/channeladvisor-to-magento-connector.html) to sync our items to the different channels online (ebay and walmart). The issue is that for some reason our ERP software company stores the inventory in a cached area and not actually in the database direct (as I understand it). The module that pushed the inventory doesn't pull the correct inventory numbers all the time.

 

Couple questions:

 

1. Anyone use something like Channel Advisor and a module to sync Magento to it? If so how does it work out for you?

 

2. Anyone using Eclipse as an ERP and do this without inventory issues?

 

--- 

 

Calling MSQ directions 

 

This is the high level summary of how to trigger an MSQ for the ERP (I am not a developer and not sure what I am looking at, looking for suggestions as a direction). If this is passed on to a Magento developer, they should be able to figure out how it works, by studying the below module, classes and by tracing MSQ requests from the PLP / PDP using a debugging tool. MSQ is a vast topic in itself from what I am told.

 

Module – Epicor_CommMSQ Class – Epicor\Comm\Model\Message\Request\Msq

MSQ Parent Class – \Epicor\Comm\Model\Message\Request 

 

Example

The following example will send out MSQ’s for multiple products. 

 

This example has been taken from the below class, which sends out MSQ’s to fetch prices to calculate cart totals.

 

"Calling MSQ directions"

"Epicor\Comm\Model\Sales\Quote\Address\Total\Msq
$msq = $this->commMessageRequestMsqFactory->create();
if ($msq->isActive()) {
$showLocations = $this->commLocationsHelper->isLocationsEnabled(); if ($showLocations && !empty($msqlocations)) {
$msq->addLocations($msqlocations);"

"}"
"foreach ($products as $id => $product) { // here $product is the Magento product object (\Magento\Catalog\Model\Product)
$msq->addProduct($product, $qtys[$id]);"
	"}"
"Message();
}"

Just trying to pass the correct inventory totals and not sure if anyone in this community has ran into anything like this.