Skip to Content
WooCommerce Plugin

WooCommerce Plugin

The IDeliver for WooCommerce plugin connects your WordPress / WooCommerce store to IDeliver. When a customer places an order and it reaches your chosen status (e.g. Processing), the plugin automatically forwards the order to IDeliver and a rider is dispatched — no code, no manual copy-paste.


Download

Current version: 1.1.0  |  Requires: WordPress 6.0+, WooCommerce 7.0+, PHP 8.1+

⬇ Download ideliver-for-woocommerce.zip

This is a standard WordPress .zip file. Install it directly from your WordPress admin panel — no FTP required.

v1.1 adds multi-origin pickup defaults, per-order origin / dispatch-preference overrides, and hold auto-dispatch until origin is set.


Requirements

RequirementMinimum
WordPress6.0
WooCommerce7.0
PHP8.1
IDeliver accountActive merchant account at merchant.ideliver.ng 

Installation

Step 1 — Upload the plugin

  1. In your WordPress admin, go to Plugins → Add New Plugin
  2. Click Upload Plugin at the top of the page
  3. Click Choose File, select the ideliver-for-woocommerce.zip file you downloaded
  4. Click Install Now, then Activate Plugin

Step 2 — Open the settings

Go to WooCommerce → Settings → Integrations → IDeliver Delivery

You will see sections: IDeliver Account, Dispatch Settings, Pickup Origins, WooCommerce Webhook, and Debug.


Configuration

IDeliver Account

FieldWhere to find itRequired
Merchant IDIDeliver Dashboard → Settings → Account✅ Yes
API KeyIDeliver Dashboard → Settings → API KeysOptional (needed for status refresh)
Webhook SecretIDeliver Dashboard → Settings → Integrations → WooCommerce✅ Yes
API Base URLLeave as https://api.ideliver.ng unless self-hosting

After filling in your Merchant ID and API Key, click Test Connection to verify the credentials are working.

Dispatch Settings

SettingDescription
Auto DispatchToggle automatic dispatch on/off
Trigger on StatusChoose which WooCommerce order status(es) trigger dispatch. Default: Processing. Hold Ctrl/Cmd to pick multiple.
Skip Virtual / DownloadableOrders containing only virtual or downloadable products are skipped (no physical delivery needed)
Add Order NoteAdds a private note to the WooCommerce order when dispatched or when dispatch fails
Default Dispatch PreferenceCandidate pool for new orders: Mixed, Internal then public (fleet first), or Fleet only. Override per order in the metabox.

Pickup Origins (multi-warehouse)

Optional. Configure one or more warehouses / hubs so each order can pick a pickup location.

SettingDescription
OriginsOne origin per line: Label|Address|lat|lng — e.g. Ikeja Hub|12 Warehouse Rd, Ikeja|6.6018|3.3515
Default OriginSlug of the default origin (from the label, e.g. ikeja-hub). Leave empty when you want mixed-origin hold until each order chooses an origin. With a single origin listed, it is used automatically.

Mixed-origin hold: if you list two or more origins and leave Default Origin empty (and the order has no metabox selection), auto-dispatch is held (awaiting_origin) until an origin is set. IDeliver will not auto-assign a rider until pickup is known.

The plugin can register WooCommerce webhooks automatically, so IDeliver is notified in real time as orders change:

  1. Fill in your Merchant ID and Webhook Secret first
  2. Click Register WooCommerce Webhooks
  3. The plugin creates two active webhooks in WooCommerce → Settings → Advanced → Webhooks:
    • IDeliver — order.created
    • IDeliver — order.updated

You can also copy the Webhook URL shown in the settings and add it manually in WooCommerce.

The auto-register step is idempotent — clicking it more than once is safe. It skips topics already pointing to your IDeliver URL.


How auto-dispatch works

Customer places order WooCommerce order reaches trigger status (e.g. "Processing") Plugin signs the order payload with HMAC-SHA256 Signed POST → https://api.ideliver.ng/webhooks/woocommerce/{your-merchant-id} IDeliver creates a delivery + dispatches a rider Order meta updated: dispatch ID, status, tracking URL

