Moedas
Lista as moedas da loja, resolve a ativa e grava a escolha do visitante.
A moeda de cada visitante fica num cookie. Estas três rotas públicas leem as moedas habilitadas, resolvem a ativa e gravam a escolha. Sem moeda extra habilitada, a loja só tem a principal (em geral BRL).
Moedas da loja
Lojas que vendem para fora do Brasil podem habilitar mais de uma moeda. Esta rota devolve as habilitadas, com tudo que é preciso para formatar valores, e qual está ativa para este visitante (a escolhida pelo cookie venddor_currency, se válida).
/api/v1/storefront/currenciesPúblicaMoedas habilitadas e a moeda ativa do visitante
Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/currencies"Resposta
{
"active": "BRL",
"items": [
{
"code": "BRL",
"symbol": "R$",
"decimals": 2,
"decimalSep": ",",
"thousandsSep": ".",
"symbolAfter": false,
"symbolSpace": true,
"enabled": true,
"isPrimary": true,
"exchangeRate": 1,
"position": 0,
"autoUpdate": false,
"autoSource": "ptax",
"marginPct": 0,
"roundingRule": "none"
},
{
"code": "ARS",
"symbol": "$",
"decimals": 2,
"decimalSep": ",",
"thousandsSep": ".",
"symbolAfter": false,
"symbolSpace": true,
"enabled": true,
"isPrimary": false,
"exchangeRate": 164.994,
"position": 3,
"autoUpdate": false,
"autoSource": "ptax",
"marginPct": 0,
"roundingRule": "none"
}
]
}Campos da resposta
activestringitemsarrayMoedas habilitadas.
codestringBRL, USD, ARS...).symbolstringR$).decimalsintegerdecimalSep, thousandsSepstringsymbolAfterbooleantrue: o símbolo vem depois do número.symbolSpacebooleantrue: há um espaço entre símbolo e número (R$ 10,00).enabledbooleantrue nestas rotas.isPrimarybooleantrue na moeda principal da loja, na qual os preços são guardados.exchangeRatenumber1 na principal.positionintegerautoUpdate, autoSource, marginPctmixedautoSource é ptax, a cotação do Banco Central, e marginPct a margem aplicada). Informativo.roundingRulestringnoneend_90integernone mantém, end_90 sobe para terminar em ,90, integer sobe para o real inteiro.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 500 | Falha ao ler as moedas. | {"error":"failed to list currencies","detail":"..."} |
Moeda ativa
Devolve só a moeda ativa: a do cookie venddor_currency, se válida, senão a principal da loja. Grava o cookie na resposta, para as visitas seguintes não precisarem resolver de novo.
/api/v1/storefront/currencies/activePúblicaA moeda ativa do visitante
Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/currencies/active"Resposta
{
"code": "BRL",
"symbol": "R$",
"decimals": 2,
"decimalSep": ",",
"thousandsSep": ".",
"symbolAfter": false,
"symbolSpace": true,
"enabled": true,
"isPrimary": true,
"exchangeRate": 1,
"position": 0,
"autoUpdate": false,
"autoSource": "ptax",
"marginPct": 0,
"roundingRule": "none"
}Campos da resposta
(corpo)objectErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 404 | A loja não tem moeda configurada. | {"error":"no active currency configured"} |
| 500 | Falha ao resolver a moeda. | {"error":"failed to resolve active currency","detail":"..."} |
Escolher a moeda
Valida que a moeda está habilitada e grava o cookie venddor_currency (30 dias, Path=/, SameSite=Lax, legível por JavaScript, Secure quando a conexão é HTTPS). Não devolve corpo. A escolha vale por navegador: se você chama a API de um servidor, guarde o cookie e reenvie-o nas chamadas seguintes.
/api/v1/storefront/currencies/selectPúblicaGrava a moeda escolhida pelo visitante em um cookie
Corpo da requisição
codestringobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/storefront/currencies/select" \
-H "Content-Type: application/json" \
-d '{
"code": "ARS"
}'Resposta
HTTP/1.1 204 No ContentErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | code vazio ou corpo inválido. | {"error":"code is required"} |
| 404 | Moeda não habilitada nesta loja. | {"error":"currency not enabled on this tenant"} |
| 500 | Falha ao ler as moedas. | {"error":"failed to list currencies","detail":"..."} |