Deadline Reminder: Important changes to ProductVariant, Refund and Fulfillment APIs

Shopify Staff
Shopify Staff
469 36 92

Welcome back from the holidays!

PUBLIC APPS

We wanted to remind you that as of January 7th, 2019 your Public apps will no longer have access to the deprecated APIs and will no longer be able to perform the below behavior by default:

  • Set inventory_quantity or inventory_quantity_adjustment on the product variant.

  • Create fulfillments without specifying a location_id.

  • Refund and restock without specifying a location_id.

  • Use the Inventory API without required read/write_inventory permissions.

 

If your Public app is not updated by the deadline

  • Any API calls performing the deprecated actions above will fail. This may lead to merchant uninstalls, support requests and bad reviews.

  • Merchant’s with locations will continue to be blocked from installing your application.

 

If you need more time

We are implementing a 30 day grace period where we will allow you to use the deprecated APIs if you pass a special header in your API requests.  If your app is performing any of the above actions and you wish the behavior to continue during this grace period you need to include the bypass-multi-location-support: true header in all of your API requests.  

This solution will only work for your app until February 4th 2019, and is meant to provide more time to complete the migration, not as a permanent alternative.

 

To learn how to update your app to use new APIs that support stores with multiple locations, see our Migration Guide.

If you’re having issues migrating your apps to support multiple locations, please create an issue in your partner dashboard support section.

 

PRIVATE APPS

Existing Private apps will not be affected by the above change.  Having a private app that is not upgraded to support locations does not restrict you from enabling the locations feature, and will not disable the usage of the deprecated API calls.  If you enable the locations feature however, your app will no longer be able to make deprecated calls.

New Private apps cannot use the deprecated APIs still.

 

Regards,

Shopify Apps Team

Developer Experience @ Shopify
1 Like
Shopify Staff
Shopify Staff
469 36 92

Updated the above post to clarify the difference between Public and Private apps.

Developer Experience @ Shopify
0 Likes
Shopify Expert
28 0 3

Thanks - curious as to whether there's an ultimate deadline for grandfathered private apps to use locations?

Hidden Gears: Web Design, Development + Digital Marketing
0 Likes
Excursionist
22 0 5

Are there any updates from Shopify on when Multi-Location functionality will work fully/properly in the API? Many of the features provided to customers in the Shopify UI do not work in the API. For example, Fulfillment Priority: https://ecommerce.shopify.com/c/shopify-apis-and-technology/t/shopify-fulfillment-priority-psa-55304...

0 Likes
New Member
3 0 0

Thanks for the information. We have an application that still has not been migrated to fully support multiple locations, as such we started using the suggested header (bypass_multi_location_support: true). However, we are receiving the deprecated error message regardless when submitting a variant update.

{

    "errors": {

        "base": [

            "Write requests to inventory_quantity and inventory_quantity_adjustment are no longer supported. Please use the Inventory Levels API."

        ]

    }

}

0 Likes
Shopify Staff
Shopify Staff
469 36 92

We have an application that still has not been migrated to fully support multiple locations, as such we started using the suggested header (bypass_multi_location_support: true). However, we are receiving the deprecated error message regardless when submitting a variant update.

Hi JC, can you provide either the app name making this request or the request-id from the header response?

Developer Experience @ Shopify
0 Likes
New Member
3 0 0

Hi Ryan,

We have two scenarios and they are as follows:

  1. Request ID: 07974a58-799a-4530-b26d-8e4c701f4d54 - We receive no error but the inventory quantities are not updated.
  2. Request ID: 53e6fede-9a14-4556-bad0-3ce538a06e0a - We receive the deprecation error and no inventory is updated.

Both requests are sent with the provisional header. Thanks for the help!

0 Likes
Shopify Partner
4 0 1

Hi,

    We also tried using said header to bypass multi location support and received error.

{"errors":{"base":["Write requests to inventory_quantity and inventory_quantity_adjustment are no longer supported. Please use the Inventory Levels API."]}}
Response header X-Request-Id we received is "2db5fab7-9dad-4314-8c89-5f1710224567"

 

0 Likes
Shopify Staff
Shopify Staff
469 36 92

Thanks, I'll look into these.  Can I ask how you are passing the header as well? With a gem, curl, or some other module/sdk?

Developer Experience @ Shopify
0 Likes
New Member
3 0 0

For the requests below:

  1. Request ID: 07974a58-799a-4530-b26d-8e4c701f4d54 - We receive no error but the inventory quantities are not updated.
  2. Request ID: 53e6fede-9a14-4556-bad0-3ce538a06e0a - We receive the deprecation error and no inventory is updated.

These are being done for testing purposes through Postman and the headers are as follows (bypass header in bold):

PUT /admin/products/8771348240.json HTTP/1.1

Host: XXXXXXX [removed]

X-Shopify-Access-Token: XXXXXX [removed]

Content-Type: application/json

bypass_multi_location_support: true

Cache-Control: no-cache

Postman-Token: XXXXXX [removed]

0 Likes