Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZioNN

Cálculo de frete. Quando há mais de um produto no carrinho

Recommended Posts

Olá pessoal, minha questão é mais sobre lógica do que linguagem propriamente. Se não estiver no local correto, favor mover.

 

Eu já tenho alguma experiência com sistemas de e-Commerce pois desenvolvi minha própria plataforma em ASP + MSSQL, porém, o sistema de cálculo de fretes está precisando de um aprimoramento urgente. Explicarei o problema.

 

Quando um cliente compra um item pequena, que pode ser enviado por sedex, calculo o valor do frete pelo componente dos Correios e o valor retornado é algo perto de R$10 (qdo enviado pra dentro da região de origem). Porém, se o cliente colocar 2 produtos iguais no carrinho, o sistema vai calcular o frete para os dois produtos e somá-los, dando cerca de R$20.

 

Neste caso, seria simples de resolver, somando-se o peso de ambos os produtos e calculando como se fosse apenas um, visto que se trata de um produto pequeno e que pode ser acondicionado na mesma embalagem. Porém, se o produto fosse muito grande, mesmo que o cliente coloque 2 produtos iguais no carrinho, não haveria possibilidade de enviar apenas um pacote e o frete tria que ser realmente calculado separadamente para cada produto.

 

O problema maior é que muitas lojas possuem uma gama enorme de produtos, com pesos e tamanhos variados. Alguns poderiam ser agrupados numa mesma embalagem, outros não. Então a questão é:

 

Como identificar os produtos que podem ser agrupados e calcular o frete para uma embalagem conjunta? Alguém aqui já teve que resolver esse problema? Como os correios lidam com isso? E as transportadoras?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tive o mesmo problema que você, mais o lance é, coloquei o peso do produto em minha base de dados, assim somava o peso do produto antes de mandar fazer a verificação na base dos correios!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Ted,

 

Eu tenho o peso e as dimensões de cada produto no banco de dados também, mas a questão não é bem essa, e sim, se eu posso somar o peso e dimensões dos produtos no cálculo. A hora que eu for enviar, os Correios, ou a transportadora, vai me cobrar como? Vai somar o peso também, mesmo que a encomenda possua mais de um volume (pacote)? Não sei se estou conseguindo ser claro. De qqer forma, agradeço a ajuda. Como você lida com isso? Abs

 

Ex do problema: Se um cliente compra 1 jogo de cordas para guitarra, ele vai pagar digamos 10,00 de frete, mas se comprar 10 jogos, vai pagar 100,00 se eu não juntar os produtos num peso e medida só. Mas se ele comprar 2 guitarras idênticas eu não tenho como colocá-las no mesmo pacote.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ainda nao entendi . entao se os correios vao ter em conta o peso total entao mesmo que você coloque os produto na mesma embalagem o peso vai seo o mesmo, quer dizer ainda vai ser mais, pk uma caixa tem peso (embora seja mínimo dependendo a caixa).

 

Mas tirando esse detalhe da caixa, nao seria so somar os pesos e calcular o frete?

 

 

exemplo: a caixa de 1 jogo playstation2 pesa por exemplo 350gr, imagina que o cliente compra duas entao 700gr mas você quer colocar isso tudo numa unica embalagem entao vai ser 700gr + peso da caixa(vazia)

 

 

 

Acho que nao entendi bem, se puder explicar melhor, vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

também não entendi, basta pegar os produtos e somar o peso de todos não levando em consideração cor... apenas pege o valor dos pesos e some.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

rsss. beleza galera. Não estou sabendo me expressar. O objetivo disto é basicamente REDUZIR o custo do frete para o cliente.

 

Vou tentar explicar de outra maneira. É que são muitas variáveis a serem consideradas, no meu ponto de vista.

 

IMPORTANTE: Os frete para uma caixa de 2Kg é MUITO MENOR que para 2 caixas de 1Kg, portanto AGRUPAR os produtos sempre terá um frete mais barato e esse é o meu objetivo. Veja tabela abaixo (Correios - 40096)

 

até 0,3 -> 9,62

0,3 a 1 -> 10,21

1 a 2 -> 11,38

 

Ou seja, 1 encomenda de 2Kg custa 11,30 enqto duas encomendas de 1Kg custam 20,42 (2x10,21)

 

Sabendo disso, vamos lá:

 

Cliente coloca dois produtos pequenos de até 1 Kg no carrinho.

Problema: Se eu simplesmente calcular o frete PARA CADA PRODUTO e somá-los, ele vai pagar duas vezes o frete de um produto até 1 Kg, o que encareceria demais o frete.

Solução simplista: Eu posso somar os pesos e considerar apenas uma embalagem, cobrando apenas o frete de uma encomenda de 2Kg (mas isso não seria válido para todos os casos, como veremos abaixo)

 

 

