GoRunner docs
Search or askSearch⌘K

WooCommerce

Manage a WooCommerce store: orders, order notes and refunds, products and their variations, customers and coupons.

30 actions · 1 trigger · Paste an API token

Connect WooCommerce

  1. In the sidebar, open Connections and press Add connection.
  2. Type woocommerce and choose WooCommerce.
  3. Fill in the fields. Each one says Required or Optional.
  4. Press Test and save. GoRunner checks the connection before it saves anything.

The sheet asks for:

Store URL · Required

The WordPress site’s address, such as https://shop.example.com (the REST API is at /wp-json/wc/v3 below it).

Consumer key · Required

ck_….

Consumer secret · Required

cs_….

In WordPress: WooCommerce → Settings → Advanced → REST API → Add key, with Read/Write permission. Paste the store’s address and the consumer key and secret it shows once. The store must be served over HTTPS.

Connections says how to sign in again, rename or delete it. In a product that embeds GoRunner, Add connection can be missing: then your provider makes connections for you.

Start a workflow

Add a trigger and choose WooCommerce. The trigger uses the same connection as the steps.

On WooCommerce Event

Fires when the store sends the chosen event. Publishing the workflow creates a webhook in the store (with a signing secret kept encrypted); unpublishing deletes it. Every delivery's X-WC-Webhook-Signature is checked and an unsigned or wrongly signed one is refused. WooCommerce turns a webhook off after 5 failed deliveries in a row.

Event · Required

What starts the workflow.

Options: Coupon created to Product updated (16 options).

Default: Order created.

A later step can use its data, such as {{trigger.id}}, {{trigger.status}}, {{trigger.woocommerce}}. See Use data from earlier steps.

Do things in WooCommerce

Add a WooCommerce step, choose a Resource, then an Operation. Choose a row to see its fields.

Later steps read a step’s output by its name: see Use data from earlier steps.

Limits

  • A reply from WooCommerce can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
  • When WooCommerce says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See When an app isn’t here.

For developers

In the API, which calls apps pieces, WooCommerce is pieceId: "woocommerce" with actionId: "woocommerce", set by resource and an operation_… field, such as operation_coupon. Its trigger is woocommercetrigger / woocommercetrigger. Get an app returns every field.

It can change something outside the run (writes_external). See How versions and side effects work.

WooCommerce › Order

Create

Status · Optional

The order's status.

Options: Pending payment, Processing, On hold, Completed, Cancelled, Refunded, Failed, Trash.

Customer ID · Optional

The customer (0 for a guest).

Currency · Optional

Three-letter code, such as EUR. Empty uses the store's.

Payment Method · Optional

The gateway's id, such as bacs, stripe.

Payment Method Title · Optional

As shown to the customer.

Set Paid · Optional

Mark it paid (sets the status to processing and reduces stock).

Transaction ID · Optional

The payment's id at the gateway.

Customer Note · Optional

A note the customer left.

Billing · Optional

{"first_name", "last_name", "company", "address_1", "address_2", "city", "state", "postcode", "country", "email", "phone"}.

Shipping · Optional

{"first_name", "last_name", "company", "address_1", "address_2", "city", "state", "postcode", "country"}.

Line Items · Optional

What was bought, such as [{"product_id": 93, "quantity": 2}] (add "variation_id" for a variation).

Shipping Lines · Optional

such as [{"method_id": "flat_rate", "method_title": "Flat rate", "total": "5.00"}].

Fee Lines · Optional

such as [{"name": "Gift wrap", "total": "2.50"}].

Coupon Lines · Optional

such as [{"code": "AUTUMN"}].

Meta Data · Optional

Custom fields, such as [{"key": "gift_note", "value": "Happy birthday"}].

Additional Fields · Optional

More of WooCommerce's fields for the order, as JSON by their API names. The fields above win over the same names here.

Delete

Order ID · Required

The order's number.

Delete Permanently · Optional

Delete for good. Off moves it to the trash, where it can be restored.

Get

Order ID · Required

The order's number.

Get Many

Status · Optional

Only orders in this status.

Options: any, Pending payment, Processing, On hold, Completed, Cancelled, Refunded, Failed, Trash.

Customer ID · Optional

Only this customer's orders.

Product ID · Optional

Only orders with this product.

Created After · Optional

Only orders created after this moment. A date or date-time (RFC 3339).

Created Before · Optional

Only orders created before this moment. A date or date-time (RFC 3339).

Modified After · Optional

Only orders changed after this moment. A date or date-time (RFC 3339).

Search · Optional

Text to find in the orders.

Order By · Optional

Sort the list by.

Options: date, id, include, title, slug, modified.

Order · Optional

The sort direction.

Options: Descending, Ascending.

Return All · Optional

Read every order, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many orders to return (1–1000).

Default: 50.

Shows when Return All is off.

Update

Status · Optional

The order's status.

Options: Pending payment, Processing, On hold, Completed, Cancelled, Refunded, Failed, Trash.

