Connect WooCommerce
Connect a WooCommerce store to SimpliServ via the REST API: create API keys, choose sync settings, import products and set up webhooks.
→ Open the WooCommerce connector in SimpliServ · Open the connector overview
The WooCommerce integration connects your WordPress store to SimpliServ through the WooCommerce REST API (wc/v3). Products, stock and orders are synced in one or both directions depending on your settings: store orders land as shop orders, while product and stock changes flow back to the store.
Unlike Shopify or Wix there is no OAuth app — you create the API key yourself in WordPress and store it in SimpliServ.
Requirements
- WordPress 6.0 or newer and WooCommerce 5.3 or newer (REST API v3). Tested up to WooCommerce 10.x.
- The store must be publicly reachable over HTTPS — SimpliServ calls the REST API from the cloud. Plain
http://addresses are normalized tohttps://. - A WordPress admin user allowed to create keys under WooCommerce → Settings → Advanced → REST API.
- In SimpliServ the view settings permission (Administration → Settings → View) for the connectors page, plus Administration → Settings → Edit to save.
- At least one warehouse whose stock feeds the store.
Only one sales channel at a time. WooCommerce, Shopify and JTL-Wawi are mutually exclusive. If one of them is already connected, SimpliServ refuses to save and tells you to disconnect the other channel first.
Create the API key in WooCommerce
Open the REST API settings
In WordPress go to WooCommerce → Settings → Advanced → REST API and click Add key.
Create a read/write key
Enter a description (e.g. "SimpliServ"), pick an admin user and set Permissions to Read/Write. Read-only is not enough — SimpliServ writes products and stock back.
Copy the consumer key and secret
WooCommerce shows the Consumer key (ck_…) and Consumer secret (cs_…) exactly once. Copy both before you leave the page.
Connect in SimpliServ
Open the connector
Go to Administration → Data & devices → Integrations and open the WooCommerce tile. The Install guide tab summarises the steps; the input fields live in the Configuration tab.
Enter the store URL and credentials
Under Store URL enter your store's full address (e.g. https://shop.example.com), then the Consumer key and Consumer secret. The secret is stored encrypted and never shown again — the summary only says Stored.
Pick the warehouse
Choose the Warehouse whose stock is synced with WooCommerce. Incoming orders also reserve their stock there. Your workspace's default warehouse is preselected.
Save the connection
Click Save connection. SimpliServ verifies the credentials against the live store right away. On success the status turns Connected.
If verification fails, the connection is kept but switches to Disconnected and shows the store's error message. Your sync settings are not lost — just correct the keys via Edit credentials.
Test connection re-checks at any time whether the store responds; the result appears under Last verified.
Sync settings
In the Sync settings block you decide per domain whether and in which direction data is synced. Inbound only pulls from WooCommerce, Outbound only pushes there, Both syncs in both directions.
| Domain | Default | Directions | Extra options |
|---|---|---|---|
| Products | on, Both | Inbound · Outbound · Both | Auto-sync new records |
| Inventory | on, Both | Inbound · Outbound · Both | – |
| Orders | on, Inbound | Inbound only (locked) | Create invoice automatically, Email invoice to customer |
- Auto-sync new records (products): every newly created product is automatically marked sync-enabled and pushed to WooCommerce. Existing products keep their per-record setting.
- Create invoice automatically (orders): every paid WooCommerce order produces a SimpliServ invoice in status Paid.
- Email invoice to customer: only available when the automatic invoice is on. Note that WooCommerce usually sends its own order emails already.
The selected Warehouse can also be changed here. Don't forget Save settings.
Orders are strictly inbound — SimpliServ never creates orders in WooCommerce.
Seeding: the full import
The Synchronization block offers two actions:
- Full import — pulls the entire WooCommerce catalogue: simple products become a single product, variable products become a product family in which every variation becomes its own item. Matching runs on the SKU; if a local item with the same SKU exists it is linked instead of duplicated. With stock management enabled, quantities are written to the mapped warehouse, and product images come along.
- Reconcile orders — re-fetches recently modified orders. Webhook delivery is best-effort, and this reconciliation catches dropped deliveries. SimpliServ also runs it automatically every five minutes.
While an import runs, the card shows an Import running badge with progress ("x new, y updated, z failed"). A second import can only start once the running one finishes.
Full import is disabled when products are switched off or the direction is set to Outbound. Set it to Inbound or Both.
The Sync status block then shows mapped products, mapped orders, the last import and the last verification.
Set up webhooks
Without webhooks SimpliServ only learns about new orders during the five-minute reconciliation. For live updates create them once in WordPress — URL and secret are in the Set up webhooks block.
Copy the webhook URL and secret
Copy the Webhook URL shown (shaped like https://…/api/v1/webhooks/woocommerce/<your-slug>) and the Webhook secret.
Create the webhooks in WooCommerce
Open WooCommerce → Settings → Advanced → Webhooks and create one webhook with status Active for each of these six topics: order.created, order.updated, order.deleted, product.created, product.updated, product.deleted.
Set the delivery URL and secret
Set the delivery URL to the copied webhook URL and the secret to the copied webhook secret, then save. WooCommerce sends a test ping on creation which SimpliServ acknowledges — that activates the webhook.
SimpliServ verifies every delivery against the X-WC-Webhook-Signature header; badly signed calls are rejected. Repeated deliveries are detected and processed only once.
Regenerate secret invalidates every existing WooCommerce webhook until you enter the new secret there.
What gets synced
Orders (WooCommerce → SimpliServ)
New orders become shop orders including line items, shipping costs and billing/shipping addresses. If the customer does not exist yet, they are created from the email address. Stock is reserved immediately.
Products (both ways)
Imported products stay up to date through product webhooks. In return SimpliServ pushes name, description, price, SKU, status and images once auto-sync is enabled on the product.
Inventory (both ways)
Stock changes in the mapped warehouse are sent to WooCommerce as an absolute quantity; changes in the store come back via webhook.
Invoices (optional)
Paid orders can automatically produce a paid invoice — optionally emailed to the customer straight away.
Order status
The WooCommerce status maps onto the shop order like this:
| WooCommerce | Shop order |
|---|---|
completed | Delivered |
cancelled, failed, refunded | Cancelled |
everything else (e.g. processing, on-hold) | Open |
An order counts as paid when its status is processing or completed, or when WooCommerce reports a payment date. If it is cancelled in the store, SimpliServ releases the reservation again. An order that has already been (partially) delivered locally is never pushed back to Open.
The rest of the flow — delivery note, shipping, invoice — is covered in the shop orders guide.
Control an individual product
With a connection in place, the product detail view shows the WooCommerce card. It displays:
- the sync status (Synced, Pending sync, Disabled, Sync failed or No connection),
- the WooCommerce ID and the last sync,
- the Auto-sync to WooCommerce toggle,
- the Open in WooCommerce link that opens the item directly in wp-admin.
Toggling requires the Products → Edit permission. Switching it on pushes the product right away. If the Products domain is not set to Outbound or Both, enabling is rejected.
Changes that were just imported from WooCommerce do not trigger a push back — a short window prevents sync loops.
Change credentials and disconnect
- Edit credentials — store a new consumer key and secret (both together). The connection row stays the same, so all mappings are preserved. The store URL cannot be changed: to point at a different store, disconnect and reconnect.
- Disconnect — removes the connection along with every mapping between your products, orders and their WooCommerce records. Already imported products and created shop orders stay in SimpliServ; reconnecting maps everything again.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| "WooCommerce is not reachable from this server" | Store not publicly reachable, a firewall or basic auth in front of it, or an invalid certificate. Then hit Test connection. |
| Credentials are rejected | The key is read-only or was deleted in WordPress. Create a new Read/Write key and store it via Edit credentials. |
| Orders never arrive | Webhooks are missing, not Active, or carry an old secret. Afterwards click Reconcile orders to catch up. |
| Products are not pushed | Auto-sync is off on the product, or the Products domain is set to Inbound. |
| Stock levels differ | Only the Warehouse selected in the connection counts. Also check whether the product has stock management enabled in WooCommerce. |
| The connection cannot be saved | Shopify or JTL-Wawi is already connected — disconnect that one first. |
Related topics
Manage connectors
The connector hub where the WooCommerce tile lives.
Shop orders
How incoming shop orders are processed and shipped.
Set up channel sync
Sync direction and product mapping across all channels.
Products
Products, SKUs and variants in SimpliServ.
Warehouses & stock
Create warehouses and track stock.
Connect Shopify
The alternative shop connection via OAuth.
How is this guide?