iVendNext WooCommerce connector · version 2.1.0.136 · checked 2026-10-29
This page takes you from a WooCommerce store to a working connection with iVendNext. The connector is in beta, so read it with the limits to expect beside it. To see what crosses between the two systems, read What syncs today. Before you switch the connection on, work down the go-live checklist.
Who does what
Three people take part.
- The store owner works on the WooCommerce store and approves the key.
- A System Manager enters the store address, registers the connection and gives the Integration Manager read access.
- An Integration Manager does the rest of the setup and watches the connection afterward.
The people who run the shop every day need roles too, and setup gives them none.
| Person | Role they need |
|---|---|
| Ships a web order on a Sales Order connection | Stock User and Sales User. Stock User alone cannot create the Delivery Note. |
| Reads the invoices | Accounts User |
| Cancels an invoice to amend it | Accounts Manager. Accounts User has no Cancel. |
Get your WooCommerce store ready
The store owner does these steps first.
- Serve the store over https with a valid certificate. iVendNext refuses a plain
http://address and a certificate it cannot verify. - In WordPress, open Settings and then Permalinks. Set anything except Plain. With Plain, the store answers API calls with its home page.
- Let the WordPress rewrite rules work. On Apache, the site directory must allow
.htaccess. If Test Connection later says "The store answered, but not as WooCommerce", ask your host about rewrite rules. - Check three store settings. Test Connection refuses to go on when they do not match.
- Tax calculation is on. If the store charges no tax, the Integration Manager ticks This Storefront Charges No Tax instead.
- Stock management is on, if you want iVendNext to send stock.
- The store currency is the currency of the price list you will use. iVendNext never converts prices.
- Turn on coupons (WooCommerce, Settings, General, Enable coupons) if shoppers will spend iVendNext vouchers or points online. Both reach the cart as a WooCommerce coupon. Test Connection does not check this.
- Set Prices entered with tax (WooCommerce, Settings, Tax) to match how your iVendNext price list is priced. iVendNext sends the price list figure as the regular price and does not convert between prices with tax and prices without. Test Connection does not check this. The connection checks it every hour and raises an alert if someone changes it later. Load Catalogue then checks the tax rates again, but it does not correct prices.
- If you use tax classes, note each class slug from Settings, Tax, Additional tax classes. Use the slug, not the display name.
- Check the shape of your tax templates before you rely on tax syncing. See the next section.
- Use plain WooCommerce. If a plugin adds order statuses of its own, an order in a status the connector does not know is stopped. A person decides what to do with it.
- Install and activate the plugin iVendNext for WooCommerce (Plugins, Add New Plugin, Upload Plugin, then Activate). It is not listed on wordpress.org yet. Upload the zip file your iVendNext contact gives you. The connector runs without the plugin, but without it:
- Same price everywhere does not apply. On a store whose prices include tax, a shopper in another tax area pays a different total from your till.
- Shoppers cannot see or spend their points.
- The plugin Health tab, which shows failed webhook deliveries before WooCommerce switches them off, is missing.
Tax templates the connection can send
A template with several rate rows, such as a US state plus county, a Canadian GST plus PST, or an Indian CGST plus SGST, is sent as one store rate for each row. Row 1 goes at store priority 1, row 2 at priority 2, whatever priority the Tax Rule has. An imported order books each row tax to that row account.
The connection refuses these shapes and gives the reason on the connection:
- a row charged On Previous Row Amount, or per item quantity;
- a row of any other charge type that is not zero;
- a compound row (On Previous Row Total) unless it points at the row directly above and no plain row follows it;
- a compound row when the store prices include tax;
- rows that disagree on prices include tax;
- two overlapping Tax Rules that WooCommerce and iVendNext would pick between differently. Both are refused, and each names the other.
The connection form counts the refused rules: "N of your M storefront tax rules cannot be sent". Check that it reads none before you switch a storefront over.
If your tax rule is for a county or a group of postcodes, make one Tax Rule for each postcode. WooCommerce has no county field. A postcode range such as 90001...90099, a wildcard such as 9000*, and a list separated by ; or , are all refused. WooCommerce would tax every postcode in a range, while the iVendNext till matches exactly one. To mean any postcode, leave the field empty.
Match the postcode field to your shop setting Tax based on: shipping or billing. If your shop taxes at its own base address, a rule for the shop postcode or city is sent. Any other postcode rule is refused, because its rate would match no customer.
If you replace a one-rate workaround with a multi-row template, point the storefront Tax Rule at the new template. Do not untick the old rule and tick another one. The old rate stays on the store and wins because it is older.
An exempt or zero-rated class is only as exempt as the tax accounts its Item Tax Template names. If the template zeroes one account, every other account in the rule still charges. Name every account that your jurisdiction charges.
Connect the store in iVendNext
Work through these steps in order.
-
Set the time zone first. A System Manager sets System Settings, Time Zone, to the shop time zone before any app is installed. A time zone set afterward leaves each scheduled job first run hours away. Then whoever runs your site installs Integration Core and the WooCommerce connector, and finishes with a migrate.
-
Start the connection. An Integration Manager opens the Integrations Hub, then Connections, and presses Connect a system. Choose WooCommerce and give the connection a short name, such as EU Web Store. The name cannot be changed after you save it. If the dialog stops you instead of opening the form, it names the roles that can start a connection.
-
Connect to the store. A System Manager enters the Store URL and the Public URL, then saves and presses Connect to store. The Public URL is the address of this iVendNext site as the store reaches it, and it must be public and use https.
- The browser opens a WooCommerce page that names your connection, says it would like to connect to your store, and asks for Read/Write access. A store administrator presses Approve. WooCommerce makes the key and hands it straight to iVendNext. Nobody sees or copies the secret.
- The browser returns to the form. The form names the key by its last 7 characters. Press Test Connection next.
- The approval page stays valid for 15 minutes.
- The button shows only for a System Manager, and only on a connection that is not registered and has no keys.
- If the store refused the key, the form says why in one line. Press Connect to store again.
- If the browser shows Not permitted after you approve, you were signed out on the way back. Sign in and open the connection. The key was kept.
- If the form says the last Connect to store sent no key, the store could not reach this site. Check that the Public URL is public, uses https and is reachable from the internet.
- If Test Connection says the store rejected the key (HTTP 401), the store deleted the key it had sent. Clear both key fields, save, and press Connect to store again.
-
Enter a key by hand, if you prefer. In WooCommerce, open Settings, Advanced, REST API and press Add key. Give it Read/Write permission. A read-only key cannot create the store notifications. Copy the consumer key and the consumer secret. WooCommerce shows the secret once. Send both to your System Manager over a secure channel, who enters them on the connection. Only a System Manager can see or change these fields.
-
Test the connection. An Integration Manager presses Test Connection. The connection reads and records the store identity, currency, weight unit and price decimals. If the store prices at more decimals than your site books, for example 3 decimals for BHD, KWD or OMR on a site at 2, the form warns you. Set System Settings, Currency Precision, to the store decimals before the first order. Otherwise the last digit of a price is rounded away.
-
Register. A System Manager presses Register. This creates the registration the connection runs as. The company cannot be changed after this step.
-
Map your records. An Integration Manager maps:
- the price list;
- the warehouses whose stock the store shows, each with a buffer, which is the number of units kept back to cover the sync window;
- the fulfillment warehouse;
- the shipping account and the fee account;
- each payment method, with Record Payment At set for each row. Each payment mode needs an account for your company.
Picking these needs read access to price lists, warehouses, accounts and payment modes. The Integration Manager role does not have it by default. Where it is missing, the form To do list says "Ask a System Manager for read on …" and names roles on your site that have it. The System Manager gives Integration Manager read in Role Permission Manager. Then press Test Connection again, so the currency and stock checks run against what you mapped.
-
Map pickup locations. Do this if shoppers collect from your shops. Use the WooCommerce Local pickup method, which is free and built in. Do not use the older Local pickup method of a shipping zone, because it names no location. A store that already uses that older method maps it by its own title. On the connection, open Orders From The Store, then Pickup Location Mapping. Add one row for each location, with the name exactly as the store shows it and the warehouse that hands the goods over. A store that already offers pickup needs every location mapped right after an upgrade. Until then each collect order waits and names its location.
- A collect order books and delivers from the mapped warehouse. A restocked return goes back into it, unless you set a Returns Warehouse.
- Submit the Delivery Note when the order is set aside for collection. That tells the buyer "Ready to collect from" the shop and moves the shop stock.
- For cash on delivery, the Delivery Note books no payment on a collect order. Receive the cash on the order invoice when the buyer collects.
- The store shows one stock figure, the ticked warehouses added up. It cannot show how many a single shop has, and it offers no pickup time slots. A shopper can choose a shop that has none of the item. Then the Delivery Note is refused. Move stock into that shop first.
- WooCommerce taxes a collect order at the base address of your store. A county or city rate for the shop is not charged.
-
Choose what a store order becomes. Set Store Orders Become to one of two values.
- Sales Order is the default. A paid order arrives as a Sales Order with its payment kept as an advance, and its goods are reserved. The warehouse ships it with a Delivery Note. iVendNext then makes an invoice for exactly what shipped, paid from the advance. Cash on delivery usually has no advance, and it is invoiced at delivery.
- Sales Invoice books each order as an invoice the moment it arrives.
- A connection already on Sales Invoice stays there. A change applies to later orders only.
- The site needs the Party Type rows, which its setup wizard makes, and an account for each payment mode. Without the rows, iVendNext finds no advance on any invoice. Without the account, a paid order waits and names the mode.
-
Plan for refunds. On a Sales Order connection, a refund before invoicing comes back out of the advance, and the goods it names come off the order. A refund of the whole order closes the order if nothing has shipped. Three kinds of refund cannot come out of the advance, and each waits or goes to a person. An order with no advance, which is usual for cash on delivery, waits for the invoice of its goods, and the door cash is then not booked by itself. A refund the store states as returning no money is recorded on the invoice when the order is billed. A refund larger than the advance still has, or one with no amount, is booked by a person. After invoicing, a refund becomes a credit note that stays open for Accounts to settle the payout. Tell whoever refunds on the store to refund by quantity, or to fill in the tax box of the refund. A refund typed as a line amount with an empty tax box records no VAT on the store. iVendNext books it as the store recorded it. After invoicing, the credit note and an alert say that no VAT was reversed.
-
Set the dates. A store order posts on the date it was placed. A credit note posts on the date the store made the refund. Close a filed VAT period in iVendNext, with an Accounting Period, Accounts Frozen Till Date or a Period Closing Voucher. Otherwise a late refund can end up in it. A document dated in a closed period waits until you reopen the period. To post it today instead, set Closed Period Posting to Post in the current open period. Where your tax rules put a late credit note in the later period, as in KSA, set Refund Posting Date to The day iVendNext books it.
-
Switch on. An Integration Manager presses Switch on.
-
Register the notifications. A System Manager checks that the Public URL is set. It is the address of this site as the store reaches it. It must be public, on port 80, 443 or 8080, and use https on a live site. WordPress silently refuses any other address, including a private network. Then press Register Webhooks in the Store menu. This creates four notifications on the store, for orders and customers, created and updated. They are signed with a secret the connection makes.
-
Add pictures first. Do this before the first load. The store fetches each picture from this site when it first creates the product. Open the item, then use the form sidebar: hover the picture area and choose Change, then Upload. Do not press Set all private in that dialog, because the store cannot read a private file. A picture added after the product exists is not sent by Load Catalogue. To send a new main picture later, press Send picture to store on the item.
-
Load the catalog. Press Load Catalogue in the Store menu. Products already on the store are matched by SKU and linked, never duplicated. The load sends categories, brands, products, variations, prices, stock and tax rates. When it finishes, it reads back every record it linked. The summary says "The check after it found N of our N linked record(s) on the store", or names what is missing or in the store trash, and lists each one under Integrations Hub, Differences. Before go-live, that check should find nothing missing. If it finds one missing, it sends it again at once. Press Load Catalogue again, and the check should then find everything.
- Nothing runs this load on a schedule. Press it again after you change the price list, the catalog item group, the warehouses or the tax class mapping, and after you change a warehouse buffer.
- An item placed directly in the catalog item group, not in a group below it, is sent with no store category and shows under Uncategorized. Put items in the groups below it.
- If the form lists an item with no price, it names the roles that may price one. Price it, then press Load Catalogue again.
-
Connect the plugin. A System Manager sets a Storefront Secret under Balances For The Storefront: 32 or more random characters from a password manager. Never reuse the Webhook Secret. Give the secret to the store owner over a secure channel, with the address of this site and the exact connection name. The store owner enters all three on the plugin Connection tab (WooCommerce, iVendNext) and saves. That switches on Same price everywhere: on a store whose prices include tax, a shopper anywhere pays the price you set, as at your till. For points, and for the Test Connection button on the plugin, also tick Answer Balance Requests From The Storefront.
- Before you leave Invoices on My Account ticked, which is the default, set a customer-facing print format as the default for Sales Invoice. The plugin Download PDF prints the site default. A site with none set prints the standard layout, with internal fields, a raw tax table and no invoice number. Or untick Invoices on My Account until you have one.
- An order created through the store API is still priced from the shop address. An order a shop manager keys in on the admin screen gets the set price.
Orders changed before Import Orders From are not imported. If that field is blank, it becomes the moment you press Register, so a store with years of history does not import it by accident. It is fixed once you register. To import from an earlier date, a System Manager switches the connection off and presses Move Order Import Start under History.
What new products look like on the store
New Products Appear As is Draft by default. A product that iVendNext creates on the store stays hidden from shoppers until someone publishes it in WooCommerce. This lets you check images and descriptions before a product goes live.
After a product is linked, each change iVendNext sends replaces its name, weight, categories, brands, regular price and stock. Once you map tax classes, it replaces the tax class too. The weight is cleared if the item unit is not the store unit. Categories and brands are cleared if they are not mapped. A product that leaves the catalog is set to Draft and never deleted. Descriptions, images and sale prices are left alone.
What happens when something is offline
If the store stops answering, iVendNext sends nothing in that check. Changes wait, nothing is marked lost, and they go once the store answers again.
If the store cannot reach your iVendNext site, you need to know how WooCommerce behaves. WooCommerce sends each notification once, with no retry. After seven failures in a row, it switches that notification off without telling anyone. Three things catch what a notification missed:
- iVendNext asks the store for changed orders every Check Every (minutes), which is 5 by default.
- Once a day, iVendNext re-reads every order of the last 48 hours. It never reads an order from before go-live.
- A weekly check covers what shipped.
Every hour, iVendNext checks whether the store switched the notifications off. If it did, the Integration Manager gets an alert, the connection setup page lists Store webhooks as OFF on the store under To do, and Live Updates on the Integrations Hub reads Disabled. iVendNext sees the switch-off only after it has happened. To turn the notifications back on, press Register Webhooks again. iVendNext does not do it for you.
If the scheduled check has never run, the setup page lists Scheduled check has run under To do. The usual cause is a site whose time zone was set after its apps were installed.
Stock goes out on a sweep every five minutes by default, but only while the scheduled check is running. Every hour, iVendNext reads the store figures and corrects them. Prices and tax rates are checked every hour too (Price Check Every and Tax Rate Check Every, 60 minutes by default). If someone changes a regular price on the store, iVendNext puts it back.
A tax rate whose rule you deleted, unticked for the web, or that iVendNext refused after sending, keeps charging on the store. iVendNext never deletes a store rate. The hourly check reports it under Integrations Hub, Differences, with the act that stops it: a shop manager deletes it under WooCommerce, Settings, Tax.
Where you see what is synced
All three screens are in iVendNext Desk. WooCommerce carries none of them.
- Integrations Hub is the front page. It shows six counts: Needs a decision, Failed, Cannot tell if it arrived, Money records waiting, Differences and Connections with a problem. A record waiting for something it lacks is under Waiting, then Waiting on a setup change.
- Integration Activity has one row for each attempt to move one record, in either direction. Filter it by connector, direction, entity or status. Each row keeps the amount iVendNext has and checks it against what the store echoes back. A mismatch is named in the row reason.
- Record Links shows which store id maps to which iVendNext record. This is also where an Integration Manager presses Link manually to resolve a mapping the connector could not make alone.
The states and words are explained once, on the Integration Core pages: What each state means and Integrations Hub.
Never point a live connection at a test copy of the store
A host one-click test copy, or any copy of the store database, answers with the same store identity. A live connection pointed at it passes Test Connection and runs against the copy. A copy of the database also keeps the iVendNext notifications and their secret.
iVendNext refuses a delivery sent from an address that is not the one the store reports (Store Address Reported on the connection). A copy that still reports the live store address gets through. Test on a separate iVendNext site with its own connection. On every test copy, delete the notifications that iVendNext registered, under WooCommerce, Settings, Advanced, Webhooks.
Replace the REST key
Connect to store is for a new connection only. Once a connection has keys or is registered, replace a key by hand.
- In WooCommerce, create a new Read/Write key.
- A System Manager replaces the Consumer Key and Consumer Secret on the connection, saves, and presses Test Connection. Between the save and that press, nothing is sent to the store. Orders that its notifications deliver still import.
- Only after Test Connection succeeds, revoke the old key in WooCommerce.
If you revoke the old key first, the store refuses what iVendNext sends. Those changes are set aside, not lost. Sending resumes on the first call the store accepts, 500 records for each scheduled check. At the default of 5 minutes that is about 6,000 records an hour.
Remove a storefront
- First stop the store taking orders.
- Press Disconnect in the Connection menu on the connection setup page. Store reads, the queue, the four notifications and the balance door all stop. On the store, the notifications are deleted and the vouchers iVendNext published are set to draft, so none can be spent online. Nothing in iVendNext is deleted, and Reconnect later picks up where it stopped. If Disconnect reports anything left, press Finish disconnecting.
- Check the orders not yet booked. Orders that are not booked when you press Disconnect wait for a Reconnect. The form counts them: "N store orders not booked: deleting loses them", and it warns when orders after a given time may never have been read. If it counts any, press Reconnect, let one check import them, and press Disconnect again. Orders still on hold or pending payment on the store are not counted.
- To remove the storefront for good, delete the WooCommerce connection Setting. iVendNext refuses this while the connection is switched on. Delete the Setting, not the row on the Hub Connections list. No role can delete that one.
- Revoke the REST key on the store by hand. It stays there.
If you delete the Setting without disconnecting first, the four notifications and the published vouchers stay on the store. Every delivery then fails, and WooCommerce switches each notification off on its seventh failure.