Customer ID · Optional

The customer (0 for a guest).

Payment Method · Optional

The gateway's id, such as bacs, stripe.

Payment Method Title · Optional

As shown to the customer.

Set Paid · Optional

Mark it paid (sets the status to processing and reduces stock).

Transaction ID · Optional

The payment's id at the gateway.

Customer Note · Optional

A note the customer left.

Billing · Optional

{"first_name", "last_name", "company", "address_1", "address_2", "city", "state", "postcode", "country", "email", "phone"}.

Shipping · Optional

{"first_name", "last_name", "company", "address_1", "address_2", "city", "state", "postcode", "country"}.

Line Items · Optional

What was bought, such as [{"product_id": 93, "quantity": 2}] (add "variation_id" for a variation).

Shipping Lines · Optional

such as [{"method_id": "flat_rate", "method_title": "Flat rate", "total": "5.00"}].

Fee Lines · Optional

such as [{"name": "Gift wrap", "total": "2.50"}].

Coupon Lines · Optional

such as [{"code": "AUTUMN"}].

Meta Data · Optional

Custom fields, such as [{"key": "gift_note", "value": "Happy birthday"}].

Additional Fields · Optional

More of WooCommerce's fields for the order, as JSON by their API names. The fields above win over the same names here.

Order ID · Required

The order's number.

WooCommerce › Order Note

Create

Order ID · Required

The order the note is on.

Note · Required

The note's text.

Send to Customer · Optional

Email it to the customer. Off keeps it private to the shop.

Delete

Order ID · Required

The order the note is on.

Note ID · Required

The note.

Get Many

Order ID · Required

The order the note is on.

Return All · Optional

Read every order note, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many order notes to return (1–1000).

Default: 50.

Shows when Return All is off.

WooCommerce › Refund

Create

Order ID · Required

The order to refund.

Amount · Optional

How much to refund. Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Reason · Optional

Kept on the refund.

Refund Through the Gateway · Optional

Send the money back through the payment gateway (when it supports refunds). Off only records the refund in the store.

Line Items · Optional

The lines refunded, such as [{"id": 11, "quantity": 1, "refund_total": "19.95"}].

Get

Order ID · Required

The order to refund.

Refund ID · Required

The refund.

Get Many

Order ID · Required

The order to refund.

Return All · Optional

Read every refund, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many refunds to return (1–1000).

Default: 50.

Shows when Return All is off.

WooCommerce › Product

Create

Name · Optional
Type · Optional

The product type.

Options: simple, grouped, external, variable.

Status · Optional

Draft, pending review, private or published.

Options: draft, pending, private, publish.

SKU · Optional
Regular Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Sale Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Description · Optional

HTML allowed.

Short Description · Optional
Categories · Optional

such as [{"id": 9}].

Images · Optional

such as [{"src": "https://…/shirt.jpg"}] (the first is the main image).

Manage Stock · Optional

Track the stock quantity.

Stock Quantity · Optional

With Manage Stock on.

Stock Status · Optional

Options: In stock, Out of stock, On backorder.

Weight · Optional

In the store's weight unit.

Dimensions · Optional

{"length", "width", "height"} as text.

Meta Data · Optional

Custom fields, such as [{"key": "gift_note", "value": "Happy birthday"}].

Additional Fields · Optional

More of WooCommerce's fields for the product, as JSON by their API names. The fields above win over the same names here.

Delete

Product ID · Required

The product.

Delete Permanently · Optional

Delete for good. Off moves it to the trash, where it can be restored.

Get

Product ID · Required

The product.

Get Many

Search · Optional

Text to find in products.

SKU · Optional

Only the product with this SKU.

Status · Optional

Options: any, draft, pending, private, publish.

Category ID · Optional

Only products in this category.

Type · Optional

Options: simple, grouped, external, variable.

Stock Status · Optional

Options: instock, outofstock, onbackorder.

On Sale · Optional

Only products on sale.

Order By · Optional

Sort the list by.

Options: date, id, include, title, slug, modified.

Order · Optional

The sort direction.

Options: Descending, Ascending.

Return All · Optional

Read every product, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many products to return (1–1000).

Default: 50.

Shows when Return All is off.

Update

Name · Optional
Type · Optional

The product type.

Options: simple, grouped, external, variable.

Status · Optional

Draft, pending review, private or published.

Options: draft, pending, private, publish.

SKU · Optional
Regular Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Sale Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Description · Optional

HTML allowed.

Short Description · Optional
Categories · Optional

such as [{"id": 9}].

Images · Optional

such as [{"src": "https://…/shirt.jpg"}] (the first is the main image).

Manage Stock · Optional

Track the stock quantity.

Stock Quantity · Optional

With Manage Stock on.

Stock Status · Optional

Options: In stock, Out of stock, On backorder.

Weight · Optional

In the store's weight unit.

Dimensions · Optional

{"length", "width", "height"} as text.

