CH Creations

Integrar com o seu site

Receber pedidos de um site externo

O que o endereço /tpl/[id]/order aceita quando o formulário está em outro domínio.

Dá para receber um pedido a partir de um site seu, fora da loja. O endereço é o mesmo do template ativo:

POST /tpl/ID-DO-TEMPLATE/order

Não é uma API com chave. É o formulário de pedido, com as mesmas regras da vitrine.

captura de telaFormulário num site externo apontando para /tpl/…/order e o comprador caindo na página de pagamento da loja

O que funciona hoje

Foi conferido no código da rota:

  • O navegador pode enviar o formulário de outro domínio. A resposta JSON e a resposta de pré-vôo (OPTIONS) trazem Access-Control-Allow-Origin: *. Um <form method="post"> clássico também navega, sem precisar de CORS.
  • Métodos aceitos no pré-vôo: POST e OPTIONS. Cabeçalhos: Content-Type e Accept.
  • O corpo é formulário, até 60 KB.
  • storeSlug tem de ser o slug da loja dona daquele template.
  • O template do id na URL tem de ser o template ativo da loja. Senão a resposta é: “Esta loja não está recebendo pedidos por aqui.”
  • Token de prévia não autoriza pedido. Se returnTo for o endereço de prévia, a resposta é: “Pedidos não são enviados na prévia.”

O que não volta para o seu site

returnTo só aceita a página do produto desta loja (/produto/slug ou /loja/slug/produto/slug). Qualquer outro endereço, inclusive o do seu site, é trocado pela home da loja.

Depois do POST o comprador segue na Center House: página de pagamento da loja, Checkout Pro do Mercado Pago, ou a volta com ?pedido=ok. Não há como mandar o navegador de volta ao domínio externo pelo returnTo.

No JSON, use url (pagamento) ou voltar (pedido sem cobrança online) e faça location.assign. Veja o exemplo em Formulário de pedido.

O que você precisa ter em mãos

  1. O id do template ativo (está na URL do editor, /painel/templates/ID).
  2. O slug da loja e o id do produto.
  3. Mercado Pago ou Asaas conectados, se a venda for paga na hora. Sem isso, o pedido cai no painel para você combinar por fora — desde que o produto não seja entrega automática. Produto com key, arquivo, comando de servidor ou modelo Roblox não é aceito sem pagamento online.

O HTML servido pelo próprio template não pode postar para outro domínio: a loja publicada isola o formulário (form-action só para ela mesma). Essa trava é da página da loja. Um site seu, hospedado fora, não está dentro dessa trava e pode postar neste endereço.

Não existe chave de API pública para criar pedido. Webhook de saída também não. Os dois estão em Em breve.