Mercado ativo
Descobre em que mercado (país, idioma e moeda) o visitante está e permite trocá-lo.
Uma loja pode vender em vários países. Cada mercado reúne países que compartilham idioma (lang_code), moeda (currency_code) e um ajuste de preço. Estas duas rotas dizem ao front-end em que mercado o visitante está e deixam o visitante trocar.
Ler o mercado ativo
/api/v1/storefront/marketPúblicaMercado ativo do visitante
Não exige token. O mercado é resolvido nesta ordem: (1) o cookie venddor_market, se existir e apontar para um mercado válido; (2) o mercado cujo país corresponde à localização do visitante; (3) o mercado padrão da loja. A localização vem do cabeçalho CF-IPCountry (preenchido pela rede de borda) ou, na falta dele, da região do primeiro idioma de Accept-Language (pt-BR indica BR).
Cabeçalhos
Cookiestringvenddor_market=<uuid> quando o visitante já escolheu um mercado.CF-IPCountrystringAccept-LanguagestringCF-IPCountry faltar.Exemplo de requisição
Resposta
Campos da resposta
marketobjectnull quando a loja não configurou nenhum mercado (o caso da maioria das lojas).market.iduuidmarket.namestringmarket.lang_codestringpt-BR.market.currency_codestringBRL.suggestedobjectvenddor_market. Mostre como um convite ("Ver a loja nos Estados Unidos?"), sem trocar sozinho.suggested.country_codestringErros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao resolver o mercado. | {"error":"failed to resolve market","detail":"..."} |
Escolher o mercado
/api/v1/storefront/market/selectPúblicaEscolhe o mercado do visitante
Grava o mercado escolhido no cookie venddor_market (90 dias, Path=/, SameSite=Lax, sem HttpOnly, para o front-end poder lê-lo; Secure em HTTPS) e devolve o mercado completo.
Corpo da requisição
market_iduuidobrigatórioExemplo de requisição
Resposta
Campos da resposta
iduuidnamestringstatusstringactive ou inactive.is_defaultbooleantrue no mercado padrão da loja.lang_codestringcurrency_codestringprice_adjust_bpinteger500 = 5%).incotermstringDDU (o comprador paga os impostos de importação na chegada) ou DDP (os impostos já entram no total).country_codesstring[]created_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON. | {"error":"invalid request body","detail":"..."} |
| 404 | Nenhum mercado com esse id (UUID válido, mas inexistente ou apagado). | {"error":"market not found","detail":"market not found"} |
| 500 | market_id ausente ou que não é UUID. Deveria ser 400, mas hoje é 500. | {"error":"market operation failed","detail":"..."} |