Entre os atuais projetos de responsabilidade da nossa equipe, um deles possui o serviço de entrega de produtos via Correios e, em razão da alta demanda, surgiu a necessidade de automatizar esse processo para facilitar a etiquetagem dos pedidos através da integração com SIGEP, sistema da empresa.
O início de um sonho: Mundo Open Source
Fazia um tempo que não nos envolvíamos com nada relacionado ao Open Source até nos depararmos com a necessidade de integração com o SIGEP Web, sistema de gerenciamento de pacotes dos Correios. Após algumas buscas por soluções, notamos que já existiam algumas opções, mas nenhuma atendia 100% às exigências do nosso problema.
Partindo disso, optamos por criar nossa própria biblioteca de integração com o sistema. Primeiro para podermos ter um controle melhor sobre o código que estaríamos inserindo em nossos clientes e também por questão de manutenção.
Tá, mas o que é SIGEP?
SIGEP é um web services que os Correios possui para auxiliar o varejo no controle e manutenção de suas entregas. Por exemplo, quando você compra algo em alguma empresa ou marketplace, e a entrega é realizada através dos Correios, é bem provável que a loja em questão tenha integração com o sistema de alguma forma, seja diretamente ou mediante terceiros.
O SIGEP dispõe de uma API em SOAP, por isso, a primeira barreira na criação da lib foi conseguir achar uma forma de ler as requisições em SOAP e conseguir “converter” em Promises JavaScript para que pudéssemos ter uma integração melhor com o backend dos sistemas, já que eles são feitos com REST.
Após sanado tal problema, o desafio passou a ser entender como funciona o fluxo da API do SIGEP, com documentações em mãos ficou tranquilo mapear a maioria das funções que o SIGEP dispõe, como gerar PLP, gerar etiquetas, gerar PDF, buscar dados do cliente, buscar serviços do cliente, etc.
Deu tudo certo
Por fim, a lib ficou bem legal, com um código legível, desacoplado e de fácil manutenção, utilizamos typescript como linguagem principal. Na última análise na plataforma yarn e npm, notamos um grande número de downloads e a subida no ranking de buscas ~ o que é bem legal~
A busca por CEP e cliente, verificação de disponibilidade de serviço de entrega e solicitação de etiquetas foram algumas funções mapeadas na biblioteca. Lembrando que ela é aberta e pode receber ajuda de toda a comunidade, seja em código, testes ou qualquer outra melhoria. Confere mais detalhes desse projeto no github no link abaixo, abraço.
https://github.com/sthima/sigep
Outras referências:
DOC SIGEP: http://www.corporativo.correios.com.br/encomendas/sigepweb/doc/Manual_de_Implementacao_do_Web_Service_SIGEP_WEB.pdf
SOAP: https://pt.wikipedia.org/wiki/SOAP
REST: https://pt.wikipedia.org/wiki/REST