Reference · Tools

WooCommerce

Manage products, orders, and customers on a WooCommerce store

Action Sales v1

The WooCommerce node manages products, orders and customers on a WooCommerce store through REST API v3. A typical build is syncing new orders into fulfilment and updating stock levels back on the store as items ship.

Node type
Action
Parameters
41
Outputs
Output, Error
Credentials
WooCommerce API

WooCommerce

Manage products, orders, and customers on WooCommerce

Overview

WooCommerce is an open-source e-commerce plugin for WordPress. This tool interacts with the WooCommerce REST API v3 to create, read, update, and delete products, orders, and customers. It supports Basic Auth and query parameter authentication, page-based pagination for listing operations, and handles all standard WooCommerce data structures including line items, billing/shipping addresses, coupons, fees, metadata, and product attributes.

Category: Sales
Tool Name: woocommerce
Version: 1

Appearance: Icon: si-woocommerce | Color: #96588a

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires WooCommerce API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Customercustomer
Orderorder
Productproduct

Operations

All three resources offer the same five operations. Pick the resource first, then the operation.

OperationValue
Createcreate
Deletedelete
Getget
Get ManygetAll
Updateupdate

Parameters

Fixed collections nest their entries under a group key — dimensionsValues, imagesValues, metadataValues, billingValues, shippingValues, lineItemsValues, couponLinesValues, feeLinesValues, shippingLinesValues. Dimensions, Billing and Shipping hold a single record each; the others hold a list.

Product: Create

ParameterTypeRequiredDefaultDescription
NamestringYesProduct name.
Additional Fields (additionalFields)collectionNo{}Optional properties to set on the new product.
— BackordersoptionsNonoIf managing stock, this controls if backorders are allowed.
Options: no, notify, yes
— Button Text (buttonText)stringNoProduct external button text. Only for external products.
— Catalog Visibility (catalogVisibility)optionsNovisible
Options: catalog, hidden, search, visible
— CategoriesstringNoComma-separated list of category IDs. Find IDs in WooCommerce admin under Products > Categories.
— Cross Sell IDs (crossSellIds)stringNoComma-separated list of cross-sell product IDs.
— Date On Sale From (dateOnSaleFrom)stringNoStart date of sale price, in the site timezone (ISO8601).
— Date On Sale To (dateOnSaleTo)stringNoEnd date of sale price, in the site timezone (ISO8601).
— DescriptionstringNoProduct description.
— DownloadablebooleanNofalseWhether the product is downloadable.
— External URL (externalUrl)stringNoProduct external URL. Only for external products.
— FeaturedbooleanNofalseWhether the product is featured.
— Manage Stock (manageStock)booleanNofalseWhether stock management is enabled at product level.
— Menu Order (menuOrder)numberNo1Menu order, used to custom sort products.
— Parent ID (parentId)stringNoProduct parent ID.
— Purchase Note (purchaseNote)stringNoOptional note to send the customer after purchase.
— Regular Price (regularPrice)stringNoProduct regular price.
— Reviews Allowed (reviewsAllowed)booleanNotrueWhether to allow reviews.
— Sale Price (salePrice)stringNoProduct sale price.
— Shipping Class (shippingClass)stringNoShipping class slug.
— Short Description (shortDescription)stringNoProduct short description.
— SKUstringNoUnique product identifier.
— SlugstringNoProduct slug.
— Sold Individually (soldIndividually)booleanNofalseWhether to allow one item to be bought in a single order.
— StatusoptionsNopublishProduct status.
Options: draft, pending, private, publish
— Stock Quantity (stockQuantity)numberNo1Stock quantity.
— Stock Status (stockStatus)optionsNoinstockControls the stock status of the product.
Options: instock, outofstock, onbackorder
— TagsstringNoComma-separated list of tag IDs. Find IDs in WooCommerce admin under Products > Tags.
— Tax Class (taxClass)stringNoProduct tax class.
— Tax Status (taxStatus)optionsNotaxable
Options: taxable, shipping, none
— TypeoptionsNosimpleProduct type.
Options: simple, grouped, external, variable
— Upsell IDs (upsellIds)stringNoComma-separated list of up-sell product IDs.
— VirtualbooleanNofalseWhether the product is virtual.
— WeightstringNoProduct weight.
Dimensions (dimensionsUi)fixedCollectionNo{}Product dimensions. Holds one record under dimensionsValues.
— HeightstringNo
— LengthstringNo
— WidthstringNo
Images (imagesUi)fixedCollectionNo{}Product images (by URL). Holds a list under imagesValues.
— AltstringNoImage alternative text.
— SrcstringNoImage URL.
— NamestringNoImage name.
Metadata (metadataUi)fixedCollectionNo{}Product metadata. Holds a list under metadataValues.
— KeystringNo
— ValuestringNo