Problemas na prática:

- Cada produto tem um tamanho, peso e formato de embalagem, portanto é muito dificil determinar por exemplo, em que tamanho de caixa todos eles poderiam caber juntos, porque não depende somente da soma da cubagem e sim dos formatos das caixas de cada produto e como elas se encaixam.

 

- A soma das cubagens dos produtos pode ultrapassar o limite dos correios

- A soma dos pesos dos produtos pode ultrapassar o limite dos correios

- Os tipos de produtos podem ser incompatíveis para embalagem única (produtos que requerem embalagens especiais)

 

Questões para as quais eu não tenho resposta:

- As transportadoras, ao calcular o valor do frete, somam as medidas e peso de todos os pacotes que você irá enviar para depois calcular o valor do frete? Neste caso há algum adicional por qtd de volumes? Ou calculam embalagem por embalagem (volume por volume) e depois somam os fretes?

 

Considerando as variáveis acima, como eu posso MAPEAR, dentro um portfolio enorme de produtos, aqueles que posso AGRUPAR ou NÃO, na hora de calcular o frete? Alguém já fez, ou viu, alguma coisa parecida?

 

Difícil explicar isso, rsss

Compartilhar este post


Link para o post
Compartilhar em outros sites

ZioNN, sinceramente não entendi o problema. Até onde eu sei, se você trabalha com Sedex, ele só leva em consideração o peso. Se você tem até 30 kg, pode ser o tamanho que for a embalagem que ele envia, óbvio que cabera ao lojista embalar os produtos para não ficarem soltos e serem danificados. Encomenda normal que leva em consideração o tamanho da embalagem.

 

Você chegou a consultar os Correios ou está passando informação que você imagina que seja?

 

Transportadora não sei como funciona, mas acredito que seja da mesma forma que encomenda normal. Mas seria interessante consultar pelo menos 3 "famosas" para ter uma boa noção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ZioNN, sinceramente não entendi o problema. Até onde eu sei, se você trabalha com Sedex, ele só leva em consideração o peso. Se você tem até 30 kg, pode ser o tamanho que for a embalagem que ele envia, óbvio que cabera ao lojista embalar os produtos para não ficarem soltos e serem danificados. Encomenda normal que leva em consideração o tamanho da embalagem.

 

Você chegou a consultar os Correios ou está passando informação que você imagina que seja?

 

Transportadora não sei como funciona, mas acredito que seja da mesma forma que encomenda normal. Mas seria interessante consultar pelo menos 3 "famosas" para ter uma boa noção.

 

Obrigado Hargon, por ler e tentar entender, rsss. Sim, falei com os Correios, e sei como funciona. Há várias limitações para envio além do peso. Veja abaixo (valem para SEDEX, PAC e ENCOMENDA NORMAL)

 

CAIXA OU PACOTE:

 

 

MÁXIMAS: A soma resultante do comprimento + largura + altura não deve superar a 150 cm.

A MENOR DIMENSÃO da face de endereçamento não pode ser inferior a 11 cm x 16 cm.

A MAIOR DIMENSÃO da caixa ou pacote não deve ser maior que 60 cm.

ALTURA MÍNIMA: 2 cm.

 

 

EM FORMA DE ROLO OU PRISMA:

 

 

MÁXIMAS: A soma resultante do comprimento + o dobro do diametro não deve superar a 104 cm.

A MENOR DIMENSÃO do Comprimento: 18 cm.

A MAIOR DIMENSÃO do rolo ou em formato de prisma não deve ser maior que 90 cm.

A DIMENSÃO MÍNIMA resultante da soma do comprimento + o dobro do diâmetro não pode ser inferior a 28 cm.

 

 

EM FORMA DE ENVELOPE:

 

MEDIDAS MÍNIMAS: 11 cm x 16 cm.

A MAIOR DIMENSÃO do envelope não pode ser superior a 60 cm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, confirmei essa informação no site dos Correios.

 

oFF: Impressionante, havia consultado uma funcionária dos Correios, pessoalmente, já há algum tempo, e ela me passou várias informações equivocadas. Aos poucos aqui no Fórum estou descobrindo isso. Ainda bem que não descobri por algum bug nos sistemas já criados.

 

Voltando ao assunto principal do se você tem a medida máxima, no loop que lê os produtos do carrinho, basta você verificar o peso e as dimensões de cada produto e assim você faz a divisão de acordo com a necessidade.

 

Ex. Se você tem dois produtos de 1 kg que ultrapassam o tamanho permitido, você vai calcular como dois produtos separados, e não como um produto de 2kg.

 

