Cálculo externo de frete por CEP
Para que o cálculo de frete seja feito por sistemas externos, basta criar um conversor JSON, que receberá os dados do pedido e os CEPs 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 > Cálculo externo > Outros serviços, no site administrativo da loja. Para utilizar esta URL, selecione a opção Outros no campo Serviço remoto, no topo deste caminho.
1 - ENVIO
quote={
"freightQuoteRequest":{
"fromCEP": "99999-999",
"toCEP": "99999-999",
"totalAmount": 9999.99,
"totalWeight": 9999.99,
"hasBulky": true,
"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,
"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,
"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",
"useContingency": false,
"useLower": false,
"shippingServices":[
{
"serviceName": "SEDEX",
"servicePrice": 6.50,
"serviceNotes": "2 dias"
},
{
"serviceName": "Encomenda PAC",
"servicePrice": 2.30,
"serviceNotes": "10 dias"
}
]
}
}
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 |
| fromCEP |
varchar(8) |
CEP de origem dos pedidos. * CAMPO OPCIONAL (Se não for informado, será utilizado CEPEmpresa) |
| toCEP |
varchar(8) |
CEP de envio dos pedidos que será utilizado para realizar o cálculo da tarifa. |
| 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 |
| useContingency |
bit |
Se TRUE usar os Tipo de Frete registrados na loja mesmo que estes tipos não existam no serviço remoto |
| useLower |
bit |
Se TRUE para que o sistema possa comparar as tarifas cadastradas na loja (contingência) e as retornadas pelo serviço remoto, onde será apresentado ao cliente sempre a menor tarifa |
| 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) |
|