Hi everyone,
I’m working on a Shopify app using the Shopify React Router template with API version 2026-01.
I’m using the built-in webhook handler:
const { topic, shop, payload } = await authenticate.webhook(request);
The issue
When a merchant updates a single product’s inventory or multiple products at once (bulk editor), I receive:
-
the correct number of webhook calls (one per item)
-
but the payload is empty or
{}for many of them
So my webhook handler receives:
{}
even though Shopify clearly sends one webhook per item.
Details
-
App type: Shopify React Router template
-
Webhook:
inventory_levels/update -
API version: 2026-01
-
No custom body parsers
-
I am not calling
request.json(),request.text(), or any manual stream reading -
Webhook code looks like:
export const action = async ({ request }) => {
const { topic, shop, payload } = await authenticate.webhook(request);
console.log("payload:", payload);
return new Response("ok");
};
Questions
-
Is this expected behavior for
inventory_levels/updateduring bulk inventory changes? -
Does Shopify intentionally send “light” or empty payloads for high-volume inventory updates?
-
Is there a recommended fallback pattern (e.g., fetching the inventory item using the Admin API) when payload is empty?
-
Is this a known issue for API version 2026-01 or the new React Router app template?