Which orders to import
Lesson 6 of 18 8 min read
Use the order filters to bring in exactly the Shopify orders your team should process, and no others.
The first question for any Shopify integration is "which orders should reach the warehouse?". Bring in too few and orders go unshipped; bring in too many and you ship unpaid or already-fulfilled orders. In this lesson you'll learn the filters that decide which orders are eligible, and when to change each one.
How the filters work together
An order is imported only if it passes every filter. Think of them as a series of gates (the order they're drawn in here is just for illustration):
Dates: where the integration starts
| setupDate | Only orders created on or after this date are imported. It is set automatically when the Configuration is first created and is not normally changed. It stops historical orders flooding in when you go live. |
|---|---|
| lastImportDate | The timestamp of the most recent import. Supply Lens updates it after each run so the next run only fetches orders modified since. Managed by the system: do not edit it. |
Payment: is the order paid?
| financialStatuses | The Shopify payment statuses an order must have to be imported. Default: paid, partially_refunded, refunded. |
|---|
The values you can list are authorized (authorised but not captured), expired, paid,
partially_paid, partially_refunded, pending, refunded and voided.
When to change it. Keep the default if you only ship once payment is taken. Add
authorized if your store authorises cards at checkout and captures payment later, and
you want those orders picked as soon as they're placed. Add pending or partially_paid
only if you're comfortable shipping before payment is complete, for example for trusted
trade customers on payment terms.
Fulfilment: does it still need shipping?
| fulfillmentStatuses | The Shopify fulfilment statuses an order must have to be imported. Default: unfulfilled. |
|---|---|
| fulfillmentOrderStatuses | Shopify splits every order into one or more fulfilment orders, one per fulfilment location. Only fulfilment orders with a status in this list are imported, each as a separate Document. Default: open, in_progress, scheduled, on_hold. |
The fulfilment statuses are unfulfilled, partially_fulfilled, fulfilled,
in_progress, on_hold, scheduled, pending_fulfillment and restocked.
When to change it. The default, unfulfilled, suits most stores: once something has
been fulfilled, you don't want it imported again. Add partially_fulfilled if part of an
order can be shipped elsewhere (for example from a shop) and the rest should still come
through. Add fulfilled only for unusual set-ups where orders are fulfilled in Shopify but
you still want them in your back-office system, for example for invoicing.
Channel: point of sale and countries
| includePos | When true, orders from Shopify POS (point of sale, the in-person till) are imported alongside online orders. Default: false. |
|---|---|
| customerCountryFilter | When it has values, only orders from customers in those countries are imported. Use country codes or names as they appear in Shopify. Leave it empty to include every country. |
When to change them. Turn on includePos if your back-office system should see shop
and pop-up sales too, for stock or accounting. Leave it off if POS sales are handled
separately. Use customerCountryFilter when one Supply Lens set-up should only handle
some countries, for example when an overseas warehouse has its own route.
Timing: give other apps a head start
| importDelay | A wait before an order is imported after it arrives, written as a duration such as 00:05:00 for five minutes. |
|---|
When to change it. If another Shopify app edits orders just after they're placed (a fulfilment app, a fraud check, an app that adds gift messages), set a delay so Supply Lens picks up the order after those changes, not before.
Hilltop Coffee's filters
Hilltop's café uses Shopify POS, and finance wants café sales kept out for now, so
includePos stays false. Their subscription app adds a note to each order a minute or
two after checkout, so Priya sets importDelay to 00:05:00. Payment and fulfilment stay
on the defaults:
{
"financialStatuses": ["paid", "partially_refunded", "refunded"],
"fulfillmentStatuses": ["unfulfilled"],
"includePos": false,
"customerCountryFilter": [],
"importDelay": "00:05:00"
}
Recap
- An order is imported only if it passes every filter.
setupDatesets the starting point;lastImportDateis system-managed.financialStatusescontrols payment (default: paid, partially refunded, refunded).fulfillmentStatusesandfulfillmentOrderStatusesstop already-fulfilled orders coming in again.includePos,customerCountryFilterandimportDelayhandle channel, country and timing.
Quick guides for this topic
Your progress is saved in this browser. Create a free account to keep it everywhere, take quizzes and earn certificates.