Skip to main content


The CargoWise Warehouse integration for Shopify registers itself as a fulfillment service app within Shopify. Shopify's preferred workflow for order fulfillment processing is followed by the integration.

Current functionality:

  • Import Shopify fulfillment orders into CargoWise as warehouse orders.
  • Update Shopify fulfillment orders with shipping details from CargoWise as they are processed.

Future planned functionality:

  • Shopify inventory management, updating the fulfillment location quantities from CargoWise.

Shopify Setup

The configuration steps required in Shopify to hook up order fulfillment using the integration.

Admin API

For the integration to work with the Shopify Admin API it needs to be registered as a custom app, and granted following Admin API scopes:

  • write_fulfillments, read_fulfillments
  • write_assigned_fulfillment_orders, read_assigned_fulfillment_orders
  • read_orders

The following details are required by the integration once the custom app is installed:

  • Admin API access token - revealed one time only when the app is installed (the token value starts with shpat_).
  • API secret key
  • API url - which takes the form of

Fulfillment Location

The Admin API will be used by the integration to register itself as a fulfillment service, adding an App Location within Shopify. This is a special type of location used for order fulfillment purposes.

Once the location has been registered by the integration:

  • Provide the location with shipping rates under Settings > Shipping and delivery > Shipping.
  • Give the location the relevant priority for order fulfillment location selection under Settings > Shipping and delivery > Order routing.
  • Add inventory to the location under Products.

Order Fulfillment Requests

Order fulfillment requests can either be requested manually or automatically. Most Shopify stores will prefer the hands-off automated approach.

Automatic Fulfillment

For simple scenarios where the same location is used to fulfill all orders, the Automatically fulfill the order's line items option available under Settings > Checkout > Order processing may be sufficient.

For more fine-grained control around which orders automatically have fulfillment orders created, Shopify's own Shopify Flow app allows a simple workflow to be added to achieve this.

A simple Shopify Flow app workflow to automate fulfillment requests for a specific location where the matches the name of the fulfillment service location: Shopify Flow app workflow

This workflow *.flow file can be imported into the Shopify Flow app to create the above workflow. The value in the second condition step will need setting to the location name you want to target.

Manual Fulfillment

Manual fulfillment requests can be initiated by either opening orders one-by-one and the Request fulfillment button used, or multiple orders can be selected from Orders and the More actions > Request fulfillment action used.

Shopify Workflow

Orders initially start with an Unfulfilled fulfillment status, changing to In progress once a fulfillment request has been made either manually or automatically.

If there are any issues importing the fulfillment order into CargoWise, for example because of unknown product SKUs, then the fulfillment status will be changed to Request declined and a note added to the order detailing the problem. In these scenarios, once the issue has been resolved in either Shopify or CargoWise, a manual fulfillment request can be initiated to reattempt the order import.

As orders are fulfilled the order's fulfillment status will change to Partially fulfilled and Fulfilled as relevant.


Why aren't order fulfillment requests going to the desired location?

  • Check the location has shipping rates defined for the order's destination.
  • Check that another location hasn't been given shipping order routing priority.
  • Check the location has product inventory allocated for all products being ordered.

More detail about setting up your location fulfillments in Shopify.