Manage WooCommerce Orders with AI: Statuses, Notes, Manual Orders
Finding yesterday's orders, marking the ones you posted as completed, leaving a note for whoever packs order 2318 tomorrow, keying in a phone order: each of these is a few minutes of clicking in WooCommerce, and together they fill a morning. You can manage WooCommerce orders with AI instead. BEAR's MCP server connects an assistant such as Claude to your shop, so you describe the job in a sentence, check what the assistant is about to do, and say yes. This guide covers what you can ask for, what BEAR checks, which emails and stock movements follow, and where the limits are.
Example: bulk complete WooCommerce orders from yesterday
You came back from the post office with yesterday's parcels sent. You type:
Mark all processing orders from yesterday as completed, with the note "Sent by tracked post".
- The assistant finds the orders. It asks BEAR for the orders with the status Processing created yesterday. "Yesterday" is counted in your shop's time zone (WordPress Settings → General), so an order placed at half past midnight lands on the right day. You get a table: order number, customer name, town, what was ordered, shipping method and total. Say 14 orders.
- It names them before touching anything. BEAR's instructions for this tool tell the assistant to say which orders and which status before the change. Read the table. If one parcel did not go out, say "all except 2321".
- You confirm. The assistant calls
woobe_set_order_statuswith the 13 order numbers, the status completed and your note. - WooCommerce changes the orders one by one. Your note is added to each order as a note of its own, then the status changes exactly as if you had changed it on the order screen: WooCommerce writes its "Order status changed from Processing to Completed" note and sends the customer its Completed order email, if that email is enabled in WooCommerce → Settings → Emails.
- You get the result. The assistant lists each order with its old and new status. An order that was already completed is skipped, not changed again, so nobody receives the same email twice. An order number that does not exist is reported as failed with the reason, and the rest still go through.
The numbers are illustrative. What matters is the order of events: find, name, confirm, write, report back.
Before you start
You need BEAR with its MCP server switched on in the plugin settings, a shop reachable over HTTPS, and an AI assistant that can connect to an MCP server: Claude in the browser, in the desktop app or in Claude Code connects with the key BEAR gives you, and other MCP clients such as Cursor or your own agent work too. BEAR authenticates with a key sent in a request header, not with a sign-in flow, so managing WooCommerce orders from ChatGPT works only where its connector lets you add that header. Order lists, status changes, notes and manual orders read WooCommerce's orders directly and do not need WooCommerce Analytics; the sales reports and the returns report do. The connection steps are in the MCP server documentation.
Finding orders by chat
Behind "show me what came in today" is one tool, woobe_orders, with a small set of filters. The assistant translates your words into them, so it helps to know what exists:
| Filter | What it does |
|---|---|
| Dates | From and to, in plain words ("today", "last 7 days", "since 1 September") or as dates. Without a start date the list goes back 30 days, so for older orders say the period. |
| Status | One or several: pending payment, processing, on hold, completed, cancelled, refunded, failed, plus any custom status your shop has. Without a status you get every order except those in the trash; ask for the trash explicitly to see those. |
| Search | A customer name, an order number or part of an address. |
| Product | Only orders that contain a given product or variation. The date range still applies. |
| Customer account | Only orders of one registered customer. |
| Page size | 25 rows by default, up to 100, with further pages on request. |
Each row holds the order number, date, status, customer name, town and country, what was ordered (one product by name, or the first one plus "+ 3 more"), shipping method, payment method, total and anything already refunded. That is enough to scan the day; the street address is deliberately left out of the list.
One order in full
When you are dealing with a particular order, ask for it by number. The order card has every line with SKU, quantity and line total, the item, shipping, tax, discount and refund totals, coupons used, both addresses, payment and shipping method, every note with a mark saying whether it went to the customer, and a link to the order's edit screen in WooCommerce.
Shops that sell in several currencies
Each row shows the total in the currency the customer paid in and, next to it, the same money in your shop's main currency, using the rate stored on the order. When the assistant adds orders up, it is told to add the main-currency figures. Where an order's currency cannot be converted (no rate on the order and no active currency switcher), its converted total is empty and the assistant is told to leave it out of the sum and say how many orders it left out.
Change order status in bulk
What the code does when you change order status in bulk:
- Any status your shop knows. The status is checked against WooCommerce's list on your shop, custom statuses included. A misspelt one is refused with the list of valid statuses.
- Up to 100 orders per request. More is refused, because a status change can send one email per order. For a bigger batch the assistant works in rounds of 100.
- Orders already in that status are left alone. Repeating a change could resend the email that goes with it.
- Your note is a separate note. If you give one, it is added to the order before the status changes, so it does not get glued onto WooCommerce's own status line.
- No dry run in the code. Unlike refunds and manual orders, a status change has no built-in preview step. The tool's instructions tell the assistant to name the orders and the new status first, and that list is your check. Read it before you say yes.
Which emails go out
BEAR changes the status through WooCommerce's own update_status(), so WooCommerce sends whatever it sends when you change the status by hand, provided that email is switched on in WooCommerce → Settings → Emails. Moving to Completed sends the customer the Completed order email; moving from Pending payment to Processing sends the customer the processing email and you the New order email; cancelling a processing or on-hold order sends you the Cancelled order email. Plugins hooked to status changes (shipping labels, invoices, ERP sync) run as well.
What happens to stock
Stock follows WooCommerce's normal rules. Moving an order to Processing, On hold or Completed takes its items out of stock if the order has not taken them already. Moving it to Cancelled, Pending payment or Failed puts back what the order had taken. Products that do not track stock are not affected either way.
Do not refund by changing the status
Setting an order to Refunded is accepted like any other status, without a preview. WooCommerce then records a full refund for whatever is left on the order: no stock goes back, no money moves through the payment gateway, and the customer may get WooCommerce's refunded-order email. To give money back, ask for a refund instead, which previews the amount, can restock items and can use the gateway. That is covered in WooCommerce refunds and returns with AI.
Undoing a status change
Change it back: "put orders 2318 and 2319 back to processing". The order notes keep both changes. An email that already went out cannot be recalled, and order changes do not appear in BEAR's History tab, which records product edits. The record of what happened to an order is the order's own notes.
Order notes: private or to the customer
A note can be private, seen only in the admin, or a customer note, which WooCommerce emails to the buyer and shows in their account.
- Private is the default. "Add a note to 2318: replacement sent, no charge" stays inside the shop.
- A customer note is sent only when you say so plainly. The tool's own instructions tell the assistant never to write one on its own initiative and to read the text back before sending. After it is added, the assistant is told to say clearly that a message left the shop.
- Notes are plain text: HTML tags are removed. An empty note is refused.
- Notes added this way appear in the order's notes signed "WooCommerce", not with your name. If several people use the connection and you need to know who wrote what, start the note with initials.
Create a manual order: phone, wholesale or replacement
A manual order is built with WooCommerce's own order object, so tax rates, coupon rules and totals come out the same as at a real checkout. It always happens in two steps: a preview, then the order.
Create an order for a guest, Anna Berg, Storgatan 4, 41118 Göteborg, Sweden: 2 blue ceramic mugs and 1 teapot, flat-rate shipping 5.00, paid by bank transfer, status processing. Don't take stock, I already set them aside.
First the assistant calls woobe_create_order without confirming. BEAR builds a real order, reads the figures, and deletes it again. You see who it is for and where it goes, each line with quantity and amount, then subtotal, shipping, tax, discount and total with the currency, the status it will get, and a sentence about stock. Only after you agree does the assistant call again with the confirmation, and you get the order number and a link to its edit screen. BEAR adds the note "Order created through the MCP connection." to the order, plus your own note if you gave one.
What you can specify
- Products and quantities. A variable product cannot be ordered as such; name the variation ("the blue mug", "size M"). The assistant finds the variation and passes its id. Quantity is 1 unless you say otherwise.
- An agreed price, for a discount given on the phone. It replaces the shop price for that line. It is a price before tax, in your shop's main currency, the way WooCommerce stores order lines; tax is added on top. If you quoted the customer a price including tax, check the total in the preview.
- Customer. An existing customer account (the address on the account is used if you give none), or a guest with the address you dictate. Without a shipping address the billing address is used. The assistant is told to pass only what you gave and not invent the rest. If neither a name nor an address is attached, the preview says so, which is fine for a counter sale and wrong for anything that has to be posted.
- Status. Pending payment by default, as at a checkout. A paid status such as Processing or Completed can send the customer WooCommerce's email for it.
- Payment method. A gateway such as bank transfer, cash on delivery or cheque is recorded on the order. Nothing is charged: this is not a checkout.
- Shipping line with a title and a cost.
- Coupon. Checked the way a checkout checks it. If it is refused (expired, usage limit reached), the preview says why and the rest of the order stands. Looking at a preview does not use up a coupon: BEAR returns the use when it deletes the preview order.
- Currency. Your shop's own by default. With FOX – WooCommerce Currency Switcher active, the order can be placed in any currency FOX sells, converted at the current rate and tagged so reports value it correctly; an agreed price is converted along with the rest. Without a switcher, another currency is refused.
Stock on manual orders
Stock is not taken by default, because a phone or replacement order is often for goods already set aside, and taking them twice is the more common mistake. Say "take it out of stock" when you want it. Either way, BEAR marks the order's stock as handled, so a later move to Processing or Completed does not take the goods after all. The answer tells you what really happened: products that do not track stock are named, and nothing was taken for them.
The "What sold and what came back" overview
Ask the assistant what it can do and it offers BEAR's ready-made questions. The one about orders is What sold and what came back: the 20 best sellers by units over the last six months next to the 20 most returned products and the 20 with the worst return rate, each variation counted separately. A product high on both lists is a best seller with a problem. It is read-only and needs WooCommerce Analytics. It does not flag stuck orders; for those, ask for the list directly, for example orders on hold for more than three days. Returns are explained in detail in the refunds and returns guide.
Access and privacy
- No e-mail addresses or phone numbers. They are never returned to the assistant, not in the list, not in the order card, not in the best customers report. You contact a customer from the order page in WooCommerce.
- Addresses only when needed. The list shows town and country; the full address comes only with a single order you asked for. The assistant is told not to repeat names and addresses beyond what the task needs.
- Staff work under their own rights. With a personal key a shop manager's assistant acts as that person. Orders and refunds both need WooCommerce's
edit_shop_orderscapability; without it they are closed. - You can narrow it per person. Orders (lists, order cards, status changes, notes, manual orders) and refunds are separate sectors, each
full,readornone. For example, to let one manager work with orders but only read refund reports:
// child theme functions.php or a code snippets plugin
add_filter( 'woobe_mcp_permissions', function ( $map, $user_id ) {
if ( 57 === $user_id ) { // the manager's WordPress user ID
$map['refunds'] = 'read'; // refund reports yes, refunding no
}
return $map;
}, 10, 2 );
Keep in mind that a person with write access to orders can still set the Refunded status, which records a refund as described above. If that matters, set orders to read for that person too.
Ready prompts
- "Show me today's orders as a table."
- "What is still waiting to be sent? Processing orders from the last 7 days."
- "Is anything on hold that was placed more than three days ago? Look back three months."
- "Which orders since 1 September contained the linen apron?"
- "Open order 2318: what's in it and where does it go?"
- "Mark all processing orders from yesterday as completed, except 2321."
- "Put order 2320 on hold with the note: waiting for the customer to confirm the size."
- "Add a private note to 2318: replacement sent free of charge."
- "Send the customer of order 2318 this note: your parcel left today, tracking follows by email."
- "Create a replacement order for customer account 112: one large canvas tote at price 0, take it out of stock, status processing."
- "Who were my ten best customers this quarter?"
Checklist
- BEAR's MCP server is on and your assistant is connected (setup).
- Asking for older orders? Give the period; the list defaults to the last 30 days.
- Before a status change, read the list of orders the assistant names. There is no other preview.
- Know which WooCommerce emails are enabled: a batch of 50 completions is 50 customer emails.
- Refund with a refund, never with the Refunded status.
- Customer notes are emails; private notes are not. Check which one you asked for.
- Manual order: check lines, tax, total and the stock sentence in the preview before you confirm. An agreed price is before tax.
- After a manual order, open the edit link once and check it the way you would check a phone order typed by a colleague.
Questions
Does changing the order status with AI send emails to customers?
Yes, the same emails WooCommerce sends when you change the status by hand, if they are enabled. Orders already in the target status are skipped, so a repeated request does not resend them.
How many orders can I complete at once?
Up to 100 per request. For more, the assistant changes them in rounds; ask it to show each round before it goes ahead.
Does a manual order charge the customer's card?
No. The payment method is recorded on the order and nothing is charged. Take the payment the usual way, or leave the order at Pending payment until it is paid.
Can the assistant read customers' e-mail addresses?
No. BEAR never returns e-mail addresses or phone numbers. You can give an address for a manual order you are creating, but no tool reads them back.
If something in your shop behaves differently from what is described here, ask on the BEAR support forum.