Ir para conteúdo
carlvess

Correios para prestashop 1.7.2

Recommended Posts

Boa tarde,

 

Para instalar o módulo dos Correios basta ir em Módulos -> Transporte pelo Correio -> Configurar.

 

A partir daí, faça sua configuração conforme a sua necessidade e seus dados.

Forte abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por guinigri
      Boa tarde, preciso passar o valor do frete exibido da API dos correios para o pag seguro mas não estou conseguindo!
      Exemplo:
       
      O cliente entra no meu site add um produto ao carrinho e verifica o frete no próprio carrinho, seleciona se quer PAC ou SEDEX, e quando apertar no botão de pagamento do Pagseguro, ele envia o valor do frete selecionado para a API do pagseguro
       
      Segue os Codigos:
       
      --> FORM DO FRETE COM RETORNO DO VALOR:

       
      <form method="post" action="#" class="navbar-form navbar-left" role="textbox" id="t1" name="t1">                          <div class="form-group">          Simular frete: <input type="text" class="form-control" name="frete" placeholder="Frete" required id="frete">             <input type="hidden" name="vldeclarado" value="<?php echo $exibir['preco'];?>" />         </div>                                     <button class="btn btn-success" type="submit" name="submit">             <span class="glyphicon glyphicon-search"></span>                        </button>                                  </form>                          <?php             if($_POST):?>                 <div class="row">             <div class="col-sm-12" style="margin-top: 10px; margin-bottom: 0px; border-style: none; border-top: none; border-color: #CBCBCB; border-width: 3px;">                                  <?php             $frete = trim($_POST['frete']);             //echo "<h3>{$frete}</h3>";               require_once 'frete.php';             $table = frete( $frete );               echo $table;?>                                </div></div><?php     endif;//POST                              ?> --> API DO PAGSEGURO:
      <form method="post" target="pagseguro" action="https://pagseguro.uol.com.br/v2/checkout/payment.html">                        <!-- Campos obrigatórios -->           <input name="receiverEmail" type="hidden" value="EMAIL@gmail.com">              <input name="currency" type="hidden" value="BRL">             <!-- Itens do pagamento (ao menos um item é obrigatório) -->         <?php              $i = 1;         do{             foreach ($_SESSION['carrinho'] as $id_prod => $qnt)  {                 $code_prod = $conexao->query("SELECT * FROM produtos where id = '$id_prod'");         $exi = $code_prod->fetch(PDO::FETCH_ASSOC);                 $prod = $exi['produto'];                 $precouni = number_format(($exi['preco']),2,'.',',');                          ?>                   <input name="itemId<?php echo $i; ?>" type="hidden" value="<?php echo $id_prod;?>">                   <input name="itemDescription<?php echo $i; ?>" type="hidden" value="<?php echo $prod; ?>">                   <input name="itemAmount<?php echo $i; ?>" type="hidden" value="<?php echo $precouni; ?>">                   <input name="itemQuantity<?php echo $i; ?>" type="hidden" value="<?php echo $qnt; ?>">                                                   <input name="itemWeight<?php echo $i; ?>" type="hidden" value="0">         <?php         $i++;              }                      } while($i <= count($_SESSION['carrinho'])); ?>                     <input name="itemShippingCost1" type="hidden" value="300"> (VALOR DO FRETE AQUI)                                    <!-- Informações de frete (opcionais) -->           <input name="shippingType" type="hidden" value="">  (TIPO DE FRETE SELECIONADO AQUI) Desculpe se ficou grande, se alguem puder me ajudar ficaria grato!
       
    • Por IgorWeldt
      Bom dia, galera.
       
      Essa é a minha primeira postagem 
       
      Seguinte, estou desenvolvendo um website simples de compra, onde o usuário fará o pagamento pela API do PagSeguro, o problema é que não estou conseguindo usar a calculadora de frete do Correios.
       
      Encontrei diversos códios prontos pela internet, porém, nenhum funciona.
       
      Minha página fica carregando e não sai disso.
       
      Falta basicamente isso para finalizar o projeto, alguém pode me dar uma luz?
       
      <?php $parametros = array(); // Código e senha da empresa, se você tiver contrato com os correios, se não tiver deixe vazio. $parametros['nCdEmpresa'] = ''; $parametros['sDsSenha'] = ''; // CEP de origem e destino. Esse parametro precisa ser numérico, sem "-" (hífen) espaços ou algo diferente de um número. $parametros['sCepOrigem'] = '81810110'; $parametros['sCepDestino'] = '80050530'; // O peso do produto deverá ser enviado em quilogramas, leve em consideração que isso deverá incluir o peso da embalagem. $parametros['nVlPeso'] = '1'; // O formato tem apenas duas opções: 1 para caixa / pacote e 2 para rolo/prisma. $parametros['nCdFormato'] = '1'; // O comprimento, altura, largura e diametro deverá ser informado em centímetros e somente números $parametros['nVlComprimento'] = '16'; $parametros['nVlAltura'] = '5'; $parametros['nVlLargura'] = '15'; $parametros['nVlDiametro'] = '0'; // Aqui você informa se quer que a encomenda deva ser entregue somente para uma determinada pessoa após confirmação por RG. Use "s" e "n". $parametros['sCdMaoPropria'] = 'n'; // O valor declarado serve para o caso de sua encomenda extraviar, então você poderá recuperar o valor dela. Vale lembrar que o valor da encomenda interfere no valor do frete. Se não quiser declarar pode passar 0 (zero). $parametros['nVlValorDeclarado'] = '200'; // Se você quer ser avisado sobre a entrega da encomenda. Para não avisar use "n", para avisar use "s". $parametros['sCdAvisoRecebimento'] = 'n'; // Formato no qual a consulta será retornada, podendo ser: Popup – mostra uma janela pop-up | URL – envia os dados via post para a URL informada | XML – Retorna a resposta em XML $parametros['StrRetorno'] = 'xml'; // Código do Serviço, pode ser apenas um ou mais. Para mais de um apenas separe por virgula. $parametros['nCdServico'] = '40010,41106'; $parametros = http_build_query($parametros); $url = 'http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx'; $curl = curl_init($url.'?'.$parametros); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $dados = curl_exec($curl); $dados = simplexml_load_string($dados); ?> <html> <head> <title>Frete Correios Testes</title> </head> <body> <h1>Calculadora de frete dos Correios</h1> <?php foreach($dados->cServico as $linhas) { if($linhas->Erro == 0) { echo $linhas->Codigo.'</br>'; echo $linhas->Valor .'</br>'; echo $linhas->PrazoEntrega.' Dias </br>'; }else { echo $linhas->MsgErro; } echo '<hr>'; } ?> </body> </html>  
      Obrigado à todos!
    • Por Nerdmonkey
      A quanto tempo não posto aqui. As novidades do fórum estão bem bacanas... já volto com uma bomba rs
       
      Estou adaptando um classe para arranjar os produtos do carrinho de um e-comerce em caixas para calcular o frete juntos aos correios.
      Gostaria de sugestões dos colegas para implementar, sempre que um caixa atingir o limite, gerar uma nova caixa... a parte da comunicação com a API do correios está bem tranquilo.
      O que tá pegando mesmo é essa parte da organização dos itens em várias caixas.
      Vou deixar aqui o código completo que estou testando...
       
      /
      config.php
      <?php define("MIN_LARGURA", 11); define("MAX_LARGURA", 105); define("MIN_ALTURA", 2); define("MAX_ALTURA", 105); define("MIN_COMPRIMENTO", 16); define("MAX_COMPRIMENTO", 105); define("MIN_SOMA_CLA", 29); define("MAX_SOMA_CLA", 200); function dd($data) { echo '<pre>'; var_dump($data); echo '</pre>'; } index.php
      <?php require_once 'config.php'; require_once 'Boxes.php'; $cart = [ [ 'title' => 'Book - The art of war', 'A' => 25, 'L' => 70, 'C' => 90, ], [ 'title' => 'Book - The art of war', 'A' => 25, 'L' => 70, 'C' => 90, ], [ 'title' => 'Book - The art of war', 'A' => 25, 'L' => 70, 'C' => 90, ], ]; $boxes = new Boxes($cart); dd($boxes->createBoxes()); Boxes.php
      <?php class Boxes { private $cart = []; private $box = []; private $box_properties = []; /** * __construct * * @param array $cart */ public function __construct($cart = []) { $this->cart = $cart; $this->box_properties = [ 'altura' => 0, 'largura' => 0, 'comprimento' => 0, 'qtd_itens' => 0, 'message' => null, 'volume' => 0, 'volume_itens' => 0, 'volume_vazio' => 0, 'comprimento_remanescente' => 0, 'largura_remanescente' => 0, 'altura_remanescente' => 0 ]; } /** * Order items inside the box * * @return array */ public function orderBox() { foreach ($this->cart as $k => $item): $new_height = min($item['A'], $item['L'], $item['C']); $new_length = max($item['A'], $item['L'], $item['C']); $width = [$item['A'], $item['L'], $item['C']]; sort($width) ; array_shift($width); array_pop($width); $item['L'] = isset($width[0]) ? $width[0] : $new_height; $item['A'] = $new_height ; $item['C'] = $new_length ; $item['LC'] = $item['L'] * $item['C'] ; $this->cart[$k] = $item; endforeach; usort($this->cart, function($a, $b){ return $a['LC'] < $b['LC']; }); return $this->cart ; } /** * Create and put items inside the box * * @return array */ public function createBoxes() { $this->cart = $this->orderBox(); $this->box = json_decode(json_encode($this->box_properties,FALSE)); $this->organizeItems(); $this->box->volume = ($this->box->altura * $this->box->largura * $this->box->comprimento); $this->box->volume_vazio = $this->box->volume - $this->box->volume_itens; $this->minSpecifications(); $this->errors(); return $this->box; } private function organizeItems() { foreach ($this->cart as $item): $this->box->qtd_itens++; $this->box->volume_itens += ($item['A'] * $item['L'] * $item['C']); $this->allocateItems($item); $this->box->altura += $item['A']; if($item['L'] > $this->box->largura): $this->box->largura = $item['L']; endif; if ($item['C'] > $this->box->comprimento): $this->box->comprimento = $item['C']; endif; $this->box->comprimento_remanescente = $this->box->comprimento; $this->box->largura_remanescente = $this->box->largura - $item['L']; $this->box->altura_remanescente = $item['A']; endforeach; } private function allocateItems($item) { if($this->box->comprimento_remanescente >= $item['C'] && $this->box->largura_remanescente >= $item['L']): if($item['A'] > $this->box->altura_remanescente): $this->box->altura += $item['A'] - $this->box->altura_remanescente ; endif; if($item['C'] > $this->box->comprimento): $this->box->comprimento = $item['C']; endif; $this->box->comprimento_remanescente = $this->box->comprimento - $item['C']; $this->box->largura_remanescente = $this->box->largura_remanescente - $item['L'] ; $this->box->altura_remanescente = $item['A'] > $this->box->altura_remanescente ? $item['A'] : $this->box->altura_remanescente ; endif; } private function minSpecifications() { if($this->box->altura > 0 && $this->box->altura < MIN_ALTURA): $this->box->altura = MIN_ALTURA ; endif; if($this->box->largura > 0 && $this->box->largura < MIN_LARGURA): $this->box->largura = MIN_LARGURA ; endif; if($this->box->comprimento > 0 && $this->box->comprimento < MIN_COMPRIMENTO): $this->box->comprimento = MIN_COMPRIMENTO ; endif; } private function errors() { if($this->box->altura > MAX_ALTURA): $this->box->message = "Erro: Altura maior que o permitido."; endif; if($this->box->largura > MAX_LARGURA ): $this->box->message = "Erro: Largura maior que o permitido."; endif; if($this->box->comprimento > MAX_COMPRIMENTO ): $this->box->message = "Erro: Comprimento maior que o permitido."; endif; if(($this->box->comprimento + $this->box->comprimento + $this->box->comprimento) < MIN_SOMA_CLA): $this->box->message = "Erro: Soma dos valores C+L+A menor que o permitido."; endif; if(($this->box->comprimento + $this->box->comprimento + $this->box->comprimento) > MAX_SOMA_CLA): $this->box->message = "Erro: Soma dos valores C+L+A maior que o permitido."; endif; } }  
    • Por Sandro Lemes
      Bom dia Galera!
       
      Ha poucos dias descobri uma maneira nativa e sem precisar de instalar DLLs, componentes infinitos(Deus me livre)... e achei interessante postar (Estou em processo de mudança mental e compartilhar coisas difíceis é um começo! rsss)!
       
      Então...vamos lá! Segue abaixo uma maneira nativa e fácil de consultar CEPS nos correios! Espero que gostem!
       
       
       
      New >> Other.... Aba WebServices... WSDL Importer... e importe a seguinte URL:
      https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl

      Na unit importada, substitua a linha :
      InvRegistry.RegisterInvokeOptions(TypeInfo(AtendeCliente), ioDocument);

      por:
      InvRegistry.RegisterInvokeOptions(TypeInfo(AtendeCliente), ioHasAllSOAPActions);
      ou
      InvRegistry.RegisterInvokeOptions(TypeInfo(AtendeCliente), ioHasNamespace);

      Último detalhe, no indy passado setar a seguinte propriedade como True:
      HTTPRIO1.HTTPWebNode.UseUTF8InHeader := True;


      Pronto! Está apto a fazer consultas diretas no site da Empresa Brasileira de Correios e Telégrafos;


      Exemplo:


      procedure TfrmIni.btnConsCepClick(Sender: TObject);
      var
      wsAtendeCliente: AtendeCliente;
      wsConsultaCepReq: consultaCEP;
      wsConsultaCepResp: consultaCEPResponse;
      sEndCep: string;

      begin
      // InvRegistry.RegisterInvokeOptions(TypeInfo(YourSoapInterface), ioDocument);
      // CHANGE TO
      // InvRegistry.RegisterInvokeOptions(TypeInfo(YourSoapInterface), ioHasAllSOAPActions); ((( TESTADO OK COM ESSE )))
      // OR
      // InvRegistry.RegisterInvokeOptions(TypeInfo(YourSoapInterface), ioHasNamespace);

      try
      try
      wsConsultaCepReq := consultaCEP.Create;
      wsConsultaCepResp := consultaCEPResponse.Create;

      HTTPRIO1.HTTPWebNode.UseUTF8InHeader := True;
      wsAtendeCliente := GetAtendeCliente(False, '', HTTPRIO1);

      wsConsultaCepReq.cep := edtCep.Text;

      try
      wsConsultaCepResp := wsAtendeCliente.consultaCEP( wsConsultaCepReq );
      except
      on E: ERemotableException do
      begin
      if (UpperCase(Trim(E.message)) = 'CEP NAO ENCONTRADO') or (UpperCase(Trim(E.message)) = 'CEP NAO INFORMADO') then
      begin
      Application.MessageBox(PChar(Format('Atenção! Cep %s não informado/encontrado!', [edtCep.Text])), PChar('Mensagem'), MB_OK + MB_ICONINFORMATION);
      Exit;
      end
      else
      begin
      raise Exception.Create( E.message );
      end;
      end;
      end;

      sEndCep := wsConsultaCepResp.return.cep + #13;
      sEndCep := sEndCep + wsConsultaCepResp.return.end_ + #13;
      sEndCep := sEndCep + wsConsultaCepResp.return.complemento + #13;
      sEndCep := sEndCep + wsConsultaCepResp.return.complemento2 + #13;
      sEndCep := sEndCep + wsConsultaCepResp.return.bairro + #13;
      sEndCep := sEndCep + wsConsultaCepResp.return.cidade + #13;
      sEndCep := sEndCep + wsConsultaCepResp.return.uf + #13;

      ShowMessage( sEndCep );
      finally
      FreeAndNil(wsConsultaCepReq);
      FreeAndNil(wsConsultaCepResp);
      wsAtendeCliente._Release;
      end

      except
      on E: Exception do
      begin
      Application.MessageBox(PChar(Format('Atenção! %s%s ', [#13#13, E.message])), PChar('Erro'), MB_OK + MB_ICONERROR);
      end;
      end;
      end;



      Att.

      Sandro Lemes
      Desenvolvedor Delphi;
    • Por SFMarcos
      Vendo fonte Delphi do SIGEP WEB Correios.
      Funcionalidades:
      - Banco de dados Firebird com empresa homologação;
      - WebService de homologação e produção;
      - Cadastro de embalagens, serviços e clientes;
      - Atualização automática da lista de serviços disponíveis;
      - Conexão com balança para obter o peso da encomenda (embalagem + produto) para cálculo do preço à pagar;
      - Impressão da etiqueta (com chancela) já homologada pelo Correios em Report Builder;
      - Geração automática do número da etiqueta de pedido aos Correios;
      - Impressão da PLP em Report Builder;
      - Atualiza a PLP no SARA (Sistema de Automação da Rede de Atendimento);
       
      Segue link dropbox do demo SIGEPWEB:
      https://www.dropbox.com/s/hcyeckd40jgrkay/demo.rar?dl=0
      - Instale a cadeia de certificados dos Correios.
      - Desmarque a opção pelo Internet Explorer -> Avançadas -> Verificar revogação de certificados do servidor *
      - Descompacte no c:\Sigep.
      - O Firebird está embarcado não precisa instalar.
      - Execute o aplicativo  Sigep;
      Valor: R$ 250,00
×

Informação importante

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