SAP ECC and Adobe Commerce integration
SAP ECC manages your enterprise financials, vendors, and materials. Adobe Commerce runs your e-commerce storefront and customer orders. Connecting them keeps your order ledger and your customer master synchronized without re-entry. New orders placed in Adobe Commerce flow into SAP ECC as sales documents, customer records sync bidirectionally so your ERP master stays current, and invoices posted in SAP push back to Adobe Commerce to close the order loop.
What moves between them
Orders and customer records flow from Adobe Commerce into SAP ECC on a schedule you define, typically daily or after key commerce events. Customer creation and modification in Adobe Commerce creates or updates the customer master record in SAP ECC, and new orders in Adobe Commerce generate sales document headers and line items in SAP via BAPI_SALES_ORDER_CREATE or RFC_READ_TABLE insertion. Invoices post from Adobe Commerce back into SAP ECC as accounting documents, allocated to the customer and the order line. GL postings and inter-company transfers are authored only in SAP, so Adobe Commerce does not receive financial entries; Adobe Commerce is read-only for GL accounts.
How ml-connector handles it
ml-connector stores both credential sets encrypted and negotiates HTTP Basic Auth on each OData or IDoc call to SAP ECC, while managing OAuth 1.0a or IMS OAuth 2.0 token lifecycle on the Adobe Commerce side. Because SAP ECC is pull-only without native webhooks, ml-connector polls Adobe Commerce for new orders and customer changes on your chosen interval, transforms each order into SAP sales order BAPI parameters, and invokes the RFC bridge or OData insert service in SAP. Customer number assignment follows SAP number ranges, so ml-connector maps Adobe Commerce customer IDs to SAP account numbers and caches that mapping. Invoices created in Adobe Commerce are read via the REST endpoint, normalized to SAP GL posting structure, and inserted as accounting documents with cost center and GL account validation. The SAP on-premises agent must be running and reachable; ml-connector retries failed RFC calls up to three times with exponential backoff, and tracks each record in the audit log so failed orders can be replayed once the agent comes back.
A real-world example
A mid-market B2B manufacturer runs SAP ECC for finance and supply chain and Adobe Commerce as their customer portal for order placement and invoicing. Before the integration, the order entry team exported orders from Adobe Commerce each morning and re-entered them into SAP by hand, and the finance team had to manually post customer invoices created in Adobe Commerce back into the sales ledger. With SAP ECC and Adobe Commerce connected, each order placed in Adobe Commerce posts to SAP automatically as a sales order, invoices flow from Adobe Commerce into the SAP GL the same day, and customer creation or name changes in Adobe Commerce automatically update the SAP customer master, removing the manual re-entry step and eliminating the daily reconciliation of outstanding orders.
What you can do
- Post Adobe Commerce orders into SAP ECC as sales documents, mapped to the correct customers and GL accounts.
- Synchronize customer creation and modification between Adobe Commerce and SAP ECC so both systems share the same master record.
- Post Adobe Commerce invoices into the SAP ECC GL after customer approval, linked to the corresponding order.
- Authenticate SAP ECC with HTTP Basic Auth and OData or RFC, and Adobe Commerce with OAuth 1.0a or IMS OAuth 2.0.
- Poll Adobe Commerce for new orders and invoices on a schedule you control, with retries and a full audit trail on every record.
Questions
- Which direction does data move between SAP ECC and Adobe Commerce?
- Orders and customers flow primarily from Adobe Commerce into SAP ECC. Invoices created in Adobe Commerce post into the SAP ECC GL. GL entries are authored only in SAP, so the ERP does not receive accounting entries back from Adobe Commerce. Master data such as materials and pricing can be synchronized in both directions.
- Does the integration require an on-premises SAP agent, or can ml-connector call SAP directly from the cloud?
- Yes, SAP ECC is on-premises and RFC/BAPI calls cannot originate directly from the cloud. ml-connector requires an integration agent running on the customer's network with the SAP .NET Connector or Java Connector installed. The agent bridges HTTP calls from ml-connector to RFC function modules in SAP. Alternatively, if OData is activated on the SAP Gateway, ml-connector can use REST calls instead of RFC, though SAP Basis must manually enable OData services via transaction SICF.
- How does the integration handle the polling model since SAP ECC has no native webhooks?
- ml-connector polls Adobe Commerce for new orders and customer changes on a schedule you define, typically daily or hourly. Because SAP ECC is on-premises, it cannot easily push data to the cloud, so polling is the standard pattern. Once records are posted into SAP via RFC or OData, the audit log captures the timestamp and status, so you can see exactly when each order was synced and can replay failed records if needed.
Related integrations
More SAP ECC integrations
Other systems that connect to Adobe Commerce
Connect SAP ECC and Adobe Commerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started