WooCommerce Marketplace Shopify Connector DocumentationWooCommerce Marketplace Shopify Connector Documentation
  • Getting Started

    • Documentation Home
    • Overview
    • Features
    • Comparison
    • Installation
  • Connecting Shopify

    • Creating the Shopify App
    • Setup Wizard
    • Connecting Your Store
  • Syncing

    • Category Mapping
    • Importing Products
    • Exporting Products
    • Importing Orders
    • Exporting Orders
  • Reference

    • Product Data Reference
    • Order Data Reference
  • Configuration

    • Settings
    • Price Rules
    • Webhooks & Auto-Sync
  • For Administrators

    • Admin Overview
  • Help & Support

    • Troubleshooting
    • FAQ
Demo
Buy Now
  • Getting Started

    • Documentation Home
    • Overview
    • Features
    • Comparison
    • Installation
  • Connecting Shopify

    • Creating the Shopify App
    • Setup Wizard
    • Connecting Your Store
  • Syncing

    • Category Mapping
    • Importing Products
    • Exporting Products
    • Importing Orders
    • Exporting Orders
  • Reference

    • Product Data Reference
    • Order Data Reference
  • Configuration

    • Settings
    • Price Rules
    • Webhooks & Auto-Sync
  • For Administrators

    • Admin Overview
  • Help & Support

    • Troubleshooting
    • FAQ
Demo
Buy Now
  • Shopify Connector

    • Documentation Home
    • Overview
    • Features
    • Comparison
    • Installation
    • Creating the Shopify App
    • Setup Wizard
    • Connecting Your Store
    • Category Mapping
    • Importing Products
    • Exporting Products
    • Product Data Reference
    • Importing Orders
    • Exporting Orders
    • Order Data Reference
    • Settings
    • Price Rules
    • Webhooks and Auto-Sync
    • Admin Overview
    • Troubleshooting
    • FAQ

Webhooks and Auto-Sync

Webhooks are what make the connection feel live. Instead of a seller running an import to find out what changed, Shopify tells the connector the moment something happens, and the connector applies it in the background.

Open My Account → Shopify Connector → Manage Account → Webhooks.

The Webhooks tab, listing the three registered Shopify webhooks

The three webhooks

Exactly three are registered per connected store — no more, no fewer.

TopicFires whenWhat the connector does
PRODUCTS_UPDATEA product changes in ShopifyUpdates the matching WooCommerce product
PRODUCTS_DELETEA product is deleted in ShopifyRemoves the connector's link for that product
ORDERS_FULFILLEDAn order is fulfilled in ShopifyWrites carrier, tracking number and tracking URL onto the WooCommerce order lines

Each webhook points at an address on your own site carrying the connector's account ID, so Shopify's message reaches the right connected store. The Address column shows the exact URL, and it is always your site's own address — the connector never routes through a third party.

When they are created

Webhooks are registered automatically when a store is connected — through the Setup Wizard or through Add Account. In normal use there is nothing to do on this tab.

If fewer than three exist, a Generate Webhooks button appears. Select it to create the missing ones. Once all three exist the button disappears, because there is nothing left to generate.

MessageMeaning
"Webhooks created successfully."One or more missing webhooks were registered
"All webhooks are already created."Nothing was missing
"Shopify token is invalid"The store's access token no longer works — refresh it on the Account tab

The connector never creates duplicates: before adding a topic it checks whether that exact topic and address already exist on the store.

Reading the list

ColumnMeaning
IDThe webhook's ID in Shopify
TopicThe event it listens for
AddressThe URL on your site that Shopify calls
Created atWhen it was registered

Only webhooks pointing at your site are listed. Any subscription on the Shopify store whose address belongs elsewhere is filtered out of this table and deleted from Shopify, so a store that has been connected to several systems does not accumulate stale subscriptions.

An account with none shows No Webhooks Found.

Deleting webhooks

Tick one or more rows and use Bulk actions → Delete, then Apply. The connector confirms "N Webhook Deleted Successfully.".

Warning

Deleting a webhook stops the matching live update. Delete ORDERS_FULFILLED, for example, and Shopify tracking numbers stop reaching WooCommerce orders. Select Generate Webhooks to put a deleted one back.

What happens to an incoming update

Four stages, in order. Understanding them is the fastest route to diagnosing a sync that is not working.

1. Shopify calls the address

The request carries a signature Shopify generated from the store's API secret key.

2. The connector verifies the signature

