A Multi-channel Order Management (commonly referred to as “MOM”) system, generally speaking, is an omnichannel-style solution for order management, product inventory and attributes, customer information and reporting, and so much more.
Anything you’d require for ecommerce, or physical order management can be encapsulated within a MOM-style system.
It's similar to what Adobe Commerce (previously known as Magento Commerce) is doing in the admin to create a user-friendly interface for day-to-day operations. The main difference is that MOM systems are generally more data forward, and serve as a backbone of the store(s). They are usually hosted on a server and interfaced with a standard application direct to the database instead of a web app/site.
A MOM system most likely would not have a front-end store or gateway directly tied to the application. You would build on top of the MOM API or create some other form of interfacing with its database.
Integrating a Multi-channel Order Management System with Adobe Commerce
When we approach an integration with a MOM-style system, the main factors are typically orders, products, customer information, and updates to those. Generally the MOM system is handling a lot of the post-order processes, so we use it as the source of truth and update the base sections mentioned.
There are always varying connection points when it comes to any sort of integration, but with a MOM system you will most likely be connecting to the database it is using, querying it directly or via API endpoints, making calls to the system, and parsing the data returned.
With a service such as Adobe Commerce Cloud, and the store site potentially “living” outside the other systems a business implores, there may be security details to consider if the MOM system is hosted on a remote, or on-premises, server.
When looking to set up this type of integration in the context of an Adobe Commerce site, consider these options:
- Direct API access: If direct access via API, or otherwise, is available from an external source, such as the Adobe Cloud instance, create a module in the Adobe Commerce project set with a scheduled job that simply queries the MOM API, assuming the API endpoints are rich enough to support the data requirements. Once the data is retrieved, use the standard Adobe Commerce/Magento object interfaces to update the data either piece-meal or in bulk, on both sides of the systems.
- Endpoints query: Leveraging the Adobe Commerce REST (or GraphQL) endpoints, create a connector that will query the MOM data on the server it’s hosted on, and make calls with data in tow to the existing (or custom) Adobe Commerce API endpoints. This is after having set up the connection in Adobe Commerce via “Integrations,” and updating all the desired Adobe Commerce data. This can also be used inversely, querying for and updating the MOM data on demand. Refer to this general overview of all default REST endpoints. For example, the “/orders” endpoint of the Adobe Commerce API can be used to query for all orders specifically placed on that day, and then in turn we use that information to pull that order information in the MOM system.
- “Snapshot” integration: In this approach, a direct connection to the MOM system/API is not possible from external sources making it a very secure setup. We’d begin by identifying the required fields and objects we’d want to maintain on the Adobe Commerce side i.e. order data, product updates, and so on. From there, we’d create a separate database on the remote MOM server that is being populated with a portion of the MOM data we need via functionality on the server itself. With the data flowing, we’d make calls from the remote server to the Adobe Commerce instance API endpoints, updating the required data. To make updates to data in the MOM system, we’d need some form of SFTP to ingest incoming data.
- Static files: Finally if all else fails, we can certainly utilize static, flat files such as a .csv, generated json/xml, or any other format that represent the order, customer, or product data changes. These can be passed by SFTP or some other sync, and then ingested by either system with the aid of a bit of custom functionality, default imports where available, or a combination of those.
The main issue here is processing speed and lead time. If the files are extremely large (which can occur if it includes a full product catalog, for example) they may need to be pared down to just the changes since the last import to help with processing speed. If real-time (or near real-time) updates for inventory, order status, or otherwise is a factor, this is also almost certainly going to have a bit of delay between the two systems' data as the files are generated and processed.
Have additional questions about integrating Multi-channel Order Management with Adobe Commerce? Reach out to our team of Adobe Commerce experts at Bear Group! We’ll be happy to help you weigh the pros and cons of each approach and what will work best for your business.
Gage Schmidt is a developer at Bear Group who takes pride in implementing elegant, sustainable solutions for clients.