Supply Lens

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):

Rendering diagram...

Dates: where the integration starts

setupDateOnly 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.
lastImportDateThe 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?

financialStatusesThe 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?

fulfillmentStatusesThe Shopify fulfilment statuses an order must have to be imported. Default: unfulfilled.
fulfillmentOrderStatusesShopify 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

includePosWhen true, orders from Shopify POS (point of sale, the in-person till) are imported alongside online orders. Default: false.
customerCountryFilterWhen 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

importDelayA 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.
  • setupDate sets the starting point; lastImportDate is system-managed.
  • financialStatuses controls payment (default: paid, partially refunded, refunded).
  • fulfillmentStatuses and fulfillmentOrderStatuses stop already-fulfilled orders coming in again.
  • includePos, customerCountryFilter and importDelay handle channel, country and timing.

Quick guides for this topic

Complete and continue

Your progress is saved in this browser. Create a free account to keep it everywhere, take quizzes and earn certificates.