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.0.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.
Requirements
| Requirement | Minimum |
|---|---|
| WordPress | 6.0 |
| WooCommerce | 7.0 |
| PHP | 8.1 |
| IDeliver account | Active merchant account at merchant.ideliver.ng |
Installation
Step 1 — Upload the plugin
- In your WordPress admin, go to Plugins → Add New Plugin
- Click Upload Plugin at the top of the page
- Click Choose File, select the
ideliver-for-woocommerce.zipfile you downloaded - Click Install Now, then Activate Plugin
Step 2 — Open the settings
Go to WooCommerce → Settings → Integrations → IDeliver Delivery
You will see four sections: IDeliver Account, Dispatch Settings, WooCommerce Webhook, and Debug.
Configuration
IDeliver Account
| Field | Where to find it | Required |
|---|---|---|
| Merchant ID | IDeliver Dashboard → Settings → Account | ✅ Yes |
| API Key | IDeliver Dashboard → Settings → API Keys | Optional (needed for status refresh) |
| Webhook Secret | IDeliver Dashboard → Settings → Integrations → WooCommerce | ✅ Yes |
| API Base URL | Leave 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
| Setting | Description |
|---|---|
| Auto Dispatch | Toggle automatic dispatch on/off |
| Trigger on Status | Choose which WooCommerce order status(es) trigger dispatch. Default: Processing. Hold Ctrl/Cmd to pick multiple. |
| Skip Virtual / Downloadable | Orders containing only virtual or downloadable products are skipped (no physical delivery needed) |
| Add Order Note | Adds a private note to the WooCommerce order when dispatched or when dispatch fails |
WooCommerce Webhook (recommended)
The plugin can register WooCommerce webhooks automatically, so IDeliver is notified in real time as orders change:
- Fill in your Merchant ID and Webhook Secret first
- Click Register WooCommerce Webhooks
- The plugin creates two active webhooks in WooCommerce → Settings → Advanced → Webhooks:
IDeliver — order.createdIDeliver — 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 URLThe 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:
| Field | Description |
|---|---|
| Status badge | Current dispatch status (Not dispatched / Submitted / Assigned / Delivered / Failed …) |
| Dispatch ID | The IDeliver internal order ID |
| Dispatched at | When the order was first sent to IDeliver |
| Rider | Rider name once assigned |
| Track Order | Link to live tracking page for the customer |
| Dispatch Now | Manually trigger dispatch (shown when not yet dispatched) |
| Retry Dispatch | Shown when previous dispatch failed |
| Refresh Status | Pulls latest status from IDeliver API (requires API Key) |
Orders list column
A compact IDeliver column appears in WooCommerce → Orders, showing a coloured status icon at a glance:
| Icon | Meaning |
|---|---|
| ⚪ | Not dispatched |
| 🔵 | Submitted / Accepted |
| 🟡 | Pending |
| 🟢 | Assigned / Picked up / Delivered |
| ✅ | Delivered |
| 🔴 | Failed |
| ⚫ | Cancelled |
Dispatch status reference
| Status | Meaning |
|---|---|
not_dispatched | Order has not been sent to IDeliver yet |
submitted | Order received by IDeliver, awaiting processing |
pending | IDeliver is finding an available rider |
accepted | A rider accepted the job |
assigned | Rider assigned and heading to pickup |
picked_up | Rider collected the order |
in_transit | Order is on the way to the customer |
delivered | Order delivered successfully |
failed | Dispatch failed (see order notes for reason) |
cancelled | Order was cancelled before delivery |
Manual dispatch
If auto-dispatch is off, or if an order was placed before the plugin was configured:
- Open the order in WooCommerce → Orders → [Order number]
- In the IDeliver Dispatch sidebar panel, click Dispatch Now
- 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
| Problem | Solution |
|---|---|
| ”IDeliver is not fully configured” notice | Enter Merchant ID and Webhook Secret in WooCommerce → Settings → Integrations → IDeliver |
| Orders not dispatching automatically | Check that Auto Dispatch is enabled and the order status matches your Trigger on Status setting |
| Test Connection fails | Verify 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 WooCommerce | The plugin checks for duplicates before registering — safe to click Register again |
| Want debug logs | Enable 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.
Related
- 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