SimpliServDocs

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 to https://.
  • 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.

DomainDefaultDirectionsExtra options
Productson, BothInbound · Outbound · BothAuto-sync new records
Inventoryon, BothInbound · Outbound · Both–
Orderson, InboundInbound 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:

WooCommerceShop order
completedDelivered
cancelled, failed, refundedCancelled
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.

→ Open shop orders

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

SymptomCause 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 rejectedThe key is read-only or was deleted in WordPress. Create a new Read/Write key and store it via Edit credentials.
Orders never arriveWebhooks are missing, not Active, or carry an old secret. Afterwards click Reconcile orders to catch up.
Products are not pushedAuto-sync is off on the product, or the Products domain is set to Inbound.
Stock levels differOnly the Warehouse selected in the connection counts. Also check whether the product has stock management enabled in WooCommerce.
The connection cannot be savedShopify or JTL-Wawi is already connected — disconnect that one first.

How is this guide?

On this page