Logistics Integrations
A logistics integration connects Order Management System to a third-party logistics (3PL) provider — the company that stores and ships your physical goods. Integrations power the file-based fulfillment round-trip and, where supported, fully automatic fulfillment.
Supported providers
| Capability | ShipBob | NextSmartShip |
|---|---|---|
| Order export format | ✓ | ✓ |
| Bulk fulfill format | ✓ | ✓ |
| Automatic fulfillment | ✓ | ✓ |
Both providers support automatic fulfillment — see that guide for how submitted orders flow to your provider and come back fulfilled.
Connecting a provider
Create an integration from Settings > Integrations in the Orders view. Switch on API connection to let Order Management System talk to the provider's API — that is what reveals the credential fields, and what every live capability depends on: automatic fulfillment, stock levels on the Inventory page, and shipment updates coming back by webhook. Each provider asks for its own credentials:
- ShipBob — an API Key, plus the Environment (sandbox or production) the key belongs to.
- NextSmartShip — a Client ID and Client Secret. These are the API credentials from your NextSmartShip account; Order Management System exchanges them for a short-lived access token, then reuses that token across submissions until it expires. NextSmartShip has no sandbox, so integrations always run against production.
Credentials are verified against the provider the moment you save, so an incorrect value is reported immediately rather than surfacing later as failed orders.
Completing the API connection
Shipment updates flow back to Order Management System through a webhook — it is how the system learns that the provider shipped an order and records the fulfillment with its tracking details. How that webhook is connected depends on the provider.
NextSmartShip
Nothing to do. The webhook is registered with NextSmartShip automatically when you save the integration, and the signature is verified using the Client Secret you already provided.
ShipBob
After you create an integration with the API connection switched on, its detail page shows a Webhook URL with a copy button. To connect it:
- Copy the Webhook URL and register it as a webhook endpoint in your ShipBob account.
- ShipBob issues a signing secret for that webhook. Copy the secret from its webhook settings.
- Paste it into the integration's Webhook Secret field in Order Management System and save.
Order Management System uses the secret to verify that incoming shipment updates genuinely come from ShipBob.
Product matching
When you export orders in a provider's format — or when orders are submitted automatically — each item must reference a product the provider can find in its own catalog. Each provider matches products by a different value:
- ShipBob matches by product name — your product name must match the product name in your ShipBob catalog.
- NextSmartShip matches by SKU — your product SKU must match the product SKU in NextSmartShip.
With Match by product name (or Match by internal SKU) selected, exports and automatic submissions use these values as-is. That is the default, and it is all you need when the two catalogs already agree.
If your product names or SKUs do not match the provider's catalog, clear that checkbox and map the products that differ. A mapping links one of your SKUs to the value the provider expects — a ShipBob product name or a NextSmartShip SKU — and exports and automatic submissions then use the mapped value instead. Orders whose SKU has no mapping are skipped on export.
Mappings are created and edited from the product itself, on its page in Inventory — the SKU is context there rather than something to re-type, and the stock the mapping unlocks appears on the same page. This section lists what the integration currently knows, each SKU linking to the page that owns it, and lets you remove a mapping.
Selecting Match by product name (or Match by internal SKU) removes every mapping for that integration, because direct matching makes them meaningless. You are asked to confirm first.