Migrating to support multiple locations

Shopify has launched Locations. This feature enables merchants to manage inventory, fulfillments, and restocks across multiple locations from the Shopify admin.

All apps that update, fulfill, or restock inventory need to be updated to work with stores using multiple locations. To learn how to update your app to use the new APIs, see the guides on Managing fulfillments and Updating inventory.

Deprecation schedule

February 12th, 2018

The Inventory API is available to all partners and can be used on any shop in production regardless of Locations.

Shopify announces Locations. All partners now have the option to enable Locations on their development stores.

July 1st, 2018

Any apps created after July 1st, 2018 will no longer be able to set inventory_quantity or inventory_quantity_adjustment on the product variant.

New apps will no longer be able to create fulfillments without specifying a location_id.

New apps will no longer be able to refund and restock without specifying a location_id.

August 1st, 2018

Shops are able to add multiple locations where they can track inventory. Apps might become incompatible with shops with more than one location if the app hasn't been migrated to support multiple locations.

January 6th, 2019

Public apps can pass the bypas-multi-location-support: true header to continue using the following deprecated behaviour up until February 4th, 2019.

Public apps will no longer be able to set inventory_quantity or inventory_quantity_adjustment on the product variant.

Public apps will no longer be able to create fulfillments without specifying a location_id.

Public apps will no longer be able to refund and restock without specifying a location_id.

Shopify will require read/write_inventory permissions for all apps using the Inventory API.

February 4th, 2019

The bypass-multi-location-support: trueheader will no longer allow deprecated behaviors.

Does my app support shops with multiple locations?

Your app is not compatible with multiple locations if it performs any of the following deprecated API actions:

Manages inventory with the Product and Product Variant resources

Fulfills orders without specifying a location to fulfill from

Issues refunds and restocks items without specifying a location to restock the items

Tip

Any deprecated API request made by your app will include the response header X-Shopify-API-Deprecated-Reason. We highly encourage you to monitor your API requests for this header and update accordingly.

Issue refunds and restock items at a location using location_id and restock type

What happens if I don’t update my app to support stores with multiple locations?

Any apps using deprecated APIs installed on a shop with more than one location are at high risk of causing inventory discrepancies for their users.

If Shopify detects that your app is using legacy API endpoints, Shopify will take the following action to prevent inventory issues caused by apps using deprecated APIs on shops with more than one location:

Shopify merchants with your app installed will be blocked from adding a new location. This can lead to merchants uninstalling your app, contacting your support teams, or leaving negative reviews for your app.

Shopify merchants will be blocked from installing your app if they have more than 1 location:

Private apps won't be able to perform deprecated API actions. If you have a private app that is incompatible with multiple locations, the shop owner will be able to add a new location, but your app will no longer be able to perform deprecated API actions, and may therefore stop working.

Note

If you have migrated your app completely and are still seeing the gating behaviour, then contact Shopify from your Partner Dashboard.

Shopify is removing deprecated APIs on January 6th, 2019. After the deprecated APIs are removed, merchants will be able to add locations with your app installed and they'll be able to install your app on any shop regardless of the number of locations they have. If you have not migrated to support the new APIs, then your app will break because the deprecated APIs will return errors.

How can I get help with my migration?

You’ll need to specify what steps you're currently taking to support stores with multiple locations, and demonstrate that your app won’t cause inventory discrepancies for merchants who use multiple locations. Based on your submission, you might be asked to provide additional information.

Inventory permissions and authentication

To use the new Inventory API, your app must request either read_inventory or write_inventory permission during the Ask for permission step of OAuth.