The plugin prevents double-dispatch: if an order has already been sent to IDeliver, it will not be dispatched again when the status changes again (e.g. from Processing → Completed).


Order metabox

Every WooCommerce order edit page shows an IDeliver Dispatch panel in the right sidebar:

FieldDescription
Status badgeCurrent dispatch status (Not dispatched / Awaiting origin / Submitted / Assigned / Delivered / Failed …)
Pickup originOverride store default: choose a configured warehouse, or Hold — choose later
Dispatch preferenceOverride store default: Mixed / Internal then public / Fleet only
Dispatch IDThe IDeliver internal order ID
Dispatched atWhen the order was first sent to IDeliver
RiderRider name once assigned
Track OrderLink to live tracking page for the customer
Dispatch NowManually trigger dispatch (shown when not yet dispatched; requires origin if multi-origin)
Retry DispatchShown when previous dispatch failed
Refresh StatusPulls latest status from IDeliver API (requires API Key)

Pickup origin and dispatch preference are orthogonal: origin is where to pick up; preference is which rider pool to use.

Orders list column

A compact IDeliver column appears in WooCommerce → Orders, showing a coloured status icon at a glance:

IconMeaning
Not dispatched
🟠Awaiting origin (multi-origin hold)
🔵Submitted / Accepted
🟡Pending
🟢Assigned / Picked up / Delivered
Delivered
🔴Failed
Cancelled

Dispatch status reference

StatusMeaning
not_dispatchedOrder has not been sent to IDeliver yet
awaiting_originMulti-origin hold — choose a pickup origin in the metabox before dispatch
submittedOrder received by IDeliver, awaiting processing
pendingIDeliver is finding an available rider
acceptedA rider accepted the job
assignedRider assigned and heading to pickup
picked_upRider collected the order
in_transitOrder is on the way to the customer
deliveredOrder delivered successfully
failedDispatch failed (see order notes for reason)
cancelledOrder was cancelled before delivery

Manual dispatch

If auto-dispatch is off, or if an order was placed before the plugin was configured:

  1. Open the order in WooCommerce → Orders → [Order number]
  2. In the IDeliver Dispatch sidebar panel, click Dispatch Now
  3. The order is sent to IDeliver immediately

If a previous dispatch attempt failed, click Retry Dispatch to try again.


Wallet & billing

Dispatching an order deducts the delivery fee from your IDeliver wallet. Make sure your wallet has sufficient balance at merchant.ideliver.ng/wallet  before orders are dispatched.

If your balance is too low, the dispatch will fail and a note will be added to the order. Top up and click Retry Dispatch.


Troubleshooting

ProblemSolution
”IDeliver is not fully configured” noticeEnter Merchant ID and Webhook Secret in WooCommerce → Settings → Integrations → IDeliver
Orders not dispatching automaticallyCheck that Auto Dispatch is enabled and the order status matches your Trigger on Status setting
Status is “Awaiting origin”Multi-origin hold: pick a Pickup origin on the order metabox (or set a Default Origin in settings), then Dispatch Now / wait for status trigger
Test Connection failsVerify your API Key is correct and your server can reach api.ideliver.ng (outbound HTTPS port 443)
Dispatch fails with “Insufficient balance”Top up your IDeliver wallet at merchant.ideliver.ng/wallet 
”Order contains only virtual products”Expected behaviour — virtual orders are skipped. Disable Skip Virtual in settings if you want to dispatch them
Refresh Status shows “API Key required”Add your API Key in settings. Only dispatch (not status refresh) works without an API Key
Duplicate webhooks in WooCommerceThe plugin checks for duplicates before registering — safe to click Register again
Want debug logsEnable Debug Logging in the plugin settings. Logs appear in WooCommerce → Status → Logs → ideliver-woo

Uninstalling

Deactivate and delete the plugin from Plugins → Installed Plugins. Order meta data (_ideliver_*) stored on existing orders is not deleted — your order history is preserved.


  • Webhooks & Events — Receive IDeliver order status updates in your own system
  • Orders & Deliveries — Full order lifecycle documentation
  • Quick Start — Set up your IDeliver account from scratch
  • SDKs — Programmatic integration via REST API or generated clients