WooCommerce automation · runs daily
Mark shipped WooCommerce orders as completed
After each shipping run, the Processing list in WooCommerce still shows every parcel that already left, and each order has to be moved to Completed by hand so the customer gets the completed email.
Cotlet does it in your own WooCommerce account with list_orders, get_order and update_order_status, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can WooCommerce do this on its own?
WooCommerce does not complete an order from shipping data (checked 16 Oct 2026). Its order status guide says that after shipping you change Processing to Completed yourself. The REST API and the MCP developer preview can both set a status, but neither knows which orders have shipped, and you host and wire that part.
How you do it in WooCommerce today
- Someone with the Administrator or Shop Manager role opens WooCommerce > Orders and filters the list to the Processing status.
- They open each shipped order on its Edit Order page, or use the bulk management on the Orders overview screen, and change the status to Completed.
- WooCommerce sends the customer the order completed email as the status changes, so an order completed too early sends that email too early.
- Orders on On hold are not touched: they wait for payment confirmation, which is common with BACS, SEPA and gateways that authorize and capture separately.
- The list refills after every sales day, and the check of which orders really shipped lives in someone's head or a spreadsheet.
How to mark shipped WooCommerce orders as completed
List the processing orders in my WooCommerce store. For every order that has a tracking number in its notes, set the status to completed. Leave the rest alone and tell me why. - 01
Read the Processing queue
Your agent calls list_orders with the Processing status and pages through total_pages, so a Monday backlog is judged as one batch and not just the first ten orders.
- 02
Apply your shipped rule
The rule comes from your prompt: a tracking number in the notes, an order number on a list you pasted, or a shipping method. The agent opens each candidate with get_order and quotes the line that made it pass.
- 03
Leave unpaid and odd cases
Orders that are not Processing are never listed here, and any order with a refund already on it stays in the queue with a one-line note for you, so a half-refunded order is not closed by accident.
- 04
Complete in one pass
update_order_status sets Completed for every order that passed. Each call asks for your OK by default because the customer gets the completed email; switch the confirmation off for this tool once you trust the rule.
- 05
Report what moved
The agent lists the orders it completed, the ones it left and the reason for each, so the Processing queue you open next morning matches the report.
What you get back
Processing orders checked: 14
Completed 11 (tracking number found in the order notes)
Left in Processing 3:
- #1043: no tracking number yet
- #1047: partial refund of 22.00 already on the order
- #1049: shipping method is local pickup
Completed emails sent to customers: 11 Other ways to ask
- Every weekday at 17:00, complete the orders whose notes contain a tracking number and send me the list of the rest.
- Complete only orders paid with a card, and leave bank transfers for me to check.
- Show me the Processing orders older than three days with no tracking note, but change nothing.
What WooCommerce allows, and what to know first
- WooCommerce shows orders only to users with the Admin or Shop Manager role, so the account behind this job needs one of them.
- Processing means the order is paid and waiting to be fulfilled, and Completed means it is fulfilled and nothing more is needed.
- Orders made only of virtual and downloadable products do not go through Processing, so this job never sees them.
- Setting an order to Cancelled or Refunded does not refund the customer; a refund is a separate step on the order, and Cancelled returns the line-item stock when inventory management is on.
- On hold orders already have their stock reduced while payment is unconfirmed, which is why this job leaves them out.
update_order_status asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.
Sources: WooCommerce Docs: Order statuses · WooCommerce Docs: Managing orders · WooCommerce Docs: Refunds · WooCommerce REST API documentation: orders
Call update_order_status from a script
curl -X PATCH https://cotlet.dev/api/v1/woocommerce/orders/1044/status \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"completed"}' {
"order_id": 1044,
"previous_status": "processing",
"status": "completed",
"date_modified": "2026-10-15T08:02:00Z"
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is woocommerce_write → update_order_status. Example data.
Schedule it in n8n, Make, Zapier or cronWooCommerce tools this automation uses
| Tool | Parameters |
|---|---|
| list_orders | status, after, before, customer_id, product_id, limit, page |
| get_order | order_id |
| update_order_status | order_id, status |
Frequently asked questions
Will the customer get an email when my agent completes an order?
WooCommerce sends the customer an email when an order is completed, and the status change made by the agent counts like one made in the admin. That is why the call asks for your OK by default.
Is it safe to connect WooCommerce to Cotlet?
Yes. You sign in to WooCommerce yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get WooCommerce once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to WooCommerce.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with WooCommerce.