WooCommerce
WooCommerce is an open-source e-commerce plugin for WordPress.
Overview
The WooCommerce connector lets Spojit workflows read and write the core entities of a WooCommerce-powered WordPress store: products, orders, customers, and coupons. It targets the standard WooCommerce REST API (v3) and exposes a raw-api-request escape hatch for endpoints not covered by dedicated tools.
Spojit users typically use WooCommerce as either the storefront in a multi-system architecture (pushing orders into NetSuite, ShipStation, or accounting) or as a destination for product syncs from other channels and PIMs. Pair it with Stripe for refund automation, with Klaviyo for marketing sync, and with a shipping connector for fulfilment.
What You Can Do
The WooCommerce connector exposes these tools:
list-orders- List orders with filters (status, date range, customer).get-order- Fetch a single order with line items and metadata.update-order- Update an order's status, notes, or metadata.list-products- List products with filters (category, status, type).get-product- Fetch a single product with variations and images.create-product- Create a product, including simple and variable types.update-product- Update product fields, pricing, or stock.list-customers- List customers with filters.get-customer- Fetch a single customer.create-customer- Create a new customer record.list-coupons- List discount coupons.raw-api-request- Call any WooCommerce REST endpoint not covered by a dedicated tool (refunds, product variations, taxes, etc.).
Authentication
WooCommerce uses Basic Auth with a Consumer Key and Consumer Secret. In WordPress admin, go to WooCommerce -> Settings -> Advanced -> REST API -> Add key, choose Read/Write for the permissions field, save, and copy the generated key and secret. You also need your WordPress site URL (e.g. https://your-store.com) - the connector appends /wp-json/wc/v3 automatically.
For HTTPS sites the connector uses Basic Auth. For HTTP-only dev sites WooCommerce falls back to OAuth 1.0a query parameters - prefer HTTPS in production.
Setting Up Your Connection
- In WordPress admin, open WooCommerce -> Settings -> Advanced -> REST API and click Add key.
- Pick a descriptive label, choose a user with appropriate capabilities, set permissions to Read/Write, and generate the key. Copy the Consumer Key and Consumer Secret immediately - WooCommerce only shows the secret once.
- In Spojit, go to Connections and click + Add Connection.
- Search for WooCommerce and select it.
- Enter your site URL, Consumer Key, and Consumer Secret. Name the connection something descriptive (e.g.
WooCommerce - AU Production). - Click Save. Spojit verifies the credentials by hitting a lightweight read endpoint.
Using in a Workflow
Add a Connector node, select your WooCommerce connection, and pick a mode:
- Direct Mode - Best for deterministic syncs (poll
list-ordersfor new orders since the last run and push them to NetSuite or ShipStation). - Agent Mode - Best for ad-hoc AI workflows ("find this customer's last order and update its shipping notes").
For endpoints not exposed as dedicated tools - refunds, product variations, settings, taxes - use raw-api-request against the matching /wp-json/wc/v3/... path.
Tips
- Use
per_page=100for reads. The maximum page size is 100 - using it cuts round-trips on large catalogs. - Filter incremental syncs by
modified_after. Both orders and products support this filter; combine with timestamps from the previous run. - Use a Webhook Trigger for new orders. WooCommerce can fire webhooks on
order.created; subscribe to it from WooCommerce -> Settings -> Advanced -> Webhooks and use the Custom Webhook Trigger connector. - Store custom fields under
meta_data. Useupdate-orderwith ameta_dataentry like{key: "synced-to-netsuite", value: "true"}to mark records and keep sync idempotent. - Pin the WooCommerce version. If you upgrade WordPress or WooCommerce, retest the workflow - the REST API occasionally changes between major versions.
Common Pitfalls
- Permissions vs capability. The API key inherits the WordPress user's capabilities; a Shop Manager can't access some admin-only endpoints. Use a user with Administrator role for full access.
- HTTP vs HTTPS. Basic Auth over HTTP is rejected. Either enable HTTPS on the site (recommended) or accept the slower OAuth 1.0a fallback.
- Variation vs parent product. Variable products have child variations at
/products/{id}/variations;update-productonly edits the parent. Useraw-api-requestfor variation-level edits. - Tax-inclusive prices. Stores in AU, UK, and EU return prices inclusive of tax. Convert before syncing to systems that expect pre-tax totals.
- Order status flow. Custom plugins can introduce non-standard statuses; always check the actual status string rather than assuming
processing/completedare the only options.
Common Use Cases
- Sync WooCommerce Orders to NetSuite
- Auto-Fulfill WooCommerce Orders with ShipStation
- Process Stripe Refunds from WooCommerce Returns
- Sync Shopify Products to WooCommerce
- Keep Shopify and WooCommerce Inventory in Sync
- Migrate WooCommerce Products to BigCommerce
Related Articles
For technical API details and field specifications, see the WooCommerce connector documentation.