Task Prompt
Update the main product image based on WooCommerce order data, setting the image of the best-selling variation of each product as the main product image.
Set each WooCommerce product's main image to the image of its best-selling variation, judged from the store's order data.
Update the main product image based on WooCommerce order data, setting the image of the best-selling variation of each product as the main product image.
---
name: workspace-filesystem
description: The virtual filesystem layout of this workspace.
---
# Virtual Filesystem
You work in a terminal over a virtual filesystem. Read files with shell
commands; service operations are listed in SKILL.md.
| Path | Description |
|---|---|
| `/workspace` | Agent workspace; current directory and home (`~`). |
| `/tmp` | Temporary files. |
| `/dev` | Device files: `null` and `zero` (mounted automatically). |
| `/woo` | WooCommerce data, read-only; change it with the `woocommerce` CLI. |
`/woo/products/<id>.json` holds product data; variations are under
`/woo/products/<id>/variations/<id>.json`. Orders, customers, and categories
are separate directories. Use `woocommerce` for changes.| name | workspace-filesystem |
|---|---|
| description | The virtual filesystem layout of this workspace. |
Virtual Filesystem
You work in a terminal over a virtual filesystem. Read files with shell commands; service operations are listed in SKILL.md.
| Path | Description |
|---|---|
/workspace | Agent workspace; current directory and home (~). |
/tmp | Temporary files. |
/dev | Device files: null and zero (mounted automatically). |
/woo | WooCommerce data, read-only; change it with the woocommerce CLI. |
/woo/products/<id>.json holds product data; variations are under /woo/products/<id>/variations/<id>.json. Orders, customers, and categories are separate directories. Use woocommerce for changes.
---
name: workspace-commands
description: The shell commands, task tools, and python3 interpreter available in this workspace.
---
# Available commands
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip curl
with pipes, `>` redirection, `$(...)` substitution and `$'...'`.
The task CLIs below are registered with this shell rather than installed
as files; do not inspect them with `which`, `file` or `/usr/bin`.
## woocommerce
Use `woocommerce <command> '<JSON arguments>'`. Run
`woocommerce <command> --help` to get more information.
| Command | Arguments | Description |
|---|---|---|
| `woocommerce products-list` | `{perPage?: int, page?: int, search?: str, status?: "publish" \| "draft" \| "private" \| "pending", category?: str, tag?: str, sku?: str, featured?: bool, onSale?: bool, minPrice?: str, maxPrice?: str, stockStatus?: "instock" \| "outofstock" \| "onbackorder", orderby?: "date" \| "id" \| "include" \| "title" \| "slug" \| "price" \| "popularity" \| "rating", order?: "asc" \| "desc"}` | List products with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `search`: Search term; `status`: Product status; `category`: Category ID; `tag`: Tag ID; `sku`: Product SKU; `featured`: Featured products only; `onSale`: On sale products only; `minPrice`: Minimum price; `maxPrice`: Maximum price; `stockStatus`: Stock status; `orderby`: Order by field; `order`: Order direction |
| `woocommerce products-get` | `{productId: int}` | Get a specific product by ID — `productId`: Product ID |
| `woocommerce products-create` | `{productData: {name?: str, type?: "simple" \| "grouped" \| "external" \| "variable", status?: "publish" \| "draft" \| "private" \| "pending", featured?: bool, catalog_visibility?: "visible" \| "catalog" \| "search" \| "hidden", description?: str, short_description?: str, sku?: str, regular_price?: str, sale_price?: str, manage_stock?: bool, stock_quantity?: int, categories?: list[{id?: int}], images?: list[{src?: str, alt?: str}]}}` | Create a new product — `productData`: Product data; `productData.name`: Product name; `productData.type`: Product type; `productData.status`: Product status; `productData.featured`: Featured product; `productData.catalog_visibility`: Catalog visibility; `productData.description`: Product description; `productData.short_description`: Product short description; `productData.sku`: Product SKU; `productData.regular_price`: Regular price; `productData.sale_price`: Sale price; `productData.manage_stock`: Manage stock; `productData.stock_quantity`: Stock quantity; `productData.categories`: Product categories; `productData.categories.id`: Category ID; `productData.images`: Product images; `productData.images.src`: Image URL; `productData.images.alt`: Image alt text |
| `woocommerce products-update` | `{productId: int, productData: dict}` | Update a product — `productId`: Product ID; `productData`: Product data to update |
| `woocommerce products-delete` | `{productId: int, force?: bool = false}` | Delete a product — `productId`: Product ID; `force`: Force delete |
| `woocommerce products-batch-update` | `{create?: list[dict], update?: list[{id?: int}], delete?: list[int]}` | Batch update products — `create`: Products to create; `update`: Products to update; `update.id`: Product ID; `delete`: Product IDs to delete |
| `woocommerce products-variations-list` | `{productId: int, perPage?: int, page?: int}` | List product variations. Use perPage and page parameters for pagination (default: 10 items per page). — `productId`: Product ID; `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce products-categories-list` | `{perPage?: int, page?: int, search?: str, parent?: int, hideEmpty?: bool}` | List product categories. Use perPage and page parameters for pagination (default: 10 items per page). — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `search`: Search term; `parent`: Parent category ID; `hideEmpty`: Hide empty categories |
| `woocommerce products-categories-create` | `{categoryData: {name: str, slug?: str, parent?: int, description?: str, display?: "default" \| "products" \| "subcategories" \| "both", image?: {src?: str, alt?: str}, menuOrder?: int}}` | Create a new product category — `categoryData.name`: Category name; `categoryData.slug`: Category slug; `categoryData.parent`: Parent category ID; `categoryData.description`: Category description; `categoryData.display`: Display type; `categoryData.image.src`: Image URL; `categoryData.image.alt`: Image alt text; `categoryData.menuOrder`: Menu order |
| `woocommerce products-tags-list` | `{perPage?: int, page?: int, search?: str, hideEmpty?: bool}` | List product tags. Use perPage and page parameters for pagination (default: 10 items per page). — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `search`: Search term; `hideEmpty`: Hide empty tags |
| `woocommerce products-reviews-list` | `{productId?: int, perPage?: int, page?: int, status?: "all" \| "hold" \| "approved" \| "spam" \| "trash"}` | List product reviews. Use perPage and page parameters for pagination (default: 10 items per page). — `productId`: Product ID (optional); `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `status`: Review status |
| `woocommerce orders-list` | `{perPage?: int, page?: int, status?: list["pending" \| "processing" \| "on-hold" \| "completed" \| "cancelled" \| "refunded" \| "failed"], customer?: int, product?: int, dateAfter?: str, dateBefore?: str, orderby?: "date" \| "id" \| "include" \| "title" \| "slug", order?: "asc" \| "desc"}` | List orders with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `status`: Order statuses; `customer`: Customer ID; `product`: Product ID; `dateAfter`: Orders after this date (ISO 8601); `dateBefore`: Orders before this date (ISO 8601); `orderby`: Order by field; `order`: Order direction |
| `woocommerce orders-get` | `{orderId: int}` | Get a specific order by ID — `orderId`: Order ID |
| `woocommerce orders-create` | `{orderData: {payment_method?: str, payment_method_title?: str, set_paid?: bool, billing?: dict, shipping?: dict, line_items?: list[{product_id?: int, quantity?: int}], shipping_lines?: list[dict]}}` | Create a new order — `orderData`: Order data; `orderData.payment_method`: Payment method ID; `orderData.payment_method_title`: Payment method title; `orderData.set_paid`: Define if the order is paid; `orderData.billing`: Billing address; `orderData.shipping`: Shipping address; `orderData.line_items`: Line items data; `orderData.line_items.product_id`: Product ID; `orderData.line_items.quantity`: Quantity; `orderData.shipping_lines`: Shipping lines data |
| `woocommerce orders-update` | `{orderId: int, orderData: dict}` | Update an order — `orderId`: Order ID; `orderData`: Order data to update |
| `woocommerce orders-delete` | `{orderId: int, force?: bool = false}` | Delete an order — `orderId`: Order ID; `force`: Force delete |
| `woocommerce orders-batch-update` | `{create?: list[dict], update?: list[{id?: int}], delete?: list[int]}` | Batch update orders — `create`: Orders to create; `update`: Orders to update; `update.id`: Order ID; `delete`: Order IDs to delete |
| `woocommerce orders-notes-create` | `{orderId: int, note: str, customerNote?: bool = false}` | Add a note to an order — `orderId`: Order ID; `note`: Note content; `customerNote`: Is customer note |
| `woocommerce orders-refunds-create` | `{orderId: int, amount?: str, reason?: str, refundPayment?: bool = false, lineItems?: list[{id?: int, refund_total?: number, refund_tax?: list[dict]}]}` | Create a refund for an order — `orderId`: Order ID; `amount`: Refund amount; `reason`: Refund reason; `refundPayment`: Refund payment; `lineItems`: Line items to refund; `lineItems.id`: Line item ID; `lineItems.refund_total`: Amount to refund; `lineItems.refund_tax`: Tax to refund |
| `woocommerce customers-list` | `{perPage?: int, page?: int, search?: str, email?: str, role?: "all" \| "customer" \| "administrator" \| "shop_manager", orderby?: "id" \| "include" \| "name" \| "registered_date", order?: "asc" \| "desc"}` | List customers with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `search`: Search term; `email`: Customer email; `role`: Customer role; `orderby`: Order by field; `order`: Order direction |
| `woocommerce customers-get` | `{customerId: int}` | Get a specific customer by ID — `customerId`: Customer ID |
| `woocommerce customers-create` | `{customerData: {email?: str, first_name?: str, last_name?: str, username?: str, password?: str, billing?: dict, shipping?: dict, meta_data?: list[{key?: str, value?: str}]}}` | Create a new customer — `customerData`: Customer data; `customerData.email`: Customer email; `customerData.first_name`: First name; `customerData.last_name`: Last name; `customerData.username`: Username; `customerData.password`: Password; `customerData.billing`: Billing address; `customerData.shipping`: Shipping address; `customerData.meta_data`: Meta data |
| `woocommerce customers-update` | `{customerId: int, customerData: dict}` | Update a customer — `customerId`: Customer ID; `customerData`: Customer data to update |
| `woocommerce coupons-list` | `{perPage?: int, page?: int, search?: str, code?: str}` | List coupons with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — `perPage`: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; `page`: Page number for pagination (default: 1). Use with perPage to navigate through results.; `search`: Search term; `code`: Coupon code |
| `woocommerce coupons-get` | `{couponId: int}` | Get a specific coupon by ID — `couponId`: Coupon ID |
| `woocommerce coupons-create` | `{couponData: {code: str, discount_type: "percent" \| "fixed_cart" \| "fixed_product", amount: str, date_expires?: str, individual_use?: bool, product_ids?: list[int], excluded_product_ids?: list[int], usage_limit?: int, usage_limit_per_user?: int, limit_usage_to_x_items?: int, free_shipping?: bool, exclude_sale_items?: bool, minimum_amount?: str, maximum_amount?: str}}` | Create a new coupon — `couponData`: Coupon data; `couponData.code`: Coupon code; `couponData.discount_type`: Discount type; `couponData.amount`: Discount amount; `couponData.date_expires`: Expiry date (ISO 8601); `couponData.individual_use`: Individual use only; `couponData.product_ids`: Product IDs; `couponData.excluded_product_ids`: Excluded product IDs; `couponData.usage_limit`: Usage limit per coupon; `couponData.usage_limit_per_user`: Usage limit per user; `couponData.limit_usage_to_x_items`: Limit usage to X items; `couponData.free_shipping`: Allow free shipping; `couponData.exclude_sale_items`: Exclude sale items; `couponData.minimum_amount`: Minimum spend; `couponData.maximum_amount`: Maximum spend |
| `woocommerce coupons-update` | `{couponId: int, couponData: dict}` | Update a coupon — `couponId`: Coupon ID; `couponData`: Coupon data to update |
| `woocommerce coupons-delete` | `{couponId: int, force?: bool = true}` | Delete a coupon — `couponId`: Coupon ID; `force`: Force delete |
| `woocommerce reports-sales` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str}` | Get sales report — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD) |
| `woocommerce reports-top-sellers` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get top sellers report. Use perPage and page parameters to control pagination. — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD); `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce reports-customers` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str}` | Get customers report — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD) |
| `woocommerce reports-orders` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str}` | Get orders report — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD) |
| `woocommerce reports-products` | `{period?: "week" \| "month" \| "last_month" \| "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get products report. Use perPage and page parameters to control pagination. — `period`: Report period; `dateMin`: Start date (YYYY-MM-DD); `dateMax`: End date (YYYY-MM-DD); `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce reports-stock` | `{perPage?: int, page?: int}` | Get stock report. Use perPage and page parameters to control pagination. — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce reports-low-stock` | `{perPage?: int, page?: int}` | Get low stock report. Use perPage and page parameters to control pagination. — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce shipping-zones-list` | `{}` | List shipping zones |
| `woocommerce shipping-zones-get` | `{zoneId: int}` | Get a shipping zone — `zoneId`: Zone ID |
| `woocommerce shipping-zones-create` | `{name: str, order?: int}` | Create a shipping zone — `name`: Zone name; `order`: Zone order |
| `woocommerce shipping-zones-update` | `{zoneId: int, name?: str, order?: int}` | Update a shipping zone — `zoneId`: Zone ID; `name`: Zone name; `order`: Zone order |
| `woocommerce shipping-zone-methods-list` | `{zoneId: int}` | List methods for a shipping zone — `zoneId`: Zone ID |
| `woocommerce shipping-zone-methods-create` | `{zoneId: int, methodId: str, enabled?: bool = true, settings?: dict}` | Add a method to a shipping zone — `zoneId`: Zone ID; `methodId`: Method ID; `enabled`: Is enabled; `settings`: Method settings |
| `woocommerce tax-rates-list` | `{taxClass?: str, perPage?: int, page?: int}` | List tax rates. Use perPage and page parameters to control pagination. — `taxClass`: Tax class; `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1) |
| `woocommerce tax-rates-get` | `{rateId: int}` | Get a tax rate — `rateId`: Tax rate ID |
| `woocommerce tax-rates-create` | `{country: str, state?: str, rate: str, name?: str, priority?: int = 1, compound?: bool = false, shipping?: bool = true, class?: str = "standard"}` | Create a tax rate — `country`: Country code; `state`: State code; `rate`: Tax rate; `name`: Tax name; `priority`: Priority; `compound`: Is compound; `shipping`: Apply to shipping; `class`: Tax class |
| `woocommerce tax-classes-list` | `{}` | List tax classes |
| `woocommerce system-status` | `{}` | Get system status information |
| `woocommerce system-tools-list` | `{}` | List system tools |
| `woocommerce system-tools-run` | `{toolId: "clear_transients" \| "clear_expired_transients" \| "clear_orphaned_variations" \| "add_order_indexes" \| "recount_terms" \| "reset_roles" \| "clear_sessions" \| "clear_template_cache" \| "clear_system_status_theme_info_cache"}` | Run a system tool — `toolId`: Tool ID |
| `woocommerce settings-list` | `{}` | List settings groups |
| `woocommerce settings-get` | `{groupId: "general" \| "products" \| "tax" \| "shipping" \| "checkout" \| "account" \| "email" \| "integration" \| "advanced" \| "rest-api"}` | Get settings for a group — `groupId`: Settings group ID |
| `woocommerce payment-gateways-list` | `{}` | List payment gateways |
| `woocommerce payment-gateways-get` | `{gatewayId: str}` | Get a payment gateway — `gatewayId`: Gateway ID |
| `woocommerce payment-gateways-update` | `{gatewayId: str, enabled?: bool, title?: str, description?: str, settings?: dict}` | Update a payment gateway — `gatewayId`: Gateway ID; `enabled`: Is enabled; `title`: Gateway title; `description`: Gateway description; `settings`: Gateway settings |
| `woocommerce webhooks-list` | `{perPage?: int, page?: int, status?: "active" \| "paused" \| "disabled"}` | List webhooks. Use perPage and page parameters to control pagination. — `perPage`: Number of items per page (default: 10, max: 100); `page`: Page number (default: 1); `status`: Webhook status |
| `woocommerce webhooks-create` | `{name: str, topic: "coupon.created" \| "coupon.updated" \| "coupon.deleted" \| "customer.created" \| "customer.updated" \| "customer.deleted" \| "order.created" \| "order.updated" \| "order.deleted" \| "product.created" \| "product.updated" \| "product.deleted", delivery_url: str, status?: "active" \| "paused" \| "disabled" = "active", secret?: str}` | Create a webhook — `name`: Webhook name; `topic`: Webhook topic; `delivery_url`: Delivery URL; `status`: Webhook status; `secret`: Secret key |
## python3
Execute Python code directly under the agent workspace and return stdout
and stderr. Code can be pasted into a `.py` file and run with `python3`.
Python cannot launch subprocesses or make direct network requests. Run the
documented service commands directly in the shell. Use Python for local
file processing and generating JSON arguments.| name | workspace-commands |
|---|---|
| description | The shell commands, task tools, and python3 interpreter available in this workspace. |
Available commands
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq unzip curlwith pipes, > redirection, $(...) substitution and $'...'.
The task CLIs below are registered with this shell rather than installed as files; do not inspect them with which, file or /usr/bin.
woocommerce
Use woocommerce <command> '<JSON arguments>'. Run woocommerce <command> --help to get more information.
| Command | Arguments | Description | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
woocommerce products-list | `{perPage?: int, page?: int, search?: str, status?: "publish" \ | "draft" \ | "private" \ | "pending", category?: str, tag?: str, sku?: str, featured?: bool, onSale?: bool, minPrice?: str, maxPrice?: str, stockStatus?: "instock" \ | "outofstock" \ | "onbackorder", orderby?: "date" \ | "id" \ | "include" \ | "title" \ | "slug" \ | "price" \ | "popularity" \ | "rating", order?: "asc" \ | "desc"}` | List products with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; search: Search term; status: Product status; category: Category ID; tag: Tag ID; sku: Product SKU; featured: Featured products only; onSale: On sale products only; minPrice: Minimum price; maxPrice: Maximum price; stockStatus: Stock status; orderby: Order by field; order: Order direction |
woocommerce products-get | {productId: int} | Get a specific product by ID — productId: Product ID | |||||||||||||
woocommerce products-create | `{productData: {name?: str, type?: "simple" \ | "grouped" \ | "external" \ | "variable", status?: "publish" \ | "draft" \ | "private" \ | "pending", featured?: bool, catalog_visibility?: "visible" \ | "catalog" \ | "search" \ | "hidden", description?: str, short_description?: str, sku?: str, regular_price?: str, sale_price?: str, manage_stock?: bool, stock_quantity?: int, categories?: list[{id?: int}], images?: list[{src?: str, alt?: str}]}}` | Create a new product — productData: Product data; productData.name: Product name; productData.type: Product type; productData.status: Product status; productData.featured: Featured product; productData.catalog_visibility: Catalog visibility; productData.description: Product description; productData.short_description: Product short description; productData.sku: Product SKU; productData.regular_price: Regular price; productData.sale_price: Sale price; productData.manage_stock: Manage stock; productData.stock_quantity: Stock quantity; productData.categories: Product categories; productData.categories.id: Category ID; productData.images: Product images; productData.images.src: Image URL; productData.images.alt: Image alt text | ||||
woocommerce products-update | {productId: int, productData: dict} | Update a product — productId: Product ID; productData: Product data to update | |||||||||||||
woocommerce products-delete | {productId: int, force?: bool = false} | Delete a product — productId: Product ID; force: Force delete | |||||||||||||
woocommerce products-batch-update | {create?: list[dict], update?: list[{id?: int}], delete?: list[int]} | Batch update products — create: Products to create; update: Products to update; update.id: Product ID; delete: Product IDs to delete | |||||||||||||
woocommerce products-variations-list | {productId: int, perPage?: int, page?: int} | List product variations. Use perPage and page parameters for pagination (default: 10 items per page). — productId: Product ID; perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) | |||||||||||||
woocommerce products-categories-list | {perPage?: int, page?: int, search?: str, parent?: int, hideEmpty?: bool} | List product categories. Use perPage and page parameters for pagination (default: 10 items per page). — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); search: Search term; parent: Parent category ID; hideEmpty: Hide empty categories | |||||||||||||
woocommerce products-categories-create | `{categoryData: {name: str, slug?: str, parent?: int, description?: str, display?: "default" \ | "products" \ | "subcategories" \ | "both", image?: {src?: str, alt?: str}, menuOrder?: int}}` | Create a new product category — categoryData.name: Category name; categoryData.slug: Category slug; categoryData.parent: Parent category ID; categoryData.description: Category description; categoryData.display: Display type; categoryData.image.src: Image URL; categoryData.image.alt: Image alt text; categoryData.menuOrder: Menu order | ||||||||||
woocommerce products-tags-list | {perPage?: int, page?: int, search?: str, hideEmpty?: bool} | List product tags. Use perPage and page parameters for pagination (default: 10 items per page). — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); search: Search term; hideEmpty: Hide empty tags | |||||||||||||
woocommerce products-reviews-list | `{productId?: int, perPage?: int, page?: int, status?: "all" \ | "hold" \ | "approved" \ | "spam" \ | "trash"}` | List product reviews. Use perPage and page parameters for pagination (default: 10 items per page). — productId: Product ID (optional); perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); status: Review status | |||||||||
woocommerce orders-list | `{perPage?: int, page?: int, status?: list["pending" \ | "processing" \ | "on-hold" \ | "completed" \ | "cancelled" \ | "refunded" \ | "failed"], customer?: int, product?: int, dateAfter?: str, dateBefore?: str, orderby?: "date" \ | "id" \ | "include" \ | "title" \ | "slug", order?: "asc" \ | "desc"}` | List orders with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; status: Order statuses; customer: Customer ID; product: Product ID; dateAfter: Orders after this date (ISO 8601); dateBefore: Orders before this date (ISO 8601); orderby: Order by field; order: Order direction | ||
woocommerce orders-get | {orderId: int} | Get a specific order by ID — orderId: Order ID | |||||||||||||
woocommerce orders-create | {orderData: {payment_method?: str, payment_method_title?: str, set_paid?: bool, billing?: dict, shipping?: dict, line_items?: list[{product_id?: int, quantity?: int}], shipping_lines?: list[dict]}} | Create a new order — orderData: Order data; orderData.payment_method: Payment method ID; orderData.payment_method_title: Payment method title; orderData.set_paid: Define if the order is paid; orderData.billing: Billing address; orderData.shipping: Shipping address; orderData.line_items: Line items data; orderData.line_items.product_id: Product ID; orderData.line_items.quantity: Quantity; orderData.shipping_lines: Shipping lines data | |||||||||||||
woocommerce orders-update | {orderId: int, orderData: dict} | Update an order — orderId: Order ID; orderData: Order data to update | |||||||||||||
woocommerce orders-delete | {orderId: int, force?: bool = false} | Delete an order — orderId: Order ID; force: Force delete | |||||||||||||
woocommerce orders-batch-update | {create?: list[dict], update?: list[{id?: int}], delete?: list[int]} | Batch update orders — create: Orders to create; update: Orders to update; update.id: Order ID; delete: Order IDs to delete | |||||||||||||
woocommerce orders-notes-create | {orderId: int, note: str, customerNote?: bool = false} | Add a note to an order — orderId: Order ID; note: Note content; customerNote: Is customer note | |||||||||||||
woocommerce orders-refunds-create | {orderId: int, amount?: str, reason?: str, refundPayment?: bool = false, lineItems?: list[{id?: int, refund_total?: number, refund_tax?: list[dict]}]} | Create a refund for an order — orderId: Order ID; amount: Refund amount; reason: Refund reason; refundPayment: Refund payment; lineItems: Line items to refund; lineItems.id: Line item ID; lineItems.refund_total: Amount to refund; lineItems.refund_tax: Tax to refund | |||||||||||||
woocommerce customers-list | `{perPage?: int, page?: int, search?: str, email?: str, role?: "all" \ | "customer" \ | "administrator" \ | "shop_manager", orderby?: "id" \ | "include" \ | "name" \ | "registered_date", order?: "asc" \ | "desc"}` | List customers with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; search: Search term; email: Customer email; role: Customer role; orderby: Order by field; order: Order direction | ||||||
woocommerce customers-get | {customerId: int} | Get a specific customer by ID — customerId: Customer ID | |||||||||||||
woocommerce customers-create | {customerData: {email?: str, first_name?: str, last_name?: str, username?: str, password?: str, billing?: dict, shipping?: dict, meta_data?: list[{key?: str, value?: str}]}} | Create a new customer — customerData: Customer data; customerData.email: Customer email; customerData.first_name: First name; customerData.last_name: Last name; customerData.username: Username; customerData.password: Password; customerData.billing: Billing address; customerData.shipping: Shipping address; customerData.meta_data: Meta data | |||||||||||||
woocommerce customers-update | {customerId: int, customerData: dict} | Update a customer — customerId: Customer ID; customerData: Customer data to update | |||||||||||||
woocommerce coupons-list | {perPage?: int, page?: int, search?: str, code?: str} | List coupons with optional filters. IMPORTANT: Use perPage parameter to control how many results to return (default is 10, max is 100). Use page parameter for pagination. — perPage: Number of items to return per page (default: 10, max: 100). Always specify this to control result size.; page: Page number for pagination (default: 1). Use with perPage to navigate through results.; search: Search term; code: Coupon code | |||||||||||||
woocommerce coupons-get | {couponId: int} | Get a specific coupon by ID — couponId: Coupon ID | |||||||||||||
woocommerce coupons-create | `{couponData: {code: str, discount_type: "percent" \ | "fixed_cart" \ | "fixed_product", amount: str, date_expires?: str, individual_use?: bool, product_ids?: list[int], excluded_product_ids?: list[int], usage_limit?: int, usage_limit_per_user?: int, limit_usage_to_x_items?: int, free_shipping?: bool, exclude_sale_items?: bool, minimum_amount?: str, maximum_amount?: str}}` | Create a new coupon — couponData: Coupon data; couponData.code: Coupon code; couponData.discount_type: Discount type; couponData.amount: Discount amount; couponData.date_expires: Expiry date (ISO 8601); couponData.individual_use: Individual use only; couponData.product_ids: Product IDs; couponData.excluded_product_ids: Excluded product IDs; couponData.usage_limit: Usage limit per coupon; couponData.usage_limit_per_user: Usage limit per user; couponData.limit_usage_to_x_items: Limit usage to X items; couponData.free_shipping: Allow free shipping; couponData.exclude_sale_items: Exclude sale items; couponData.minimum_amount: Minimum spend; couponData.maximum_amount: Maximum spend | |||||||||||
woocommerce coupons-update | {couponId: int, couponData: dict} | Update a coupon — couponId: Coupon ID; couponData: Coupon data to update | |||||||||||||
woocommerce coupons-delete | {couponId: int, force?: bool = true} | Delete a coupon — couponId: Coupon ID; force: Force delete | |||||||||||||
woocommerce reports-sales | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str}` | Get sales report — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD) | ||||||||||
woocommerce reports-top-sellers | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get top sellers report. Use perPage and page parameters to control pagination. — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD); perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) | ||||||||||
woocommerce reports-customers | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str}` | Get customers report — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD) | ||||||||||
woocommerce reports-orders | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str}` | Get orders report — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD) | ||||||||||
woocommerce reports-products | `{period?: "week" \ | "month" \ | "last_month" \ | "year", dateMin?: str, dateMax?: str, perPage?: int, page?: int}` | Get products report. Use perPage and page parameters to control pagination. — period: Report period; dateMin: Start date (YYYY-MM-DD); dateMax: End date (YYYY-MM-DD); perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) | ||||||||||
woocommerce reports-stock | {perPage?: int, page?: int} | Get stock report. Use perPage and page parameters to control pagination. — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) | |||||||||||||
woocommerce reports-low-stock | {perPage?: int, page?: int} | Get low stock report. Use perPage and page parameters to control pagination. — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) | |||||||||||||
woocommerce shipping-zones-list | {} | List shipping zones | |||||||||||||
woocommerce shipping-zones-get | {zoneId: int} | Get a shipping zone — zoneId: Zone ID | |||||||||||||
woocommerce shipping-zones-create | {name: str, order?: int} | Create a shipping zone — name: Zone name; order: Zone order | |||||||||||||
woocommerce shipping-zones-update | {zoneId: int, name?: str, order?: int} | Update a shipping zone — zoneId: Zone ID; name: Zone name; order: Zone order | |||||||||||||
woocommerce shipping-zone-methods-list | {zoneId: int} | List methods for a shipping zone — zoneId: Zone ID | |||||||||||||
woocommerce shipping-zone-methods-create | {zoneId: int, methodId: str, enabled?: bool = true, settings?: dict} | Add a method to a shipping zone — zoneId: Zone ID; methodId: Method ID; enabled: Is enabled; settings: Method settings | |||||||||||||
woocommerce tax-rates-list | {taxClass?: str, perPage?: int, page?: int} | List tax rates. Use perPage and page parameters to control pagination. — taxClass: Tax class; perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1) | |||||||||||||
woocommerce tax-rates-get | {rateId: int} | Get a tax rate — rateId: Tax rate ID | |||||||||||||
woocommerce tax-rates-create | {country: str, state?: str, rate: str, name?: str, priority?: int = 1, compound?: bool = false, shipping?: bool = true, class?: str = "standard"} | Create a tax rate — country: Country code; state: State code; rate: Tax rate; name: Tax name; priority: Priority; compound: Is compound; shipping: Apply to shipping; class: Tax class | |||||||||||||
woocommerce tax-classes-list | {} | List tax classes | |||||||||||||
woocommerce system-status | {} | Get system status information | |||||||||||||
woocommerce system-tools-list | {} | List system tools | |||||||||||||
woocommerce system-tools-run | `{toolId: "clear_transients" \ | "clear_expired_transients" \ | "clear_orphaned_variations" \ | "add_order_indexes" \ | "recount_terms" \ | "reset_roles" \ | "clear_sessions" \ | "clear_template_cache" \ | "clear_system_status_theme_info_cache"}` | Run a system tool — toolId: Tool ID | |||||
woocommerce settings-list | {} | List settings groups | |||||||||||||
woocommerce settings-get | `{groupId: "general" \ | "products" \ | "tax" \ | "shipping" \ | "checkout" \ | "account" \ | "email" \ | "integration" \ | "advanced" \ | "rest-api"}` | Get settings for a group — groupId: Settings group ID | ||||
woocommerce payment-gateways-list | {} | List payment gateways | |||||||||||||
woocommerce payment-gateways-get | {gatewayId: str} | Get a payment gateway — gatewayId: Gateway ID | |||||||||||||
woocommerce payment-gateways-update | {gatewayId: str, enabled?: bool, title?: str, description?: str, settings?: dict} | Update a payment gateway — gatewayId: Gateway ID; enabled: Is enabled; title: Gateway title; description: Gateway description; settings: Gateway settings | |||||||||||||
woocommerce webhooks-list | `{perPage?: int, page?: int, status?: "active" \ | "paused" \ | "disabled"}` | List webhooks. Use perPage and page parameters to control pagination. — perPage: Number of items per page (default: 10, max: 100); page: Page number (default: 1); status: Webhook status | |||||||||||
woocommerce webhooks-create | `{name: str, topic: "coupon.created" \ | "coupon.updated" \ | "coupon.deleted" \ | "customer.created" \ | "customer.updated" \ | "customer.deleted" \ | "order.created" \ | "order.updated" \ | "order.deleted" \ | "product.created" \ | "product.updated" \ | "product.deleted", delivery_url: str, status?: "active" \ | "paused" \ | "disabled" = "active", secret?: str}` | Create a webhook — name: Webhook name; topic: Webhook topic; delivery_url: Delivery URL; status: Webhook status; secret: Secret key |
python3
Execute Python code directly under the agent workspace and return stdout and stderr. Code can be pasted into a .py file and run with python3.
Python cannot launch subprocesses or make direct network requests. Run the documented service commands directly in the shell. Use Python for local file processing and generating JSON arguments.
| Model | VFS | MCP | VFS Tokens | MCP Tokens | Token Reduction Rate |
|---|---|---|---|---|---|
| Claude Opus 5.5 | 1/1 | 1/1 | 82.5k | 788k | 90% |
| GPT-6.1 Sol | 1/1 | 1/1 | 50.6k | 412k | 88% |
| GPT-5.6 Luna | 1/1 | 1/1 | 171k | 643k | 73% |
| Claude Haiku 5.5 | 1/1 | 1/1 | 930k | 1.15M | 19% |
| Gemini 3.8 Flash | 1/1 | 1/1 | 935k | 2.12M | 56% |