Frete grátis regional
Define o valor mínimo de compra para frete grátis em cada região de frete da loja.
Uma loja costuma oferecer frete grátis acima de um valor, e esse valor muda com a região: perto do centro de distribuição o frete é barato, no Norte é caro. Cada regra liga uma região de frete (rate area) a um subtotal mínimo. Por trás, a plataforma cria e mantém uma promoção free_shipping por regra (ela aparece na lista de promoções com o nome "Frete grátis <região>"). Estas rotas pedem o privilégio de frete (view_shipping para ler, manage_shipping para gravar), não o de promoções.
Listar as regras
/api/v1/admin/promotions/free-shipping-regionalAdminLista as regras de frete grátis por região
Exemplo de requisição: listar
curl "$BASE_URL/api/v1/admin/promotions/free-shipping-regional" \
-H "Authorization: Bearer $TOKEN"Resposta: listar
{
"rules": [
{
"id": "e26c1bc3-624e-41f5-bffe-fd88a665abe3",
"rate_area_id": "fefe4673-f01b-47d6-a6c5-52bdf30f9bdf",
"area_name": "São Paulo",
"promotion_id": "612a7a7a-c2cf-4080-a6f8-328f1327c7bf",
"threshold_cents": 10000,
"is_default": true
}
]
}Campos da resposta
rulesarrayRegras, a padrão primeiro e depois por valor mínimo crescente. Lista vazia vem como [].
iduuidrate_area_iduuid | nullnull é a regra nacional.area_namestring | omittedpromotion_iduuidthreshold_centsintegeris_defaultbooleanErros: listar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | Sem privilégio de frete. | {"error":"insufficient privileges","required":"..."} |
Substituir as regras
/api/v1/admin/promotions/free-shipping-regionalAdminSubstitui o conjunto de regras de frete grátis por região
Corpo da requisição
rulesarrayobrigatórioO conjunto completo de regras desejado.
rate_area_iduuid | nullnull ou omitido é a regra nacional.threshold_centsintegerobrigatóriois_defaultbooleanpadrão: falseExemplo de requisição: substituir
curl -X PUT "$BASE_URL/api/v1/admin/promotions/free-shipping-regional" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"rate_area_id": null,
"threshold_cents": 29900,
"is_default": true
},
{
"rate_area_id": "fefe4673-f01b-47d6-a6c5-52bdf30f9bdf",
"threshold_cents": 15900
}
]
}'Resposta: substituir
{
"rules": [
{
"id": "0b7d6a0e-6a4b-4a3e-8d5c-3c2a1f9e7b11",
"rate_area_id": null,
"promotion_id": "5a9b4e22-1c7d-4f6a-b3e8-2d1c0a9f8e77",
"threshold_cents": 29900,
"is_default": true
}
]
}Campos da resposta
rulesarrayErros: substituir
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo inválido, ou threshold_cents menor ou igual a zero. A mensagem vem direto no campo error. | {"error":"threshold_cents must be > 0"} |
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | Sem o privilégio manage_shipping. | {"error":"insufficient privileges","required":"manage_shipping"} |
Sugestões de valor mínimo
/api/v1/admin/promotions/free-shipping-regional/suggestionsAdminSugere o valor mínimo de frete grátis por região
Exemplo de requisição: sugestões
curl "$BASE_URL/api/v1/admin/promotions/free-shipping-regional/suggestions" \
-H "Authorization: Bearer $TOKEN"Resposta: sugestões
{
"suggestions": [
{
"rate_area_id": "32ffd693-895b-47a7-832a-ae6794de249e",
"area_name": "Centro-Oeste",
"avg_shipping_cost_cents": 4250,
"suggested_threshold_cents": 20990,
"sample_count": 38
}
]
}Campos da resposta
suggestionsarrayUma sugestão por região de frete cadastrada, em ordem alfabética.
rate_area_iduuidarea_namestringavg_shipping_cost_centsinteger0 sem amostras.suggested_threshold_centsintegersample_countintegerErros: sugestões
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | Sem privilégio de frete. | {"error":"insufficient privileges","required":"..."} |