Product: Update

ParameterTypeRequiredDefaultDescription
Product ID (productId)stringYesID of the product to update.
Update Fields (updateFields)collectionNo{}Product fields to change. Only the fields you add are sent.
— BackordersoptionsNono
Options: no, notify, yes
— Button Text (buttonText)stringNo
— Catalog Visibility (catalogVisibility)optionsNovisible
Options: visible, catalog, search, hidden
— CategoriesstringNoComma-separated list of category IDs.
— Cross Sell IDs (crossSellIds)stringNo
— Date On Sale From (dateOnSaleFrom)stringNo
— Date On Sale To (dateOnSaleTo)stringNo
— DescriptionstringNo
— DownloadablebooleanNofalse
— External URL (externalUrl)stringNo
— FeaturedbooleanNofalse
— Manage Stock (manageStock)booleanNofalse
— Menu Order (menuOrder)numberNo1
— NamestringNoProduct name.
— Parent ID (parentId)stringNo
— Purchase Note (purchaseNote)stringNo
— Regular Price (regularPrice)stringNo
— Reviews Allowed (reviewsAllowed)booleanNotrue
— Sale Price (salePrice)stringNo
— Shipping Class (shippingClass)stringNo
— Short Description (shortDescription)stringNo
— SKUstringNo
— SlugstringNo
— Sold Individually (soldIndividually)booleanNofalse
— StatusoptionsNopublish
Options: draft, pending, private, publish
— Stock Quantity (stockQuantity)numberNo1
— Stock Status (stockStatus)optionsNoinstock
Options: instock, outofstock, onbackorder
— TagsstringNoComma-separated list of tag IDs.
— Tax Class (taxClass)stringNo
— Tax Status (taxStatus)optionsNotaxable
Options: taxable, shipping, none
— TypeoptionsNosimple
Options: simple, grouped, external, variable
— Upsell IDs (upsellIds)stringNo
— VirtualbooleanNofalse
— WeightstringNo
Dimensions (dimensionsUi)fixedCollectionNo{}Product dimensions. Holds one record under dimensionsValues.
— HeightstringNo
— LengthstringNo
— WidthstringNo
Images (imagesUi)fixedCollectionNo{}Product images (by URL). Holds a list under imagesValues.
— AltstringNoImage alternative text.
— SrcstringNoImage URL.
— NamestringNoImage name.
Metadata (metadataUi)fixedCollectionNo{}Product metadata. Holds a list under metadataValues.
— KeystringNo
— ValuestringNo

Product: Get

ParameterTypeRequiredDefaultDescription
Product ID (productId)stringYesID of the product to retrieve.

Product: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. Accepts 1–100. (shown when Return All is false)
Options (options)collectionNo{}Query filters for the product list.
— AfterstringNoLimit response to resources published after a given ISO8601 date.
— BeforestringNoLimit response to resources published before a given ISO8601 date.
— CategorystringNoCategory ID to filter by. Find IDs in WooCommerce admin under Products > Categories.
— ContextoptionsNoviewScope under which the request is made.
Options: view, embed, edit
— FeaturedbooleanNofalseWhether to limit to featured products.
— Max Price (maxPrice)stringNoLimit result set to products based on a maximum price.
— Min Price (minPrice)stringNoLimit result set to products based on a minimum price.
— OrderoptionsNodesc
Options: asc, desc
— Order By (orderBy)optionsNoid
Options: date, id, include, slug, title
— SearchstringNoLimit results to those matching a string.
— SKUstringNoLimit result set to products with a specific SKU.
— SlugstringNoLimit result set to products with a specific slug.
— StatusoptionsNoany
Options: any, draft, pending, private, publish
— Stock Status (stockStatus)optionsNo
Options: instock, outofstock, onbackorder
— TagstringNoTag ID to filter by. Find IDs in WooCommerce admin under Products > Tags.
— Tax Class (taxClass)optionsNo
Options: standard, reduced-rate, zero-rate
— TypeoptionsNosimple
Options: simple, grouped, external, variable

