Loading...
Loading...
Learn how to test and debug Shopify store webhooks using Webhook.it. This guide covers order events, inventory management, customer data, and fulfillment notifications.
Shopify webhooks notify your application when events happen in a store. Instead of constantly polling the Shopify API for changes, webhooks push event data to your server immediately when something happens. This makes your integrations faster, more efficient, and more responsive to customer actions.
Webhooks are essential for building apps that need to react to store events like new orders, inventory changes, customer signups, or fulfillment updates. Whether you're building a custom order management system, syncing inventory with a warehouse, or integrating with external shipping providers, webhooks are the foundation.
Shopify uses "topics" to categorize webhook events. Here are the most commonly used topics for e-commerce integrations:
orders/create - New order placedorders/updated - Order details changedorders/paid - Payment received for orderorders/cancelled - Order was cancelledorders/fulfilled - Order fully shippedorders/partially_fulfilled - Some items shippedproducts/create - New product addedproducts/update - Product details changedproducts/delete - Product removedinventory_levels/update - Stock quantity changedinventory_items/update - Inventory item modifiedcustomers/create - New customer registeredcustomers/update - Customer info changedcustomers/delete - Customer removedcustomers/enable - Customer account activatedcustomers/disable - Customer account disabledfulfillments/create - Fulfillment createdfulfillments/update - Tracking info updatedfulfillment_events/create - Shipping status changedcheckouts/create - Checkout startedcheckouts/update - Checkout modifiedcarts/create - Cart createdcarts/update - Items added/removed from cartVisit Webhook.it and copy your unique webhook URL. You'll need this URL when configuring your Shopify webhook subscriptions.
Log in to your Shopify admin panel. Navigate to Settings > Notifications > Webhooks (scroll to the bottom of the page). Alternatively, if you're building a Shopify app, you can create webhooks programmatically using the Admin API.
For development, consider using a Shopify Partner account to create development stores. These test stores let you trigger real webhook events without affecting production data or real customers.
Click "Create webhook" and select the event topic you want to test (e.g., Order creation). Paste your Webhook.it URL in the URL field. Choose JSON as the format for easier debugging. Select the latest API version for the most complete payload data.
Shopify sends a test webhook when you create the subscription. For ongoing testing, trigger real events in your store: place a test order, add a product, or update inventory. Each action sends the corresponding webhook to your Webhook.it endpoint.
Use Shopify's Bogus Gateway for test orders. Set your payment provider to "Bogus Gateway" in development to process fake transactions that trigger real webhook events.
Shopify webhook payloads contain the complete resource data at the time of the event. The structure varies by topic, but follows Shopify's REST API resource format:
id - Unique order identifierorder_number - Human-readable order numberemail - Customer email addresstotal_price - Order total including taxes and shippingline_items - Array of products orderedshipping_address - Delivery address objectbilling_address - Payment address objectfinancial_status - Payment status (paid, pending, etc.)fulfillment_status - Shipping statusid - Unique product identifiertitle - Product namehandle - URL-friendly slugvariants - Array of product variants (sizes, colors)images - Product image URLsinventory_quantity - Total stock across locationsShopify includes several important headers with each webhook. Check these in Webhook.it:
Use orders/create to sync new orders to your ERP, warehouse management system, or custom fulfillment workflow. Includeorders/updated to catch modifications.
Subscribe to inventory_levels/update to keep external inventory systems in sync. React to stock changes from sales, returns, or manual adjustments.
Use customers/create andcustomers/update to sync customer profiles with CRM systems, email marketing platforms, or analytics tools.
Listen to fulfillments/create to trigger shipping label generation or notify customers with tracking information via email or SMS.
Use Webhook.it to get a public URL, then configure it in Shopify Admin under Settings > Notifications > Webhooks. Trigger test events by placing test orders using the Bogus Gateway or creating products in your development store.
Shopify includes an X-Shopify-Hmac-SHA256 header with each webhook. Compute the HMAC-SHA256 of the raw request body using your webhook secret key, then compare it with the header value to verify authenticity.
Common issues include: incorrect webhook URL, firewall blocking requests, SSL certificate problems, or the webhook subscription being deleted. Check your Shopify Admin for failed delivery attempts and ensure your endpoint responds within 5 seconds.
Shopify uses topics to categorize events. Order topics (orders/create, orders/paid) track purchases. Product topics track catalog changes. Customer topics track account activity. Inventory topics track stock levels across locations.
Shopify retries failed webhooks (non-2xx responses) up to 19 times over 48 hours. Implement idempotency by tracking the X-Shopify-Webhook-Id header to avoid processing the same event multiple times.