Sage X3 and Adobe Commerce integration
Sage X3 runs your finance, procurement, and inventory. Adobe Commerce runs your storefront. When you connect them, every order placed on Adobe Commerce flows into Sage X3 as a supplier invoice that can be matched to the original purchase order, and fulfillment status posts back to the storefront without manual re-entry. ml-connector bridges the very different credential models on each side and manages the webhook handoff on the Adobe Commerce side.
What moves between them
Sales orders from Adobe Commerce flow into Sage X3 as supplier invoices that link to the corresponding purchase orders. Invoice data, including line items and amounts, is mapped from Adobe Commerce to the Sage X3 supplier invoice entity. Fulfillment status and shipment tracking poll from Sage X3 back to Adobe Commerce on a schedule or via webhook events. The main flow is from Adobe Commerce into Sage X3, so ml-connector writes invoices to the ERP and reads fulfillment for export back to the storefront. Reference data such as products and customers is aligned in both directions.
How ml-connector handles it
ml-connector stores both the Adobe Commerce OAuth credentials and the Sage X3 Basic Auth or OAuth2 credentials encrypted and presents them on each request. It receives Adobe Commerce webhooks at a registered HTTPS endpoint, validates the HMAC SHA256 signature using the commerce secret key, and queues the order and invoice records for processing. For Sage X3, it accepts the full customer-specific server URL and X3 folder path and maps Adobe Commerce order and invoice fields to the Sage X3 supplierBpInvoice and purchaseOrder entities. Because Sage X3 has no outbound webhooks, ml-connector polls for fulfillment status changes on a cadence you set, typically daily or on-demand. Every record carries a unique identifier from both systems, so re-processing is idempotent, and a full audit trail tracks the source and destination of each invoice and status update.
A real-world example
A mid-sized distributor runs Sage X3 for procurement and finance and sells through an Adobe Commerce B2B portal. Before the integration, sales orders entered on Adobe Commerce had to be manually keyed into Sage X3 as supplier invoices, and invoice reconciliation took days because the storefront and the ERP did not talk to each other. With Sage X3 and Adobe Commerce connected, every order places a supplier invoice into the ERP automatically, matched to the purchase order and ready for fulfillment. Shipping data flows back to the portal, so customers see real-time fulfillment status without asking the sales team.
What you can do
- Receive Adobe Commerce orders via webhook and map them into Sage X3 supplier invoices linked to the matching purchase order.
- Sync invoice line items, amounts, and tax from Adobe Commerce into Sage X3 GL accounts for automated accounting.
- Bridge Adobe Commerce OAuth credentials and Sage X3 Basic Auth or OAuth2 so both sides authenticate without manual credential entry.
- Poll Sage X3 for fulfillment and shipment status on a schedule and post updates back to Adobe Commerce to keep the storefront current.
- Validate Adobe Commerce webhook signatures with HMAC SHA256 and maintain a full audit trail on every order, invoice, and status change.
Questions
- How does ml-connector handle the different authentication models between Sage X3 and Adobe Commerce?
- Adobe Commerce uses OAuth 1.0a or OAuth 2.0 credentials, while Sage X3 uses OAuth2 or HTTP Basic Auth depending on the X3 version and configuration. ml-connector stores both credential sets encrypted, presents the correct set on each request, and handles token refresh and expiry transparently so both sides stay authenticated.
- Does every Adobe Commerce order go into Sage X3 as a supplier invoice?
- Yes. Orders placed on Adobe Commerce are received via webhook, validated with an HMAC signature, and mapped into Sage X3 as supplier invoices that link to the matching purchase order. Invoice amounts and line items align with the purchase order so reconciliation is automatic.
- How does fulfillment status get back to the Adobe Commerce storefront if Sage X3 has no webhooks?
- ml-connector polls Sage X3 on a schedule you define (typically daily or on-demand) for shipment and fulfillment status on each invoice, then posts the status back to Adobe Commerce. This keeps the storefront current with fulfillment progress without requiring manual updates or a native webhook connection.
Related integrations
More Sage X3 integrations
Other systems that connect to Adobe Commerce
Connect Sage X3 and Adobe Commerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started