# AI support assistant for your WooCommerce store | Busymate AI

Source: https://busymate.ai/ro/docs/guides/woocommerce
Last modified: 2026-09-13T15:42:59+03:00
Busymate AI reaches a WooCommerce store through the store's own REST API: the catalogue, categories, shipping zones and policy pages become content your mate answers from, and a signed-in customer can ask where their order is. Nothing is installed inside WooCommerce for that — the connection is a read key you create in the store admin.

Every step below is proven against a real WooCommerce store, end to end, by a shopper in the widget.

## Before you start

- A WooCommerce store on HTTPS with **Settings → Permalinks** set to anything but **Plain**: the REST routes live under `/wp-json/wc/v3/`, and plain permalinks do not serve them.
- An admin account on the store, to create the key.
- Your workspace open in the Console.

## 1. Create a read key

1. In the store admin, open **WooCommerce → Settings → Advanced → REST API** and choose **Add key**.
2. Describe it so you recognize it later, pick the user it acts as, and set **Permissions** to **Read**.
3. Generate it. The consumer key (`ck_…`) and consumer secret (`cs_…`) are shown once — copy both before leaving that page.

Read is enough for everything here: a write key would let the assistant change orders and move money, so the connection does not ask for one.

## 2. Connect the store

Open [Console → Connections](https://busymate.ai/console/connections) and add the store with three values: the store address, the consumer key and the consumer secret. The secret is stored value-blind — afterwards the Console shows a hint, never the value.

It is verified before anything is saved: one call to `GET /wp-json/wc/v3/system_status` proves the site really runs WooCommerce, the credential authenticates, and the key reads more than a public resource. A failure is reported as a sentence, never saved as a row claiming to be connected.

Over MCP: `connect_commerce`, `get_commerce_status` and `sync_commerce`, each taking a `kind` of `woocommerce`.

## 3. Choose what it reads

Four corpora, and you pick the set:

- **Products** — name, price, stock state and description, each cited to its own permalink.
- **Categories** — the category archive a shopper can open.
- **Shipping** — the store's shipping zones.
- **Policies** — your WordPress pages for shipping, returns, refunds, privacy and terms, so the answer and the page a customer is pointed at stay the same text.

Products are bounded by a page limit you set, 1 to 50, default 20. It is the same knowledge pipeline as a website source or pasted text — see [Teach your assistant your own content](https://busymate.ai/ro/docs/guides/knowledge).

## 4. Let it re-read the store

The store is re-synced on a schedule you set — daily by default, hourly at most. A sync compares the newest edit time across products and pages against the last one seen; when nothing changed it is skipped and not one memory is rewritten. **Sync now** in the Console, or `sync_commerce`, forces a pass.

## 5. Order lookup for a signed-in customer

Order lookup is identity-gated: it answers only with the signed-in customer's own orders, and has no anonymous arm.

The match is made on **your store's own customer id**. The plugin signs the WordPress user id into the proof — exactly the customer a WooCommerce order carries — so the store filters on it directly, and no email or phone number crosses the browser. A storefront that signs customers in another way falls back to a verified email.

Ownership is checked **again** on every order returned: a filter you asked for is not a filter that was applied. An order number alone is a guessable integer, never sufficient.

What comes back: order number, status, the dates placed, paid and completed, the total, the shipping method, the items, and a tracking number when the store recorded one.

## 6. Put the chat on the storefront

One WordPress plugin does both jobs: it loads the chat on every storefront page and signs a short-lived proof of who is logged in, so order lookup needs no second sign-in. Your customer database is never shared.

1. Download the plugin from the store connection card in your Console; the zip is built for your workspace, so there is nothing to type into it.
2. In wp-admin, open **Plugins → Add New → Upload Plugin**, upload the zip and activate it.
3. Its status screen lists the values for **Console → Identity** and has a **Test identity** button that proves the signing endpoint answers.

Without the plugin the chat still works — add the embed script to your theme — but the storefront must then sign identity itself: [Recognize signed-in customers](https://busymate.ai/ro/docs/guides/identified-visitors).

## Returns are answered, not started

The connection deliberately offers no `start_return` action. WooCommerce core has no customer-initiated return resource in its REST API, and `POST /orders/<id>/refunds` is an admin refund that moves a merchant's money — not something to run on a visitor's say-so. Returns are a plugin choice that differs per store.

So the assistant answers the returns **policy** from your own returns page, with a citation, and hands the conversation to a person for the rest.

## Manage from any MCP client

Every step above is available from any MCP client on your own account:

{{snippet:claude-code}}

## Troubleshooting

- **401** — the key was refused: check the consumer key and secret, and that the key has **Read** permission.
- **404** — the address answers but the REST API is not there: WooCommerce is not active, or **Settings → Permalinks** is still **Plain**.
- **Unreachable** — the address is wrong or the store is down. The connect reports the status it saw.

## Verify

1. The Console card shows the store name, the WooCommerce version and the currency read at connect.
2. Ask about a product only your catalogue knows. The reply cites the product's own page.
3. Ask about your returns policy. The reply cites the returns page and offers a person rather than starting a return.
4. Sign a test customer in and ask where their order is: the reply names that customer's orders only. Ask signed out and the assistant asks them to sign in.

<!-- qa:start -->
### Does the key need Write permission?
No. Read covers the catalogue, the policies and order lookup. Write access is never asked for, because everything it would unlock moves a merchant's money.

### Can a shopper see somebody else's order?
No. The lookup runs only for a signed-in customer, is scoped to that customer's own key, and re-checks ownership on every row before showing it. There is no search-all-orders path.

### How often does it re-read my catalogue?
On the schedule you set — daily by default, hourly at most. An unchanged store is skipped, so re-syncing a quiet catalogue costs nothing.

### Do I need the plugin?
Only to hand over who is signed in. The chat can go on the site with the embed script; the plugin saves you signing the proof by hand.
<!-- qa:end -->

## Next

- **[Teach your assistant your own content](https://busymate.ai/ro/docs/guides/knowledge)** — help pages beside the catalogue.
- **[Recognize signed-in customers](https://busymate.ai/ro/docs/guides/identified-visitors)** — the proof order lookup relies on.
- **[Set up human handoff](https://busymate.ai/ro/docs/guides/human-handoff-setup)** — staff the Inbox before the returns questions.