Meta Data · Optional

Custom fields, such as [{"key": "gift_note", "value": "Happy birthday"}].

Additional Fields · Optional

More of WooCommerce's fields for the product, as JSON by their API names. The fields above win over the same names here.

Product ID · Required

The product.

WooCommerce › Product Variation

Create

Product ID · Required

The variable product.

Attributes · Optional

such as [{"id": 1, "option": "Large"}].

SKU · Optional
Regular Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Sale Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Manage Stock · Optional
Stock Quantity · Optional
Stock Status · Optional

Options: instock, outofstock, onbackorder.

Additional Fields · Optional

More of WooCommerce's fields for the variation, as JSON by their API names. The fields above win over the same names here.

Get

Product ID · Required

The variable product.

Variation ID · Required

The variation.

Get Many

Product ID · Required

The variable product.

Return All · Optional

Read every variation, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many variations to return (1–1000).

Default: 50.

Shows when Return All is off.

Update

Product ID · Required

The variable product.

Attributes · Optional

such as [{"id": 1, "option": "Large"}].

SKU · Optional
Regular Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Sale Price · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Manage Stock · Optional
Stock Quantity · Optional
Stock Status · Optional

Options: instock, outofstock, onbackorder.

Additional Fields · Optional

More of WooCommerce's fields for the variation, as JSON by their API names. The fields above win over the same names here.

Variation ID · Required

The variation.

WooCommerce › Customer

Create

Email · Optional
First Name · Optional
Last Name · Optional
Username · Optional

Empty lets WooCommerce make one from the email.

Billing · Optional

{"first_name", "last_name", "company", "address_1", "city", "postcode", "country", "email", "phone"}.

Shipping · Optional

{"first_name", "last_name", "company", "address_1", "city", "postcode", "country"}.

Meta Data · Optional

Custom fields, such as [{"key": "gift_note", "value": "Happy birthday"}].

Delete and Get

Customer ID · Required

The customer.

Get Many

Email · Optional

Only the customer with this email.

Search · Optional

Text to find in customers.

Role · Optional

Only customers with this WordPress role.

Options: all, administrator, editor, author, contributor, subscriber, customer, shop_manager.

Order By · Optional

Options: id, include, name, registered_date.

Order · Optional

The sort direction.

Options: Descending, Ascending.

Return All · Optional

Read every customer, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many customers to return (1–1000).

Default: 50.

Shows when Return All is off.

Update

Email · Optional
First Name · Optional
Last Name · Optional
Billing · Optional

{"first_name", "last_name", "company", "address_1", "city", "postcode", "country", "email", "phone"}.

Shipping · Optional

{"first_name", "last_name", "company", "address_1", "city", "postcode", "country"}.

Meta Data · Optional

Custom fields, such as [{"key": "gift_note", "value": "Happy birthday"}].

Customer ID · Required

The customer.

WooCommerce › Coupon

Create

Code · Optional

What the customer types.

Discount Type · Optional

Options: Percentage, Fixed cart discount, Fixed product discount.

Amount · Optional

The discount: a percentage or an amount, by Discount Type. Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Individual Use Only · Optional

Cannot be combined with other coupons.

Free Shipping · Optional
Exclude Sale Items · Optional
Minimum Spend · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Maximum Spend · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Usage Limit · Optional

How many times it can be used in all.

Usage Limit per Customer · Optional
Expires · Optional

The day it stops working, such as 2026-12-31 (store time).

Allowed Emails · Optional

Only these customers' emails, separated by commas.

Description · Optional
Additional Fields · Optional

More of WooCommerce's fields for the coupon, as JSON by their API names. The fields above win over the same names here.

Delete

Coupon ID · Required

The coupon.

Delete Permanently · Optional

Delete for good. Off moves it to the trash, where it can be restored.

Get

Coupon ID · Required

The coupon.

Get Many

Code · Optional

Only the coupon with this code.

Search · Optional

Text to find in coupons.

Return All · Optional

Read every coupon, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many coupons to return (1–1000).

Default: 50.

Shows when Return All is off.

Update

Code · Optional

What the customer types.

Discount Type · Optional

Options: Percentage, Fixed cart discount, Fixed product discount.

Amount · Optional

The discount: a percentage or an amount, by Discount Type. Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Individual Use Only · Optional

Cannot be combined with other coupons.

Free Shipping · Optional
Exclude Sale Items · Optional
Minimum Spend · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Maximum Spend · Optional

Text with a dot for decimals, exactly as the store shows it, such as 21.99.

Usage Limit · Optional

How many times it can be used in all.

Usage Limit per Customer · Optional
Expires · Optional

The day it stops working, such as 2026-12-31 (store time).

Allowed Emails · Optional

Only these customers' emails, separated by commas.

Description · Optional
Additional Fields · Optional

More of WooCommerce's fields for the coupon, as JSON by their API names. The fields above win over the same names here.

Coupon ID · Required

The coupon.