30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

Update Customer

store/update-customer changes a customer’s name, email address, or billing and shipping details.

Passwords cannot be set here, and trying is refused with an explanation rather than a schema error.

At a glance

Abilitystore/update-customer
ToolsetWooCommerce — toolset/woocommerce
GroupWooCommerce › Customers
RequiresWooCommerce, active on the site
Capabilitymanage_options
SafetyWrites data
RepeatableIdempotent — running it twice leaves the same result
Ships inAcrossAI Abilities Manager 0.0.34 and later

How it works

The password rule is the same as on creation and for the same reason: a password somebody else chose is not the customer’s. Send them the site’s own password reset instead — it is one link and it leaves the credential with the person it belongs to.

Changing an email to one that already has an account is refused. WordPress’s own behaviour there is unhelpful — the update fails in a way that is easy to read as success — so the collision is checked first and named.

Billing and shipping are partial: send the fields you are changing and the rest of the address is left alone. That matters because addresses are frequently half-filled, and a merge preserves what is there while a replacement would quietly blank it.

Changing a customer’s details does not change any order. Orders store their own copy of the address at the time of purchase, which is correct — an invoice should not change because somebody moved house.

Input

NameTypeRequiredWhat it is
idintegerYesCustomer user ID.
emailstringNoNew email address.
first_namestringNoFirst name.
last_namestringNoLast name.
billingobjectNoBilling address fields to change.
shippingobjectNoShipping address fields to change.
passwordstringNot acceptedRefused with an explanation.

What comes back

NameTypeWhat it is
customerobjectThe customer after the write.
successbooleanWhether the call completed.
messagestringA one-line summary of what happened, suitable for showing a human.
error_codestringPresent 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:

Update customer 318’s shipping postcode.

It resolves to one call:

{
  "ability": "store/update-customer",
  "parameters": {
    "id": 318,
    "shipping": { "postcode": "BS2 0PT" }
  }
}

Worth knowing

  • Passwords are refused by name. Use the site’s password reset.
  • A duplicate email is refused rather than failing quietly.
  • Address fields merge — send only what changed.
  • Existing orders keep the address they were placed with.

Related abilities


Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager

Browse the rest: Every ability, by category


Keep reading