Product: Delete

ParameterTypeRequiredDefaultDescription
Product ID (productId)stringYesID of the product to delete.

Order: Create

ParameterTypeRequiredDefaultDescription
Additional Fields (additionalFields)collectionNo{}Optional properties to set on the new order.
— CurrencystringNoCurrency the order was created with (e.g. USD, EUR).
— Customer ID (customerId)stringNoUser ID who owns the order. 0 for guests.
— Customer Note (customerNote)stringNoNote left by customer during checkout.
— Parent ID (parentId)stringNoParent order ID.
— Payment Method ID (paymentMethodId)stringNoPayment method ID (e.g. bacs, cheque, cod, paypal).
— Payment Method Title (paymentMethodTitle)stringNoPayment method title.
— Set Paid (setPaid)booleanNofalseWhether the order is paid. Will set status to processing and reduce stock.
— StatusoptionsNopendingOrder status.
Options: cancelled, completed, failed, on-hold, pending, processing, refunded, trash
— Transaction ID (transactionID)stringNoUnique transaction ID.
Billing (billingUi)fixedCollectionNo{}Billing address. Holds one record under billingValues.
— First Name (firstName)stringNo
— Last Name (lastName)stringNo
— CompanystringNo
— Address Line 1 (address_1)stringNo
— Address Line 2 (address_2)stringNo
— CitystringNo
— Postal Code (postcode)stringNo
— CountrystringNo
— EmailstringNo
— PhonestringNo
Shipping (shippingUi)fixedCollectionNo{}Shipping address. Holds one record under shippingValues.
— First Name (firstName)stringNo
— Last Name (lastName)stringNo
— CompanystringNo
— Address Line 1 (address_1)stringNo
— Address Line 2 (address_2)stringNo
— CitystringNo
— Postal Code (postcode)stringNo
— CountrystringNo
Line Items (lineItemsUi)fixedCollectionNo{}Line item data. Holds a list under lineItemsValues.
— NamestringNoProduct name.
— Product ID (productId)numberNo0
— Variation ID (variationId)numberNo0Variation ID, if applicable.
— QuantitynumberNo1
— Tax Class (taxClass)stringNo
— SubtotalstringNoLine subtotal (before discounts).
— TotalstringNoLine total (after discounts).
Coupon Lines (couponLinesUi)fixedCollectionNo{}Coupon line data. Holds a list under couponLinesValues.
— CodestringNoCoupon code.
Fee Lines (feeLinesUi)fixedCollectionNo{}Fee line data. Holds a list under feeLinesValues.
— NamestringNoFee name.
— Tax Class (taxClass)stringNo
— Tax Status (taxStatus)optionsNotaxable
Options: taxable, none
— TotalstringNoLine total.
Shipping Lines (shippingLinesUi)fixedCollectionNo{}Shipping line data. Holds a list under shippingLinesValues.
— Method Title (methodTitle)stringNoShipping method name.
— Method ID (methodId)stringNoShipping method ID.
— TotalstringNoLine total.
Metadata (metadataUi)fixedCollectionNo{}Order metadata. Holds a list under metadataValues.
— KeystringNo
— ValuestringNo

Order: Update

