pedro-teixeira / correios Goto Github PK
View Code? Open in Web Editor NEWMódulo de frete para Magento com tracking
Home Page: https://pedroteixeira.io
License: MIT License
Módulo de frete para Magento com tracking
Home Page: https://pedroteixeira.io
License: MIT License
A função à seguir não está funcionando: Mostrar Método Mesmo se Não Aplicável
Mesmo marcado como "SIM" os métodos não disponíveis não são exibidos.
Testado versão do Magento: 1.7.0.2 e 1.9.0.1
Testado versão do Módulo: 4.2 e 4.3
Atualmente o plugin suporta colocar o cálculo do frete diretamente na página do produto?
Pois assim o usuário já fica sabendo o preço do frete e no momento de finalizar a compra não precisa informar novamente o CEP e recalcular os valores.
Apenas uma sugestão para incluir uma opção de dividir a entrega em mais de um pacote caso o peso máximo dos correios seja atingido.
E parabéns pelo módulo!
O frete não é calculado quando é necessário "Validar Dimensões dos Produtos". Sempre que calculo o envio retorna "Dimensões dos produtos fora do permitido pelos Correios", sendo que as dimensões informadas do produto são 12 x 15 x 20. Se desabilito "Validar Dimensões dos Produtos" o frete é calculado normalmente. Ja atualizei e cache, index mas não funciona. Instalei a versão mais recente e é uma instalação nova do magento e sem outras extensões instaladas. Alguma luz?
Grato!
Estou encontrando problemas para validar uma dimensão...
Alguém pode me dar uma ajuda a descobrir o porquê o site do correios devolve um valor para as medidas (CxLxA) 48 x 23 x 47, enquanto o valor devolvido pelo módulo é outro ? O peso é 4 KG.
Agradeço à todos.
Descrição detalhada do problema.
Não se aplica.
Após a instalação ao acessar Formas de Entrega estava apresentado o seguinte erro: Fatal error: Class 'PedroTeixeira_Correios_Helper_Data' not found.
Consegui resolver o problema recompilando o Magento novamente em Sistemas -> Ferramentas -> Compilação.
Acho interessante exibir mais um passo na instalação.
Quando o eSEDEX é considerado o peso máximo do serviço (15kg) para todos os demais serviços. Ex: Produto que pesa 25 kg com eSEDEX habildiado não tem seu frete calculado, quando o eSEDEX está desabilditado o peso é calculado automaticamente.
Uma sugestão de melhoria.
Caso o CEP seja com entrega restrita pelos correios (Área de risco, rural, não tem entrega domiciliar,...), poderia continuar o cálculo mas exibir um aviso que podem haver alterações na entrega por X motivos dos Correios.
Para solucionar isso, alterei o arquivo app/code/community/PedroTeixeira/Model/Carrier/CorreiosMethod.php linha 174:
if($errorId != 0){
para:
if($errorId != 0 && $errorId != 10){
E assim ignora o erro (cod. 10) quando se tratar de CEP com restrição, continuando o cálculo normalmente. O problema é que o usuário não fica sabendo que pode ter problemas na entrega.
Para saber mais sobre restrição de entrega:http://www.correios.com.br/para-voce/correios-de-a-a-z/areas-com-restricao-de-entrega-domiciliar
O e-Sedex tem limitação de 15kg, enquanto os outros 30kg. A loja é de vinhos, e uma caixa de vinhos já supera os 15kg. O problema é que o retorno dos valores dá erro de peso, e não mostra as outras opções possíveis, que seria mandar apenas por PAc e Sedex.
Produtos com peso muito baixa não tem o frete calculado, seria interessante colocar um peso mínimo a ser considerado. Ex produto que pesa 10g não tem o frete calculado.
Não é viável cadastrar o produto com peso de 100g por exemplo, pois os clientes compram o produto às centenas.
Começou a alguns dias atras, quando o produto ou carrinho ultrapassa R$ 999,99 o frete não é calculado e apresenta o erro "Esse método de envio está fora do ar. Por favor entre em contato conosco.". Quando o produto tem valor abaixo disso, o frete é calculado normalmente.
2015-02-27T00:00:11+00:00 DEBUG (7): http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx
2015-02-27T00:00:11+00:00 DEBUG (7): Zend_Http_Client Object
(
[config:protected] => Array
(
[maxredirects] => 5
[strictredirects] =>
[useragent] => Zend_Http_Client
[timeout] => 60
[adapter] => Zend_Http_Client_Adapter_Socket
[httpversion] => 1.1
[keepalive] =>
[storeresponse] => 1
[strict] => 1
[output_stream] =>
[encodecookies] => 1
[rfc3986_strict] =>
)
[adapter:protected] =>
[uri:protected] => Zend_Uri_Http Object
(
[_username:protected] =>
[_password:protected] =>
[_host:protected] => ws.correios.com.br
[_port:protected] => 80
[_path:protected] => /calculador/CalcPrecoPrazo.aspx
[_query:protected] =>
[_fragment:protected] =>
[_regex:protected] => Array
(
[escaped] => %[[:xdigit:]]{2}
[unreserved] => [A-Za-z0-9-_.!~*'()\[\]]
[segment] => (?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\]:@&=+$,;])*
[path] => (?:\/(?:(?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\]:@&=+$,;])*)?)+
[uric] => (?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\];\/?:@&=+$,])
)
[_scheme:protected] => http
)
[headers:protected] => Array
(
)
[method:protected] => GET
[paramsGet:protected] => Array
(
[StrRetorno] => xml
[nCdServico] => 40010,41106
[nVlPeso] => 15.13
[sCepOrigem] => 05512100
[sCepDestino] => 04344080
[nCdFormato] => 1
[nVlComprimento] => 16
[nVlAltura] => 2
[nVlLargura] => 11
[sCdMaoPropria] => N
[sCdAvisoRecebimento] => S
[nVlValorDeclarado] => 1.152,94
)
[paramsPost:protected] => Array
(
)
[enctype:protected] =>
[raw_post_data:protected] =>
[auth:protected] =>
[files:protected] => Array
(
)
[cookiejar:protected] =>
[last_request:protected] =>
[last_response:protected] =>
[redirectCounter:protected] => 0
)
2015-02-27T00:00:12+00:00 DEBUG (7): pedroteixeira_correios [315]: URL Error - Bad XML [304]
2015-02-27T00:00:34+00:00 DEBUG (7): http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx
2015-02-27T00:00:34+00:00 DEBUG (7): Zend_Http_Client Object
(
[config:protected] => Array
(
[maxredirects] => 5
[strictredirects] =>
[useragent] => Zend_Http_Client
[timeout] => 60
[adapter] => Zend_Http_Client_Adapter_Socket
[httpversion] => 1.1
[keepalive] =>
[storeresponse] => 1
[strict] => 1
[output_stream] =>
[encodecookies] => 1
[rfc3986_strict] =>
)
[adapter:protected] =>
[uri:protected] => Zend_Uri_Http Object
(
[_username:protected] =>
[_password:protected] =>
[_host:protected] => ws.correios.com.br
[_port:protected] => 80
[_path:protected] => /calculador/CalcPrecoPrazo.aspx
[_query:protected] =>
[_fragment:protected] =>
[_regex:protected] => Array
(
[escaped] => %[[:xdigit:]]{2}
[unreserved] => [A-Za-z0-9-_.!~*'()\[\]]
[segment] => (?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\]:@&=+$,;])*
[path] => (?:\/(?:(?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\]:@&=+$,;])*)?)+
[uric] => (?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\];\/?:@&=+$,])
)
[_scheme:protected] => http
)
[headers:protected] => Array
(
)
[method:protected] => GET
[paramsGet:protected] => Array
(
[StrRetorno] => xml
[nCdServico] => 40010,41106
[nVlPeso] => 9.15
[sCepOrigem] => 05512100
[sCepDestino] => 04344080
[nCdFormato] => 1
[nVlComprimento] => 16
[nVlAltura] => 2
[nVlLargura] => 11
[sCdMaoPropria] => N
[sCdAvisoRecebimento] => S
[nVlValorDeclarado] => 610,59
)
[paramsPost:protected] => Array
(
)
[enctype:protected] =>
[raw_post_data:protected] =>
[auth:protected] =>
[files:protected] => Array
(
)
[cookiejar:protected] =>
[last_request:protected] =>
[last_response:protected] =>
[redirectCounter:protected] => 0
)
OBS* pode ser alguma alteração no webservice dos Correios, pois começou recentemente (nunca deu erro).
Olá notei que quanto adiciono uma media com fração, ex: 11.5 cm ou 11,5 cm, elas são arredondadas para baixo, sempre indo para 11 cm essa é a forma correta? Vou ter algum problema com o cálculo do frete com esses arredondamentos? Obrigado!
ao utilizar a versão 4.3 está ocorrendo esse erro: Esse método de envio está fora do ar. Por favor entre em contato conosco.
como corrigi-lo?
muito obrigado.
abs.
Sugiro a seguinte melhoria no CorreiosMethod.php, linha 344:
if ($correiosDelivery > 0) {
$method->setMethodDescription(
sprintf(
$this->getConfigData('msgprazo'),
(int) ($correiosDelivery + $this->getConfigData('add_prazo'))
)
);
$method->setMethodTitle($shipping_data[0]);
}
Olá Pedro, primeiramente gostaria de te agradecer por nos fornecer este
módulo. Eu estou tendo um problema (Magento 1.9) quando eu calculo um produto só, com dimensões:
A=38 | L=25 | C=52 o cáculo fecha com o site dos correios. Agora se eu
mudar a quantidade deste mesmo produto, para digamos 5, o preço sobe
apenas 5 ou 6 reais. Mas levando em conta as dimensões totais o correio
não permitiria um só pacote, tendo que particionar o envio. Ou seja, caso não tenha a opção de dividir pacotes, seria bom se não apresenta-se nenhuma opção de envio.
O Que posso fazer para resolver isso?
Muito obrigado desde já.
Olá Pedro, tudo bem
Como posso adicionar ao prazo dos Correios (dias) para cada serviço do correios, exemplo:
Sedex = 4 dias
PAC = 5 dias
E-Sedex= 3 dias
Quando adicionado o prazo a mais 2 dias, vai para todos os envio do correios.
Aonde posso adicionar no código para cada serviços do corrreios individualmente.
Obrigado
Olá, gostaria de sugerir a seleção dos serviços por produto. Apesar da mudança no código ser pequena, as vantagens são enormes. Já efetuei essa mudança em produção há alguns meses, e gostaria de colaborar com o projeto, adicionando esse recurso.
Segue uma breve introdução sobre o assunto.
Nem todos os produtos são válidos para todos os serviços disponíveis. Embora PAC e SEDEX sejam iguais, a maioria dos serviços possui limites de peso e dimensões específicos. Objetos com mais de 15kg são normalmente inválidos para e-SEDEX. Diversas outras restrições se aplicam para os demais serviços como SEDEX 10, Carta, PAC Grandes Formatos, etc.
A validação de limites nesta extensão ainda é generalizada, mas mesmo se fosse configurável por serviço, ainda não atenderia os limites de tipos de mercadorias impostos pelos Correios. Por exemplo, somente livros, cd's e alguns outros itens podem ser enviados por Carta Registrada. Líquidos, plantas, e diversas outras mercadorias requerem uma atenção exclusiva. Você pode querer restringir o envio de mercadorias mais sensíveis como eletrônicos, vidros de perfumes, etc. Enfim estes e inúmeros outros casos fazem com que a identificação dessas diferenças durante a cotação seja muito complexa.
Uma possibilidade de gerenciamento mais simples é atribuindo a cada produto os possíveis serviços que podem transportá-lo.
Exemplo de Atributo:
Código: postmethods
Tipo: multiselect
Valor 1: 41068
Valor 2: 81019
...
Valor 99: 40096
Exemplo de Carrinho de Compras:
1 Livro (PAC, SEDEX, SEDEX Hoje, Carta Registrada)
1 Celular (PAC, SEDEX, SEDEX Hoje)
1 Pizza (SEDEX Hoje)
1 Remédio (SEDEX 10, SEDEX Hoje)
Resultado da Cotação:
SEDEX Hoje
Valor: R$50,00
Prazo: 2 horas
Obs.: Exemplo meramente elucidativo.
Bom dia Pedro, estou simulando entrega no módulo para o CEP Origem: 13.465-360 e Cep Destino: 13.088-300 está retornando Sedex previsão de entrega 8 dias e o correto são 2 dias.
Pode me auxiliar na solução deste problema?
Grato,
Marcelo.
Na minha loja o peso está configurado para gramas, quando eu adiciono o peso de 58 eu salvo e quando volto a editar o produto ele aparece 58.000, preciso me preocupar com isso?
Pedro, boa tarde.
Estou com um problema que não sei bem se é o meu OSC ou algo no módulo, quando troco de tipo de frete o total da compra não atualiza e nem troca o tipo de frete, para usuarios novos que não possuem endereço cadastrados e que digitam o endereço de entrega dentro do OSC o módulo não captura esses dados e gera os tipos de frete... veja imagem no link:
Vlw
Reparei que alguns pedidos grandes e pesados apareciam com frete de 1 real ou 2 reais.
Ao verificar o conteúdo do webservice notei que os valores superavam os mil reais.
Aparentemente o erro está na leitura do valor do XML. O separador decimal está sendo convertido corretamente, mas o separador de milhar não está sendo removido. E o método floatval, executado em seguida, acaba convertendo valores de mil reais para 1 real.
O peso máximo dos Correios não deveria ser convertido:
Quando faço uma compra pelos correios e acesso o Backend para ver os dados da entrega me aparece esse erro no bloco "Informações de Entrega e Rastreamento"
Fatal error: Call to a member function isShippingLabelsAvailable() on a non-object in /home/discabbr/public_html/loja/app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/View/Form.php on line 125
Boa tarde Pedro, tudo bem?
Tive um problema utilizando seu modulo com os seguintes dados no produto:
comprimento 105
altura 40
largura 50
nenhuma das medidas passaram de 105cm e o total não passa de 200cm
Apareceu o seguinte no log de erro:
2014-09-26T18:20:06+00:00 DEBUG (7): pedroteixeira_correios [159]: URL Error, all services return with error
2014-09-26T18:21:14+00:00 DEBUG (7): pedroteixeira_correios [107]: Dimension error
Parabéns Pedro Teixeira por esse módulo.
Tenho alguns produtos com tamanho inferior aos do correios por exemplo:
Comprimento: 5cm - Largura: 3cm - Altura: 2cm
Quando cliente coloca 10 unidades desse produto no carrinho e faz calculo do correios da erro de dimensões.
Exemplo: Comprimento: 50cm - Largura 30cm - Altura 20cm
Que da o padrão das dimensões do correios.
O que pode ser?
Obrigado
É possível adicionar um composer.json no repositório para podermos instalar o módulo usando composer ?
Grato.
em alguns produtos da minha loja ao calcular o frete recebo a mensagem "Esse método de envio está fora do ar. Por favor entre em contato conosco" habilitei o log e no log é registrado
2015-02-21T13:44:20+00:00 DEBUG (7): pedroteixeira_correios [312]: URL Error - Bad XML [301]
pelo que percebi somente os produtos que estão com o nome maior estão dando esse problema.
produto dando erro
produto que não da erro
http://www.minhaloja.com.br/kit-bastao-vigia-henry-10-ibutton-software-controle-de-ronda.html
o que podemos fazer para corrigir isso?
Gostaria de apontar alguns problemas quanto as validações de peso e tamanho.
Acredito que poucos habilitem esse recurso, pois produtos com dimensões e/ou peso inferiores ao limite mínimo acusam erro, e invalidam a cotação. E também não considera quantidades. Ao adicionar 100 DVDs no carrinho, somente a dimensão de 1 unidade será validada, podendo acusar erro pelos limites inferiores.
Além disso a validação considera limites iguais para todos os serviços. E apesar da maioria ser igual, existem exceções como eSedex (até 15kg), PAC GF (até 3m), Carta Registrada (até 500gr), etc.
Mas são as exceções que trazem benefícios financeiros, e a maioria dos logistas querem explorá-las.
Enfim fica a sugestão de validar o carrinho como um todo (e não apenas o produto), e também considerar o serviço que será cotado, antes de realizar a validação. Essa melhoria é o alicerce para adição do PAC GF, e a inclusão de métodos não contemplados pelo webservice.
Esse recurso antes funcionava na versão anterior (eu usava na versão 1.7 do Magento) mas parece que agora não tá mais funcionando. Isso é bug dos Correios ou do módulo? Se puder verificar seria ótimo, isso é fundamental na rotina de um ecommerce.
Estou tentando trocar o valor R$0,00 que aparece quando é frete grátis pela palavra "grátis". Ficaria mais ou menos assim "PAC - 2 dias úteis GRÁTIS". É possível fazer isso? se sim, que arquivo preciso alterar? procurei aqui por um tempo e não consegui.
Tenho um problema e o erro está sendo apresentado para alguns CEP's de destino na loja.
"Esse método de envio está fora do ar. Por favor entre em contato conosco."
Pelo que percebi tem a ver com os CEP's com alguma restrição que agora o correios estão fazendo.
O mesmo CEP apresentam o erro no cálculo no site dos Correios que estão com alguma observação (prazo diferenciado, entrega restrita, etc).
Segue um cep para ser testado 08040150, este está apresentado o erro no meu cálculo.
Estamos perdendo vendas, pois o cliente muitas vezes não entra em contato com nosso atendimento.
Gostaríamos muito de saber se existe uma solução de maneira que o seu módulo ainda continue calculando o frete.
Magento versão. 1.6.2.0
Versão 4.2.0 do módulo
Ainda não tem contrato com os correios.
Cordialmente.
Pedro boa tarde
eu recebo esse erro ao gerar um entrega
Fatal error: Call to a member function isShippingLabelsAvailable() on a non-object in /home/storage/4/3c/7f/bibliacor/public_html/app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/Create/Items.php on line 132
eu vi que uma patch de correçao sua mas não acho em lugar algum?
pode me indicar o caminho?
Atualmente a maioria das lojas dão frete grátis no PAC por ser a opção com abrangência nacional. Sugiro uma opção de o frete grátis ser o mais barato, por exemplo e-sedex é mais vantajoso em diversas cidades.
Existe na estrutura de templates de email do Magento um modelo chamado "shipment_update" que é usado para notificar o cliente que houve uma atualização de entrega do pedido, pelo que pesquisei na internet. Não há possibilidade de aprimorar o módulo de maneira que esse template de email seja usado pra enviar um email ao cliente quando a remessa é dada como entregue lá no webservice dos Correios? Ele receberia um email do tipo "Olá Fulano, verificamos que seu pedido foi entregue!". É uma rotina padrão da maioria dos ecommerces, e pro Magento também deveríamos ter esse recurso. Já foi pensado nisso para uma próxima versão? Trata-se de algo fundamental na rotina de vendas de uma loja, pois da forma que é hoje, temos que criar um status "Entregue", associá-lo ao estado "complete" e aí notificar manualmente o comprador sobre a conclusão da entrega. Já imaginaram se tivermos uns 50 pedidos por dia? Ficaria inviável. Espero que isso possa ser incluso em novas versões, é algo fundamental !
Olá @pedro-teixeira tudo bem? Tenho 2 lojas rodando na mesma instalação. Uma delas está configurada para frete grátis em todos os produtos e na outra quero usar seu módulo para calcular o frete. Fiz a instalação pelo Magento Connect e ocorre que o módulo dos Correios só funciona se eu deixo ele ativado em todas as lojas e o frete grátis desativado em todas as lojas. Pode me dar uma idéia de como resolver isso?
Recentemente descobri um problema que retorna uma resposta inválida (não XML) dos Correios.
E ocorre na seguinte situação:
Nessa situação a loja simplesmente não exibe valor algum. Mas o retorno dos Correios é 99Input string was not in a correct format.
.
Não sei desde quando este problema ocorre. Mas descobri que a causa do erro é o campo Valor Declarado ser enviado com separador de milhar.
A correção é bem simples. Assim que tiver tempo envio uma PR.
Quando o produto é configuravel aparece o seguinte erro:
Lojista: O peso do produto deverá ser maior que zero. Se você está usando a media de peso como gramas, o peso mínimo é de 10 gramas.
Penso que ele tenta pegar o peso do produto configuravel e não da opção selecionada.
Obrigado.
Ao calcular frete do pedido, o método dos Correios só aparece as vezes. Quando não aparece, recebo o log abaixo.
2015-02-19T15:29:05+00:00 DEBUG (7): pedroteixeira_correios [163]: URL Error, all services return with error
Como já mencionei em outra oportunidade, gostaria de registrar um problema que ocorre nesta extensão.
No Magento a session
de frontend e backend são diferentes, e isso acaba gerando confusão na hora de carregar os itens do pedido.
Quando o peso cúbico do pacote supera o peso físico, e também supera o peso mínimo configurado, o usuário consegue notar diferentes valores de cotação, entre o frontend e o backend. Isso é por que o backend não está carregando os itens, para leitura dos atributos, e validação das dimensões.
Alguns produtos se encaixam facilmente, e isso não é contabilizado no cálculo do frete.
Por exemplo, ao vender dez baldes plásticos de 30 cm de altura e 30 cm de diâmetro, a cotação estimada é de 0,21 m³. Mas considere que os baldes se encaixam, e a diferença de altura do encaixe é de 2 cm. Ou seja 2 baldes encaixados medem 32 cm de altura e 30 cm de diâmetro. Sendo assim 10 baldes encaixados medem 48 cm de altura e 30 cm de diâmetro, gerando um volume final de 0,03 m³. Percebemos claramente que encomendas desse tipo são mal dimensionadas, e isso pode ser determinante para a finalização da compra. Neste exemplo simples temos uma economia de cerca de 84% no tamanho da encomenda.
Enfim, desenvolvi uma solução para esse problema, e gostaria de compartilhar com o grupo.
Instalei essa versão 4.4.0 para testes no magento 1.9.1.0, atualmente uso uma versão anterior 4.2, selecionei apenas sedex em um produto, mas no calculo do frete do carrinho continuam aparecendo todos os outros serviços.
Alguem mais com este problema?
Olá Pedro.
O cálculo do frete simplesmente não está mais rodando depois que eu migrei o sistema de um servidor para o outro...
Já desinstalei e instalei a ultima versão pelo Magento Connect;
A mensagem é sempre de que os Correios estão fora do ar: "Mensagem de URL Fora do Ar"
Mas fazendo uma pesquisa direta, está online.
Sabe sem tem algo que precise estar liberado no servidor?
Já desliguei e liguei o Firewall, mas não é isso....
Será que você pode me ajudar?
Possibilidade de criar na opção de "Serviço Para Entrega Gratuita" poderia ter mais um item de opção "Retirada na Loja". Acredito que ia ajudar muito, como forma de frete grátis, para fazer a restrição pelo sales rules do Magento. Abraço e obrigado! Alessandro.
Qual parte do código posso retirar () do resultado da consulta dos correios, exemplo abaixo:
ASSIM:
(Correios - PAC - Estimativa de entrega: 5 dia(s)) R$ 9,97
PARA:
Correios - PAC - Estimativa de entrega: 5 dia(s) R$ 9,97
Obrigado
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.