Skip to Content
Documentação de integração da plataforma — em evolução contínua.
Primeiros passosAtivar uma loja

Ativar uma loja

Uma loja só vende quando cinco peças existem e estão ligadas entre si. Esta página é a ordem em que elas precisam ser criadas — a dependência é real: pular um passo faz o seguinte falhar ou, pior, gravar um registro órfão que não aparece na vitrine.

Quem cria o quê

Quatro das cinco entidades não são criadas pela API de integração. ContractAccount, CommercialPolicy, Seller e ShippingPolicy são criadas pelo time Grocers, no painel administrativo. As rotas correspondentes existem no serviço principal, mas exigem sessão de usuário com papel Admin ou Owner — não a credencial Basic de integração — e a de ShippingPolicy nem sequer tem verbo de criação direto.

A única das cinco que você cria é o Warehouse.

O diagrama responde: onde termina a Grocers e começa o seu time, e o que precisa existir antes do quê?

As setas são dependências reais de dado, não etapas de projeto: a ShippingPolicy precisa do id do seller e do da política comercial, e o warehouse precisa dos shippingPolicyId já existentes. O que atravessa a fronteira são identificadores — você recebe GUIDs e os usa no seu único POST.

EntidadeQuem criaComo
ContractAccountGrocersprovisionamento de contrato
CommercialPolicyGrocerspainel administrativo
SellerGrocerspainel administrativo
ShippingPolicyGrocerspainel administrativo
WarehousevocêPOST /v1/batch/Warehouses
Marcas, categorias, produtos, SKUsvocê/v1/batch/*
Estoque e preçovocê/v1/batch/*
WebhookvocêPOST /v1/Webhooks

O que você faz nos quatro primeiros passos é fornecer os dados ao time Grocers e receber os identificadores de volta. Os blocos JSON abaixo são a informação que a Grocers precisa de você, não corpos de requisição que você envia.

Conta contratante (ContractAccount) — Grocers

É o seu tenant: CNPJ, endereço e o usuário administrador inicial. Criada pelo time Grocers na abertura do contrato — você recebe o contractAccountId pronto.

A criação também provisiona automaticamente:

  • o usuário administrador com papel Admin;
  • os templates de e-mail transacional já com a identidade visual da marca (logo, cor primária, redes sociais e contatos de suporte).

Se a marca mudar depois, os templates não são regerados sozinhos — a atualização de branding é um passo à parte. Fale com o suporte.

Política comercial (CommercialPolicy) — Grocers

Define o conjunto de preços que vale para um público. O contrato começa com uma política padrão; peça novas se a operação tiver tabelas distintas (varejo e atacado, por exemplo). Antes de modelar, leia Multi-política em Tipos de preço: o desenho suportado é um produto por política.

O único dado necessário é o nome:

{ "name": "Varejo" }

Você recebe de volta o id — é ele que vai em commercialPolicyId no cadastro de produto e no de preço. Guarde-o.

Seller (a loja física) — Grocers

O seller é o endereço de onde a mercadoria sai. Os dados que a Grocers precisa:

{ "name": "Loja Centro", "country": "Brasil", "state": "RJ", "city": "Rio de Janeiro", "neighborhood": "Centro", "zipCode": "20031170", "street": "Av. Rio Branco", "number": "156", "complement": "Loja A", "reference": "Em frente à praça", "phoneNumber": "2133334444", "description": "Loja âncora do centro" }
CampoObrigatórioRegra
namesim3 a 60 caracteres
statesimexatamente 2 caracteres (RJ, SP)
city, neighborhood, streetsim3 a 60 caracteres
zipCodesimexatamente 8 dígitos, sem hífen
numbersim1 a 6 caracteres
country, complement, referencenão3 a 60 caracteres quando presentes
phoneNumbersimtelefone válido
descriptionnão3 a 160 caracteres

zipCode com hífen (20031-170) é reprovado: a validação exige exatamente 8 caracteres. Envie 20031170.

Você recebe de volta o id do seller.

Política de entrega (ShippingPolicy) — Grocers

Amarra seller + política comercial + uma modalidade de entrega. É por isso que ela vem depois dos dois: precisa dos dois id já existentes.

Uma política tem exatamente uma modalidade:

ModalidadeBlocoO que a Grocers precisa saber
AgendadascheduledDeliverytempo de separação, quantidade mínima e máxima de itens, valor mínimo de compra, e as janelas de entrega (dia da semana, horário de início e fim, capacidade, valor adicional)
ExpressaexpressDeliveryfaixa de tempo máxima de entrega, quantidade mínima e máxima de itens, valor mínimo de compra, faixas de frete
RetiradapickupPointendereço do ponto de retirada, tempo de separação, limite de horas, quantidade mínima e máxima de itens, valor mínimo

Se a loja opera agendada e retirada, são duas ShippingPolicies para o mesmo seller.

Você recebe de volta o id de cada política — é ele que vai em shippingPolicyIds no passo seguinte.

Warehouse (o estoque) — você

Este é o seu passo. O warehouse é a unidade de estoque que abastece as entregas, e ele se liga às políticas de entrega criadas no passo anterior:

curl -X POST $GROCERS_API/v1/batch/Warehouses \ -H "Authorization: Basic $BASIC" \ -H "x-contractAccountId: $TENANT" \ -H "Content-Type: application/json" \ -d '[ { "externalReference": "CD-CENTRO", "name": "CD Centro", "shippingPolicyIds": ["b3f1a2c4-5d6e-4f70-8a91-2b3c4d5e6f70"] } ]'

Veja Warehouses.

O warehouse é o último dos cinco, não o quarto. Ele referencia shippingPolicyIds, e o processador valida que todos os GUIDs enviados já existem: se algum não existir, a criação é recusada com conflito e volta como Warehouse_CreationFailed no seu webhook. Não dá para criar o warehouse “antes” e ligar as políticas depois pela API de integração — a ligação só é gravada no POST. Espere os id das políticas.

Checklist antes de abrir a loja

Antes de liberar a vitrine, confirme que cada item abaixo responde como esperado:

    • contractAccountId + credencial Basic do ambiente
    • commercialPolicyId (id em mãos)
    • sellerId de cada loja
    • shippingPolicyId de cada modalidade ativa
    • Warehouse criado e ligado às ShippingPolicies
    • Catálogo carregado (marcas → categorias → produtos)
    • Estoque publicado por SKU
    • Preço publicado por SKU + política
    • Webhook registrado para eventos de pedido
    • Endpoint do ERP persistindo o evento e respondendo 2xx
    • Mapa shippingPolicyId → warehouse no seu ERP

O erro mais comum na ativação é o item existir no catálogo mas não aparecer na busca. Na prática são sempre as mesmas duas causas: sem estoque no warehouse ou sem preço na política comercial que a vitrine está usando.