Cálculo externo de frete por LOCALIDADES
Para que o cálculo de frete seja feito por sistemas externos, basta criar um conversor JSON, que receberá os dados do pedido e as localides de origem e destino. Este conversor deverá retornar um JSON com as opções de frete e os seus respectivos valores. Opcionalmente retornará também o prazo de entrega de cada opção.
Seguem abaixo os formatos do JSON que enviaremos para a URL de integração e do JSON que esperamos receber como retorno. Esta URL deverá ser informada no caminho ENVIO & FRETE > Formas de envio > Tabela de preços > URL de consulta, no site administrativo da loja. Para utilizar esta URL, selecione a opção [ 5 ] Utilizar cálculo externo por localidade deste caminho.
ATENÇÃO: Se a loja vende somente para o Brasil, utilize a opção [ 3 ] Utilizar faixas de CEP (Brasil). Caso queira utilizar um serviço de cálculo externo por CEP, configure este serviço no caminho ENVIO & FRETE > Cálculo externo.
Para maiores detalhes, clique aqui.
1 - ENVIO
quote={
"freightQuoteRequest":{
"fromAddress": {
"line1": "123 street name",
"line2": "",
"city": "new york",
"state": "xx",
"country": "Brazil",
"countryCode": "BR",
"postalCode": "111111111",
"phone": "112222222222222"
},
"shippingAddress": {
"line1": "123 street name",
"line2": "",
"city": "new york",
"state": "xx",
"country": "Brazil",
"countryCode": "BR",
"postalCode": "111111111",
"phone": "112222222222222"
},
"totalAmount": 9999.99,
"totalWeight": 9999.99,
"hasBulky": true/false,
"calculationParameters":{
"giftPacking": 99,
"packagePrice": 99.99,
"fixedFreight": 99.99,
"insurancePercentage": 9.99,
"additionalValue": 9.99,
"additionalWeight": 9.99,
"additionalDays": 9,
"freightMultiplier": 9.99,
"freeFreightForZeroWeight": true/false
"partnerId": 999999,
"partnerFreightDiscount": 99.99
},
"products":[
{
"id": 99999999,
"sku": "aaaaaaaaa",
"name": "aaaaaaaaaaaa",
"category": "bbbbbbbb",
"barcode": "12344",
"filters": "aaa=123",
"color": "amarelo",
"simpleDescriptor1": "aaaaaaaa",
"simpleDescriptor2": "aaaaaaaa",
"simpleDescriptor3": "aaaaaaaa",
"specialDescriptor1": "aaaaaaaa",
"specialDescriptor2": "aaaaaaaa",
"specialDescriptor3": "aaaaaaaa",
"quantity": 99,
"unitValue": 999.99,
"unitWeight": 10.234,
"bulky": true/false,
"unitHeight": 123.99,
"unitLength": 123.99,
"unitWidth": 123.99
}
]
}
}
Obs: O envio do JSON de cotação é feito via POST. O user-agent é Fastcommerce Freight Interface.
2 - RETORNO
Formato do JSON de retorno.
{
"freightQuoteResponse":{
"err": 123,
"errDescr": "error description",
"shippingServices":[
{
"serviceName": "International courrier",
"servicePrice": 6.50,
"serviceNotes": "12 days"
},
{
"serviceName": "Express delivery",
"servicePrice": 2.30,
"serviceNotes": "2 days"
}
]
}
}
Obs1: O retorno do JSON de cotação deverá ser feito via POST. Utilize um user-agent exclusivo.
Obs2: Em operação bem sucedida o retorno será Err=0 e errDescr=""
3 - Dicionário de dados
JSON ENVIO
| Campo |
Tipo/Opções |
Descrição |
| line1 |
varchar(70) |
Linha 1 do endereço |
| line2 |
varchar(70) |
Linha 2 do endereço |
| city |
varchar(50) |
Cidade |
| state |
varchar(2) |
Estado |
| country |
varchar(20) |
País |
| countryCode |
varchar(2) |
Sigla do país |
| postalCode |
varchar(9) |
Código postal |
| phone |
varchar(20) |
Telefone |
| totalAmount |
moeda |
Valor total do pedido |
| totalWeight |
real |
Peso total do pedido |
| hasBulky |
bit |
Se TRUE, existe produto volumoso na cesta |
| giftPacking |
int |
Indica se a loja faz embalagens para presente.
(0) Cliente NÃO indica quais produtos a embalar | Cálculo da embalagem = zero
(1) Cliente NÃO indica quais produtos a embalar | Cálculo da embalagem = Preço da embalagem
(2) Cliente NÃO indica quais produtos a embalar | Cálculo da embalagem = Preço da embalagem X produtos individuais na cesta
(3) Cliente NÃO indica quais produtos a embalar | Cálculo da embalagem = Preço da embalagem X quantidade de cada produto na cesta
(4) Cliente indica quais produtos a embalar | Cálculo da embalagem = Preço da embalagem
(5) Cliente indica quais produtos a embalar | Cálculo da embalagem = Preço da embalagem X produtos individuais na cesta
(6) Cliente indica quais produtos a embalar | Cálculo da embalagem = Preço da embalagem X quantidade de cada produto na cesta
|
| packagePrice |
moeda |
Preço da embalagem, adicionado ao total do pedido caso o cliente solicite embalagem para presente. |
| fixedFreight |
moeda |
Valor fixo pelo frete |
| insurancePercentage |
real |
Valor percentual de seguro que deverá ser incluido no valor de frete sobre o preço total dos produtos remetidos. |
| additionalValue |
moeda |
Valor a cobrar sobre o frete calculado, que será adicionada ao valor do mesmo. |
| additionalWeight |
real |
Peso em Kg a ser adicionado ao peso total dos produtos de cada pedido. |
| additionalDays |
varchar(5) |
Quantidade de dias que serão adicionados ao tempo estimado pelo serviço para entrega do produto. Este valor também pode ser em percentual. Neste caso, informe o valor
seguido de %. Exemplo: 5% |
| freightMultiplier |
moeda |
Valor a multiplicar sobre o frete calculado |
| freeFreightForZeroWeight |
bit |
Se TRUE, frete gratuito para peso zero |
| partnerId |
int |
ID interno do parceiro |
| partnerFreightDiscount |
moeda |
Percentual de desconto do parceiro |
| id |
int |
ID interno do produto |
| sku |
varchar(15) |
Código de referência do produto, exibido ao visitante |
| name |
varchar(100) |
Nome do produto |
| category |
varchar(25) |
Nome da categoria |
| barcode |
varchar(25) |
Código de barras do produto |
| filters |
varchar(512) |
Item do filtro utilizado neste produto |
| color |
varchar(1024) |
Cores disponíveis no produto. Se multivalorado, serão apresentados entre vírgulas. |
| simpleDescriptor1 |
varchar(2048) |
Texto da informação adicional sobre o produto, indicado em Descritor simples 1 |
| simpleDescriptor2 |
varchar(2048) |
Texto da informação adicional sobre o produto, indicado em Descritor simples 2 |
| simpleDescriptor3 |
varchar(2048) |
Texto da informação adicional sobre o produto, indicado em Descritor simples 3 |
| specialDescriptor1 |
varchar(1024) |
Texto da informação adicional sobre o produto, indicado em Descritor especial 1 |
| specialDescriptor2 |
varchar(1024) |
Texto da informação adicional sobre o produto, indicado em Descritor especial 2 |
| specialDescriptor3 |
varchar(1024) |
Texto da informação adicional sobre o produto, indicado em Descritor especial 3 |
| quantity |
int |
Quantidade de itens |
| unitValue |
moeda |
Valor unitário |
| unitWeight |
real |
Peso unitário em Kg |
| Bulky |
bit |
Se TRUE, produto volumoso |
| unitHeight |
real |
Altura em cm |
| unitLength |
real |
Profundidade em cm |
| unitWidth |
real |
Largura em cm |
JSON RETORNO
| Campo |
Tipo/Opções |
Descrição |
| err |
int |
Código do erro |
| errDescr |
varchar(200) |
Mensagem de erro |
| serviceName |
varchar(32) |
Nome do tipo de frete. Ex: Entrega expressa |
| servicePrice |
real |
Valor da tarifa |
| serviceNotes |
varchar(10) |
Infomações adicionais sobre a entrega. Ex: 15 dias |
4 - Histórico de versão
A versão atual da API é 1.1.
| 1.1 |
11/05/2023 |
Inserção: Novos campos - hasBulky (indica se tem produto volumoso na cesta) e Bulky (indica se o produto é volumoso) |
|