How to prevent a third-party fulfillment provider from pulling US orders when they use Shopify Admin API directly?

Hi everyone,

We’re integrating a 3PL (BEX) that connects to Shopify using an Admin API access token and automatically pulls orders from Shopify.

Context:

  • We do have a custom Shopify app, provide Bex with the access token. The BEX pulls orders automatically through our app.

  • The 3PL does not support order filtering (e.g. by shipping country).

  • They should only handle Non-US orders.

  • US orders must be fulfilled by another provider.

Is there any Shopify-native way to prevent a third-party app from pulling or acting on US orders once it has Admin API access?

Additional:
To avoid routing issues, we’re planning to use Shopify order tags to clearly indicate which orders should be handled by BEX (e.g. fulfillment:BEX, fulfillment:MK).

However, they said they cannot. Their system cannot pull the orders based on conditions.

Thanks.

Hi @Phung_Tran

The only filtering option you would have is via the access scopes on your custom app. However you cannot restrict orders by arbitrary searches. You can only restrict to read_orders (60 days history) or real_all_orders. And read_all_orders just grants an indefinite time period.

The only other option you have is to remove the BEX connection and use their API directly instead of allowing their (limited) Shopify connection to pull orders directly.

Seems like a shortcoming of their Shopify connection, the only way around it is to build your own.

1 Like