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.

Versão Data Detalhes
1.1 11/05/2023 Inserção: Novos campos - hasBulky (indica se tem produto volumoso na cesta) e Bulky (indica se o produto é volumoso)