DEV Community

Pirate Prentice
Pirate Prentice

Posted on

n8n WooCommerce Node: Automate Orders, Customers, and Inventory in Your Workflows (Free Workflow JSON)

n8n WooCommerce Node: Automate Orders, Customers, and Inventory in Your Workflows (Free Workflow JSON)

WooCommerce powers over 5 million online stores. If you run one — or build automations for clients who do — connecting WooCommerce to n8n opens up a world of possibilities: automatic order logging, real-time inventory alerts, customer onboarding sequences, and sync with your CRM, accounting, or fulfillment systems.

This guide covers everything you need to know about the n8n WooCommerce node: all available operations, authentication setup, common gotchas, and three production-ready workflow patterns with free JSON you can import today.


What the n8n WooCommerce Node Can Do

The WooCommerce node interacts with the WooCommerce REST API (v3). Supported resources and operations include:

Order

  • Create — create a new order
  • Delete — delete an order
  • Get — retrieve a single order by ID
  • Get Many — list orders with optional filters (status, date, customer)
  • Update — modify an existing order (change status, add notes, update shipping)

Customer

  • Create — create a customer account
  • Delete — delete a customer
  • Get — retrieve a single customer
  • Get Many — list customers with optional search/filter
  • Update — modify customer details

Product

  • Create — create a new product
  • Delete — delete a product
  • Get — retrieve a single product
  • Get Many — list products with optional filters (category, type, status)
  • Update — modify product details (price, stock, description, images)

Coupon

  • Create — create a discount coupon
  • Delete — delete a coupon
  • Get — retrieve a coupon
  • Get Many — list all coupons
  • Update — modify coupon rules

Authentication: WooCommerce REST API Keys

The WooCommerce node authenticates via API Key + Secret (HTTP Basic Auth). Here's how to set it up:

Step-by-step setup

  1. Log in to your WordPress admin dashboard
  2. Go to WooCommerce → Settings → Advanced → REST API
  3. Click Add key
  4. Enter a description (e.g., "n8n Integration")
  5. Set Permissions to Read/Write (or Read-only if you only need to pull data)
  6. Click Generate API key
  7. Copy the Consumer Key and Consumer Secret immediately (secret is only shown once)

