Software de sincronização entre o Sage e uma Loja Online, ao nível de produtos e encomendas pagas.
Com este programa desenvolvido à medida, pretendeu-se automatizar processos internos, minimizar erros.
Estamos a falar de uma loja online com mais de 14 000 produtos activos.
Sincronização de Produtos
Simplificando, sempre que no Sage é alterado um produto, este é actualizado automaticamente na loja online. Iso é, os produtos da loja online são editados no Sage.
Os campos dos produtos exportados do Sage para a loja online são: preço, stock, título, categoria, descrição, activo/não activo.
Com esta abordagem, a base de dados online reflecte a tabela de produtos do Sage.
Sincronização de Encomendas
Importação automática das encomendas pagas da loja online para o Sage.
Posteriormente, no Sage, através da validação manual de um operador, as encomendas são convertidas em fatura.
Screenshot do programa de Sincronização
Estamos a falar de um programa que corre no sistema operativo Microsoft Windows (servidor ou desktop), com uma interface mais ou menos minimalista, e confesso, uma interface que não deslumbra. É por causa deste tipo de softwares que os programadores são mal vistos em termos de usabilidade :)
O objectio foi criar um programa robusto, que corra 24 sobre 24 horas nos servidores do cliente de forma autónoma, sem qualquer intervenção humana.
Para além da sincronização propriamente dita, o programa tem uma série de funcionalidades e relatórios, de modo a detectar problemas na sincronização.
Como se pode ver pela imagem o praprama tem uma série de contadores, responsáveis pela sincroniação dos produtos, stock e preço e encomendas. Este contadores, que podem ser regulados, é que vão determinar o tempo de actualização dos produtos/encomendas. Por exemplo o stock/preço pode estar programado para sincronizar de minuto a minuto.
Módulos do software de Sincronização
Como vimos, o software de sincronização entre o Sage e a loja online, tem 2 módulos principais, Produtos e Encomenda.
1. Módulo de Produtos
Sincronização dos produtos entre o Sage e a loja online.
Todos os produtos marcados no Sage para exportar para a loja online, são criados e actualizados automáticamente na loja online. Toda a edição dos produtos, à excepção das imagens dos produtos é realizada no Sage.
A bem da verdade, há uma percentagem muito pequena de produtos, que pela sua especificidade são editados de forma autónoma na loja online. Isto é, sem ligação directa á tabela de produtos do Sage.
As categorias e subcategorias, que são diferentes entre o Sage e a Loja Online, sofrem um mapemaneto. Isto porque as categorias da loja são a base da navegação com grande repercurções na interface. No Sage, estão classificados com uma lógica diferente e com uma classificação nunca tendo em vista uma loja online. Isto é, a organização dos produtos nas várias categorias, não reflecte da melhor forma as necessidades de quem vai comprar online.
2. Módulo de Encomendas e Clientes
Durante este processo verifica se o cliente já existe e se não existir, cria. Aqui foi preciso criar um algorimo prórprio para mapear os clientes da loja com o do Sage, através do email e número de contribuinte, porque nestas situações há sempre colisões de dados. Isto porque o estamos a falar de uma empresa que não vende exclusivamente online.
Um aspecto importante é que sempre que é importada uma encomenda paga para o Sage, é preciso chamar uma API específica da loja online, para indicar que essa encomenda já foi importada. Na prática, o programa de sincronização vai perdir à loja online as encomendas pagas, por importar.
Integração Sage
A maior dificuldde com a integração com o Sage, prendeu-se com a falta de documentação das DLL's.
Optamos por usar directamente a base de dados Microsoft SQL do Sage sempre que é necessário ler informação. Muito mais rápido e controlável. No entanto sempre que é necessário alterar os dados no Sage, terá que ser via DLL. Por questões legais e para manter a coerência da base de dados do Sage.
O Software de integração gasta uma licença de utilizador do Sage, sempre que realiza alguma operação sobre as dll (inserir encomendas). Significa, que se o utilizador estiver a ser usado, udrante uma operação sobre o Sage não pode efectuar a respectiva importação.
Um dos maiores problemas de um software como este, é que é preciso estar atento sempre que há novas versões do Sage, que podem exigir um pequeno ajuste ao software, para incorporar as eventuais novas DLL's do Sage.
Conclusão
Posso afirmar que integração foi muito bem sucedida, mas exigiu um grande esforço de ambas as partes.
A integração/sincronização de uma loja online com o Sage (extensível a outras plataformas de faturacao), exige alguma resiliência e uma boa coordenação/comunicação entre quem desenvolve e o cliente.