= correios-frete
---
Esta documentação é das versões >= 1.0.0.
Para a versão 0.3.0, por favor veja {README_v0.3.0.rdoc}[https://github.com/prodis/correios-frete/blob/master/README_v0.3.0.rdoc]
---
Cálculo de frete utilizando o Web Service dos Correios (http://www.correios.com.br/webservices).
Os serviços de frete suportados são PAC, SEDEX, SEDEX 10, SEDEX Hoje e e-SEDEX (necessário informar código de empresa e senha).
== Instalando
=== Gemfile
gem 'correios-frete'
=== Instalação direta
$ gem install correios-frete
== Usando
require 'correios-frete'
frete = Correios::Frete::Calculador.new :cep_origem => "04094-050",
:cep_destino => "90619-900",
:peso => 0.3,
:comprimento => 30,
:largura => 15,
:altura => 2
Cálculo de vários serviços ao mesmo tempo:
servicos = frete.calcular :sedex, :pac
servicos[:sedex].nome # => "SEDEX"
servicos[:sedex].valor # => 26.2
servicos[:sedex].prazo_entrega # => 1
servicos[:pac].nome # => "PAC"
servicos[:pac].valor # => 10.0
servicos[:pac].prazo_entrega # => 5
Cálculo de um serviço de frete passando o serviço para parâmetro:
servico = frete.calcular :sedex
service.nome # => "SEDEX"
servico.valor # => 26.2
servico.prazo_entrega # => 1
servico = frete.calcular :pac
service.nome # => "PAC"
servico.valor # => 10.0
servico.prazo_entrega # => 5
Cálculo de um serviço de frete chamando o método direto do serviço:
servico = frete.calcular_sedex
service.nome # => "SEDEX"
servico.valor # => 26.2
servico.prazo_entrega # => 1
servico = frete.calcular_pac
service.nome # => "PAC"
servico.valor # => 10.0
servico.prazo_entrega # => 5
Verificação de sucesso e erro:
servico = frete.calcular_sedex
servico.sucesso? # => true
servico.erro? # => false
Usando a interface pública em inglês:
servico = frete.calculate_sedex
servico.success? # => true
servico.error? # => false
== Log
Por padrão, cada chamada ao Web Service dos Correios é logada usando STDOUT.
Para desabilitar o log ou configurar um outro mecanismo de log, você pode configurar o módulo Correios::Frete.
Correios::Frete.configure do |config|
config.log_enabled = false # Desabilita o log
config.logger = Rails.logger # Usa o logger do Rails
end
Exemplo de log:
I, [2011-08-13T00:17:38.843135 #1826] INFO -- : Correios-Frete Request:
http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?sCepOrigem=04094-050&sCepDestino=90619-900&nVlPeso=0.3&nVlComprimento=30&nVlAltura=2&nVlLargura=15&nVlDiametro=0.0&nCdFormato=1&sCdMaoPropria=N&sCdAvisoRecebimento=N&nVlValorDeclarado=0.0&nCdServico=40010&nCdEmpresa=&sDsSenha=&StrRetorno=xml
I, [2011-08-13T00:17:39.099459 #1826] INFO -- : Correios-Frete Response:
HTTP/1.1 200 OK
4001026,2010,000,000,00SS0
== Informações adicionais
=== Serviços suportados
:pac
:sedex
:sedex_10
:sedex_hoje
:e_sedex
=== Maneiras de configurar atributos no construtor de Correios::Frete::Calculador
==== Com um hash
frete = Correios::Frete::Calculador.new :cep_origem => "04094-050",
:cep_destino => "90619-900",
:peso => 0.3,
:comprimento => 30,
:largura => 15,
:altura => 2
==== Com um bloco
frete = Correios::Frete::Calculador.new do |f|
f.cep_origem = "04094-050"
f.cep_destino = "90619-900"
f.peso = 0.3
f.comprimento = 30
f.largura = 15
f.altura = 2
end
=== Atributos de Correios::Frete::Calculador
==== String
cep_origem, cep_destino, codigo_empresa, senha
==== Float
peso, valor_declarado
==== Fixnum
comprimento, largura, altura, diametro
==== Boolean
mao_propria, aviso_recebimento
==== Symbol
formato (:caixa_pacote, :rolo_prisma)
=== Atributos de Correios::Frete::Servico
==== String
codigo, erro, msg_erro, nome
==== Float
valor, valor_mao_propria, valor_aviso_recebimento, valor_valor_declarado
==== Fixnum
prazo_entrega
==== Boolean
entrega_domiciliar, entrega_sabado
==== Symbol
tipo (:pac, :sedex, :sedex_10, :sedex_hoje, :e_sedex)
== Copyright
(The MIT License)
{Prodis a.k.a. Fernando Hamasaki}[http://prodis.blog.br]
Copyright (c) 2011 Prodis
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.