Extensão #9 Envios e cálculos de frete

Extensão que utiliza a Fretnet, Correios, controle por estados e configurações gerais para controle de envios

Ícone Compartilhar no Whatsapp Ícone Compartilhar no Twitter Ícone Compartilhar por e-mail

Introdução

Esta extensão permite gerenciar configurações relacionadas à envios com peso e medidas dos produtos para fazer cálculos de fretes. Divisão das configurações e possibilidades:


Pré-requisitos

  • Catálogo de produtos (#5);
  • SEO (#5) para preenchimento das coordenadas;


Configurações gerais:

  • CEP da loja: CEP oficial de onde irá sair os produtos;
  • Frete grátis para toda a loja: configuração global que desabilita todas as formas de envio;
  • Frete acima de um valor: Configuração global para oferecer frete grátis assim que o total da compra ultrapassa determinado valor;
  • Frete grátis até determinado preço: Valor máximo em kilos para habilitar frete grátis em compras até determinado peso;
  • Frete grátis por distância: Valor em quilometros para frete grátis; ⚠️ pode ter limitações caso não encontre o CEP no OpenStreet;
  • Limite de entrega: Valor em quilometros para limitar a entrega;⚠️ pode ter limitações caso não encontre o CEP no OpenStreet;
  • Tabela de estados: Ao habilitar essa opção o usuário terá o cálculo baseado no preenchimento da tabela de Estados no Painel da extensão;
  • peso e medidas padrão: Dados essenciais para o funcionamento. Sempre que um produto não tiver medidas ou peso cadastrados, será utilizado este valor padrão;

🚨 É importante que a loja utilize OU Fretnet OU Correios OU Controle por estados. Não é possível utilizar mais de um.

🚨 Em ordem, a loja busca primeiro A configuração global (frete grátis e distâncias), depois Fretnet, depois Correios, depois Controle por estados, entretanto, é importante desabilitar os não utilizados.



🚚 FRETNET

É a integração recomendada, basta adicionar o token e fazer as configurações na plataforma da Fretnet. É o mais preciso. 

Veja como pegar o token da Fretnet

Veja o site oficial da Fretnet

⚠️ Tempo adicional em dias para as entregas: Valor em dias para somar à estimativa, por exemplo, ao colocar o valor 3 será somado 3 dias em todas as opções. Pode ser utilizado como tempo de fabricação.


✉️ CORREIOS (simplificado)

A integração com o Correios fornece cálculos para SEDEX e PAC. Funciona bem para 1 produto mas pode ser impreciso para mais produtos. 

⚠️ As dimensões dos produtos e pesos são somados para gerar o cálculo. Há uma chance grande do valor ser maior que o real pago. 


🛣️ CONTROLE POR ESTADOS

Permite controlar por estado se o frete é grátis e seu respectivo valor fixo. ⚡ Por ser uma tabela simples, esse cálculo é muito rápido.

Onde é exibido?

Página do produto: Na página do produto é necessário  colocar o script e elementos do DOM para fazer o cálculo de estimativa individual.

No carrinho/sacola de compras: Os cálculos estão incorporados no cart2.js para estimar o frete para múltiplos produtos. Utiliza o localStorage:products para coletar os produtos (assim como o carrinho de compras).

Como utilizar no site

As configurações podem ser invocadas no Layout do catálogo a qualquer momento, com as funções:

objeto com as configurações globais:


$shippingData = shippingData();

$shippindData['cep'];$shippindData['allFree'];$shippindData['allFreeMessage'];$shippindData['allFreePrice'];$shippindData['allFreePriceValue'];$shippindData['allFreeWeight'];$shippindData['allFreeWeightValue'];$shippindData['allFreeForRange'];$shippindData['allFreeRangeValue'];$shippindData['limitRange'];$shippindData['limitRangeValue'];$shippindData['useBRStates'];$shippindData['defaultWeight'];$shippindData['defaultWidth'];$shippindData['defaultHeight'];$shippindData['defaultLenght '];



objeto com os dados por estado


$shippingBRStates = shippingBRStatesData();

$shippingBRStates['SP']['configbrstatesAllFree'];$shippingBRStates['SP']['configbrstatesMinvalueForFree'];$shippingBRStates['SP']['configbrstatesFixedPrice'];$shippingBRStates['SP']['configbrstatesDeliveryTime'];


Ps.: equivalente para todos os UFs


objeto com os dados da Fretnet


$fretnetData = shippingThirdPartyData('Fretnet');$fretnetData['useFretnet'];$fretnetData['fretnetDeliveryTime'];


objeto com os dados dos Correios


$correiosData = shippingThirdPartyData('Correios');$correiosData['useCorreios'];$correiosData['PAC'];$correiosData['SEDEX'];$correiosData['showService'];$correiosData['correiosDeliveryTime'];


objeto para trazer as medidas e + dados de cada produto


$productMeasures = shippingEachProductData($productData['productId']);$productMeasures['width'];$productMeasures['height'];$productMeasures['length'];$productMeasures['fragile'];


objeto e script que traz todas as informações necessárias para o script de cálculos funcionar

$shippingDataForScript = shippingDataSet();

$item .= '<script id="shippingScriptTag" '.$shippingDataForScript.' src="https://www.interago.com.br/App/Extensions/9/tag/shipping.js" data-t="'.$mainData['siteDomainToken'].'" data-w="'.$mainData['siteId'].'" loading="lazy"></script><script> shippingForProduct();</script>';


DOM necessário na página de produto



//shipping $shippingData = shippingData(); $shippingProductData = shippingEachProductData($productData['productId']); $shippingWeight = ''; //to get weight from shipping settings if productData is equal to zero if($productData['productWeight'] == '0.0') { $shippingWeight = $shippingData['defaultWeight']; } else { $shippingWeight = $productData['productWeight']; }

$item .= '<div id="shippingEstimativeContent" data-product-width="'.$shippingProductData['width'].'" data-product-height="'.$shippingProductData['height'].'" data-product-length="'.$shippingProductData['length'].'" data-product-fragile="'.$shippingProductData['fragile'].'" data-product-weight="'.$shippingWeight.'" data-sku="'.$productData['productSKU'].'" data-category="'.$productData['categoryId'].'" data-price="'.$productData['productPrice'].'" data-internal-id="'.$productData['productId'].'"></div>';


☝️ Todo o esquema de cálculo será carregado dentro do #shippingEstimativeContent


Estilo padrão necessário para exibição dos cálculos


/*shipping*/

 #shippingEstimativeContent { margin-top:30px; }

 #shippingEstimativesInput { width: 50%; font-size: 15px; display: inline-block; border: 1px solid #dedede; border-radius: 5px; padding: 4px; } #shippingEstimativesInputButton { background-color: #055ed0; color: #fff; padding: 5px 5px; box-shadow: 0 2px 2px #dedede; border-radius: 5px; font-size: 14px; cursor: pointer; transition: 0.3s ease; text-align: center; width: 45%; display: inline-block; max-width: 100px; } #shippingEstimativesGeoLocation { cursor:pointer; font-size: 12px; color: #055ed0; display:block; }

 .shippingResultWireFrame { width: 100%; height: 10px; background-color: #dfdfdf; border-radius: 5px; margin-top: 10px; } .shippingResultHalfWireFrame { width:30%; height: 10px; background-color: #dfdfdf; border-radius: 5px; margin-top: 10px; } .shippingEstimativeResultContent { font-size: 13px; color: #666; margin-bottom: 10px; } #shippingEstimativesResult { margin-top:10px; } .shippingEstimativeResultPrice strong{ display:inline-block; }



🛒 O estilo para o carrinho de compras já vem por padrão no cart2.js. Para alterar basta chamar o atributo style.

Gostei desse artigo Não gostei desse artigo

Você também pode gostar de ler

Imagem principal do artigo Guia completo para o catálogo de produtos (Extensão)

Guia completo para o catálogo de produtos (Extensão)

Instalação, passo a passo e guia prático para utilizar o catálogo no site dos clientes

Em 14/06/2022 às 13h38 - Atualizado em 11/04/2025 às 13h17

Imagem principal do artigo Guia da Extensão #11 Promoções

Guia da Extensão #11 Promoções

Uso da extensão que gerencia a exibição de preços, desconto por meios de pagamento, categorias e produtos e cupom (em breve)

Em 04/09/2023 às 10h41 - Atualizado em 12/02/2025 às 09h16

Imagem principal do artigo Carrinho de compras cart2.js

Carrinho de compras cart2.js

Extensão 6 do Interago para habilitar o uso de carrinho de compras ao website

Em 29/11/2022 às 12h54 - Atualizado em 03/02/2025 às 11h54

Imagem principal do artigo Buscas e Pesquisas no Catálogo de produtos

Buscas e Pesquisas no Catálogo de produtos

Script ativo é o search3.js. Buscas em cache com visualização no painel.

Em 01/03/2023 às 09h23 - Atualizado em 16/12/2024 às 11h48

Imagem principal do artigo Extensão #9 Envios e cálculos de frete

Extensão #9 Envios e cálculos de frete

Extensão que utiliza a Fretnet, Correios, controle por estados e configurações gerais para controle de envios

Em 23/03/2023 às 20h22 - Atualizado em 15/09/2023 às 09h49

Imagem principal do artigo Checkout e Pedidos - Extensão #10

Checkout e Pedidos - Extensão #10

Guia para lojas virtuais utilizarem a extensão de checkout e suas especificações

Em 01/06/2023 às 14h35 - Atualizado em 18/08/2023 às 08h36

Imagem principal do artigo Estoque do Catálogo de Produtos - Layout, Uso e Consultas

Estoque do Catálogo de Produtos - Layout, Uso e Consultas

Como adicionar informações de estoque no layoute realizar consultas assíncronas

Em 13/02/2023 às 14h40 - Atualizado em 07/08/2023 às 22h28

Imagem principal do artigo Catálogo de Produtos - Listar Produtos com AJAX

Catálogo de Produtos - Listar Produtos com AJAX

Como gerar listas de produtos diretamente da base de dados por ajax

Em 09/08/2022 às 11h03 - Atualizado em 26/12/2022 às 09h37

Imagem principal do artigo 001. Catálogo em Lista - Formato Imobiliária

001. Catálogo em Lista - Formato Imobiliária

Visual de todas as páginas do catálogo de produtos em formato de lista - Ideal para imobiliárias

Em 29/06/2022 às 11h22 - Atualizado em 16/08/2022 às 09h09