Connect a store
Connect WooCommerce
On this page
How WooCommerce orders reach us
The plugin sends paid orders for NinjaBuy products to the NinjaBuy API, and writes stock, prices and tracking back to your shop. It is built on the same API you can call yourself.
- A customer orders on your siteA product linked to NinjaBuy
- NinjaBuy pluginThe plugin sends it to usOver the NinjaBuy API, no Shopify needed
- Paid from your balance, bought in ChinaWe pay the seller and follow the parcel to our warehouse
- Checked with photosYou see the real item before it leaves
- Shipped in your boxThe tracking number goes back to the order
What your site needs
- WordPress with WooCommerce, served over HTTPS.
- An administrator account that may install plugins.
- A NinjaBuy Business account with money in its balance. See Getting started.
Install and connect the plugin
- Create an API key in your NinjaBuy account
Name it after the site, so you know which key to revoke if you ever move or close it.
- In WordPress, go to Plugins → Add New and install the NinjaBuy plugin
- Open WooCommerce → NinjaBuy and paste the key
The plugin checks the key and shows your NinjaBuy account's name when it works.
- Import new products, or link the ones you sell
Finds from the importer come in as normal WooCommerce products. To link an existing one, paste its Taobao, Weidian or 1688 link on the product and pick the variant.
- Sell
Paid orders for linked products reach us; the rest of the order stays with you.
What syncs
| What | Direction | How |
|---|---|---|
| Orders | WooCommerce → NinjaBuy | Sent when an order is paid, for its linked lines. |
| Cancellations | WooCommerce → NinjaBuy | A cancelled order cancels ours until it is packed into a parcel. |
| Tracking | NinjaBuy → WooCommerce | Added to the order when the parcel ships; WooCommerce emails your customer as your email settings say. |
| Stock | NinjaBuy → WooCommerce | Set to 0 when the source sells out, by your sync rules. |
| Price | NinjaBuy → WooCommerce | Repriced or paused when the cost moves, by your sync rules. |
No call to us happens while a shopper browses: the plugin talks to NinjaBuy when an order is paid or a product changes, so it doesn't slow your shop down.
Self-hosted means the rules are yours
No marketplace stands between you and your customer, so consumer law and your payment provider set the limits.
State a delivery time you can keepIn the US, the FTC expects a reasonable basis for any shipping time you state, and a way to cancel when you can't meet it.
Your payment provider's listCard processors publish products they won't take payments for. Counterfeits are on it, and breaking it can freeze your payouts.
Say who pays import dutiesYour customer's country may charge duties or taxes on arrival. Say so at checkout.
Your site has to reach usOrders come to us when your site sends them. If it is down, or a security plugin blocks the call, they wait.
Troubleshooting
| What you see | Why | What to do |
|---|---|---|
| A paid order never reached NinjaBuy | WooCommerce sends us the order. If the site was down, or a security tool blocked the call, it waits on your side. | Check the connection status in the app. The app sends what it missed once the site can reach us again. |
| An order arrived with a line we skipped | That product is not linked to a NinjaBuy listing, so it stays with you or your other supplier. | Link it in the app; the next order for it comes to us. |
| The order shows as held | Your balance could not cover it. We never buy on credit. | Top up; held orders go ahead on their own. See held orders. |
| No tracking on the order yet | Tracking is written back once the parcel has left our warehouse. | Check the order's step in your NinjaBuy account. If it shows Shipped and WooCommerce doesn't, reconnect the app. |
| The connection says the key is invalid | The API key was revoked, or the site was moved to a new domain. | Create a new key in your NinjaBuy account and paste it into the app. Keys are covered in the API overview. |
| Orders stopped after installing a security or caching plugin | It blocks the plugin's calls out of your site. | Allow outgoing requests to ninjabuy.com in that plugin's settings. |



