store/update-store-settings changes store settings from a named list: address and country, currency and price formatting, units, stock thresholds, guest checkout and tax calculation.
Anything outside that list is refused by name, and the refusal says what is accepted.
At a glance
| Ability | store/update-store-settings |
| Toolset | WooCommerce — toolset/woocommerce |
| Group | WooCommerce › Store Configuration |
| 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 |
Small edits, large consequences
Some of these settings change what customers can do. Turning guest checkout off requires every customer to create an account before buying; changing the currency does not reprice anything, so every product keeps its number and means something different. The confirmation is there because these are small edits with large consequences.
An allowlist, not a filter
The same option prefix holds payment gateway configuration. A general-purpose settings writer would reach it, and the difference between changing the weight unit and rewriting a gateway’s API credentials would be a string the caller supplied.
So the accepted names are enumerated and anything else is refused. Connecting or configuring a payment gateway is not possible here at all, and is deliberately left to be done by a person on the gateway’s own screen.
Two of the accepted settings deserve more care than the rest. Currency changes the symbol and formatting and reprices nothing — every product keeps its numeric price, so switching from GBP to USD silently changes what everything costs. And tax calculation, switched off, makes every configured tax rate inert without deleting any of them.
Idempotent: the same payload twice leaves the same settings.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
settings | object | Yes | A map of setting name to value. Names outside the accepted list are refused, and the refusal lists what is accepted. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
changed | array | Which settings were changed. |
settings | object | The settings after the write. |
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:
Switch the store’s weight unit to kilograms.
It resolves to one call:
{
"ability": "store/update-store-settings",
"parameters": {
"settings": { "woocommerce_weight_unit": "kg" },
"confirm": true
}
}Worth knowing
- Payment gateways cannot be configured here. That is deliberate.
- Changing the currency does not reprice anything.
- Turning tax calculation off makes every rate inert without removing it.
- Idempotent.
Related abilities
- Get Store Settings — read the current values
- Get Tax Rates — check whether tax is on before adding rates
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category