ml-connector
Oracle Fusion Cloud ERPShipBob

Oracle Fusion Cloud ERP and ShipBob integration

Oracle Fusion Cloud ERP runs your procurement and financial planning. ShipBob handles the physical fulfillment and shipping. Connecting them keeps your purchase orders synchronized with fulfillment execution and brings shipment status back into your ledger. New purchase orders in Oracle Fusion Cloud ERP flow to ShipBob with product details and quantities, and as ShipBob picks, packs, and ships, each milestone posts back to the original purchase order in Oracle so your supply chain team sees the real status without manual updates.

How Oracle Fusion Cloud ERP works

Oracle Fusion Cloud ERP exposes purchase orders, suppliers, products, payments, invoices, and general ledger accounts through a REST API, accessed via a customer-specific pod URL and OAuth2 client credentials. The API supports OData-style filtering by LastUpdateDate and CreationDate, making it suitable for polling. Business Events exist within Oracle Integration Cloud, but standalone connectors cannot receive webhooks directly from Oracle Fusion Cloud ERP, so the recommended pattern is polling every 5 to 15 minutes for new and modified records. Account combinations and chart of accounts are typically managed through setup, not transactional API calls.

How ShipBob works

ShipBob exposes orders, shipments, products, inventory levels, warehouse receiving orders, returns, and billing through a REST API secured with OAuth2 or Personal Access Token authentication. The API accepts requests with a shipbob_channel_id header identifying the application channel, and all responses follow a standard JSON structure. ShipBob publishes events via webhooks for order status changes, shipments, tracking updates, returns, and billing activities. Webhook signatures are verified using HMAC-SHA256, and the integration must validate the webhook-signature header on each inbound request. Inventory is tracked by fulfillment center location, and weights and dimensions use imperial units (ounces and inches).

What moves between them

The primary flow moves purchase orders and line items from Oracle Fusion Cloud ERP into ShipBob when a purchase order is created or modified. ShipBob webhooks push order and shipment events back to ml-connector when fulfillment begins, items ship, tracking information updates, or delivery occurs. Purchase order line items in Oracle map to products and quantities in ShipBob, and ShipBob's fulfillment center locations map to supplier delivery locations in Oracle. Billing records from ShipBob for fulfillment charges are received as webhook events and can be logged for reconciliation.

How ml-connector handles it

ml-connector polls Oracle Fusion Cloud ERP every 5 to 15 minutes for new or modified purchase orders using the LastUpdateDate filter, then extracts line items and supplier details. Each line item becomes a fulfillment order in ShipBob mapped to the correct fulfillment center and product code. ShipBob is configured with a webhook endpoint pointing to ml-connector, which receives and validates each event using the HMAC-SHA256 signature in the webhook-signature header. When an order ships, ml-connector reads the shipment and tracking details from ShipBob and updates the purchase order status in Oracle Fusion Cloud ERP. OAuth2 tokens for both systems are refreshed before expiry, and the shipbob_channel_id header is included on every write to ShipBob. If a webhook delivery fails, ml-connector retries with exponential backoff, and if a shipment update fails to post to Oracle, the record is logged for manual review and can be replayed once the issue is resolved. Every transaction carries a full audit trail including the source system, timestamp, direction, and result.

A real-world example

A mid-size consumer goods distributor runs Oracle Fusion Cloud ERP for procurement and inventory planning, with a network of regional distribution centers. They contract with ShipBob to handle order fulfillment from a shared warehouse facility. Before the integration, the supply chain team manually imported shipment lists from ShipBob into a spreadsheet each day and updated purchase order statuses in Oracle by hand, leading to lag between physical shipments and Oracle records. With Oracle Fusion Cloud ERP and ShipBob connected, purchase orders flow automatically from Oracle to ShipBob when a supplier order is confirmed, and shipment events update the purchase order status in real time. The distribution center visibility is now current, and month-end inventory reconciliation runs against the same transaction log that fulfillment uses.

What you can do

  • Sync purchase orders and line items from Oracle Fusion Cloud ERP to ShipBob, mapping supplier locations to fulfillment centers.
  • Receive shipment and delivery events from ShipBob and update purchase order status in Oracle Fusion Cloud ERP in real time.
  • Validate ShipBob webhook signatures using HMAC-SHA256 to ensure event integrity.
  • Map products and quantities between Oracle purchase order line items and ShipBob fulfillment orders.
  • Track fulfillment exceptions and audit every order status change with timestamps and system source.

Questions

How does ml-connector handle the fact that Oracle Fusion Cloud ERP has no direct webhooks?
ml-connector polls the Oracle Fusion Cloud ERP REST API every 5 to 15 minutes, filtering purchase orders by LastUpdateDate to capture new and modified records. This pattern keeps the systems synchronized without requiring Oracle to push data. ShipBob provides webhooks for the reverse direction, so shipment status updates flow back to Oracle in real time.
What happens if a purchase order is not successfully created in ShipBob?
ml-connector logs the failure and retries the request with exponential backoff. If the order ultimately fails, the record is flagged in the audit log for manual intervention. Once the underlying issue is resolved (for example, a missing product code or invalid fulfillment center), the order can be replayed to ShipBob without re-polling Oracle.
How are product and location mappings set up between the two systems?
Purchase order line items in Oracle map to ShipBob products using a product code field, and supplier locations in Oracle map to ShipBob fulfillment center locations using a location identifier. These mappings are configured per customer in ml-connector and can be updated without changing either system.

Related integrations

Connect Oracle Fusion Cloud ERP and ShipBob

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started