Before you write a single custom ability, you need an accurate map of what WooCommerce already ships, because it’s more than most tutorials assume. WooCommerce added a first-party MCP endpoint in version 10.3, and then, in version 10.9, replaced the improvised parts of that with a proper set of Abilities-API-based domain abilities. Both are real, both are live in current WooCommerce releases, and both are explicitly labeled developer preview. This lesson is a survey of exactly what’s there, so the rest of this course can build on it instead of duplicating it.
WooCommerce 10.9+ for the canonical abilities covered in Step 2 (released June 23, 2026). If you’re on an older install between 10.3 and 10.8, you’ll have the original MCP endpoint from Step 1 but not the newer abilities, an upgrade is worth doing before the rest of this course. You’ll also want Course 1’s Abilities API and MCP Adapter lessons fresh in mind.
Step 1: Where this started, the WooCommerce 10.3 MCP endpoint
In October 2025, WooCommerce announced its first MCP implementation, built on top of the WordPress Abilities API and the MCP Adapter, the same foundational pieces from Course 1. It shipped a dedicated endpoint:
https://yourstore.com/wp-json/woocommerce/mcp
Authenticated with standard WooCommerce REST API keys, but passed through a custom header rather than the usual REST auth flow:
X-MCP-API-Key: ck_your_consumer_key:cs_your_consumer_secret
That initial release covered product management (search, add, update) and order management (create, manage) as REST-derived operations exposed through MCP. WooCommerce was explicit that this was a first step: “the first version of the WooCommerce MCP,” paired with the existing REST and Store APIs, not a replacement for them.
WooCommerce’s own developer documentation now describes this original endpoint as the compatibility layer for the deprecated WooCommerce MCP endpoint, it still works, but the REST-derived abilities it exposes aren’t the preferred path anymore. That’s Step 2.
Step 2: The real shift, WooCommerce 10.9’s canonical abilities
WooCommerce 10.9 (released June 23, 2026) introduced seven purpose-built, Abilities-API-based domain abilities, described as backed directly by WooCommerce’s own product and order APIs rather than derived from generic REST endpoints. These are the ones worth building on:
| Ability name | What it does |
|---|---|
woocommerce/products-query | Searches and filters products, readonly and idempotent. |
woocommerce/product-create | Creates a new product across supported types: physical, virtual, digital, affiliate, grouped. |
woocommerce/product-update | Modifies an existing product’s fields. |
woocommerce/product-delete | Removes a product, soft-deletes to trash by default, permanent only with force: true. |
woocommerce/orders-query | Filters orders by status, customer ID, billing email, parent order, date range, and more, readonly and idempotent. |
woocommerce/order-update-status | Changes an order’s status, with an optional note attached. |
woocommerce/order-add-note | Adds a note to an order without changing its status. |
A few details worth internalizing now, because they shape decisions later in this
course. woocommerce/orders-query omits line items by default (you request them
explicitly with include_line_items: true), which matters when you build the
sales-reporting assistant in Lesson 6, don’t assume the raw output includes everything.
And woocommerce/product-delete defaulting to a soft trash rather than permanent
deletion is a sane default worth keeping in mind if you ever build a custom ability that
wraps it.
Step 3: What “developer preview” actually means here
WooCommerce’s own documentation is direct about this: “the MCP implementation in WooCommerce is currently in developer preview. Implementation details, APIs, and integration patterns may change in future releases as the feature matures.” The 10.9 announcement echoes this for the abilities themselves, calling this an “initial set” with “gaps to close” in future iterations.
Practically, that means:
Step 4: Checking what’s actually live on an install
Since the abilities are only present from 10.9 onward, and only if WooCommerce itself has registered them, confirm what’s actually there before building against it:
wp-env run cli wp eval '
foreach ( array( "products-query", "product-create", "product-update", "product-delete", "orders-query", "order-update-status", "order-add-note" ) as $slug ) {
$name = "woocommerce/" . $slug;
echo $name . ": " . ( wp_has_ability( $name ) ? "registered" : "missing" ) . "\n";
}
'
wp-env run cli wp plugin get woocommerce --field=version
If any come back “missing,” check the WooCommerce version first, this is the single most common cause.
Test it: inspect one ability’s real schema
Pull the actual, current schema for one ability rather than trusting a blog post’s summary of it, schemas are exactly the kind of detail developer-preview status warns you might change:
wp-env run cli wp eval '
$ability = wp_get_ability( "woocommerce/orders-query" );
echo wp_json_encode( $ability->get_input_schema(), JSON_PRETTY_PRINT );
'
The 10.3 endpoint’s REST-derived operations and the 10.9 canonical abilities aren’t the same code path, and their exact field names don’t always match one-to-one. If you built anything against the original endpoint, re-verify field names against the Step 4 output rather than assuming the newer abilities behave identically.
Recap
WooCommerce shipped a real MCP endpoint in 10.3, then, in 10.9, replaced its improvised parts with seven canonical, Abilities-API-based domain abilities for products and orders, all still marked developer preview. The rest of this course builds custom abilities that complement this set: variant-level inventory control, generated content, fraud-risk flags, sales narration, recommendations, and customer-scoped order lookups, none of which duplicate what WooCommerce already provides directly.
Resources & further reading
- WooCommerce MCP documentation, developer.woocommerce.com
- MCP & Abilities API in WooCommerce 10.9, developer.woocommerce.com
- AI Agentic Commerce in WooCommerce, developer.woocommerce.com
- wc-mcp-ability demo repository, GitHub
- Abilities API reference, developer.wordpress.org