Skip to main content
Glama

royal-mcp__wc_create_order

Destructive

Create a WooCommerce order programmatically. Use for B2B, wholesale, phone orders, manual invoicing. Stock is decremented only when status transitions into processing/completed — create as pending, then update status to processing to trigger stock reduction. Order emails are NOT auto-fired; pass send_emails=true to trigger the New Order email. (site: demo.royalplugins.com) Through Royally: waits for a person to approve it in Royally; nothing on the site changes until then.

Input Schema

NameRequiredDescriptionDefault
statusNoInitial order status (default pending). Accepted: pending, processing, on-hold, completed, cancelled.
billingNoBilling address: first_name, last_name, address_1, address_2, city, state, postcode, country, email, phone.
site_idNoSite to run this tool on: 8ef2e52b-bd07-4671-a363-ebe8b480b65c (https://demo.royalplugins.com)
shippingNoShipping address (same shape as billing, minus email/phone).
fee_linesNoOptional fee lines. Array of {name, total}.
meta_dataNoOptional custom order meta. Array of {key, value}.
line_itemsYesArray of {product_id, quantity, variation_id?}. variation_id must belong to product_id.
customer_idNoOptional WP user ID for the customer. Omit to create a guest order.
send_emailsNoIf true, fire the WC New Order email after creation. Default false.
customer_noteNoCustomer-facing note attached to the order.
payment_methodNoPayment method ID (e.g. bacs, cheque, cod, stripe).
shipping_linesNoOptional shipping lines. Array of {method_id, method_title, total}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructive/openWorld/non-idempotent) by disclosing three non-obvious behaviors: stock only decrements on transition into processing/completed, emails are silent unless send_emails=true, and under Royally the call queues for human approval so nothing changes on the site until then. Those are exactly the facts an agent could otherwise get wrong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: purpose first, then workflow caveats, then the site and Royally notes. The trailing parenthetical "(site: demo.royalplugins.com)" and the appended Royally sentence are slightly awkward placement for important runtime behavior, costing a point on structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-param, nested-object mutation with no output schema, the description covers the risky parts — stock timing, email suppression, approval gating, site scope. It doesn't say what the response contains (e.g., the created order ID) or permission requirements, which would fully close the loop.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already carries per-param docs and the baseline is 3. The description still adds real meaning by tying status values to stock-decrement timing and send_emails to the New Order email, clarifying behavior rather than restating field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb+resource ("Create a WooCommerce order") and immediately names the concrete scenarios (B2B, wholesale, phone orders, manual invoicing), which separates it from the read-side siblings wc_get_orders/wc_get_order and from wc_update_order_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit usage contexts and even a recommended call sequence (create as pending, then transition to processing to trigger stock), which implicitly routes the agent to the update tool. It never names a sibling tool outright or states a when-not-to-use case, so it stops short of the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources