Sage 300 and Adobe Commerce integration
Sage 300 runs your enterprise finance, and Adobe Commerce runs your online store. Connecting the two keeps your accounting current with every order placed online. Customers in your store sync to Sage 300's AR customer file, and orders convert to invoices that post into your general ledger without re-keying. ml-connector bridges the very different auth models (HTTP Basic for Sage 300, OAuth for Adobe) and moves data on a schedule you control.
What moves between them
Orders and invoices flow from Adobe Commerce into Sage 300 on a daily or weekly polling schedule. Customer records sync in the same direction, creating or updating AR customers as needed. Sage 300 does not write back to Adobe Commerce; the integration is read-only on the commerce side. Shipment and invoice details map to Sage 300 AR invoice batches and GL entries for revenue recognition.
How ml-connector handles it
ml-connector stores Sage 300's HTTP Basic Auth credentials (uppercase username and password) and Adobe Commerce OAuth tokens securely, refreshing the Adobe token before expiry. Because Sage 300 has no webhooks, ml-connector polls the REST API on a fixed cadence using OData filters to fetch only new or modified orders and invoices since the last sync run. It maps Adobe Commerce Order records to Sage 300 ARInvoiceBatches and customer records to ARCustomers, matching Adobe's store view code to the correct Sage 300 company. Retries handle temporary IIS timeouts and OAuth 429 rate limits. Every record carries a full audit trail, so a failed GL posting can be replayed once the error is corrected.
A real-world example
A mid-sized online retailer runs Sage 300 for AP, AR, and GL, and Adobe Commerce (PaaS) for their B2C storefront. Before the integration, the accounting team exported orders from Adobe every day and manually entered them into Sage 300 as AR invoices, a process that took 30 minutes and created opportunity for invoice-number collisions and data entry errors. With Sage 300 and Adobe Commerce connected, every order placed online becomes an AR invoice in Sage 300 the next morning, the customer record updates automatically, and month-end reconciliation between store orders and GL revenue is instantaneous.
What you can do
- Sync orders from Adobe Commerce into Sage 300 AR invoices on a daily or weekly polling schedule.
- Map customer records from Adobe to Sage 300 AR customers, creating or updating as needed.
- Bridge HTTP Basic Auth (Sage 300) and OAuth 1.0a (Adobe PaaS) authentication models.
- Handle OData filtering and pagination on the Sage 300 side, and refresh Adobe tokens before expiry.
- Maintain a full audit trail and replay failed GL postings when downstream issues are resolved.
Questions
- Which direction does data move between Sage 300 and Adobe Commerce?
- Orders, invoices, and customers flow from Adobe Commerce into Sage 300 on a polling schedule. Sage 300 does not write back to Adobe Commerce. The integration is read-only on the e-commerce side, so your storefront operations are not affected by the accounting sync.
- How does the integration handle Sage 300's lack of webhooks?
- Sage 300 has no webhooks or change-data-capture, so ml-connector polls the REST API on a fixed schedule (daily or weekly, your choice) using OData filters to fetch only new or modified orders since the last run. This avoids unnecessary calls and keeps your IIS server load predictable.
- What authentication does ml-connector use for each system?
- For Sage 300, ml-connector stores HTTP Basic Auth credentials (username and password, both uppercase) and sends them with every request. For Adobe Commerce PaaS, it uses OAuth 1.0a integration credentials (consumer_key, consumer_secret, access_token, access_token_secret) and refreshes the token before expiry to avoid failed calls.
Related integrations
More Sage 300 integrations
Other systems that connect to Adobe Commerce
Connect Sage 300 and Adobe Commerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started