Não vejo outra solução, além de verificar produto por produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, confirmei essa informação no site dos Correios.

 

oFF: Impressionante, havia consultado uma funcionária dos Correios, pessoalmente, já há algum tempo, e ela me passou várias informações equivocadas. Aos poucos aqui no Fórum estou descobrindo isso. Ainda bem que não descobri por algum bug nos sistemas já criados.

 

Voltando ao assunto principal do se você tem a medida máxima, no loop que lê os produtos do carrinho, basta você verificar o peso e as dimensões de cada produto e assim você faz a divisão de acordo com a necessidade.

 

Ex. Se você tem dois produtos de 1 kg que ultrapassam o tamanho permitido, você vai calcular como dois produtos separados, e não como um produto de 2kg.

 

Não vejo outra solução, além de verificar produto por produto.

 

 

É, os Correios, como toda instituição pública, é uma zona. Certa vez, quando precisei de informações detalhadas sobre o webservice dos Correios para empresas com contrato com eles, me deram um telefone de Brasilia para ligar (sup técnico). Liguei, fiquei horas ao telefone sendo transferido de ramal em ramal, falei com 17 pessoas diferentes e saí sem uma resposta. rssss. Obviamente reclamei até pro bispo, mas não adiantou nada.

 

Voltando ao assunto principal, vou ter que botar a cabeça pra funcionar pra resolver isso, pq tenho certeza que americanas, submarino usam algo nesse sentido, pois o frete deles é sempre muito baixo e os valores fazem mais sentido do que com um simples sistema de cotar por produto ou por soma dos pesos.

 

De qualquer forma, agradeço a sua atenção e a dos demais colegas. Se pintar alguma nova informação, estarei atento. Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas se não me engano, a Americanas sempre utiliza transportadora para determinados produtos, isso já é definido.

 

Assim fica mais fácil resolver esses calculos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo... vamos aos detalhes... no serviço sedex, o produto também não pode ultrapassar 30kg, e quanto as medidas do sedex que não é informado a ninguém, não pode ser superior a 90cm CXAXL todas as dimensões não podem passar destas medidas, pois os produtos são transportados por avião e para que os produtos sejam carregados eles devem passar por equipamentos que verificam o conteúdo dos produtos suspeitos ou não... Quanto ao calculo, você tem que criar vários alogarítimos genêricos para a questão... Quando você der um loop no seu carrinho de compras, agrupe todas as informações em uma variavel:

 

EX: Carrinho = "CodProduto,Quantidade,Tamanho,Peso/CodProduto.Quantidade,Tamanho,Peso/CodProduto,Quantidade,Tamanho,Peso"

 

Ordene os produtos de maior tamanho de comprimento, pois eles são a base do melhor acomodamento.

 

Você vai precisar criar diversas funções:

1 - AbrirCaixa()

2 - ChecaPeso()

3 - ChecaDimensaoTotal()

 

o Controle todo está na melhor acomodação... para isso você deve começar a incluir os produtos pela sua altura. e saber qual a posição que ele está na caixa em uma sub rotina em 3d. EX. Caixa1 = "Produto1,CamadadoComprimento,CamadaLargura,CamadaAltura,SobraComprimento,SobraLargura,SobraAltura,PVC,PVL,PVA"

OS PVC,PVL,PVA serão gravados S ou N, para saber se possuem fechamento das camadas, onde por mais que aja sobra de espaço, não se tem nenhum produto no carrinho com dimensões que caibam neste espaço.

 

Toda esta movimentação do loop, ao incluir por exemplo 20 caixas de sapato, mais 25 cuecas, mais 30 meias... você vai notar que na primeira caixa só caberá 15 caixas,

já na outra caixa, você vai ver que vai possuir 5 caixas na primeira camadadocomprimento, ocupando toda a primeira camada de Largura, e toda a de altura, então somente o PVC,e PVL estarão abertos para nova incerção de produtos, pois a altura já esgotou, então os proximos produtos serão incluidos na segunda camada de largura...e assim por diante...

 

Eu estou no mesmo dilema que vocês, mas a solução é essa criar torres e controlar os espaços preenchidos, não existe outra formula.

 

Se alguém ai tiver outra solução, favor informar, pois ainda estou no começo aqui da programação... hehehe

Mas já dei a luz para os cegos de plantão. só aguardo a colaboração dos sábios de prondidão, pois dependo também desta formula em questão. pois meu calculo ainda é mais complexo que o de todos ai. hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este esta sendo um assunto , bem discutido, irei fazer um artigo sobre isso, quem quiser contribuir com code, estão a disposição

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com o mesmo problema.

o Fábio Larronda falou bem, é bem isso que se deve fazer.

calcular as dimensoes, fazer um tratamento das dimensões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.