ParameterTypeRequiredDefaultDescription
Order ID (orderId)stringYesID of the order to update.
Update Fields (updateFields)collectionNo{}Order fields to change. Only the fields you add are sent.
— CurrencystringNo
— Customer ID (customerId)stringNo
— Customer Note (customerNote)stringNo
— Parent ID (parentId)stringNo
— Payment Method ID (paymentMethodId)stringNo
— Payment Method Title (paymentMethodTitle)stringNo
— StatusoptionsNopending
Options: cancelled, completed, failed, on-hold, pending, processing, refunded, trash
— Transaction ID (transactionID)stringNo
Billing (billingUi)fixedCollectionNo{}Billing address. Holds one record under billingValues.
— First Name (firstName)stringNo
— Last Name (lastName)stringNo
— CompanystringNo
— Address Line 1 (address_1)stringNo
— Address Line 2 (address_2)stringNo
— CitystringNo
— Postal Code (postcode)stringNo
— CountrystringNo
— EmailstringNo
— PhonestringNo
Shipping (shippingUi)fixedCollectionNo{}Shipping address. Holds one record under shippingValues.
— First Name (firstName)stringNo
— Last Name (lastName)stringNo
— CompanystringNo
— Address Line 1 (address_1)stringNo
— Address Line 2 (address_2)stringNo
— CitystringNo
— Postal Code (postcode)stringNo
— CountrystringNo
Line Items (lineItemsUi)fixedCollectionNo{}Line item data. Holds a list under lineItemsValues.
— NamestringNoProduct name.
— Product ID (productId)numberNo0
— Variation ID (variationId)numberNo0Variation ID, if applicable.
— QuantitynumberNo1
— Tax Class (taxClass)stringNo
— SubtotalstringNoLine subtotal (before discounts).
— TotalstringNoLine total (after discounts).
Coupon Lines (couponLinesUi)fixedCollectionNo{}Coupon line data. Holds a list under couponLinesValues.
— CodestringNoCoupon code.
Fee Lines (feeLinesUi)fixedCollectionNo{}Fee line data. Holds a list under feeLinesValues.
— NamestringNoFee name.
— Tax Class (taxClass)stringNo
— Tax Status (taxStatus)optionsNotaxable
Options: taxable, none
— TotalstringNoLine total.
Shipping Lines (shippingLinesUi)fixedCollectionNo{}Shipping line data. Holds a list under shippingLinesValues.
— Method Title (methodTitle)stringNoShipping method name.
— Method ID (methodId)stringNoShipping method ID.
— TotalstringNoLine total.
Metadata (metadataUi)fixedCollectionNo{}Order metadata. Holds a list under metadataValues.
— KeystringNo
— ValuestringNo

Order: Get

ParameterTypeRequiredDefaultDescription
Order ID (orderId)stringYesID of the order to retrieve.

Order: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. Accepts 1–100. (shown when Return All is false)
Options (options)collectionNo{}Query filters for the order list.
— AfterstringNoLimit response to resources published after a given ISO8601 date.
— BeforestringNoLimit response to resources published before a given ISO8601 date.
— CustomerstringNoCustomer ID to filter by.
— Decimal Points (decimalPoints)numberNo2Number of decimal points to use in each resource. Accepts 0–10.
— OrderoptionsNodesc
Options: asc, desc
— Order By (orderBy)optionsNoid
Options: date, id, include, slug, title
— ProductstringNoProduct ID to filter orders by.
— SearchstringNo
— StatusoptionsNoany
Options: any, cancelled, completed, failed, on-hold, pending, processing, refunded, trash

Order: Delete

ParameterTypeRequiredDefaultDescription
Order ID (orderId)stringYesID of the order to delete.

Customer: Create

