Skip to main content
Glama

Montar carrinho para o consumidor confirmar

create_cart

Monta um carrinho numa loja e devolve confirmUrl, o link que o CONSUMIDOR abre para revisar e confirmar (nome, WhatsApp e, na entrega, endereço). Mostre o link ao consumidor: a compra só acontece quando ele confirma, e o pagamento é combinado com a loja (WhatsApp, Pix, na retirada). Nunca diga que a compra foi feita. Um carrinho é de uma loja só: para comprar em duas lojas, monte dois. Use os productId de search_products e a storeId de get_offers. fulfillment: produto 'pickup' (retirar na loja), 'delivery' (entrega da própria loja; informe o CEP do consumidor) ou 'shipping' (envio pelo país com frete e rastreio, quando get_offers traz shipping; informe o CEP; veja preço e prazo antes em quote_delivery); serviço 'in_store' (na loja) ou 'at_customer' (a domicílio, com o CEP), sempre com scheduledFor (veja os horários livres em check_availability); reserva 'booking', com checkIn, checkOut (preço por noite) e guests (preço por pessoa); produto digital 'digital' (chega por e-mail); imóvel 'visit' (visita com scheduledFor, um imóvel e quantity 1: a plataforma não vende nem aluga, só marca a visita; a imobiliária confirma e o endereço vai para o consumidor depois da confirmação); veículo 'visit' (visita na loja para ver o carro ou fazer test drive, com scheduledFor, um veículo e quantity 1: a plataforma não vende nem financia; a loja confirma). Use o que a oferta aceita (fulfillment em get_offers). Preço 'a partir de' (priceType FROM) deixa o total estimado: a loja confirma. Produtos com receita não entram. Se algum item não puder entrar, nada é criado e a resposta diz o motivo de cada um. O link vale 24 horas e aparece só nesta resposta. Item com adicionais (options em get_offers: tamanho, sabores, borda...): mande os ids das opções escolhidas em options; grupo com minSelect 1 é obrigatório. Para o mesmo produto com escolhas diferentes, repita o item. couponCode aplica um cupom da loja (discount e couponCode voltam no carrinho; o total já desconta). Pré-venda e encomenda entram normalmente: expectedOn diz quando o pedido fica pronto para sair. Item com preço sob consulta (ON_REQUEST) não entra: use request_quote. Aluguel (kind RENTAL): fulfillment 'pickup' ou 'delivery', com startDate e endDate (veja as unidades livres por dia em check_availability); o caução (attributes.deposit), se houver, é combinado com a loja. Telefone: a página de confirmação pede o celular (WhatsApp) do consumidor, obrigatório, mesmo para quem já tem conta só com e-mail; não peça o telefone no chat. Em visita e atendimento com horário, avise que lá ele também pode marcar para receber a confirmação e os lembretes pelo WhatsApp, com botões para confirmar presença, remarcar ou cancelar.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "storeId": "<storeId>",
      "items": "<items>",
      "fulfillment": "<fulfillment>"
    },
    "name": "create_cart"
  }
}

Input Schema

NameRequiredDescriptionDefault
noteNoObservação para a loja (preferências, substituições aceitas)
itemsYesItens: lista de {productId, quantity, options}. quantity é inteiro, exceto produto vendido por peso (soldByWeight), em kg (ex.: 1.5). options: ids das opções dos adicionais (de get_offers), quando o item tem
guestsNoReserva: quantas pessoas; obrigatório com preço por pessoa
checkInNoReserva: data de entrada (AAAA-MM-DD)
endDateNoAluguel: dia da devolução (AAAA-MM-DD); o preço por dia conta os dias entre a retirada e a devolução (mínimo 1)
storeIdYesstoreId da loja (de get_offers)
checkOutNoReserva: data de saída (AAAA-MM-DD); obrigatória com preço por noite
startDateNoAluguel (kind RENTAL): dia da retirada (AAAA-MM-DD)
couponCodeNoCupom de desconto da loja: o code de get_promotions ou o que o consumidor tem. Se não valer, a resposta diz o motivo (vencido, esgotado, compra mínima)
postalCodeNoCódigo postal do consumidor (CEP no Brasil; obrigatório na entrega e no serviço a domicílio)
fulfillmentYes'pickup', 'delivery', 'shipping', 'in_store', 'at_customer', 'booking' ou 'digital'
scheduledForNoServiço: data e hora pedidas, com fuso (ex.: 2026-11-05T14:00-03:00); use um start de check_availability
externalReferenceNoSeu id para este carrinho (conversa ou usuário no seu sistema), até 100 caracteres; volta em get_cart e nos webhooks do desenvolvedor

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false, idempotent=false; the description adds what matters: the link is valid 24h and appears only in this response, an all-or-nothing failure mode ('se algum item não puder entrar, nada é criado'), FROM pricing yields an estimate, and payment is settled with the store outside the platform. It also flags that confirmation requires the consumer's WhatsApp number on the confirmation page.

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

Conciseness3/5

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

Key constraint and purpose are front-loaded, but the body is one very long paragraph that packs fulfillment variants, rental, visit, coupon, and phone instructions without breaks. It earns most of its content, yet the density makes scanning hard for an agent deciding which branch applies.

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 13 parameters and no output schema, the description still covers the return payload (confirmUrl, discount, couponCode, expectedOn, per-item failure reasons) and the domain rules per fulfillment type. Nothing an agent needs to call this correctly for products, services, bookings, rentals, or visits is missing.

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 goes beyond it: it explains what each fulfillment value means operationally (pickup vs delivery vs shipping vs in_store vs at_customer vs booking vs digital), the minSelect-1 rule for options, the need to repeat an item for different choices, and when checkIn/checkOut/guests/startDate/endDate apply. A few params (note, externalReference, soldByWeight quantity) are left to the schema.

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?

Opens with a specific verb+resource ('Monta um carrinho numa loja') and names the output ('devolve confirmUrl, o link que o CONSUMIDOR abre'), which distinguishes it cleanly from get_cart (retrieval) and reorder. An agent knows exactly what is produced without opening the schema.

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?

Explicit routing: use productId from search_products, storeId from get_offers, check quote_delivery before shipping, check_availability for slots, request_quote for ON_REQUEST items, get_promotions for coupon codes. It also states exclusions (products with receita don't enter, one cart per store) and prohibitions (never say the purchase was made, don't ask for the phone in chat).

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