Configuring Shopify
Setting up Order Routing
After installing the Boxture app, a fulfillment service will be created. You can link a location to the fulfillment service within Boxture by navigating to the integration settings.
Note: Admin access is required to access the integration settings.
If no location is linked to the fulfillment service, orders will not be linked to a location when created, meaning Boxture will decide from which location the order will be shipped.
To prioritize fulfilling orders from the fulfillment service app, follow these steps to configure order routing:
- Navigate to your store settings.
- Go to Shipping & Delivery > Order Routing.
- Add or edit the 'Use ranked locations' rule.
- Create a new 'location group' and move the group to the top of the list by dragging the group.
- Find the location linked to the fulfillment service and drag it into the group. (By default, the location is named something similar to 'Boxture#AB1234')
- Save the settings by clicking Done > Save.
This is just an example; you can set up rules for your order routing as you see fit.
Inventory & Stock Levels
Shopify pulls inventory data every hour, and Boxture cannot influence this process. The inventory data contains the stock levels of:
- All products
- Product aliases (Configurable in the Boxture app on the product edit page)
- Kits that can be assembled using components (Configurable in the Boxture app on the product edit page)
The stock quantity is calculated as follows:
stock quantity = SUM(available + allocated + picking + picked + packed)
If a product is not stocked at the fulfillment service location, you must configure Shopify to allow stock allocation from that location. Navigate to the product page in Shopify and select the location from which the stock should be allocated.
To edit products in bulk:
- Select the products you want to edit. (You can also select all products)
- Click on Bulk Edit.
- Click on Columns and add the location column from which the stock should be allocated. If the location column isn't visible, select the fulfillment service location.
- Use shift + click to select a range of products or ctrl + click to select individual products. Once you have selected the products, click on the highlighted field with borders in the location column. A popup will appear where you can enable the Stock at location toggle.
- Click on Save to save the changes.
Setting up Delivery
Note: Admin access is required to set up a shipping method in Boxture.
You can link a shipping rate in Shopify to a Boxture shipping method in the following ways: (Shipping rates are created in Shopify under Settings > Shipping & Delivery General Shipping Rates)
- Prefix the name of the shipping rate in Shopify with the code of the Boxture shipping method followed by a hyphen surrounded by spaces (
-
). - Match the name of the shipping rate in Shopify with the code of the Boxture shipping method.
Here are some examples:
Boxture Shipping Method Code | Shopify Delivery Method Name |
---|---|
DHL | DHL - Worldwide |
UPS | UPS - Standard Shipping |
FEDEX | FEDEX |
In the first two examples, the Shopify delivery method name is prefixed with the Boxture shipping method code, followed by a hyphen. In the third example, the Shopify delivery method name matches the Boxture shipping method code directly.
Orders
Enable the following webhooks on the integration settings page to recognize and create orders for fulfillment:
- orders/create
- orders/update
- orders/cancelled
- fulfillment_orders/moved
Note: Admin access is required to access the integration settings.
By enabling the 'orders/create' and 'orders/update' webhooks, the system can pick up on new orders created in Shopify. Additionally, if the 'fulfillment_orders/moved' webhook is enabled, a fulfillment request will be automatically triggered if a fulfillment order changes location.
When an order is created in Shopify, the system will attempt to accept all open fulfillment requests within Shopify and create an order for each fulfillment order. The system will group the orders and assign the same customer reference number to each order if Shopify splits an order into multiple fulfillment orders.
If an order is canceled in Shopify, the 'orders/cancelled' webhook will trigger. The system will then try to cancel the order. An order will only be canceled if all items in the order are in a cancellable state. To partially cancel an order, cancel the order in Boxture. After processing, the system will notify Shopify that certain items can't be fulfilled. Canceling an order in Boxture will also cancel the order in Shopify.
Once a shipment is processed, the system will notify Shopify that the order has been (partially) fulfilled and send the tracking information to Shopify, including the carrier name, tracking number, and tracking URL.
%%{init: {
"theme": "base",
"themeVariables": {
"darkMode": true,
"fontFamily": "monospace",
"primaryColor": "#fbf1c7",
"secondaryColor": "#a89984",
"tertiaryColor": "#d79921",
"lineColor": "#ffcb59",
"primaryTextColor": "#171717",
"mainBkg": "#eae2d2",
"nodeBorder": "#a89984",
"clusterBkg": "#3c3836",
"clusterBorder": "#a89984",
"defaultLinkColor": "#d79921",
"titleColor": "#fbf1c7",
"edgeLabelBackground": "#d2f0e3",
"rejectedColor": "#e06c75"
}
}
}%%
flowchart TD
subgraph Shopify
OrderCreated[Order Created]
ShopifyCancelRequest[Cancellation Request]
end
OrderCreated -- "Fulfillment Request" --> FulfillmentRequest{Fulfillment Request}
FulfillmentRequest -- "Accepted" --> CreateOrder[Create Order]
FulfillmentRequest -- "Rejected" --> NotifyShopifyRejected[Notify Shopify]
subgraph Boxture
subgraph OrderProcessing
CreateOrder --> Pick[Pick]
Pick --> Pack[Pack]
Pack --> Ship[Ship]
Ship --> NotifyShopifyFulfilled[Notify Shopify]
end
ShopifyCancelRequest --> CheckCancellable{All Items Cancellable?}
CheckCancellable -- "Yes" --> FullCancel[Full Cancel]
FullCancel --> NotifyShopifyFullCancel[Notify Shopify]
CheckCancellable -- "No" --> NotifyShopifyCancelRejected[Notify Shopify]
subgraph PartialCancellation
PartialCancel --> CancelIndividualLines[Cancel Individual Lines]
CancelIndividualLines --> NotifyUnfulfilledLines[Notify Shopify]
end
end
class NotifyShopifyRejected,NotifyShopifyCancelRejected rejectedColor
Automatic Fulfillment Requests
Shopify Flow can be configured to automatically request fulfillment for each fulfillment order created in Shopify without the need for manual fulfillment requests.
(A template can be found here: Submit fulfillment request for paid orders that use a specified fulfillment service)
It is recommended to add a delay of 5-10 minutes to the flow to ensure that the order is fully processed before the fulfillment request is submitted.
Products
During the initial setup of the integration, you can synchronize product data by clicking the 'Sync Products' button on the integration page. This action will pull all products from Shopify and create them in Boxture. We recommend enabling all product webhooks to keep the products in sync.
Note: The synchronization process is one-way; any product information within Shopify will remain untouched.