ml-connector
IFS CloudShipBob

IFS Cloud and ShipBob integration

IFS Cloud runs your enterprise supply chain and accounting. ShipBob runs your order fulfillment. Connecting the two keeps inventory levels accurate across systems and ties fulfillment back into your general ledger. Customer orders placed in IFS Cloud flow to ShipBob for picking and packing, and shipment confirmations feed back into IFS Cloud's order fulfillment records. Inventory movements at ShipBob fulfillment centers stay synchronized with IFS Cloud stock levels and supply planning.

How IFS Cloud works

IFS Cloud exposes purchase orders, supplier invoices, sales orders, inventory, general ledger accounts, and financial vouchers through OData v4 REST API against a tenant-specific base URL. Authentication uses OAuth2 Client Credentials grant with a token lifetime of approximately 60 minutes. IFS offers Event Actions for server-side triggers but they require manual per-customer configuration in the admin UI and are not API-driven, so the recommended pattern is pull-based polling of OData endpoints with filters on modified timestamps. IFS rate limits at approximately 1000 requests per minute per tenant and enforces OData ETag headers for mutations to prevent concurrent edits.

How ShipBob works

ShipBob exposes orders, shipments, products, inventory, warehouse receiving orders, returns, and billing through REST API with OAuth2 or Personal Access Token authentication. All API calls require the Authorization header and shipbob_channel_id header to identify which application channel is writing. ShipBob synchronizes via webhooks for order shipment, tracking updates, delivery, returns, and receiving events, with HMAC-SHA256 signature verification using the v1 envelope. ShipBob recommends the OAuth2 Authorization Code flow for multi-merchant integrations, though Personal Access Token is acceptable for single-merchant setups.

What moves between them

The primary flow moves customer orders from IFS Cloud to ShipBob. Each IFS Cloud sales order line item generates a ShipBob order inbound receipt or picks from existing inventory, and ShipBob confirms the shipment back to IFS Cloud as a fulfillment voucher linked to the original order. Inventory levels flow bidirectionally: IFS Cloud sends stock replenishment instructions to ShipBob as inbound warehouse receiving orders, and ShipBob sends back current inventory levels and pick activity to keep IFS Cloud supply planning synchronized. Returns flow from ShipBob back into IFS Cloud as goods return vouchers.

How ml-connector handles it

ml-connector pulls IFS Cloud sales orders via OData query filtered on the order date and status fields, then reads the customer order line items and product SKUs. For each line, it checks ShipBob inventory levels against the shipbob_channel_id and creates or updates a ShipBob order. ml-connector reads the IFS Cloud OData ETag on each record before patching to satisfy IFS concurrency requirements. It listens for ShipBob webhooks on order.shipped, order.shipment.tracking.updated, and order.shipment.delivered, validates the HMAC-SHA256 signature, and posts the shipment confirmation back to IFS Cloud as a fulfillment voucher with a link to the original sales order. Inventory synchronization polls IFS Cloud inventory levels on a daily schedule and pushes bulk inventory updates to ShipBob as inbound warehouse receiving orders. When ShipBob hits rate limits or OAuth tokens expire, ml-connector backs off with exponential jitter and refreshes the ShipBob access token automatically.

A real-world example

A mid-sized e-commerce manufacturer sells custom components through a web storefront that feeds into IFS Cloud. Order volume fluctuates seasonally. Before integration, the fulfillment team worked from printed picking lists, manually entered shipment confirmations back into IFS Cloud, and reconciled inventory counts weekly by manual spreadsheet. With IFS Cloud and ShipBob connected, each order flows automatically into ShipBob's picking system, shipments confirm back into IFS Cloud immediately, and inventory is synchronized daily so IFS supply planning and warehouse staff always see the same stock on hand. The manual re-entry step is eliminated, and the finance team can close the accounting period without chasing inventory discrepancies.

What you can do

  • Sync IFS Cloud sales orders to ShipBob as inbound orders, translating line items and customer details to ShipBob's schema.
  • Receive ShipBob shipment, tracking, and delivery webhooks and post fulfillment confirmations back into IFS Cloud.
  • Synchronize inventory levels from IFS Cloud to ShipBob daily, ensuring both systems reflect the same stock on hand and preventing oversells.
  • Handle IFS Cloud OData ETag concurrency requirements on mutations and refresh ShipBob OAuth tokens when 401 responses occur.
  • Process ShipBob return and receiving events, translating them into IFS Cloud goods return vouchers and inbound receipts.

Questions

How do sales orders flow from IFS Cloud to ShipBob?
ml-connector polls IFS Cloud for sales orders filtered on order date and status, then reads the customer order line items and product SKUs. For each line, it queries ShipBob inventory and creates a ShipBob order. IFS Cloud provides the company code, customer, and shipping address; ShipBob uses the channel ID to write the order on behalf of your fulfillment channel.
What happens when ShipBob shipments arrive back in IFS Cloud?
ml-connector listens for ShipBob webhooks on order.shipped, order.shipment.tracking.updated, and order.shipment.delivered. It validates the HMAC-SHA256 signature, extracts the tracking number and carrier, and posts a fulfillment voucher into IFS Cloud linked to the original sales order. This ties fulfillment status directly to order accounting.
How does ml-connector handle IFS Cloud's ETag and rate limit requirements?
ml-connector reads the IFS Cloud OData ETag before patching any record to satisfy optimistic concurrency control. When IFS rate limits return HTTP 429, ml-connector backs off with exponential jitter and retries. It refreshes expired ShipBob OAuth tokens automatically on 401 responses.

Related integrations

Connect IFS Cloud and ShipBob

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

Get started