Title: WooliiPorter Fulfillment for WooCommerce
Author: WooliiPorter
Published: <strong>July 31, 2026</strong>
Last modified: July 31, 2026

---

Search plugins

![](https://ps.w.org/wooliiporter-fulfillment/assets/banner-772x250.png?rev=3629886)

![](https://ps.w.org/wooliiporter-fulfillment/assets/icon-256x256.png?rev=3629886)

# WooliiPorter Fulfillment for WooCommerce

 By [WooliiPorter](https://profiles.wordpress.org/wooliiporter/)

[Download](https://downloads.wordpress.org/plugin/wooliiporter-fulfillment.0.5.1.zip)

 * [Details](https://wordpress.org/plugins/wooliiporter-fulfillment/#description)
 * [Reviews](https://wordpress.org/plugins/wooliiporter-fulfillment/#reviews)
 *  [Installation](https://wordpress.org/plugins/wooliiporter-fulfillment/#installation)
 * [Development](https://wordpress.org/plugins/wooliiporter-fulfillment/#developers)

 [Support](https://wordpress.org/support/plugin/wooliiporter-fulfillment/)

## Description

**You sell. We handle fulfillment from China to your customers.**

WooliiPorter is a technology-native, end-to-end fulfillment operator, not just an
order-management application or a traditional freight forwarder. Woolii combines
receiving, warehouse handling, inventory fulfillment, supplier parcel forwarding,
packing, dispatch, tracking, and exception handling in China with one digital operating
layer for smart routing, live inventory, order state, APIs, signed webhooks, and
MCP. Third-party carriers perform transport and customs authorities control clearance
while the merchant keeps ownership of its supplier relationships and goods.

Smart routing checks each order line against the merchant’s routing preference and
available Woolii warehouse inventory. Stocked lines use warehouse fulfillment; supplier-
direct or unstocked lines wait for the supplier’s real domestic tracking number 
and use parcel forwarding. If one order needs both routes, the plugin pauses it 
for a recorded merchant decision instead of silently splitting or guessing.

Each eligible order becomes one idempotent fulfillment intent. WooliiPorter checks
available inventory and product routing preferences, then returns one of three outcomes:

 * **Stocked fulfillment:** reserve available inventory and create a warehouse fulfillment
   order.
 * **Supplier forwarding:** wait for the merchant to enter the supplier’s real domestic
   China tracking number, then create the forwarding order after all quantities 
   are allocated.
 * **Mixed-order review:** hold the order for a merchant decision when some lines
   can use stock and other lines require supplier forwarding.

Routing decisions, required actions, child order references, tracking state, and
diagnostic request IDs remain attached to the WooCommerce order. The plugin uses
WooCommerce CRUD APIs and declares High-Performance Order Storage (HPOS) compatibility.

#### What the plugin does

 * Adds a guided setup and connection page under **WooCommerce > WooliiPorter**.
 * Opens the linked Woolii merchant console through a short-lived, single-use sign-
   in handoff.
 * Links to merchant access, sign-in, and API credential pages.
 * Validates the API key, account, environment, scopes, and smartRouting before 
   registering the Store.
 * Maps WooCommerce products and variations to WooliiPorter skuCode values.
 * Supports an explicit **Always forward** preference for products that are not 
   pre-stocked.
 * Submits eligible orders through Action Scheduler and shows per-line inventory
   decisions.
 * Collects supplier parcel tracking numbers, carrier details, supplier names, notes,
   and line quantity allocation.
 * Verifies complete forwarding quantities before a formal forwarding order can 
   be created.
 * Requires HMAC-signed, Store-bound, idempotent webhook updates.
 * Holds mixed orders for **Forward all**, **Wait for stock**, or **Re-evaluate 
   inventory** decisions.

#### Safety defaults

Activation does not submit historical orders. Sandbox is the default environment,
and smart routing and automatic submission are off by default. Automatic submission
remains off until connection, Store registration, Webhook Signing Secret, Action
Scheduler, and smartRouting checks pass. Mixed orders are not automatically split,
and forwarding confirmation requires real tracking numbers with complete quantity
allocation.

#### Service account required

This free plugin connects a WooCommerce store to WooliiPorter’s technology-driven
physical fulfillment service. An approved merchant account and API key are required;
applications are reviewed manually and the plugin cannot connect until the account
is approved. Merchants pay Woolii separately for receiving, warehouse handling, 
packing, storage, transport, and other selected logistics services. The plugin contains
no paid code or feature licensing. Service availability, routes, handling options,
shipping charges, storage charges, duties, taxes, and merchant terms are determined
by the merchant’s WooliiPorter account and the applicable order terms. The plugin
itself does not guarantee route availability, customs clearance, delivery times,
or fixed shipping rates.

Apply at https://porter.woolii.com/developers/apply. Sign in at https://porter.woolii.
com/auth/signin and manage credentials at https://porter.woolii.com/merchant/integrations/
credentials.

### External service and privacy

This plugin connects to the WooliiPorter Merchant API at `https://api.woolii.com/
v1/merchant`. It makes no request until an administrator configures an API key and
clicks **Test and connect**. That action validates the connection and registers 
the Store. Order data is sent only after the administrator separately enables or
manually requests submission.

To register the store and coordinate fulfillment, the plugin may send:

 * The store URL, generated external store ID, platform, plugin version, and WordPress
   webhook endpoint URL.
 * WooCommerce order ID, a content-version hash, order currency, and order total.
 * Product and variation IDs, product names, quantities, WooliiPorter skuCode mappings,
   routing preferences, and requested service type.
 * Recipient name, phone number, destination country, region, city, postal code,
   and street address.
 * Supplier domestic tracking numbers, carrier, supplier name, notes, and the product
   quantities assigned to each supplier parcel.
 * Technical request IDs, idempotency keys, routing actions, and routing-version
   data needed to prevent duplicate fulfillment.

WooliiPorter uses this information to register the store, route inventory, reserve
stock, receive supplier parcels, arrange forwarding, return tracking and settlement
status, prevent duplicate orders, provide support, and prepare carrier and customs
declarations. When an authorized operator submits a shipment, carriers and operational
providers may receive recipient contact/address data, package measurements, item
descriptions, quantities, declared values, and required declaration fields. Carriers
may disclose required declaration information to customs authorities.

The API key and webhook secret are stored in WordPress options. Store identity, 
diagnostics, SKU mappings, fulfillment status, request IDs, supplier parcel references,
and tracking state are stored in options, transients, or WooCommerce order metadata.
Deactivation stops new scheduled submissions. Uninstall removes credentials and 
plugin settings but retains WooCommerce order metadata and notes as merchant audit
records. Rotate credentials before transferring or decommissioning a store.

The plugin does not add advertising trackers and does not send executable code from
the service. API responses are operational data, not remotely executed PHP or JavaScript.

Review the service terms and privacy policy before connecting a production store:

 * Terms: https://porter.woolii.com/terms
 * Privacy: https://porter.woolii.com/privacy

## Screenshots

[⌊Guided setup dashboard with connection status and safe rollout steps.⌉⌊Guided 
setup dashboard with connection status and safe rollout steps.⌉[

Guided setup dashboard with connection status and safe rollout steps.

[⌊A stocked order routed to inventory reservation and warehouse fulfillment.⌉⌊A 
stocked order routed to inventory reservation and warehouse fulfillment.⌉[

A stocked order routed to inventory reservation and warehouse fulfillment.

[⌊Supplier parcel entry showing the domestic tracking fields, line allocation, and
completion guard.⌉⌊Supplier parcel entry showing the domestic tracking fields, line
allocation, and completion guard.⌉[

Supplier parcel entry showing the domestic tracking fields, line allocation, and
completion guard.

[⌊A mixed order held for a safe merchant decision instead of automatic splitting.⌉⌊
A mixed order held for a safe merchant decision instead of automatic splitting.⌉[

A mixed order held for a safe merchant decision instead of automatic splitting.

[⌊Product and variation mapping for intelligent inventory routing.⌉⌊Product and 
variation mapping for intelligent inventory routing.⌉[

Product and variation mapping for intelligent inventory routing.

## Installation

 1. Install and activate WooCommerce.
 2. Upload the `wooliiporter-fulfillment` folder or plugin ZIP through **Plugins > 
    Add New > Upload Plugin**.
 3. Activate **WooliiPorter Fulfillment for WooCommerce**.
 4. Open **WooCommerce > WooliiPorter**.
 5. Create a sandbox API key, enter it, and click **Test and connect**.
 6. Configure the same Webhook Signing Secret in the plugin and merchant console.
 7. Map stocked products to WooliiPorter skuCode values; mark non-stocked products 
    as **Always forward**.
 8. Enable smart routing and test stocked, forwarding, and mixed orders in sandbox 
    before enabling automatic submission.

## FAQ

### Do I have to store every product at the WooliiPorter warehouse?

No. A product can use real-time stocked fulfillment when inventory exists, or be
marked for supplier forwarding when the supplier will ship it to the China warehouse
after the customer order is placed.

### What happens when only part of an order is in stock?

This release holds the order for merchant review. The merchant can forward the whole
order, wait for stock, or re-evaluate inventory. The plugin does not automatically
split a mixed order.

### Can the plugin create a forwarding order before I have the supplier tracking number?

No. You can save supplier parcel details as a draft, but a formal forwarding order
is created only after real tracking numbers are entered and the complete forwarding
quantity is allocated.

### Does activating the plugin send my existing orders?

No. Smart routing and automatic submission are disabled by default, and activation
does not submit historical orders.

### Does this plugin calculate duties, taxes, or guarantee customs clearance?

No. Customs requirements, route eligibility, duties, taxes, and final carrier charges
depend on the goods, destination, carrier, and current service terms. Contact WooliiPorter
support for regulated or uncertain goods before shipping.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“WooliiPorter Fulfillment for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ WooliiPorter ](https://profiles.wordpress.org/wooliiporter/)

[Translate “WooliiPorter Fulfillment for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/wooliiporter-fulfillment)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wooliiporter-fulfillment/),
check out the [SVN repository](https://plugins.svn.wordpress.org/wooliiporter-fulfillment/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/wooliiporter-fulfillment/)
by [RSS](https://plugins.trac.wordpress.org/log/wooliiporter-fulfillment/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.5.1

 * Updated the settings page with the Woolii brand mark and end-to-end fulfillment
   positioning.

#### 0.5.0

 * Renamed the plugin to WooliiPorter Fulfillment for WooCommerce and moved the 
   text domain to `wooliiporter-fulfillment`.
 * Replaced the static activation guide with the live seven-step onboarding checklist
   shared with the Woolii merchant console, including warehouse stocking and wallet
   funding guidance via the existing console sign-in handoff.
 * Added one-click catalog sync: published products are registered with Woolii and
   linked to warehouse SKUs by exact SKU match; linked products missing a WooCommerce
   SKU receive the warehouse code.
 * Added optional one-way inventory push: linked product stock is overwritten with
   the warehouse available quantity every five minutes. WooCommerce stock is never
   read back.
 * Registered the order-panel stylesheet and script with `wp_enqueue_style`, `wp_enqueue_script`,
   and `wp_localize_script` instead of printing them inline, and loaded them only
   on the order edit screen.
 * Replaced the inline parcel `<script type="text/template">` markup with a standard
   HTML `<template>` element.
 * Limited the blocked-automation administrator notice to the WooliiPorter settings,
   order, and plugins screens.
 * Removed bundled translation files so translations come from translate.wordpress.
   org.

#### 0.4.2

 * Switched the merchant-console handoff to wp_safe_redirect with an explicit allowed-
   hosts list, per WordPress Plugin Check guidance.

#### 0.4.1

 * Added the unified six-step activation guide used across WooCommerce, Shopify,
   and the Woolii merchant console.
 * Added a server-side, single-use sign-in handoff to the linked Woolii merchant
   account.
 * Restricted console handoff URLs to the trusted Woolii host and exact SSO exchange
   path.
 * Kept channel product synchronization separate from warehouse SKU creation and
   made SKU linking explicit.

#### 0.4.0

 * Moved the official Merchant API endpoint to `https://api.woolii.com/v1/merchant`.
 * Added complete English gettext source strings and bundled Simplified Chinese 
   translations.
 * Added safe initialization and an administrator notice when WooCommerce is missing,
   inactive, or too old.
 * Added WordPress 7.0 compatibility metadata (validated on 7.0.2), WooCommerce 
   10.9.4, PHP 7.4, and WooCommerce 8.2 minimum compatibility metadata.
 * Persisted SKU mappings submitted through the custom connection form.
 * Required HMAC verification and exact Store identity for every webhook environment,
   plus intent identity when a local intent exists.
 * Added Action Scheduler to readiness checks and removed synchronous submission
   fallback.
 * Added deactivation cleanup for cron, Action Scheduler jobs, and the SKU cache.
 * Replaced the internal HPOS controller with the public OrderUtil API and removed
   deferred Abilities code.

## Meta

 *  Version **0.5.1**
 *  Last updated **12 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [dropshipping](https://wordpress.org/plugins/tags/dropshipping/)[fulfillment](https://wordpress.org/plugins/tags/fulfillment/)
   [inventory](https://wordpress.org/plugins/tags/inventory/)[shipping](https://wordpress.org/plugins/tags/shipping/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/wooliiporter-fulfillment/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/wooliiporter-fulfillment/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wooliiporter-fulfillment/reviews/)

## Contributors

 *   [ WooliiPorter ](https://profiles.wordpress.org/wooliiporter/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wooliiporter-fulfillment/)