Ok I'm digging into the inventory API changes that are supposed to kick in on July 1st. I'm seeing some documentation contradiction (terrible band name).
So in the deprecation schedule it says that on July 1st. "Apps will no longer be able to set inventory_quantity or inventory_quantity_adjustment on the product variant."
However higher up on the page it says that the "changed behavior" for the Product API / Product Variant API is "Setting inventory_quantity will adjust a product variant's inventory at its location that has the lowest ID. The inventory at that location will be adjusted so that the sum of inventory across all locations matches the value set by inventory_quantity. Use the Inventory Level endpoint instead."
So if we are dealing with a shop that will only have a single location no code change is necessary right??? right???
You have to include a location ID even if the shop only has a single location. The changed behaviour on Product and Product Variant went into place when that document was pubished in late 2017, and will only continue to take place in a grace period for grandfathered apps after the release of multiple locations. This is in order to mitigate the affect on merchant's inventory if the apps do not migrate in time. I will update the migration guide to be more clear about this.
Ok thanks. Is this grace period July 1? Please let me know as this type of breaking change is really tough.
The grace period would extend after we have released multi location to merchants. This is in order for apps to not adversely affect inventory numbers for merchants who toggle this feature on, and have installed apps that are not migrated. No dates have been confirmed for this.
On this page:
The unique identifier of the location that the fulfillment should be processed for. In order to find the ID of the location, use the Location API.
The link 404s.
I need to obtain a location_id to feed in to my API call for fulfillments (I don't actually need to use locations or anything complicated at the moment). Is the only way to do this through the API and to create a location? And/or do I need to create a new fulfilment company too? I'm pretty confused how to keep our basic API call functioning now.
That link is being updated, you can still access the page through the search or side bar of the Admin API reference; https://help.shopify.com/api/reference/inventory/location.
You can simply perform a GET on /admin/locations.json in order to receive the location_id and then include that in your fulfillments to meet the minimum requirement.
From the 22nd August, all of our fulfillment API calls are now returning the error message:
must be stocked at the same location
I am passing the ID of the location that was automatically created when I used the API to create a "fulfillment company" to satisfy the new requirements.
What does this mean/why has this broken?
Fulfillment to location is 1:1. If you have items at multiple locations on an order, you need to make multiple fulfillments.
This error is saying not all items you are trying to fulfill are stocked at the same location, in this case the fulfillment service you created.