Articles in this section

Overview: How the WooCommerce Store Integration Works in ShipHero

The WooCommerce store integration connects your WooCommerce store to ShipHero so products, orders, inventory, and shipment details move between the two systems. ShipHero imports your WooCommerce products and orders, sends available inventory back to your store, and sends tracking details to WooCommerce when an order ships.

Setting up the connection? See Connecting a WooCommerce Store to ShipHero. Getting a connection or disconnect error? See Troubleshooting Guide: WooCommerce and ShipHero. Orders, products, inventory, or tracking not syncing? See Troubleshooting WooCommerce Orders, Products, Inventory, and Tracking in ShipHero.

How the WooCommerce Store Connection Works

ShipHero connects to WooCommerce through the WooCommerce REST API (version 3), using a consumer key and consumer secret that you create in your store. You do not need the WooCommerce Legacy REST API plugin.

When you connect a store, ShipHero does the following automatically:

  • Checks that your WooCommerce store responds to ShipHero. If the check fails, the connection stops and ShipHero shows an error.
  • Registers four webhooks in your WooCommerce store: order created, order updated, product created, and product updated. A webhook is a message WooCommerce sends to ShipHero when something changes in your store.
  • Reads the weight and dimension units saved in your WooCommerce store settings.
  • Loads your WooCommerce order statuses and sets up default status mapping.
  • Starts an import of orders from the last 7 days and products from the last 600 days. The import can take a few minutes.

WooCommerce Products: WooCommerce to ShipHero

ShipHero imports products from WooCommerce into ShipHero, both during the first import and whenever a product is created or updated in your store.

  • ShipHero skips WooCommerce products that do not have a SKU.
  • For variable products, ShipHero imports each variation as its own ShipHero product.
  • ShipHero imports WooCommerce product tags with the prefix "Woocommerce tag".
  • When you connect, you choose whether ShipHero creates products in all of your warehouses or in specific warehouses.

WooCommerce Orders: WooCommerce to ShipHero

ShipHero imports WooCommerce orders so they can be picked, packed, and shipped like any other order.

  • When WooCommerce creates or updates an order, ShipHero is notified by webhook and then retrieves the full, current order directly from WooCommerce.
  • ShipHero also pulls orders from your store on a schedule. By default, the scheduled pull only retrieves orders in the Processing and On hold statuses.
  • ShipHero uses your WooCommerce status mapping to decide what to do with each order. An order mapped to Do Not Import is skipped. An order mapped to Cancelled cancels the order in ShipHero. An order mapped to Fulfilled is marked fulfilled in ShipHero.
  • When an existing order updates in WooCommerce, ShipHero does not overwrite its fulfillment status, shipping method, operator hold, or packing notes.
  • To keep old orders out of ShipHero, enter an order ID in the Do not import orders before this order id setting in your store settings. ShipHero does not import any WooCommerce order with a lower ID, even when WooCommerce sends a webhook for it.

WooCommerce Order Status Mapping Defaults

When you connect a store, ShipHero creates a default ShipHero status and order hold for each WooCommerce order status. You can change the mapping at any time.

WooCommerce status ShipHero order status Order hold
processing Default Operator Hold
on-hold Default Operator Hold
completed Fulfilled Not Applicable
pending Do Not Import Not Applicable
auto-draft Do Not Import Not Applicable
checkout-draft Do Not Import Not Applicable
trash Do Not Import Not Applicable
Any custom status A ShipHero status with the same name as the WooCommerce status Not Applicable

Your store's mapping may be different if you or ShipHero changed it after you connected. Select Map Statuses for your store on the Stores page to see the current mapping. To change it, see Connecting a WooCommerce Store to ShipHero.

WooCommerce Inventory: ShipHero to WooCommerce

When you select Allow ShipHero to manage your WooCommerce Inventory while connecting, ShipHero sends inventory levels from ShipHero to your WooCommerce store whenever inventory changes. After you connect, the Push inventory numbers from ShipHero to WooCommerce setting in your store settings controls this.

  • The quantity ShipHero sends is your available inventory minus reserved inventory and backorders, with a minimum of 0.
  • When you connect, you choose whether ShipHero starts your primary warehouse at 0 or brings in your WooCommerce inventory levels. Your other warehouses start at 0.
  • If inventory updates are turned off for a product, ShipHero skips that product.
  • If ShipHero cannot find a product in WooCommerce, it retrieves the product again and retries once. After a second failure, ShipHero turns off inventory updates for that product.
  • If a firewall blocks an inventory update, ShipHero tries the update again later.

WooCommerce Tracking and Order Updates: ShipHero to WooCommerce

When an order ships in ShipHero, ShipHero updates the order in WooCommerce in three steps.

  • Tracking details: ShipHero sends the carrier name, tracking number, tracking URL, and ship date. This requires the WooCommerce Shipment Tracking plugin on your store. Without the plugin, ShipHero skips this step.
  • Order status: When an order is fully fulfilled, ShipHero changes the WooCommerce order status to Completed by default. To use a different status, change After Fulfilled Set Status in your store settings.
  • Order note: ShipHero adds a note to the WooCommerce order with the carrier, a tracking link, and the shipped items and quantities. ShipHero adds the note once for each unique set of shipped items.

The Add Tracking Number to Customer Notes setting in your store settings controls who sees the order note. The setting is on by default. When it is on, WooCommerce emails the note to your customer. When it is off, the note is saved as an internal admin note and is not emailed.

What the WooCommerce Integration Doesn't Do

  • Import WooCommerce products that do not have a SKU.
  • Import orders with a status that is mapped to Do Not Import.
  • Send tracking details to WooCommerce without the WooCommerce Shipment Tracking plugin.
  • Change an existing ShipHero order's fulfillment status, shipping method, operator hold, or packing notes when the order updates in WooCommerce.

More Resources

  • ShipHero Public API

    Connect your tools and AI agents directly to ShipHero with the Public API. Build powerful integrations, automate workflows, and tap into real-time data using the AI tools you prefer, with the option for secure, read-only access for AI-driven insights without added risk.

  • ShipHero Academy

    Explore ShipHero Academy for certifications, deep-dive training, and expert-led courses on WMS and fulfillment. Build your expertise and help your team operate at a higher level.

  • Change Log

    Stay up to date with the latest improvements across ShipHero. The Change Log gives you a clear view of new features, enhancements, and fixes as they roll out—so you always know what’s new and what’s better.