SAP ECC and ShipBob integration
SAP ECC runs your financial close and inventory valuation. ShipBob runs your fulfillment operations across multiple warehouses. When the two systems are disconnected, you spend time reconciling inventory counts, re-entering shipping costs, and chasing stock level discrepancies across locations. SAP ECC and ShipBob connected keep your inventory accounts accurate and your fulfillment orders reflected in your GL immediately, without manual re-keying or spreadsheet sync cycles.
What moves between them
The primary flow is from ShipBob into SAP ECC. When ShipBob completes a warehouse receiving order (WRO), ml-connector reads the receiving details, matches the materials to SAP material masters using SKU or external ID, and posts a goods receipt into SAP ECC's inventory management and GL. Inventory balances from ShipBob are also synced back to SAP by storage location and plant, updating the inventory tables that drive month-end valuation. Return records from ShipBob flow into SAP as stock reversals. Outbound, SAP ECC sends purchase orders and shipment demands to ShipBob via scheduled polling or IDoc push (if WE21 is configured), so fulfillment orders reflect the latest demand from the SAP supply chain.
How ml-connector handles it
ml-connector manages the on-premises agent requirement for SAP ECC by accepting the customer's RFC connection parameters (host, port, client, username, password) and validating connectivity before any transaction. It refreshes ShipBob OAuth tokens before expiry (at 50 minutes) and retries failed token calls with exponential backoff. On receiving a ShipBob WRO webhook event, it verifies the HMAC signature using the webhook secret stored encrypted, then queries ShipBob for full receiving details. It then maps each received line item to an SAP material master via external ID or SKU cross-reference, retrieves the GL account and cost center for goods-received-in-transit from the SAP material master extended data, and calls BAPI_GOODSMVT_CREATE followed by BAPI_TRANSACTION_COMMIT to post the receipt atomically. If BAPI_GOODSMVT_CREATE fails due to a missing storage location or cost center, it rolls back and queues the event for replay after the SAP Basis team adds the reference data. Inventory sync from ShipBob to SAP runs on a schedule tied to business hours (e.g., every four hours) and updates the MARD table (inventory by plant and storage location) using RFC_READ_TABLE followed by BAPI_MATERIAL_STOCK_GET and a series of BAPI_GOODSMVT_CREATE with negative quantities to reverse overstocks. Every WRO receipt and inventory update carries a full audit trail with the ShipBob event ID and timestamp.
A real-world example
A mid-market e-commerce brand manufactures products at a third-party vendor and stores finished goods at three ShipBob fulfillment centers. Finance runs SAP ECC on-premises to manage the supply chain cost accounting and monthly closing. Before the integration, the warehouse team sent inventory reports to finance by email after each receiving event, and finance re-entered the goods receipts into SAP by hand, often three days late. Month-end inventory variance reports showed stock mismatches because SAP had not yet been updated with the latest receipts. With SAP ECC and ShipBob connected, each warehouse receiving order posts into SAP automatically the same day, allocated to the correct cost center and plant, and inventory balances sync every four hours. Finance can close the books without waiting for manual receiving entry, and inventory reconciliation starts with current, audited numbers.
What you can do
- Post ShipBob warehouse receiving orders into SAP ECC as goods receipts, with GL impact to the materials ledger and cost of goods sold accounts.
- Sync inventory balances from ShipBob across multiple fulfillment locations back into SAP ECC storage locations and plants, updating the MARD table on a scheduled basis.
- Map ShipBob SKUs to SAP material masters and fulfill backlinks so purchase orders from SAP flow to ShipBob as shipment demands.
- Verify ShipBob webhook signatures using HMAC-SHA256, refresh OAuth tokens before expiry, and manage the on-premises RFC agent connection to SAP ECC.
- Maintain a full audit trail of every receiving transaction and inventory sync with ShipBob event IDs, GL posting references, and replay capability for failed postings.
Questions
- How does ml-connector handle the on-premises RFC agent requirement for SAP ECC?
- SAP ECC is an on-premises system that does not expose RFC or BAPI calls directly to the cloud. ml-connector accepts the customer's RFC connection parameters (host, port, client, username, password, possibly SNC settings) and stores them encrypted. It validates the connection before any transaction, and every BAPI call (BAPI_GOODSMVT_CREATE, BAPI_TRANSACTION_COMMIT, etc.) is routed through the customer's SAP .NET Connector or Java Connector running on the local network. If the agent is unavailable, the WRO event is queued for replay.
- What happens if SAP ECC rejects a goods receipt because a storage location or cost center does not exist?
- BAPI_GOODSMVT_CREATE returns an error and ml-connector rolls the transaction back without committing. The WRO event is marked as failed, logged in the audit trail with the SAP error message, and queued for manual review or replay once the SAP Basis team has created the missing reference data in SAP Configurator (transaction SPRO or transaction SICF for OData exposure).
- Does the integration require ShipBob webhooks or can it poll instead?
- ShipBob pushes fulfillment events via webhooks only; there is no polling API for receiving or shipment events. ml-connector registers a webhook endpoint with ShipBob for the relevant event topics (wro.created, wro.updated, wro.completed) and verifies every incoming webhook signature using HMAC-SHA256 with the shared secret. SAP ECC polling (for outbound POs) is supported via scheduled RFC_READ_TABLE queries on the EKKO and EKPO tables if the customer prefers pull over IDoc push.
Related integrations
More SAP ECC integrations
Other systems that connect to ShipBob
Connect SAP ECC and ShipBob
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started