Skip to content
Sales Docs

Help · For developers

WooCommerce

If you sell through a WordPress store, the Kushi Sales plugin sends its orders here automatically — linked to your products, so they count towards stock and profit rather than arriving as plain text.

It takes about ten minutes, once.


Before you start

You need:

  • A WordPress site with WooCommerce installed and active
  • An administrator login for that site
  • Your products already in Kushi. See Products

1. Install the plugin

In WordPress, go to Plugins → Add New → Upload Plugin, choose the kushi-crm.zip file we sent you, then Install Now and Activate.

A new item appears under WooCommerce → Kushi Sales in the left-hand menu. If it doesn't, WooCommerce isn't active — activate that first.


2. Create an API key

Back in Kushi:

  1. Open Settings, then API keys.
  2. Choose New key and give it a Name you'll recognise later, like "WooCommerce store".
  3. Choose Create key, then Copy key in the box that appears.

The key is shown once. We only keep a fingerprint of it, so we can't show it again — if you lose it, revoke that key and create another. Nothing else breaks.


3. Connect the two

In WordPress, go to WooCommerce → Kushi Sales and fill in:

Field Value
API address https://sales.api.kushi.ng
API key the key you just copied
Order source a name for this store, e.g. "main website"

Save changes, then click Test connection. You should see "Connected. Found N products in your Kushi catalog."

If it can't connect, it's nearly always the key — create a fresh one and paste it again, taking care not to include a trailing space.


4. Match your products

Scroll to Products on that same page. This is the step that decides whether inventory works.

Any WooCommerce product whose SKU matches a product in Kushi links itself — nothing to do. For the rest, pick the matching Kushi product from the dropdown beside it, then Save changes.

Why it matters: a linked line takes stock out when the order is delivered and counts towards your profit figures. An unlinked one is only a label on the order — the sale still records, but your stock won't move for it.

If an order does come through unlinked, it isn't lost: Order links lists what didn't match and lets you connect it, including for orders that already arrived. Open it from Stock, then the Order links tab.


5. Choose what statuses mean

Under Statuses, decide which of your WooCommerce statuses should move the order in Kushi. The sensible starting point is already filled in:

WooCommerce Kushi
Completed Delivered
Cancelled Cancelled
Refunded Returned

Leave a row on "do nothing" to keep that status in WooCommerce only.

Kushi shows Cancelled and Returned orders in its Rejected stage.

Be deliberate here. Moving an order to Delivered takes the goods out of stock. If your team marks orders Completed at dispatch rather than on delivery, leave Completed doing nothing and let your riders' updates drive it instead.


6. Optional: let riders update your store

When someone marks a delivery in Kushi, your WooCommerce order can follow automatically.

  1. Copy the Webhook URL shown on the plugin page.
  2. In Kushi, open Settings, then Webhooks. Choose Add endpoint, paste the URL into Endpoint address, tick Order status changed, and choose Add endpoint.
  3. Copy the signing secret Kushi shows. It is shown only once. Paste it into Signing secret on the plugin page and Save changes. See Webhooks.

Your store now reflects what actually happened on the ground, without anyone updating it twice.


What to expect day to day

  • A new order appears in Kushi within seconds, with a note on the WooCommerce order showing its Kushi reference. The orders list gets a Kushi Sales column so you can see at a glance which ones went through.
  • Stock doesn't move at checkout. It moves when the order reaches Delivered — the goods are still yours until the customer has them.
  • A bad connection doesn't lose an order. Failed sends are queued and retried automatically, and a retry can never create a duplicate: we recognise your WooCommerce order number and return the order we already have.
  • Bundles are understood. If you price a 2-pack as a bundle, delivering it takes two units out of stock — along with anything you give away free with it.

If something looks wrong

An order didn't reach Kushi. Open it in WooCommerce and read the order notes — the plugin writes the reason there. If it says queued to retry, it will go by itself. If it says the order was rejected, the message explains why.

Stock didn't change after delivery. Check the order's items are linked to products, in Stock, under the Order links tab.

You want to resend one order. Open it in WooCommerce, and under Order actions choose Send to Kushi Sales. This is safe to do twice — you'll get the same order back, not a second one.