-
- tubadc

-
Total Posts: 51
Joined: 2008-05-07
|
Galera cansei de esperar e vou partir pro desenvolvimento quem quiser ajudar seria ótimo, afinal isso aqui é OPEN SOURCE (ainda...), então bora lá…
Procurando aqui no bkp achei uma função ,não pergunte de onde é nem de quem pois não lembro, cheguei em uma função razoável… pra começar a implementar…
Ela calcula independente do serviço… dando a opção de você colocar para o cliente o método que lhe convier… segue o código, o qual pode ser melhorado claro… mas em cima dele que vou me basear para injetar no magento…
correios.php
<form id="form1" name="form1" method="post" action=""> CEP Origem: <label> <input type="text" name="origem" id="origem" /> </label> <p>CEP Destino: <label> <input type="text" name="destino" id="destino" /> </label> </p> <p>Peso: <select name=peso size=1 id="peso"> <option value=0.3 selected>0,300</option> <option value=1>1</option> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> <option value=5>5</option> <option value=6>6</option> <option value=7>7</option> <option value=8>8</option> <option value=9>9</option> <option value=10>10</option> <option value=11>11</option> <option value=12>12</option> <option value=13>13</option> <option value=14>14</option> <option value=15>15</option> <option value=16>16</option> <option value=17>17</option> <option value=18>18</option> <option value=19>19</option> <option value=20>20</option> <option value=21>21</option> <option value=22>22</option> <option value=23>23</option> <option value=24>24</option> <option value=25>25</option> <option value=26>26</option> <option value=27>27</option> <option value=28>28</option> <option value=29>29</option> <option value=30>30</option> </select></p> <p>Serviço:<select name="servico"> <option value=40010>SEDEX</option> <option value=40290>SEDEX Hoje</option> <option value=40215>SEDEX 10</option> <option value=40045>SEDEX a Cobrar</option> <option value=41017 selected>Encomenda Normal</option> </select> <input name="procura" type="hidden" id="procura" value="1" /> </p> <p> <label> <input type="submit" name="button" id="button" value="Calcula Valor" /> </label> </p> </form>
<? if (isset($_POST['procura'])){
include "funcaoCorreios.php";
//chama a função depois do post $correios = getCorreios($_POST['origem'], $_POST['destino'] , $_POST['peso'], $_POST['servico']); //exibe valor do correios echo "R$ " . number_format($correios["valor"], 2, ",", ","); //valor do correios }
?>
funcaoCorreios.php
<?php function getCorreios($cepOrigem, $cepDestino , $peso, $servico) { $urlCorreios = "http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=xml&servico;=$servico&cepOrigem;=$cepOrigem&cepDestino;=$cepDestino&peso;=$peso"; $urlCorreios = sprintf($urlCorreios, $cepOrigem, $cepDestino, $peso); //carrega url dos correios //caso o seu servidor não permita o uso da função file para url's externas //recomenda-se a utilização de CURL - http://www.php.net/manual/en/ref.curl.php $carrega = file($urlCorreios) or die("Problemas em obter os dados dos correios"); //tratando string xml obtida. Removendo espaços e linhas para facilitar... $conteudo = trim(str_replace(array("\n", chr(13)), "", implode($carrega, ""))); if(strlen($conteudo) <1) return false; //informações de origem tratadas com RegExp... preg_match_all("/<uf_origem>(.+)<\/uf_origem>/", $conteudo, $uf_origem); preg_match_all("/<local_origem>(.+)<\/local_origem>/", $conteudo, $local_origem); preg_match_all("/<cep_origem>(.+)<\/cep_origem>/", $conteudo, $cep_origem); //informações de destino tratadas com RegExp... preg_match_all("/<uf_destino>(.+)<\/uf_destino>/", $conteudo, $uf_destino); preg_match_all("/<local_destino>(.+)<\/local_destino>/", $conteudo, $local_destino); preg_match_all("/<cep_destino>(.+)<\/cep_destino>/", $conteudo, $cep_destino); //informações sobre a encomenda tratadas com RegExp... preg_match_all("/<peso>(.+)<\/peso>/", $conteudo, $peso); preg_match_all("/<preco_postal>(.+)<\/preco_postal>/", $conteudo, $preco_postal); //objeto contendo as informações sobre o frete... $correios = array( "uf_origem" => $uf_origem[1][0], "local_origem" => $local_origem[1][0], "cep_origem" => $cep_origem[1][0], "uf_destino" => $uf_destino[1][0], "local_destino" => $local_destino[1][0], "cep_destino" => $cep_destino[1][0], "peso" => floatval($peso[1][0]), "valor" => floatval($preco_postal[1][0]) ); return $correios; } ?>
Acredito que no FDS termino… ta corrido aqui no trampo.... 21h15 agora vo vaza… flw…
abs
|