Shopify
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. Currently CargoWise's eAdaptor Inbound Service doesn't make this information available, but it is on CargoWise's long-term roadmap.
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
SHOP-NAME.myshopify.com
.
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 fulfillmentOrder.assignedLocation.location.name
matches the name of the fulfillment service location:
This workflow *.flow file can be imported into the Shopify Flow app to create the above workflow. The fulfillmentOrder.assignedLocation.location.name
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 individually 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.
Overriding the Workflow
Troubleshooting
Order fulfillment requests are not 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.
Automatic shipping notifications are not being sent to the customer:
This is usually caused by the transport company name used in CargoWise not being an exact match against any of the Shopify supported tracking companies. If the company name in CargoWise cannot be changed to match, additional configuration can be defined to translate CargoWise company names into their Shopify equivalents.
This doesn't apply when using a single service for shipping, such as Starshipit or GoSweetSpot, where we can build a consistent tracking url to pass to Shopify.
I need to manually update an order fulfillment request:
Occasionally you may need to manually update order fulfillment requests. This can arise when different product SKUs have been used for fulfillment, such as for substitutions, causing a product mismatch which prevents the order fulfillment being updated automatically.
Shopify provides instructions for manually cancelling, reverting and fulfilling order fulfillment requests.