In n8n, create a WooCommerce API credential with:

  • WooCommerce URL — your store URL (e.g., https://mystore.com)
  • Consumer Key — from the WooCommerce settings
  • Consumer Secret — from the WooCommerce settings

Important: Your store must have pretty permalinks enabled (WordPress → Settings → Permalinks → "Post name" or "Custom Structure"). The REST API will return 404 if default permalinks are active.


All Operations Reference

Order Operations

Create Order

{
  "resource": "order",
  "operation": "create",
  "status": "processing",
  "paymentMethod": "stripe",
  "paymentMethodTitle": "Credit Card (Stripe)",
  "setPaid": true,
  "billing": {
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@example.com",
    "address_1": "123 Main St",
    "city": "Austin",
    "state": "TX",
    "postcode": "78701",
    "country": "US"
  },
  "lineItems": [
    { "productId": 42, "quantity": 2 },
    { "productId": 15, "quantity": 1 }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Get Many Orders (with filters)

{
  "resource": "order",
  "operation": "getAll",
  "returnAll": false,
  "limit": 50,
  "filter": {
    "status": "processing",
    "after": "2026-01-01T00:00:00"
  }
}
Enter fullscreen mode Exit fullscreen mode

Update Order Status

{
  "resource": "order",
  "operation": "update",
  "orderId": "={{ $json.id }}",
  "updateFields": {
    "status": "completed"
  }
}
Enter fullscreen mode Exit fullscreen mode

Customer Operations

Create Customer

{
  "resource": "customer",
  "operation": "create",
  "email": "newcustomer@example.com",
  "firstName": "John",
  "lastName": "Smith",
  "username": "johnsmith",
  "billing": {
    "address_1": "456 Oak Ave",
    "city": "Dallas",
    "state": "TX",
    "postcode": "75201",
    "country": "US"
  }
}
Enter fullscreen mode Exit fullscreen mode

Get Many Customers

{
  "resource": "customer",
  "operation": "getAll",
  "returnAll": false,
  "limit": 100,
  "filter": {
    "search": "jane"
  }
}
Enter fullscreen mode Exit fullscreen mode

Product Operations

Create Product

{
  "resource": "product",
  "operation": "create",
  "name": "Premium Widget",
  "type": "simple",
  "regularPrice": "29.99",
  "description": "High-quality widget with lifetime warranty.",
  "sku": "WID-001",
  "manageStock": true,
  "stockQuantity": 100,
  "categories": [{ "id": 5 }],
  "images": [{ "src": "https://example.com/widget.jpg" }]
}
Enter fullscreen mode Exit fullscreen mode

Update Product Stock

{
  "resource": "product",
  "operation": "update",
  "productId": "={{ $json.id }}",
  "updateFields": {
    "stockQuantity": "={{ $json.new_stock }}",
    "manageStock": true
  }
}
Enter fullscreen mode Exit fullscreen mode

6 Common Gotchas

1. Pretty permalinks required

If your WordPress site uses default permalinks (?p=123), the WooCommerce REST API returns 404 on every request. Go to WordPress → Settings → Permalinks and select "Post name" or any custom structure. This is the #1 cause of connection failures.

2. Webhook vs polling: choose the right trigger

The WooCommerce node supports both Webhook triggers (real-time, push-based) and polling (Schedule Trigger + Get Many). For order/customer events, use webhooks — they're instant and don't load your server. For product/inventory sync, polling every 5–15 minutes is usually sufficient.

3. Webhook deduplication is mandatory

WooCommerce webhooks can fire multiple times for the same event (especially during payment processing retries). Always add a deduplication check — use the order ID + timestamp as a unique key, and check a "processed orders" log (Google Sheets, a database, or n8n's static data) before processing.

4. Line items use productId, not SKU

When creating orders via API, line items reference products by productId (internal WordPress ID), not by SKU. If you're syncing from an external system that only knows SKUs, add a lookup step: Get Many Products filtered by SKU, then map to product IDs.

5. Rate limits: WooCommerce Cloud vs self-hosted

WooCommerce Cloud (WordPress.com hosting) enforces rate limits that vary by plan (typically 1–5 req/sec). Self-hosted WooCommerce has no hard limit but can be throttled by your server's PHP workers or security plugins (Wordfence, Cloudflare). For bulk operations, use the Split in Batches node with a 1-second Wait between batches.

6. Order statuses are strings, not enums

WooCommerce order statuses include pending, processing, on-hold, completed, cancelled, refunded, and failed. Custom statuses added by plugins (e.g., "shipped" from a shipping plugin) are also valid. However, the status must be registered with WooCommerce — sending an unregistered status silently fails. Always verify the status exists before updating.


3 Production-Ready Workflow Patterns

Pattern 1: New Order → Google Sheets Logger

Use case: Log every new WooCommerce order to a Google Sheet for accounting, reporting, or backup.

Workflow:

  • Webhook Trigger — receive WooCommerce order.created webhook
  • Code node — extract order fields (ID, date, customer, total, items, status, payment method)
  • Google Sheets node — append row to your orders sheet

This is the simplest and most reliable integration. The Google Sheet becomes a live dashboard of all orders, searchable and filterable.

Free JSON: See footer.

Pattern 2: Low Stock → Slack Alert

Use case: When any product's stock drops below a threshold, instantly notify your team in Slack so reordering happens before a stockout.

Workflow:

  • Schedule Trigger — every 2 hours
  • WooCommerce node (Get Many Products) — filter: manage_stock = true, stock_quantity < 10
  • Filter node — only pass products where stock_quantity < 10
  • Slack node — post alert:
  ⚠️ Low Stock Alert
  Product: {{ $json.name }}
  Current stock: {{ $json.stock_quantity }}
  SKU: {{ $json.sku }}
  Product URL: {{ $json.permalink }}
Enter fullscreen mode Exit fullscreen mode

Pattern 3: New Order → CRM + Welcome Email + Fulfillment

Use case: When a new order comes in, create a customer record in HubSpot, send a personalized welcome email via Gmail, and create a fulfillment task in your project management tool.

Workflow:

  • Webhook Trigger — WooCommerce order.created
  • HubSpot node — create or update contact with order details
  • Gmail node — send welcome email:
  Subject: Order #{{ $json.id }} confirmed — here's what happens next
  Body: Hi {{ $json.billing.first_name }}, thanks for your order! We're preparing {{ $json.line_items }} for shipment...
Enter fullscreen mode Exit fullscreen mode
  • Microsoft Teams / Slack node — notify fulfillment team

Free Workflow JSON

Download a ready-to-import n8n workflow covering the New Order → Google Sheets Logger pattern:

n8n Workflow Starter Pack ($29) — includes WooCommerce workflows + 10 more

Prefer someone to build it for you? Done-for-You n8n Workflow Build — $99. You describe your automation, I build and deliver a working workflow JSON within 48 hours.


WooCommerce Node vs Shopify Node

Capability WooCommerce Node Shopify Node
Orders
Customers
Products
Inventory ✅ (via product stock)
Webhooks ✅ (via WooCommerce) ✅ (via Shopify)
Authentication API Key + Secret OAuth2 / Access Token
Self-hosted option ✅ Yes ❌ No (SaaS only)
Rate limits Server-dependent 2 req/sec (Basic plan)

If you're on WordPress, WooCommerce gives you full control over your data and no per-transaction platform fees. Shopify is simpler to manage but locks you into their ecosystem.


What's Next

You've now got full control over WooCommerce from your n8n workflows — orders, customers, products, and coupons. Combine this with the Stripe Webhooks guide, Google Sheets node guide, and HubSpot node guide for a fully connected e-commerce automation stack.

Get the n8n WooCommerce → Google Sheets Order Logger — $9

Get the n8n Workflow Starter Pack — $29

Done-for-You Workflow Build — $99

Related Articles

Top comments (1)

Collapse
 
pirateprentice profile image
Pirate Prentice

Are you using the WooCommerce node to sync orders into Google Sheets, trigger low-stock alerts in Slack, or push new customers into your CRM? Drop your e-commerce automation use case in the comments — would love to see what people are building with WooCommerce and n8n.