Faixas de preço
Lê, substitui ou apaga as faixas que fazem o frete variar com o peso, o valor do carrinho ou o número de itens.
Uma faixa diz: "a partir de X, cobre Y". A plataforma ordena as faixas por dimensão (C, I, W) e, dentro de cada uma, do maior amount para o menor, e usa a primeira que o carrinho alcança. Se a forma tem rate_area_id nas faixas e o destino cai nessa área, só as faixas dessa área são consideradas; senão valem as faixas sem área (e, se não houver nenhuma, todas as faixas do método).
Listar faixas
/api/v1/vendor/shipping-methods/{id}/ratesSellerLista as faixas de preço de uma forma
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: listar
curl "$BASE_URL/api/v1/vendor/shipping-methods/3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21/rates" \
-H "Authorization: Bearer $TOKEN"Resposta: listar
{
"rate_tiers": [
{
"id": "9b8a7c6d-5e4f-4321-a0b9-c8d7e6f5a4b3",
"shipping_id": "3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21",
"dimension": "W",
"amount": 1000,
"value": 2500,
"value_type": "F",
"per_unit": false,
"position": 0
}
],
"total": 1
}Campos da resposta
rate_tiersarray | nullFaixas, ordenadas por dimensão, posição e limiar. É null (não []) quando a forma não tem faixas.
iduuidshipping_iduuidrate_area_iduuid | nulldimensionstringC valor do carrinho, W peso, I número de itens.amountintegerC em centavos, W em gramas, I em unidades.valueintegervalue_type F, centavos; com P, pontos-base do valor do carrinho (1000 = 10%).value_typestringF valor fixo ou P percentual.per_unitbooleanW, ou pelo número de itens em I. Não tem efeito em C.positionintegertotalintegerErros: listar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id não é um UUID válido. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 401 | Sem cabeçalho Authorization, ou token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é um token de administrador). | {"error":"insufficient permissions"} |
| 403 | A forma existe, mas pertence a outro seller ou à loja inteira. | {"error":"forbidden","detail":"shipping method does not belong to this vendor"} |
| 404 | Não existe forma com esse id. | {"error":"shipping method not found"} |
Substituir todas as faixas
Apaga as faixas atuais e grava as enviadas, na mesma transação: se uma falhar, nada muda. A posição de cada faixa é a ordem do vetor. Mande {"rate_tiers": []} para remover todas.
/api/v1/vendor/shipping-methods/{id}/ratesSellerSubstitui todas as faixas de preço de uma forma
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
rate_tiersarrayobrigatórioLista completa de faixas desejadas.
dimensionstringobrigatórioCWIC valor do carrinho, W peso ou I itens.amountintegerpadrão: 0C em centavos, W em gramas, I em unidades.valueintegerpadrão: 0F) ou pontos-base (P).value_typestringobrigatórioFPF valor fixo ou P percentual do carrinho.per_unitbooleanpadrão: falseW) ou por item (I).rate_area_iduuidExemplo de requisição: substituir
curl -X PUT "$BASE_URL/api/v1/vendor/shipping-methods/3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21/rates" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rate_tiers": [
{
"dimension": "W",
"amount": 0,
"value": 1500,
"value_type": "F",
"per_unit": false
},
{
"dimension": "W",
"amount": 5000,
"value": 2500,
"value_type": "F",
"per_unit": false
}
]
}'Resposta: substituir
{
"rate_tiers": [
{
"id": "9b8a7c6d-5e4f-4321-a0b9-c8d7e6f5a4b3",
"shipping_id": "3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21",
"dimension": "W",
"amount": 5000,
"value": 2500,
"value_type": "F",
"per_unit": false,
"position": 1
},
{
"id": "6d5c4b3a-2f1e-4d0c-9b8a-7f6e5d4c3b2a",
"shipping_id": "3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21",
"dimension": "W",
"amount": 0,
"value": 1500,
"value_type": "F",
"per_unit": false,
"position": 0
}
],
"total": 2
}Campos da resposta
rate_tiersarraytotalintegerErros: substituir
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id não é um UUID válido. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 400 | Corpo que não é JSON. | {"error":"invalid request body"} |
| 401 | Sem cabeçalho Authorization, ou token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é um token de administrador). | {"error":"insufficient permissions"} |
| 403 | A forma existe, mas pertence a outro seller ou à loja inteira. | {"error":"forbidden","detail":"shipping method does not belong to this vendor"} |
| 404 | Não existe forma com esse id. | {"error":"shipping method not found"} |
| 500 | Faixa inválida (por exemplo dimension fora de C, W, I). A transação inteira é desfeita. | {"error":"failed to set rate tiers"} |
Apagar uma faixa
/api/v1/vendor/shipping-methods/{id}/rates/{tierId}SellerApaga uma faixa de preço
Parâmetros de caminho
iduuidobrigatóriotierIduuidobrigatórioid de "Listar faixas").Exemplo de requisição: apagar
curl -X DELETE "$BASE_URL/api/v1/vendor/shipping-methods/3a7d9e10-2b4c-4f6a-9c1d-5e8f7a6b4c21/rates/9b8a7c6d-5e4f-4321-a0b9-c8d7e6f5a4b3" \
-H "Authorization: Bearer $TOKEN"Resposta: apagar
{
"message": "rate tier deleted"
}Campos da resposta
messagestringErros: apagar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id não é um UUID válido. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 401 | Sem cabeçalho Authorization, ou token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é um token de administrador). | {"error":"insufficient permissions"} |
| 403 | A forma existe, mas pertence a outro seller ou à loja inteira. | {"error":"forbidden","detail":"shipping method does not belong to this vendor"} |
| 404 | Não existe forma com esse id. | {"error":"shipping method not found"} |
| 500 | A faixa não existe. | {"error":"failed to delete rate tier"} |