Connect WooCommerce to Syncaut to automate product management, order processing, customer operations, inventory updates, and category management — all from within your workflows. Works with any self-hosted WordPress site running the WooCommerce plugin.
Before adding a WooCommerce node to your workflow, you need three things:
A WooCommerce Consumer Key
A WooCommerce Consumer Secret
Your store's URL (e.g. https://yourdomain.com)
The Consumer Key and Secret are generated inside your WordPress dashboard and are specific to each store. They are different from your WordPress login credentials — do not confuse them.
Log in to your WordPress admin dashboard
Go to WooCommerce → Settings → Advanced → REST API
Click Add Key
Fill in the following:
Description — give it a name like "Syncaut"
User — select a WordPress user with sufficient permissions (Administrator recommended)
Permissions — select Read/Write so Syncaut can both fetch and update data
Click Generate API Key
You will see the Consumer Key and Consumer Secret on screen — copy both immediately
⚠️ Important: The Consumer Key and Consumer Secret are shown only once. If you leave the page without copying them you will need to delete the key and generate a new one. Store them safely before continuing.
WooCommerce's REST API requires pretty permalinks to be enabled. If your store returns 404 errors on all API calls, this is almost always the cause.
In WordPress, go to Settings → Permalinks
Make sure it is set to anything other than Plain — use Post name (/%postname%/) if unsure
Click Save Changes even if you do not change anything — this flushes the rewrite rules
WooCommerce credentials are stored as a JSON object containing both the Consumer Key and Consumer Secret.
In Syncaut, go to your Workspace → Credentials
Click Add Credential
Select WooCommerce as the type
In the credential value field, paste the following JSON — replacing the placeholder values with your actual keys:
{
"consumerKey": "ck_your_consumer_key_here",
"consumerSecret": "cs_your_consumer_secret_here"
}
Give it a recognisable name (e.g. "Client Store — WooCommerce")
Save
⚠️ The credential must be valid JSON with both
consumerKeyandconsumerSecretfields. The Consumer Key always starts withck_and the Consumer Secret always starts withcs_. If either field is missing or the JSON is malformed, the node will fail immediately with an invalid credential error.
Your credentials are encrypted at rest and never exposed after saving.
When adding a WooCommerce node to your workflow, you go through three steps:
Step name — a variable name used to reference this node's output in later steps (e.g. getOrders). Must start with a letter or underscore, no spaces.
Credential — select the WooCommerce credential you added above
Store URL — the full URL of the WordPress store without a trailing slash (e.g. https://yourdomain.com). Must be a valid URL starting with https:// or http://.
⚠️ The Store URL must match the WordPress site where the API keys were generated. Using keys from one store with the URL of a different store will result in a 401 Unauthorized error.
Choose what you want this node to do. Actions are grouped by resource:
Products — Get all products, Get product, Create product, Update product, Delete product
Orders — Get all orders, Get order, Create order, Update order, Delete order
Customers — Get all customers, Get customer, Create customer, Update customer, Delete customer
Inventory — Get stock level, Update stock
Categories — Get all categories, Create category
For list actions (Get all products, Get all orders, etc.) you will see a filters panel. For single-record actions you will see either a form view or a JSON editor — you can toggle between them using the Form / JSON switch.
Get all products Fetches a paginated list of products from your store.
Filters available:
Per page — number of products per page, max 100
Page — page number for pagination
Search — keyword search across product names
Status — Any, Published, Draft, Pending, Private
Category ID — filter by a specific category. Use the Get all categories action first to find the ID.
Get product Fetches a single product and all its data by ID. Required: productId
Create product Creates a new product in your store. Required: name Optional: type (simple or variable), regular_price, description
Update product Updates an existing product. Required: productId Optional: regular_price, stock_quantity, and any other WooCommerce product fields
Delete product Permanently deletes a product. This cannot be undone. Required: productId
Get all orders Fetches a paginated list of orders from your store.
Filters available:
Per page — max 100
Page — pagination
Search — keyword search
Order status — Any, Pending, Processing, On Hold, Completed, Cancelled, Refunded, Failed
Get order Fetches a single order and all its line items, billing, and shipping data. Required: orderId
Create order Creates a new order programmatically. Required: billing.first_name, billing.last_name, billing.email, line_items[0].product_id, line_items[0].quantity
Update order Updates an existing order. Most commonly used to change order status. Required: orderId Optional: status — use one of the following values:
pending — awaiting payment
processing — payment received, fulfilling
on-hold — awaiting action
completed — fully fulfilled
cancelled — cancelled by admin or customer
refunded — fully refunded
failed — payment failed
Delete order Permanently deletes an order. Required: orderId
Get all customers Fetches a paginated list of customers.
Filters available:
Per page — max 100
Page — pagination
Search — search by name or email
Role — Any, Customer, Subscriber, Administrator
Get customer Fetches a single customer's profile and address data. Required: customerId
Create customer Creates a new customer account in WooCommerce. Required: email, first_name, last_name Optional: username — if left blank WooCommerce will auto-generate one from the email
Update customer Updates a customer's profile. Required: customerId Optional: first_name, and any other WooCommerce customer fields
Delete customer Permanently deletes a customer account. Required: customerId
Get stock level Fetches the current stock quantity and stock status of a product. Required: productId
The stock data is in the output under {{stepName.data.stock_quantity}} and {{stepName.data.stock_status}}.
Update stock Updates the stock quantity of a product. Sets manage_stock to true automatically. Required: productId, stock_quantity
Get all categories Fetches all product categories from your store. No parameters required. Use this to find category IDs for filtering products.
Create category Creates a new product category. Required: name Optional: slug — the URL-friendly version of the name. Auto-generated if left blank.
For single-record actions, the parameters step offers two modes:
Form view (default) — fill in individual fields. The JSON payload is built automatically as you type. Use this for simple operations and when referencing variables from previous steps.
JSON view — edit the raw JSON payload directly. Use this for complex operations that require nested fields, arrays, or advanced WooCommerce parameters not exposed in the form view. Switching to JSON view will carry over the values you entered in form view.
Reference outputs from previous workflow steps inside any parameter field using Handlebars syntax:
{{stepName.data}}
For example, if a previous step named getOrder fetched an order, you can reference the customer email in a later step as:
{{getOrder.data.billing.email}}
Or reference the order ID to update it:
{{getOrder.data.id}}
Use the variable picker (+ variable) next to each field to insert common variables without typing them manually.
Every WooCommerce node stores its result under the step name you provide. The output structure is:
{
"data": {},
"action": "get_orders",
"storeUrl": "https://yourdomain.com"
}
Reference the response data in later steps as {{stepName.data}}. For example, if your step name is fetchOrders:
{{fetchOrders.data}}
For list actions, data will be an array. You can pass it to a subsequent step using:
{{json fetchOrders.data}}
401 Unauthorized Your Consumer Key or Consumer Secret is incorrect. The most common causes are:
Pasting the wrong values — Consumer Key starts with ck_, Consumer Secret starts with cs_
The credential JSON has a typo, missing quote, or extra whitespace
The API key was deleted or regenerated in WooCommerce after being saved in Syncaut
Go to WooCommerce → Settings → Advanced → REST API to verify or regenerate the keys, then update the credential in Syncaut.
403 Forbidden Your API key was created with Read only permissions. Edit the key in WooCommerce and change Permissions to Read/Write, then save.
404 Not Found on all requests Your WordPress site does not have pretty permalinks enabled. Go to WordPress → Settings → Permalinks, select any option other than Plain, and click Save Changes.
Invalid credential format The credential value is not valid JSON or is missing consumerKey or consumerSecret. Edit the credential in Workspace → Credentials and make sure the JSON is correctly formatted with both fields present.
Credential not found The credential attached to the node was deleted from your workspace. Re-add it under Workspace → Credentials and update the node.
Invalid JSON payload The payload has a syntax error or a variable resolved to an unexpected value. Check the payload in the node editor and make sure all {{placeholders}} are being resolved correctly before running.
productId / orderId / customerId is required The ID field is empty. Provide the ID directly or reference it from a previous step using {{stepName.data.id}}.
SSL / TLS errors in development TLS certificate verification is disabled automatically in development mode. In production your store must have a valid SSL certificate — self-signed certificates will cause connection failures.
Navigate