2.1.4 • Published 6 years ago

@joaoassisb/node-correios v2.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

Correios Node.js

Build Status Built with Grunt npm npm

NPM

Módulo de Node.js que utilizar a API SOAP dos Correios para calcular frete de envio e buscar endereço pelo CEP. API dos Correios

APP de Exemplo

  • Calcular frete - link
  • Calcular frete/prazo - link
  • Buscar Cep - link

Como instalar

Basta utilizar o NPM com a flag --save para guardar como dependência no seu package.json

npm install node-correios --save

Como utilizar o calculo de frete

var Correios = require('node-correios'),
    correios = new Correios();

correios.calcPreco(args, function (err, result) {
  console.log(result);
});
Exemplo de resultado

Caso a consulta tenha sucesso, o callback receberá um objeto como segundo parâmetro, similar a:

[{
	Codigo: 40010,
	Valor: '23,30',
	ValorMaoPropria: '0,00',
	ValorAvisoRecebimento: '0,00',
	ValorValorDeclarado: '0,00',
	Erro: '0',
	MsgErro: {}
}]

Caso algum parâmetro esteja errado, ou o serviço esteja indisponível para o CEP de destino, o objeto retornado no callback conterá a propriedade Erro como um código de erro e conterá uma mensagem de erro no parâmetro MsgErro.

[{
	Codigo: 40215,
	Valor: '0',
	ValorMaoPropria: '0',
	ValorAvisoRecebimento: '0',
	ValorValorDeclarado: '0',
	Erro: '008',
	MsgErro: 'Serviço indisponível para o trecho informado.',
	ValorSemAdicionais: '0'
}]

Em caso de erro na consulta ao WebService dos Correios, o callback receberá o erro como primeiro parâmetro.

Para consultar mais de um serviço na mesma requisição, basta passar vários códigos de serviço, separados por vírgula, para o parâmetro nCdServico (ver descrição dos parâmetros abaixo). Neste caso, o array da resposta conterá um objeto por cada código informado, sendo que alguns podem apresentar erro e outros podem ter tido sucesso.

var args = {
	nCdServico: '40010,41106,40215',
	// demais parâmetros ...
}

correios.calcPreco(args, function (err, result) {
	console.log(result);
});

// result:
[{
	Codigo: 40010,
	Valor: '24,10',
	ValorMaoPropria: '0,00',
	ValorAvisoRecebimento: '0,00',
	ValorValorDeclarado: '0,00',
	Erro: {},
	MsgErro: {},
	ValorSemAdicionais: '24,10'
},{
	Codigo: 41106,
	Valor: '16,80',
	ValorMaoPropria: '0,00',
	ValorAvisoRecebimento: '0,00',
	ValorValorDeclarado: '0,00',
	Erro: {},
	MsgErro: {},
	ValorSemAdicionais: '16,80'
},{
	Codigo: 40215,
	Valor: '0',
	ValorMaoPropria: '0',
	ValorAvisoRecebimento: '0',
	ValorValorDeclarado: '0',
	Erro: '008',
	MsgErro: 'Serviço indisponível para o trecho informado.',
	ValorSemAdicionais: '0'
}]

Métodos

Os métodos implementados são: calcPreco e calcPrecoPrazo

correios.calcPreco(args);
correios.calcPrecoPrazo(args);

Para executar o comando tem que enviar os campos obrigatórios. Para mais detalhes e informações veja o PDF da API dos correios

Obrigatórios
  • nCdServico - String

    	Código do serviço:
    	- 40010 = SEDEX Varejo
    	- 40045 = SEDEX a Cobrar Varejo
    	- 40215 = SEDEX 10 Varejo
    	- 40290 = SEDEX Hoje Varejo
    	- 41106 = PAC Varejo
  • sCepOrigem - String

    	CEP de Origem sem hífen. Exemplo: **05311900**
  • sCepDestino - String

    	CEP de Destino sem hífen
  • nVlPeso - String

    	Peso da encomenda, incluindo sua embalagem. O peso deve ser informado em quilogramas. Se o formato for Envelope, o valor máximo permitido será 1 kg
  • nCdFormato - Inteiro

    	Formato da encomenda (incluindo embalagem)
    	- 1 = Formato caixa/pacote
    	- 2 = Formato rolo/prisma
    	- 3 = Envelope
  • nVlComprimento - Decimal

    	Comprimento da encomenda (incluindo embalagem), em centímetros
  • nVlAltura - Decimal

    	Altura da encomenda (incluindo embalagem), em centímetros. Se o formato for envelope, informar zero (0)
  • nVlLargura - Decimal

    	Largura da encomenda (incluindo embalagem), em centímetros
  • nVlDiametro - Decimal

    	Diâmetro da encomenda (incluindo embalagem), em centímetros
Não obrigatórios
  • nCdEmpresa - String

    	Seu código administrativo junto à ECT. O código está disponível no corpo do contrato firmado com os Correios
  • sDsSenha - String

    	Senha para acesso ao serviço, associada ao seu código administrativo. A senha inicial corresponde aos 8 primeiros dígitos do CNPJ informado no contrato
  • sCdMaoPropria - String

    	Indica se a encomenda será entregue com o serviço adicional mão própria
    	- S = sim
    	- N = não **PADRÃO**
  • nVlValorDeclarado - Decimal

    	Indica se a encomenda será entregue com o serviço adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais
  • sCdAvisoRecebimento - String

    	Indica se a encomenda será entregue com o serviço adicional mão própria
    	- S = sim
    	- N = não **PADRÃO**

Como utilizar a buscar por CEP

var Correios = require('node-correios'),
    correios = new Correios();

correios.consultaCEP({ cep: '00000000' }, function(err, result) {
  console.log(result)
});
Exemplo de resultado

Caso a consulta tenha sucesso, o callback receberá um objeto como segundo parâmetro, similar a:

{
  bairro: 'Ipanema',
  cep: '22421030',
  localidade: 'Rio de Janeiro',
  logradouro: 'Rua Redentor',
  uf: 'RJ'
}

Em caso de erro na consulta ao WebService dos Correios, o callback receberá o erro ocorrido como primeiro parâmetro.

Testes unitários

Para rodas os testes unitários, depois de instalar as dependências do projeto com o npm install, execute o comando:

$ npm test

Para incluir seus testes unitários, eles se encontram na pasta ./test

Contribuições

Para contribuir com o projeto basta seguir as seguintes intruções: Link

Autor

twitter/vitorleal
Vitor Leal

Licença

Veja LICENSE.txt