ParameterTypeRequiredDefaultDescription
EmailstringYesCustomer email address.
Additional Fields (additionalFields)collectionNo{}Optional properties to set on the new customer.
— Billing Address (billing)collectionNo{}
— — First Name (first_name)stringNo
— — Last Name (last_name)stringNo
— — CompanystringNo
— — Address 1 (address_1)stringNo
— — Address 2 (address_2)stringNo
— — CitystringNo
— — StatestringNo
— — PostcodestringNo
— — CountrystringNo
— — EmailstringNo
— — PhonestringNo
— First Name (first_name)stringNo
— Last Name (last_name)stringNo
— Metadata (meta_data)fixedCollectionNo{}Holds a list under meta_data_fields.
— — KeystringNo
— — ValuestringNo
— PasswordstringNo
— Shipping Address (shipping)collectionNo{}
— — First Name (first_name)stringNo
— — Last Name (last_name)stringNo
— — CompanystringNo
— — Address 1 (address_1)stringNo
— — Address 2 (address_2)stringNo
— — CitystringNo
— — StatestringNo
— — PostcodestringNo
— — CountrystringNo
— — EmailstringNo
— — PhonestringNo
— UsernamestringNo

Customer: Delete

ParameterTypeRequiredDefaultDescription
Customer ID (customerId)stringYesID of the customer to delete.

Customer: Get

ParameterTypeRequiredDefaultDescription
Customer ID (customerId)stringYesID of the customer to retrieve.

Customer: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
Filters (filters)collectionNo{}Query filters for the customer list.
— EmailstringNoEmail address to filter customers by.
— Sort Order (order)optionsNoasc
Options: asc (Ascending), desc (Descending)
— Order By (orderby)optionsNoid
Options: id, include, name, registered_date

Customer: Update

ParameterTypeRequiredDefaultDescription
Customer ID (customerId)stringYesID of the customer to update.
Update Fields (updateFields)collectionNo{}Customer fields to change. Only the fields you add are sent.
— Billing Address (billing)collectionNo{}
— — First Name (first_name)stringNo
— — Last Name (last_name)stringNo
— — CompanystringNo
— — Address 1 (address_1)stringNo
— — Address 2 (address_2)stringNo
— — CitystringNo
— — StatestringNo
— — PostcodestringNo
— — CountrystringNo
— — EmailstringNo
— — PhonestringNo
— First Name (first_name)stringNo
— Last Name (last_name)stringNo
— Metadata (meta_data)fixedCollectionNo{}Holds a list under meta_data_fields.
— — KeystringNo
— — ValuestringNo
— Shipping Address (shipping)collectionNo{}
— — First Name (first_name)stringNo
— — Last Name (last_name)stringNo
— — CompanystringNo
— — Address 1 (address_1)stringNo
— — Address 2 (address_2)stringNo
— — CitystringNo
— — StatestringNo
— — PostcodestringNo
— — CountrystringNo
— — EmailstringNo
— — PhonestringNo

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently. Accepts 1–100.

Output Data

The WooCommerce record replaces the output item’s JSON — it is not merged onto the input item. Nothing the input item carried in json survives this node, so read any upstream value you still need before it, or branch around the node. Binary data on the input item is forwarded unchanged onto every output item.

OperationsOutput
Get Many on products, orders and customersOne output item per record returned. Turn Return All on to page through the store; leave it off and Limit caps the result. A page with no records produces no output items for that input.
Create, Get and Update on products, orders and customersOne output item whose JSON is the WooCommerce object — {{ $json.id }} is the record ID.
Delete on products, orders and customersOne output item whose JSON is the deleted record as WooCommerce returned it. Deletes are permanent rather than moved to trash.

Creating an order or a customer is protected against duplicates: the node first looks for a record already tagged with an identifier unique to that execution, node and input item, and returns the existing record instead of creating a second one. Product creation has no such guard, so a retried product create can produce a duplicate.

Usage Examples

  • Create a new WooCommerce product with name and price
  • List all WooCommerce orders with status processing
  • Update a customer billing address in WooCommerce
  • Delete a WooCommerce product by ID
  • Get all WooCommerce customers filtered by email

Example Configuration

Create a published product with dimensions, an image and custom metadata:

{
  "type": "woocommerce",
  "parameters": {
    "resource": "product",
    "operation": "create",
    "name": "Amazing Widget",
    "additionalFields": {
      "regularPrice": "29.99",
      "salePrice": "24.99",
      "sku": "WIDGET-001",
      "status": "publish",
      "type": "simple",
      "description": "An amazing widget that does everything",
      "stockQuantity": 50,
      "manageStock": true
    },
    "dimensionsUi": {
      "dimensionsValues": {
        "height": "5",
        "length": "10",
        "width": "8"
      }
    },
    "imagesUi": {
      "imagesValues": [
        {
          "src": "https://example.com/widget.jpg",
          "alt": "Amazing Widget",
          "name": "widget-main"
        }
      ]
    },
    "metadataUi": {
      "metadataValues": [
        { "key": "warranty", "value": "2 years" }
      ]
    }
  }
}