It recalculates the signature from the request body and the API Secret Key stored for that account, and compares the two. A mismatch is logged as "Webhook Verification failed for domain …" and answered with a 403 — nothing is applied.

This is what stops anyone else posting fake updates to your site.

Important

This check uses the API Secret Key saved on the Account tab. If that value is wrong or missing, the store connects, the webhooks appear healthy in Shopify, and every incoming update is silently rejected. It is the most common cause of "webhooks are registered but nothing happens".

3. The message is queued

Verified notifications are stored rather than applied immediately, so a busy hour on Shopify never slows your storefront. The administrator sees the backlog on Marketplace → MP Shopify Connector as "N Realtime Sync Notification Pending in background."

Product notifications are only queued at all when Product Auto-Sync is Shopify To WooCommerce — see below. Fulfilment notifications are always queued.

4. A background process applies them

The queue is drained twenty notifications at a time, one per pass. Each applied notification is logged and then removed from the queue.

If the process has not ticked for five minutes it is treated as stalled: the connector kills it and restarts it automatically, logging "Background process stalled. Recovery required."

Auto-sync decides what is acted on

Registering a webhook is not the same as acting on it.

Product Auto-SyncPRODUCTS_UPDATE and PRODUCTS_DELETE
DisableReceived and verified, but not applied
Shopify To WooCommerceApplied — WooCommerce follows Shopify
Woocommerce To ShopifyNot applied — WooCommerce is the master, and changes travel the other way

ORDERS_FULFILLED is not governed by this setting. Fulfilment tracking always flows back for orders the connector knows about.

Set the direction on the Settings tab.

What a live product update actually writes

When a PRODUCTS_UPDATE webhook is applied, the connector rewrites the WooCommerce product — but not every field.

Governed by Product Fields To Update (written only if selected):

SelectionWrites
PriceRegular price, sale price and displayed price, with any import price rule applied
QuantityStock quantity, stock status and backorder setting
DescriptionProduct description, with or without HTML per your setting
ImagesProduct image and gallery

Always written, whatever is selected: product name, category, weight, SKU, tax status and product type.

The product type is re-evaluated on every update using the same rule as an import — more than one variant means variable — so a Shopify product that gains a second variant is converted from simple to variable automatically.

What a live product deletion does

PRODUCTS_DELETE removes the connector's mapping rows for that product, so WooCommerce stops treating it as linked to Shopify. The behaviour differs slightly depending on whether the product was imported from Shopify or exported to it, and the connector picks the right path automatically.

The three background queues

Webhook notifications are not the only thing processed behind the scenes. The connector runs three independent queues, each with the same five-minute stall recovery:

QueueWhat it doesWhere you see it
Sync notificationsApplies verified Shopify webhooksAdmin notice: N Realtime Sync Notification Pending in background
Product imagesDownloads images for imported products when Product Image Import is In The BackgroundImport Product tab: Product images left for create
Export variation imagesUploads variation images for exported variable productsNo counter — runs silently after an export

All three depend on WordPress's scheduler. If WP-Cron is disabled or blocked, all three stop, and the counters climb without falling.

Where to look when something is wrong

The connector writes to the standard WooCommerce logger. Open WooCommerce → Status → Logs and pick the source:

SourceWhat it records
MP Shopify Connector Shopify To Woo Sync NotificationEvery incoming webhook — saved, in process, processed, and verification failures
MP Shopify Connector NotificationApplied updates, including the tracking details written onto orders
MP Shopify Background ProcessStalled and recovered queues
WCMP-ShopifyGeneral connector activity

A working sync leaves a clear trail: Get Realtime Sync Notification → Realtime Sync Notification Saved → Notification In Process → Notification Processed Successfully. Whichever of those four is missing tells you which stage failed.

Checklist when live updates are not arriving

Work through these in order — all four must be true.

  1. All three webhooks exist on this tab. If not, select Generate Webhooks.
  2. Product Auto-Sync is Shopify To WooCommerce on the Settings tab. This is the most common cause.
  3. The API Secret Key is correct on the Account tab. Check the logs for "Webhook Verification failed".
  4. The background queue is moving. If the admin's pending count never falls, WP-Cron is not running.

Related pages

  • Settings — the auto-sync controls
  • Product Data Reference — field-by-field detail
  • Order Data Reference — the fulfilment leg
  • Admin Overview — the pending-notification notice
  • Troubleshooting
Prev
Price Rules
Next
Admin Overview