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.

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)