Hello, I have been having trouble with the webhook from shopify, I am making a workflow that will synchronize updates from my shopify to my quick books. so Ideally, when someone made an update to a variant of my shopify product, it will send a notification to my webhook and process it accordingly, but unfortunately, it only sends notifications when I update the costing price of it, or if its included in the update someone made, but if i only want to change the unit price of it, it does not send a notification to my webhook. I hope there’s a solution for this.
Hey @jonasdvsev - I can definitely take a look into this.
Just want to confirm, is this with the products/update
topic? I’ll see if I can replicate this behaviour on my end here and prioritize looking into this when I hear back from you.
Hi @Alan_G Thank you for your response, regarding the topic, it is
inventory_items/update topic, as i want to receive a notif when i update a variant of product’s unit price and costing price. As I have mentioned in my previous topic, I only receive notifications when i am updating the costing price, but when I update the unit price of it, my n8n webhook does not receive anything.
Hey again @jonasdvsev - thanks for clarifying. I believe that this is expected behaviour at the moment. Just sharing the below screenshot for context:
If you aren’t receiving webhook data when you update the pricing of product (in red), but are when updating the unit price (in blue) on the inventory items update webhook topic, this is expected behaviour since the product pricing (what the customer pays) is tied to the product object. You would need to use the products/update
or a similar webhook for the products object to grab that data when it’s changed.
Hope this helps, let me know if I can clarify anything more on my end here.
Hi @Alan_G , thank you again for your response, I have tried that one also with products/update
topic, and it works like you said. It’s just that Variants can have different prices so I was wondering , if I use the products/update topic for updating a price of the variant, would there be a way to know which variant I just updated? because from my experience, when using the products/update
topic for updating variant price, I only received a json containing the parent product and have no idea which variant i just updated. Because I would want it to update as well the unit price of my product from my other platform (QuickBooks Online)
Hope i explained my inquiries well, thank you again for giving helpful infos.
@jonasdvsev, no worries, happy to help! It is definitely tricky. I just did a quick test on my end here, and I noticed products/update
will fire when you update both the unit cost per item and the “red” pricing for a variant.
If you did want to check the “red” pricing that the customer pays, the products/update
payload should contain all the variants attached to it though like this:
{
"admin_graphql_api_id": "gid://shopify/Product/10683737243670",
"body_html": null,
"created_at": "2025-07-17T14:42:55-04:00",
"handle": "default-variant-test-2",
"id": 10683737243670,
"product_type": "",
"published_at": null,
"template_suffix": null,
"title": "Default Variant Test",
"updated_at": "2025-07-25T12:34:05-04:00",
"vendor": "Area of Effect",
"status": "active",
"published_scope": "web",
"tags": "",
"variants": [
{
"admin_graphql_api_id": "gid://shopify/ProductVariant/61222311460886",
"barcode": "",
"compare_at_price": null,
"created_at": "2025-07-17T14:42:55-04:00",
"id": 61222311460886,
"inventory_policy": "deny",
"position": 1,
"price": "2.00",
"product_id": 10683737243670,
"sku": null,
"taxable": true,
"title": "Default Title",
"updated_at": "2025-07-25T12:34:05-04:00",
"option1": "Default Title",
"option2": null,
"option3": null,
"image_id": null,
"inventory_item_id": 63212059295766,
"inventory_quantity": 0,
"old_inventory_quantity": 0
},
{
"admin_graphql_api_id": "gid://shopify/ProductVariant/61222442106902",
"barcode": null,
"compare_at_price": null,
"created_at": "2025-07-17T14:55:02-04:00",
"id": 61222442106902,
"inventory_policy": "deny",
"position": 2,
"price": "1.00",
"product_id": 10683737243670,
"sku": null,
"taxable": true,
"title": "Yellow",
"updated_at": "2025-07-17T14:55:02-04:00",
"option1": "Yellow",
"option2": null,
"option3": null,
"image_id": null,
"inventory_item_id": 63212189941782,
"inventory_quantity": 0,
"old_inventory_quantity": 0
}
You’d just need to store the variant information on your client side and compare against the past state vs the new info from the webhook, if that makes sense.
The cost per item value (in blue), is present on the inventory/update webhook though. The easiest way to trace it back to a specific variant would be through either querying the SKU in a productVariant query in GraphQL or querying the inventory item itself like this:
query GetVariantFromInventoryItem {
inventoryItem(id: "gid://shopify/InventoryItem/63212059295766") {
id
sku
tracked
requiresShipping
unitCost {
amount
currencyCode
}
variant {
id
title
sku
barcode
position
inventoryQuantity
availableForSale
product {
id
title
handle
status
}
selectedOptions {
name
value
}
image {
url
altText
}
}
}
}
Hope this makes sense/helps - let me know if I can clarify anything on my end here