Criar pedido
Cria um pedido em nome de um cliente, com itens, endereços e forma de pagamento, como um ERP, um PDV ou o atendimento fazem.
Use esta operação quando o pedido não nasce no checkout da loja: um representante digitou a venda por telefone, o ERP gera o pedido a partir de uma proposta, ou um sistema externo precisa registrar uma compra. O cliente final continua comprando pelo checkout da loja; essa rota é para integrações e para a equipe da loja.
Ao criar, a plataforma recalcula os preços a partir do catálogo, baixa o estoque, grava o histórico de status e dispara o evento de pedido criado (e-mails e demais reações configuradas na loja). Se os itens são de sellers diferentes, o pedido é dividido em um pedido pai e um sub-pedido por seller (veja Sub-pedidos).
/api/v1/admin/ordersAdminCria um pedido
Exige o privilégio manage_orders. O corpo usa UUIDs e centavos. Se customer_id for omitido, o pedido é de visitante e customer_email passa a ser obrigatório.
Corpo da requisição
customer_iduuidcustomer_emailstringcustomer_id.customer_namestringitemsarrayobrigatórioItens. Pelo menos um.
product_iduuidobrigatóriovariation_iduuidquantitynumberobrigatóriooptionsobjectnotestringbilling_addressobjectEndereço de cobrança. Se omitido, a plataforma usa o endereço de entrega também como cobrança.
first_namestringobrigatóriolast_namestringaddress_line1stringobrigatórioaddress_line2stringdistrictstringcitystringobrigatóriostatestringobrigatórioSP).postal_codestringobrigatóriocountrystringobrigatórioBR).phonestringcpfstringshipping_addressobjectobrigatóriobilling_address. Obrigatório para pedido com produto físico: é dele que o frete é calculado.payment_methodstringobrigatóriopix, credit_card, boleto, pagamento-na-entrega...).shipping_method_iduuidshipping_methodstringshipping_method_id.shipping_selectionsarrayEscolha de frete por seller, para pedidos com mais de um seller.
vendor_iduuidshipping_method_iduuidservice_codestringshipping_totalintegerdiscount_totalintegertax_totalintegercoupon_codestringcustomer_notesstringadmin_notesstringidempotency_keystringinstallmentsintegerinvoiced_plan_idstringExemplo de requisição
Resposta
Campos da resposta
orderobjectitemsarrayaddressesarraystatus_historyarrayorder_created.sub_ordersarrayErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Campo obrigatório faltando | {"error":"customer_id or customer_email is required"}, {"error":"at least one item is required"}, {"error":"payment_method is required"} |
| 401 | Sem credenciais ou token expirado | {"error":"invalid or expired token"} |
| 403 | Sem o privilégio manage_orders | {"error":"insufficient privileges","required":"manage_orders"} |
| 422 | Forma de pagamento bloqueada para este cliente, ou recusa por regra da loja | {"error":"Esta forma de pagamento não está disponível para a sua conta. Escolha outra forma de pagamento.","detail":"payment_method_not_allowed"} |
| 500 | Qualquer outra recusa de negócio: produto inexistente ou inativo, quantidade inválida, estoque insuficiente, forma de envio ou CEP ausentes, forma de pagamento desconhecida | {"error":"Não foi possível finalizar o pedido. Tente novamente ou entre em contato com o suporte."} |