Short answer
Magento Open Source and Adobe Commerce integrate with ERPs through REST (and SOAP) web APIs, asynchronous and bulk endpoints backed by message queue consumers, and — in Adobe Commerce — Adobe I/O Events for asynchronous eventing and a webhooks module for synchronous calls. Integrations can also be built as custom modules. Plan around Multi-Source Inventory's sources, stocks, and salable quantity, and around the differences between on-premises/PaaS and Adobe Commerce as a Cloud Service.
Magento / Adobe Commerce integration surface at a glance (documented capabilities; see sources)
- Web APIs
- REST and SOAP web APIs; resources and permissions defined in webapi.xml and the ACL; integrations configured in the Admin.
- Async and bulk
- Asynchronous endpoints (e.g. /rest/<store>/async/V1/products) return a bulk_uuid; processed by message queue consumers.
- Eventing
- Adobe I/O Events for asynchronous events; Adobe Commerce Webhooks for synchronous calls to external systems.
- Inventory
- Inventory Management (MSI) with sources, stocks mapped to websites, and salable quantity.
- Deployment variants
- On-premises / PaaS and Adobe Commerce as a Cloud Service (SaaS) differ in some API paths and tooling.
- Adobe Commerce Events or polling
- Integration layer Module
- Async / bulk API Queue consumers
- ERP
Magento — today Magento Open Source and Adobe Commerce — is the most extensible of the four platforms covered here, and the one with the most ways to build an integration. That flexibility is useful and a source of risk: two Magento ERP integrations can share almost no architecture. Documented statements below come from Adobe’s documentation; recommendations are ours.
How Adobe Commerce connects to an ERP
Documented: Adobe Commerce and Magento Open Source provide REST and SOAP web APIs. API resources and their permissions are defined in webapi.xml and the ACL; integrations are created in the Admin with access to selected API resources. Asynchronous endpoints accept requests that are queued and executed by message queue consumers, and return a bulk_uuid for checking status.
Documented: Adobe Commerce provides Adobe I/O Events for event-driven, asynchronous integrations — for example, registering an order placement event that Adobe I/O routes to an App Builder application, which then calls Commerce APIs for details. It also provides Adobe Commerce Webhooks for synchronous calls to external systems when Commerce must compute or validate something immediately; Adobe advises creating a webhook only if synchronous communication is critical, and suggests I/O Events for most other scenarios.
Recommendation: for most ERP flows, use asynchronous mechanisms (events or polling plus queues). Reserve synchronous webhooks for genuinely real-time needs such as live price or stock checks at checkout, where the ERP’s latency directly affects the shopper.
Common integration use cases
- Order export to the ERP after placement or invoicing.
- Product, price, and attribute import from the ERP or PIM, often in bulk.
- Source-level inventory updates from warehouses.
- Shipment and invoice creation from ERP events.
- B2B company accounts, shared catalogs, and negotiated pricing (Adobe Commerce B2B).
Order synchronization
Recommendation: trigger export from an order event (I/O Events or an observer in a custom module) or poll orders updated since a checkpoint, fetch the order through the REST API, and store the Magento order increment ID together with the store or website as the ERP external reference. Decide whether orders export at placement or at invoice, depending on your payment capture process.
Inventory synchronization
Documented: Inventory Management (often called MSI) uses sources — physical locations that store and ship products — and stocks, which map a sales channel (website) to sources. It tracks on-hand quantity per source and an aggregate salable quantity, and protects inventory during checkout. A stock can map to multiple sales channels, but a sales channel can be assigned to only one stock.
Recommendation: map each ERP warehouse to a source and update source quantities. Do not try to write salable quantity directly — it is derived from source quantities and order reservations. For high-volume updates, use asynchronous or bulk endpoints.
Product and variant synchronization
Documented: configurable products are composed of simple child products, each with its own SKU. The asynchronous and bulk APIs support product create and update operations.
Recommendation: map each simple product (child) to one ERP article by SKU, and treat configurable parents as merchandising containers. Large attribute-rich catalogs often benefit from a PIM between the ERP and Adobe Commerce. See mapping products to ERP SKUs.
Customer data synchronization
Recommendation: for B2B, synchronize companies, company users, and credit limits deliberately, matching on IDs stored in both systems. For B2C, consider a generic web customer in the ERP as with other platforms.
Fulfillment and shipment updates
Recommendation: create shipments (with tracking) and invoices in Commerce from ERP shipment and billing events, using the ERP document IDs to prevent duplicates on retry. Multi-source setups may need source selection logic aligned with the ERP’s actual shipping warehouse.
API and webhook considerations
Documented:
- Asynchronous and bulk requests require the relevant message queue consumer (for PaaS, the
async.operations.allconsumer) to be running. - In Adobe Commerce as a Cloud Service, some API paths differ — for example, where the
/asyncsegment appears and how the store is specified. - Webhooks resolve as successful, by throwing an exception, or by modifying the event payload, and run synchronously.
Recommendation:
- Monitor message queue consumers and cron; stopped consumers silently stall bulk imports.
- Check bulk operation status after submission and alert on failed operations.
- Version your integration against your specific edition and deployment type, and test after every platform upgrade.
Common implementation challenges
- Stopped cron or queue consumers leaving async operations pending.
- Extension conflicts where third-party modules alter order or product data.
- Upgrade risk for in-process integration modules.
- Writing salable quantity instead of source quantity.
- Store view and website scope confusion for prices, attributes, and stock.
Direct integration vs. middleware
Adobe Commerce integrations range from custom modules, to external services, to Adobe App Builder applications, to iPaaS products and prebuilt ERP connectors. For a custom ERP, an external service or App Builder app using the web APIs and I/O Events keeps the ERP integration out of the store’s code deployment. See direct integration vs. middleware.
Frequently asked questions
Is Magento Open Source different from Adobe Commerce for ERP integration?
The core web APIs are shared. Adobe Commerce adds commercial features (for example B2B modules) and Adobe's extensibility services such as Adobe I/O Events and App Builder. Adobe Commerce as a Cloud Service has some different API paths and tooling than on-premises or PaaS installations.
Should the ERP integration be a Magento module or an external service?
Both are common. A module can react to internal events and access data directly through service contracts, but runs inside the store's deployment and upgrade cycle. An external service using the web APIs is decoupled from store upgrades. Adobe's out-of-process extensibility direction (I/O Events, App Builder, webhooks) favors external services.
When should I use asynchronous or bulk endpoints?
For large imports such as product or price updates. Asynchronous requests are queued and processed by consumers, returning a bulk UUID you can use to check operation status. They require the relevant message queue consumers to be running.
How does Multi-Source Inventory affect stock sync?
You update quantities per source (physical location). Stocks aggregate sources for a sales channel, and the salable quantity accounts for reservations created by orders. Sync quantities at source level, not by overwriting salable quantity.
Sources and further reading
Platform-specific statements on this page were checked against these sources on . Vendor APIs change; confirm details in the current documentation before you build.
- [1] Asynchronous web endpoints — Adobe
- [2] Web API authentication — Adobe
- [3] Adobe Commerce Webhooks overview — Adobe
- [4] Adobe I/O Events for Adobe Commerce — Adobe
- [5] Inventory Management introduction — Adobe Experience League
Related reading
- Concepts What Is Event-Driven Architecture in Integrations? How event-driven architecture applies to ecommerce-ERP integrations — events, producers, consumers, queues, outbox patterns — and the trade-offs it introduces.
- Concepts What Is an API-Based Integration? How API-based integrations work, the differences between REST, GraphQL, and SOAP, authentication basics, rate limits, and why APIs beat direct database access.
- Guides How to Map Ecommerce Products to ERP Articles and SKUs Design product and variant mapping between an ecommerce platform and an ERP — SKU strategy, variants, bundles, units of measure, cross-references, and validation.
- Concepts What Is Inventory Reconciliation? What inventory reconciliation is, why stock drifts between an online store and an ERP, how to compare and correct quantities safely, and how often to reconcile.
- Comparisons Direct ERP Integration vs. Integration Middleware Compare point-to-point ERP integrations with middleware and iPaaS — cost, control, scalability, skills, and failure handling — and see which fits your requirements.
- Guides How to Design an Integration Monitoring System What to measure in an ecommerce-ERP integration, how to set alert thresholds, which dashboards help, and how business-level checks catch silent failures.