Giter Site home page Giter Site logo

frete's Introduction

Frete

frete-sheriff npm npm

NPM


Modulo para consumo da API dos correios de calculo remoto de precos e prazos:

Implementação de todos os metodos disponiveis na API, com acessores simples e fáceis. :)

Para ganharmos um pouco de performance, usamos o wsdl salvo no folder ./correios-data/CalcPrecoPrazo.xml, ao invés de fazermos o request inicial para isso.

Também mantemos uma lista de todos os serviços disponíveis pelos correio em ./correios-data/listaServicos.json, você pode atualizar essa lista juntamente com as definiçōes de TypeScript rodando o arquivo ./scripts/dump-services.js

Todas as opções do wsdl estao disponíveis via os mesmos comandos, e os metodos estão disponíveis nos mesmos nomes mas em camelCase e sem o prefixo Calc, (e.g. .precoPrazo()).

Para maiores detalhes de usage, você pode checar os nossos tests em frete.spec.js

Exemplos

Calculo simples de prazo usando promises:

const frete = require('frete');

(async function() {
    const results = await frete()
        .cepOrigem('13467460')
        .servico(frete.servicos.sedex)
        .prazo('13466321');

        console.log(results);
})();

Calculo simples de prazo:

const frete = require('frete');

frete()
    .cepOrigem('13467460')
    .servico(frete.servicos.sedex)
    .prazo('13466321', function (err, results) {
        console.log(err);
        console.log(results);
    })

Calculo simples de preco:

const frete = require('frete');

frete()
    .cepOrigem('13467460')
    .peso(1)
    .formato(frete.formatos.caixaPacote)
    .comprimento(16)
    .altura(2)
    .largura(11)
    .diametro(1)
    .maoPropria(frete.maoPropria.nao)
    .valorDeclarado(50)
    .avisoRecebimento(frete.avisoRecebimento.sim)
    .servico(frete.servicos.sedex)
    .preco('13466321', function (err, results) {
        console.log(err);
        console.log(results);
    });

Calculo simples de preco e prazo:

const frete = require('frete');

frete()
    .cepOrigem('13467460')
    .peso(1)
    .formato(frete.formatos.caixaPacote)
    .comprimento(16)
    .altura(2)
    .largura(11)
    .diametro(1)
    .maoPropria(frete.maoPropria.nao)
    .valorDeclarado(50)
    .avisoRecebimento(frete.avisoRecebimento.sim)
    .servico(frete.servicos.sedex)
    .precoPrazo('13466321', function (err, results) {
        console.log(err);
        console.log(results);
    });

Default options:

const frete = require('frete');
frete.cepOrigem('13467460').servico([ frete.servicos.sedex, frete.servicos.pac ]);

frete().prazo('13466321', function (err, results) {
    console.log(err);
    console.log(results);

    frete().prazo('13466321', function (err, results) {
        console.log(err);
        console.log(results);
    });
});

Objeto as config / More usages

const frete = require('frete');
frete.cepOrigem('13467460').servico([ frete.servicos.sedex, frete.servicos.pac ]);

frete({
    cepDestino: '13466321',
    peso: 1,
    formato: frete.formatos.caixaPacote,
    comprimento: 16,
    altura: 2,
    largura: 11,
    diametro: 1,
    maoPropria: frete.maoPropria.nao,
    valorDeclarado: 50,
    avisoRecebimento: frete.avisoRecebimento.sim
}).prazo(function(err, result) {
    console.log(err);
    console.log(result);
});

Utilities

const frete = require('frete');

console.log(frete.servicos.list);
console.log(frete.servicos.search('sedex'));
console.log(frete.servicos.byCode[81876]);

Dependency

frete's People

Contributors

deividy avatar dependabot[bot] avatar eduardojm avatar luizspinelli avatar marcioferlan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

frete's Issues

Erro - Mudança Webservices Correios

Primeiramente, ótima lib! Mas estou com um problema :/

Tinha uma função Lambida rodando na AWS usando somente a lib, e estava funcionando a um bom tempo, aparentemente a dois dias atrás ela parou de funcionar e estou tomando esse erro

"message": "Erro ao calcular o frete",\n "error": "connect ECONNREFUSED 201.48.198.97:80"

Aparentemente o correio mudou a API deles, mas não tenho certeza.

Cubagem

Faz o cálculo de cubagem também?
Tipo, como eu faria para chamar esses métodos para um carrinho de compras com vários itens de diferentes tamanhos e peso?

Porque não passar os parametros em um dicionário

Olá, estou desenvolvendo um package para reaction commerce (em meteor) e seu modulo esta sendo muito util =)

Uma dúvida, porque não ao invés de passar os parametros desta forma atual

frete()
    .cepOrigem('13467460')
    .peso(1)
    .formato(1)
    .comprimento(16)
    .altura(2)
    .largura(11)
    .diametro(1)
    .maoPropria('N')
    .valorDeclarado(50)
    .avisoRecebimento('S')
    .servico(frete.codigos.sedex)
    .preco('13466321', function (err, results) {
        console.log(err);
        console.log(results);
    });

não passar na forma de um objeto

frete({
    cepOrigem: '13467460',
    peso: 1,
    formato: 1
}).preco(function(er, res){

})

Digo isso porque tive alguns problemas para integrar esta função com alguns métodos, como o Meteor.wrapAsync. Além disso acho que ficaria mais legível e intuitivo.

Parabens pelo módulo =)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.