Topics covering webhook creation & management, event handling, Pub/Sub, and Eventbridge, in Shopify apps.
Hey everyone!
I want to be updated whenever the inventory level quantity changes for an inventory item.
From the docs, it says that each inventory level belongs to one inventory item and has a location.
I am subscribing to these webhooks to be notified:
Solved! Go to the solution
This is an accepted solution.
Hey @arjun_rajkumar - great question, thanks for getting in touch. You're on point here - generally the inventory_level update webhook should trigger when an order is created, updated or cancelled as long as the product variant is tied to an inventory item. The only edge case I can think of is if an order is created with a custom line item that doesn't have an associated product or variant in the store. Here, you might want to consider listening to the order/create, order/updated, and order/cancelled webhooks as well to ensure you capture those if needed.
The only other instance where the inventory_level/update webhook wouldn't trigger would be the rare case where the webhook itself isn't sent out. Our webhooks are generally pretty reliable, but as a general rule we can't always guarantee they'll be sent out (delays, etc.), so we do recommend building in regular data reconciliation for instances like this (polling the specific endpoints at a set intervals, for instance). There's a bit more info on best practices here if you haven't checked out that doc yet.
Hope this helps!
Al | Shopify Developer Support
Developer Support @ Shopify
- Was this reply helpful? Click Like to let us know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog
I checked with a dummy draft order -- and it's good to know that the inventory_level update webhook gets triggers whenever an order is created.
get back a payload like this:
{"inventory_item_id"=>47167843205411, "location_id"=>78603518243, "available"=>33, "updated_at"=>"2023-06-06T03:19:54-04:00", "admin_graphql_api_id"=>"gid://shopify/InventoryLevel/114990874915?inventory_item_id=47167843205411"}
Just wanted to check if there are any instances when an inventory_level update webhook will not be triggered when an order is created/updated/cancelled?
This is an accepted solution.
Hey @arjun_rajkumar - great question, thanks for getting in touch. You're on point here - generally the inventory_level update webhook should trigger when an order is created, updated or cancelled as long as the product variant is tied to an inventory item. The only edge case I can think of is if an order is created with a custom line item that doesn't have an associated product or variant in the store. Here, you might want to consider listening to the order/create, order/updated, and order/cancelled webhooks as well to ensure you capture those if needed.
The only other instance where the inventory_level/update webhook wouldn't trigger would be the rare case where the webhook itself isn't sent out. Our webhooks are generally pretty reliable, but as a general rule we can't always guarantee they'll be sent out (delays, etc.), so we do recommend building in regular data reconciliation for instances like this (polling the specific endpoints at a set intervals, for instance). There's a bit more info on best practices here if you haven't checked out that doc yet.
Hope this helps!
Al | Shopify Developer Support
Developer Support @ Shopify
- Was this reply helpful? Click Like to let us know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog
Thank you for the reply. Makes sense - great idea about polling specific end points, and and am also exploring Amazon Event Bridge. Thank you.
Thank you! One doubt I have with the same is also when fulfilment apps handle orders for a store - e.g. a dropshipping app, which fulfils orders for the store. Would the same inventory level webhooks be triggered the same for this?
From the docs - "For fulfillment orders which are assigned to a location that is managed by a fulfillment service, a merchant or an Order Management App can send a fulfillment request to the fulfillment service which operates the location to request that they fulfill the associated items. A fulfillment service has the option to accept or reject this fulfillment request.
Once the fulfillment service has accepted the request, the request can no longer be cancelled by the merchant or order management app and instead a cancellation request must be submitted to the fulfillment service.
Once a fulfillment service accepts a fulfillment request, then after they are ready to pack items and send them for delivery, they create fulfillments with the Create a fulfillment for one or many fulfillment orders endpoint. They can provide tracking information right away or create fulfillments without it and then update tracking information for fulfillments."
Would the inventory level webhook have been triggered normally as soon as the order is created in this case also?
hey, @arjun_rajkumar is it possible to provide full inventory webhook api code to me? i am new in this field so can you please help.