Oracle E-Business Suite and Shopify integration
Oracle E-Business Suite runs your back-office financials, procurement, and supply chain. Shopify runs your storefront. Connecting the two keeps order and customer data aligned without manual export and re-entry. When a customer is created in EBS, they appear in Shopify. When an order is placed in EBS, it syncs to Shopify as a record of what was sold. ml-connector handles the different auth schemes on each side and moves the data on a schedule you control.
What moves between them
The main flow runs from Oracle EBS into Shopify. Customer records created or updated in EBS are polled on a scheduled cadence and synced to Shopify as customers. Orders in EBS (sourced from sales order or invoice tables) are polled and created in Shopify as orders with line items, quantities, and customer links. Inventory records from EBS MTL tables can be synced to Shopify inventory levels. The sync is pull-then-push: ml-connector polls EBS on your schedule, transforms records to Shopify's GraphQL schema, and posts them into Shopify, creating or updating customers and orders as needed.
How ml-connector handles it
ml-connector stores the EBS ISG hostname and credentials (HTTP Basic username and password), and stores the Shopify shop URL and OAuth2 offline token encrypted. On the EBS side, it obtains a session token at the start of a poll cycle using the login REST endpoint with Basic auth, then calls the ISG REST services with that token and required context headers (ctx_orgid and ctx_responsibility are derived from customer config). For Shopify, it uses the offline token directly in the Authorization header on every GraphQL mutation. Because EBS has no webhooks, ml-connector polls on a schedule tied to your order and customer import cadence, typically daily or weekly, filtering EBS tables by LAST_UPDATE_DATE to detect changes. It fetches pages of results with limit/offset pagination from EBS and batches the records into Shopify's createCustomer and createDraftOrder (or Order) mutations. EBS session tokens expire after 30-60 minutes, so ml-connector re-authenticates if a poll cycle exceeds that window. Shopify rate limits are honored with exponential backoff. Every record carries a full audit trail, including the EBS source ID and Shopify order/customer ID, so records can be replayed or corrected if a Shopify call fails.
A real-world example
A mid-market wholesale distributor runs Oracle EBS for order-to-cash and supply chain, and Shopify for direct-to-consumer e-commerce. Before the integration, the EBS team exported customer lists and sales orders weekly, the Shopify team manually created matching customers and orders in the storefront, and invoices and shipments had to be re-keyed into EBS by hand. With EBS and Shopify connected, customers created in EBS's AR module sync automatically to the Shopify customer list, and EBS sales orders are created in Shopify as draft orders ready for fulfillment. The manual re-entry step is eliminated, and the two systems stay in agreement on who the customer is and what was ordered.
What you can do
- Sync customers from Oracle EBS to Shopify on a scheduled cadence, mapping EBS customer accounts to Shopify customers.
- Pull orders from EBS sales order or invoice tables and create them in Shopify with line items, quantities, and customer references.
- Manage pagination across both EBS and Shopify APIs and handle EBS session token expiry by re-authenticating as needed.
- Authenticate to EBS with HTTP Basic auth and to Shopify with OAuth2 offline tokens, securing both credential sets encrypted.
- Track every synced record with a full audit trail including source and destination IDs, enabling replay and correction on failure.
Questions
- Why is ml-connector polling EBS instead of waiting for a webhook?
- Oracle EBS has no modern webhook system for cloud integrations. The ISG exposes database tables as REST services for polling only. ml-connector polls on your schedule (daily, weekly, etc.) and filters EBS tables by LAST_UPDATE_DATE to detect new or changed customers and orders since the last run.
- How does ml-connector handle the different auth schemes on each side?
- ml-connector obtains an EBS session token by calling the ISG login endpoint with HTTP Basic auth, then uses that token and required context headers on all EBS API calls. For Shopify, it stores and uses the OAuth2 offline token directly in the Authorization header. Both credential sets are encrypted at rest.
- What if an EBS customer or order already exists in Shopify?
- ml-connector tracks the EBS source ID and Shopify customer ID or order ID in an audit log. On subsequent polls, if an EBS customer record has changed, ml-connector updates the matching Shopify customer (identified by a stored ID mapping). If Shopify returns a 409 conflict or duplicate error, ml-connector logs the collision and skips the record, leaving the audit trail intact for manual review.
Related integrations
More Oracle E-Business Suite integrations
Other systems that connect to Shopify
Connect Oracle E-Business Suite and Shopify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started