Skip to main content
Glama

create_order

Idempotent

Založí ZÁVAZNOU objednávku (čeká na platbu). paymentMethod 'bank_transfer' (výchozí) vrátí číslo účtu, variabilní symbol a QR; 'card' vrátí paymentUrl — zabezpečenou stránku Stripe pro tuto objednávku, kde zákazník sám zadá kartu (agent kartu nikdy nezadává ani nevidí; po zaplacení jede faktura a výroba stejně jako u objednávky z webu). Vždy vrátí statusUrl a statusToken (pro get_order_status, get_payment_link, cancel_order) a zákazníkovi pošle e-mail. Volej až po výslovném souhlasu zákazníka s položkami a cenou z quote_order. Povinné: skutečný e-mail (doména musí přijímat poštu, jinak 422), jméno a příjmení, shippingId (+ pickupPointId u výdejního místa, jinak adresa), consent:true; nad 10 000 Kč bez IČO fakturační adresa. Kartou nejméně 15 Kč. Nezaplacená karta propadne po 48 h, převod po 7 dnech. Limity: 3 objednávky / IP / den, 2 nezaplacené a 3 objednávky za 24 h na e-mail (429). Při opakování po timeoutu pošli stejný idempotencyKey.

Input Schema

NameRequiredDescriptionDefault
itemsYespoložky objednávky (každá velikost/barva zvlášť)
notesNovzkaz zákazníka k objednávce (co má dílna vědět); uloží se k zakázce jako poznámka od zákazníka, delší text se ořízne
consentYessouhlas zákazníka s obchodními podmínkami (https://suorigo.cz/obchodni-podminky), musí být true
customerYeszákazník: email (povinné, skutečná doména s poštou), name (povinné — jméno A příjmení, jde na daňový doklad), phone?, address? (doručovací adresa jedním řádkem u doručení na adresu) nebo deliveryStreet/deliveryCity/deliveryZip, firma: companyName?, ico? (doplní se z ARES), dic?, fakturační adresa billingStreet/billingCity/billingZip/billingCountry (nad 10 000 Kč bez IČO povinná)
promoCodeNoslevový kód; neplatný kód = chyba (nikdy tiše plná cena)
shippingIdYesdoprava: zasilkovna (výdejní místo / Z-BOX, 89 Kč), balikovna (69 Kč), ppl-vydejni (69 Kč), dpd-vydejni (89 Kč), ppl (na adresu, 119 Kč), dpd (na adresu, 109 Kč); od 1 500 Kč zdarma
paymentMethodNobank_transfer = převod + QR (výchozí); card = odkaz na platbu kartou (Stripe Checkout, Apple/Google Pay podle prohlížeče)
pickupPointIdNoid výdejního místa z find_pickup_points (povinné u dopravy na výdejní místo)
idempotencyKeyNolibovolný unikátní klíč této objednávky (např. UUID); opakované volání se stejným klíčem a obsahem vrátí stejnou objednávku (replayed:true, u karty tentýž platební odkaz), stejný klíč s jiným obsahem = 409
deliverySpeedIdNotermín: d14 = do 14 prac. dní (výchozí, bez příplatku), d7 = do 7 dní +30 % (jen trička Standard), d30 = do měsíce −10 %; nedostupný termín = 400 s důvodem (quote_order ukáže dostupnost)
pickupPointNameNonázev výdejního místa (volitelné, doplní se samo)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / shippingId / description
      Previous value: -"doprava: zasilkovna (výdejní místo / Z-BOX, 89 Kč), balikovna (69 Kč), ppl-vydejni (79 Kč), dpd-vydejni (89 Kč), ppl / dpd (na adresu, 129 Kč); od 1 500 Kč zdarma"New value: +"doprava: zasilkovna (výdejní místo / Z-BOX, 89 Kč), balikovna (69 Kč), ppl-vydejni (69 Kč), dpd-vydejni (89 Kč), ppl (na adresu, 119 Kč), dpd (na adresu, 109 Kč); od 1 500 Kč zdarma"
  2. Changed2 schema fields changed
    • changedInput schema / properties / shippingId / description
      Previous value: -"doprava: zasilkovna (výdejní místo / Z-BOX, 89 Kč), balikovna (69 Kč), ppl-vydejni (79 Kč), dpd-vydejni (89 Kč), ppl / dpd (na adresu, 129 Kč); od 1 500 Kč zdarma; osobni (Šitbořice) jen se slevovým kódem, který ho odemyká"New value: +"doprava: zasilkovna (výdejní místo / Z-BOX, 89 Kč), balikovna (69 Kč), ppl-vydejni (79 Kč), dpd-vydejni (89 Kč), ppl / dpd (na adresu, 129 Kč); od 1 500 Kč zdarma"
    • changedInput schema / properties / shippingId / enum
      Previous value: -[
      -  "zasilkovna",
      -  "balikovna",
      -  "ppl-vydejni",
      -  "dpd-vydejni",
      -  "ppl",
      -  "dpd",
      -  "osobni"
      -]New value: +[
      +  "zasilkovna",
      +  "balikovna",
      +  "ppl-vydejni",
      +  "dpd-vydejni",
      +  "ppl",
      +  "dpd"
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / deliverySpeedId / description
      Previous value: -"termín: d14 = do 14 prac. dní (výchozí, bez příplatku), d7 = do 7 dní +30 % (jen trička Standard), rush3 = expres do 3 prac. dnů +100 % (jen černá/bílá trička Standart, objednávka 1 500–5 000 Kč, podání do 12:00), d30 = do měsíce −10 %; nedostupný termín = 400 s důvodem (quote_order ukáže dostupnost)"New value: +"termín: d14 = do 14 prac. dní (výchozí, bez příplatku), d7 = do 7 dní +30 % (jen trička Standard), d30 = do měsíce −10 %; nedostupný termín = 400 s důvodem (quote_order ukáže dostupnost)"
    • changedInput schema / properties / deliverySpeedId / enum
      Previous value: -[
      -  "rush3",
      -  "d7",
      -  "d14",
      -  "d30"
      -]New value: +[
      +  "d7",
      +  "d14",
      +  "d30"
      +]
    • changedInput schema / properties / items / items / properties / colorName / description
      Previous value: -"název barvy (rozhoduje i o expresu: jen černá/bílá)"New value: +"název barvy"
  4. Changed16 schema fields changed
    • changedInput schema / properties / consent / description
      Previous value: -"souhlas s obchodními podmínkami, musí být true"New value: +"souhlas zákazníka s obchodními podmínkami (https://suorigo.cz/obchodni-podminky), musí být true"
    • changedInput schema / properties / customer / description
      Previous value: -"{email (povinné), name?, phone?, address?, companyName?, ico?, dic?, billingStreet?, billingCity?, billingZip?, billingCountry?}"New value: +"zákazník: email (povinné, skutečná doména s poštou), name (povinné — jméno A příjmení, jde na daňový doklad), phone?, address? (doručovací adresa jedním řádkem u doručení na adresu) nebo deliveryStreet/deliveryCity/deliveryZip, firma: companyName?, ico? (doplní se z ARES), dic?, fakturační adresa billingStreet/billingCity/billingZip/billingCountry (nad 10 000 Kč bez IČO povinná)"
    • addedInput schema / properties / customer / properties
      Added value: +{
      +  "address": {
      +    "type": "string"
      +  },
      +  "billingCity": {
      +    "type": "string"
      +  },
      +  "billingCountry": {
      +    "type": "string"
      +  },
      +  "billingStreet": {
      +    "type": "string"
      +  },
      +  "billingZip": {
      +    "type": "string"
      +  },
      +  "companyName": {
      +    "type": "string"
      +  },
      +  "deliveryCity": {
      +    "type": "string"
      +  },
      +  "deliveryStreet": {
      +    "type": "string"
      +  },
      +  "deliveryZip": {
      +    "type": "string"
      +  },
      +  "dic": {
      +    "type": "string"
      +  },
      +  "email": {
      +    "type": "string"
      +  },
      +  "ico": {
      +    "type": "string"
      +  },
      +  "name": {
      +    "type": "string"
      +  },
      +  "phone": {
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / customer / required
      Added value: +[
      +  "email",
      +  "name"
      +]
    • addedInput schema / properties / deliverySpeedId
      Added value: +{
      +  "description": "termín: d14 = do 14 prac. dní (výchozí, bez příplatku), d7 = do 7 dní +30 % (jen trička Standard), rush3 = expres do 3 prac. dnů +100 % (jen černá/bílá trička Standart, objednávka 1 500–5 000 Kč, podání do 12:00), d30 = do měsíce −10 %; nedostupný termín = 400 s důvodem (quote_order ukáže dostupnost)",
      +  "enum": [
      +    "rush3",
      +    "d7",
      +    "d14",
      +    "d30"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / idempotencyKey / description
      Previous value: -"libovolný unikátní klíč této objednávky (např. UUID); opakované volání se stejným klíčem a obsahem vrátí stejnou objednávku (replayed:true), stejný klíč s jiným obsahem = 409"New value: +"libovolný unikátní klíč této objednávky (např. UUID); opakované volání se stejným klíčem a obsahem vrátí stejnou objednávku (replayed:true, u karty tentýž platební odkaz), stejný klíč s jiným obsahem = 409"
    • changedInput schema / properties / items / description
      Previous value: -"položky: {product (id/slug), colorId?, colorName?, size, quantity, printMethod?, layers? (z create_design)}"New value: +"položky objednávky (každá velikost/barva zvlášť)"
    • addedInput schema / properties / items / items / properties
      Added value: +{
      +  "colorId": {
      +    "type": "string"
      +  },
      +  "colorName": {
      +    "description": "název barvy (rozhoduje i o expresu: jen černá/bílá)",
      +    "type": "string"
      +  },
      +  "layers": {
      +    "description": "vrstvy z create_design (určují příplatek za potisk)",
      +    "items": {
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "printMethod": {
      +    "type": "string"
      +  },
      +  "product": {
      +    "description": "id nebo slug produktu z list_products",
      +    "type": "string"
      +  },
      +  "quantity": {
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "size": {
      +    "description": "velikost z katalogu, např. M",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / items / items / required
      Added value: +[
      +  "product",
      +  "size",
      +  "quantity"
      +]
    • addedInput schema / properties / paymentMethod
      Added value: +{
      +  "description": "bank_transfer = převod + QR (výchozí); card = odkaz na platbu kartou (Stripe Checkout, Apple/Google Pay podle prohlížeče)",
      +  "enum": [
      +    "bank_transfer",
      +    "card"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / pickupPointId
      Added value: +{
      +  "description": "id výdejního místa z find_pickup_points (povinné u dopravy na výdejní místo)",
      +  "type": "string"
      +}
    • addedInput schema / properties / pickupPointName
      Added value: +{
      +  "description": "název výdejního místa (volitelné, doplní se samo)",
      +  "type": "string"
      +}
    • addedInput schema / properties / promoCode / description
      Added value: +"slevový kód; neplatný kód = chyba (nikdy tiše plná cena)"
    • changedInput schema / properties / shippingId / description
      Previous value: -"např. 'zasilkovna','balikovna','ppl','dpd' (volitelné)"New value: +"doprava: zasilkovna (výdejní místo / Z-BOX, 89 Kč), balikovna (69 Kč), ppl-vydejni (79 Kč), dpd-vydejni (89 Kč), ppl / dpd (na adresu, 129 Kč); od 1 500 Kč zdarma; osobni (Šitbořice) jen se slevovým kódem, který ho odemyká"
    • addedInput schema / properties / shippingId / enum
      Added value: +[
      +  "zasilkovna",
      +  "balikovna",
      +  "ppl-vydejni",
      +  "dpd-vydejni",
      +  "ppl",
      +  "dpd",
      +  "osobni"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "items",
      -  "customer",
      -  "consent"
      -]New value: +[
      +  "items",
      +  "customer",
      +  "shippingId",
      +  "consent"
      +]
  5. Changed1 schema field changed
    • addedInput schema / properties / idempotencyKey
      Added value: +{
      +  "description": "libovolný unikátní klíč této objednávky (např. UUID); opakované volání se stejným klíčem a obsahem vrátí stejnou objednávku (replayed:true), stejný klíč s jiným obsahem = 409",
      +  "maxLength": 128,
      +  "type": "string"
      +}
  6. Changed2 schema fields changed
    • addedInput schema / properties / notes / description
      Added value: +"vzkaz zákazníka k objednávce (co má dílna vědět); uloží se k zakázce jako poznámka od zákazníka, delší text se ořízne"
    • addedInput schema / properties / notes / maxLength
      Added value: +1000
  7. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false): discloses side effects (customer email is sent), rate limits (3 orders/IP/day, 2 unpaid + 3 orders/24h per email → 429), expiry windows (card 48h, transfer 7 days), error codes (422, 429, 400, 409), and the safety rule that the agent never enters or sees the card. This is exactly the kind of behavioral context annotations cannot carry.

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?

Purpose and payment-method behavior are front-loaded, and nearly every sentence carries a fact (consent, required fields, limits, idempotency). It is a dense single block with some repetition of schema parameter text and no visual structure, which costs a point but not more given the tool's complexity.

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

Completeness5/5

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

With no output schema, the description still explains the return surface (paymentUrl, account number/VS/QR, statusUrl + statusToken), covers side effects, prerequisites, error handling and quota limits for an 11-parameter nested-object tool. An agent has everything needed to call it correctly without opening the schema.

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 baseline is 3, but the description adds cross-parameter conditional logic the flat schema cannot express: pickupPointId required for pickup shipping, otherwise a delivery address; billing address mandatory above 10 000 CZK without IČO; card minimum 15 CZK; email domain must accept mail. Some of this duplicates schema text, which keeps it from a 5.

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?

States a specific verb and resource with scope: creates a BINDING order that awaits payment, and explains the two payment branches (bank_transfer returns account number/VS/QR; card returns a Stripe paymentUrl). It also distinguishes itself from siblings by naming the exact tokens returned for get_order_status, get_payment_link and cancel_order, and by making quote_order a hard prerequisite.

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

Usage Guidelines5/5

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

Gives an explicit gating condition — 'Volej až po výslovném souhlasu zákazníka s položkami a cenou z quote_order' — plus branching guidance per payment method and clear routing to sibling tools via statusUrl/statusToken. When-not conditions are implied by the consent/quote prerequisite and the rate limits.

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