store/update-variation changes a single variation: its price, SKU, status, weight or stock.
It then re-syncs the parent product, so the price range shown on the shop follows.
At a glance
| Ability | store/update-variation |
| Toolset | WooCommerce — toolset/woocommerce |
| Group | WooCommerce › Products & Variations |
| Requires | WooCommerce, active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
The parent has to be told
A variable product does not store its own price. It displays a range derived from its variations, and that range is computed and cached during a sync step on the parent.
Change a variation’s price without syncing and the variation is correct, the parent still advertises the old range, and the shop shows a price nobody can actually buy at. This ability runs the sync afterwards, every time.
WooCommerce’s own product update works on products, not variations, so this is the only correct route to one.
The stock fields carry the suite’s recurring caveat: manage_stock on a variation decides whether it tracks its own stock or draws on the parent’s. Setting a quantity on a variation that does not manage its own stock writes a number nothing reads. store/get-stock says which record is authoritative.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
id | integer | Yes | Variation ID. |
regular_price | string | No | Regular price. |
sale_price | string | No | Sale price. |
sku | string | No | Stock keeping unit. |
status | string | No | publish or private. |
weight | string | No | Weight. |
manage_stock | boolean | No | Whether this variation tracks its own stock rather than the parent’s. |
stock_quantity | integer | No | Stock quantity, when this variation manages its own. |
What comes back
| Name | Type | What it is |
|---|---|---|
product | object | The variation after the write. |
lookup_state | object | Whether the product lookup table still agrees with the product after the write. A mismatch means the shop is answering SKU searches, price sorts and on-sale queries with stale values. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Set the price on the large black t-shirt variation.
It resolves to one call:
{
"ability": "store/update-variation",
"parameters": {
"id": 8134,
"regular_price": "24.00"
}
}Worth knowing
- The parent is re-synced automatically. Its displayed range follows.
- Setting a quantity on a variation that does not manage its own stock writes a number nothing reads.
- Idempotent.
- A variation with no price cannot be bought.
Related abilities
- Get Stock — which record holds the number
- Generate Variations — create them in the first place
- Schedule a Sale — sale pricing done properly
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category