Create a processing order with a billing address and one line item:

{
  "type": "woocommerce",
  "parameters": {
    "resource": "order",
    "operation": "create",
    "additionalFields": {
      "customerId": "{{ $json.customerId }}",
      "status": "processing",
      "currency": "USD",
      "paymentMethodTitle": "Credit Card"
    },
    "billingUi": {
      "billingValues": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "john@example.com",
        "phone": "555-1234",
        "address_1": "123 Main St",
        "city": "New York",
        "postcode": "10001",
        "country": "US"
      }
    },
    "lineItemsUi": {
      "lineItemsValues": [
        { "productId": 456, "quantity": 2, "total": "59.98" }
      ]
    }
  }
}

List the twenty newest published, featured products:

{
  "type": "woocommerce",
  "parameters": {
    "resource": "product",
    "operation": "getAll",
    "returnAll": false,
    "limit": 20,
    "options": {
      "status": "publish",
      "featured": true,
      "orderBy": "date",
      "order": "desc"
    }
  }
}

Move an order to completed:

{
  "type": "woocommerce",
  "parameters": {
    "resource": "order",
    "operation": "update",
    "orderId": "{{ $json.id }}",
    "updateFields": {
      "status": "completed"
    }
  }
}

Update a customer’s name and billing details:

{
  "type": "woocommerce",
  "parameters": {
    "resource": "customer",
    "operation": "update",
    "customerId": "{{ $json.id }}",
    "updateFields": {
      "first_name": "Jane",
      "last_name": "Smith",
      "billing": {
        "phone": "555-9999",
        "address_1": "456 Oak Ave"
      }
    }
  }
}

Find a customer by email:

{
  "type": "woocommerce",
  "parameters": {
    "resource": "customer",
    "operation": "getAll",
    "returnAll": false,
    "limit": 10,
    "filters": {
      "email": "{{ $json.email }}",
      "orderby": "registered_date",
      "order": "desc"
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage WooCommerce store products, orders, and customers via the REST API v3.

Product Management Workflow

  1. Create with the product name plus Additional Fields for price, SKU, stock and status.
  2. Add photos through Images — each entry is a URL WooCommerce fetches, not a file upload.
  3. Set Dimensions and Weight so shipping rates calculate correctly.
  4. Update inventory later by sending only stockQuantity and stockStatus in Update Fields.

Order Processing Workflow

  1. Create the order with Line Items and the customer’s Billing address; Shipping may differ.
  2. Apply discounts through Coupon Lines, and add surcharges through Fee Lines.
  3. Shipping Lines records the method and its cost on the order.
  4. Update the order’s Status as it moves through fulfilment.

Structuring Collections

  • Additional Fields, Update Fields, Options and Filters are flat objects keyed by the sub-field’s internal name.
  • Every fixed collection nests under its group key. Dimensions, Billing and Shipping take a single object; Images, Metadata, Line Items, Coupon Lines, Fee Lines and Shipping Lines take an array.
  • Category and tag fields want numeric IDs, not names — find them in WooCommerce admin under Products > Categories and Products > Tags.

Frequently asked questions

How do I add product photos?

Through the Images collection — each entry is a URL that WooCommerce fetches, not a file upload. Host the image somewhere reachable first.

What does a product creation need?

The product name, plus Additional Fields for price, SKU, stock and status. Set Dimensions and Weight too so shipping rates calculate correctly.

How do I react to store events?

Use the WooCommerce Trigger, which fires on order, product, customer and coupon events with HMAC-SHA256 verification.

Which credential does it need?

A WooCommerce API credential with consumer key and secret.

Build with the WooCommerce node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need WooCommerce API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.