Outil de Facturation Centralisée Multi-plateformes

En tant que prestataire technique pour un client vendant des pneus au niveau B2B, nous gérons plus de 40 plateformes web distinctes générant des commandes. Les utilisateurs de ces plateformes sont parfois les mêmes, parfois différents.

La facturation multi-plateformes était donc un parcours long et compliqué chaque mois. Comme on peut s’y attendre, notre client nous a rapidement demandé de venir avec une proposition d’outil, ce que nous avons fait.

Le défi était le suivant; nous avons dû créer un outil de facturation centralisé C entralised I nvoicing T ool ( CIT ) pour toutes ces plates-formes, sachant que :

  • Certains utilisateurs étaient enregistrés sur plusieurs sites Web.
  • Nous avons dû créer le processus pour être conforme à la loi tout en étant capable de s’adapter aux problèmes de la vie réelle.
  • Les plates-formes peuvent avoir différents types, informations, structures, au niveau commercial et technique.
  • Les plateformes étant basées dans plusieurs pays, le CIT devait être multi-langues et multi-devises.
  • Notre client devait être autant que possible indépendant en cas de problème, car la facturation est toujours un moment délicat.

Portable et générique

Le tout premier défi technique majeur a été la communication entre le CIT et les plateformes, sachant que les différences entre ces plateformes se retrouvent à tous les niveaux de la structure:

  • Clients
  • Fournisseurs
  • Commandes
  • Produits

Mais cette communication devait également être aussi générique que possible pour pouvoir l’appliquer facilement et à faible coût sur chaque nouveau site Web potentiel.

Nous avons ainsi créé une API en JSON qui avait globalement la même structure sur toutes les plateformes, à l’exception des quelques différences possibles. Ceci fixe pour le point de vue portable.

Au niveau CIT de l’autre côté, une configuration a été donnée à l’administrateur pour pouvoir définir pour chaque entité au niveau de la plateforme (comme “Client”, “Commande”, “Produit”, “Fournisseur” , …) quel champ était disponible ou utilisé sur la plateforme où l’appel devait être effectué. De cette façon, nous avions une manière générique d’appeler la même structure d’API avec différents champs.

D’un autre côté, comme un utilisateur pouvait être enregistré sur différentes plates-formes, mais avec quelques différences sur chaque plate-forme (par exemple, le nom d’utilisateur), à chaque niveau d’entité, certaines configurations d’attributs ont été rendues possibles pour pouvoir s’adapter à un endroit (le CIT) pour plusieurs plateformes.

Sécurité

Bien sûr, lorsqu’il s’agit d’échanger des données sensibles ou privées, la sécurité est une préoccupation. Au niveau de l’API, une clé cryptée privée est utilisée pour chaque appel.

Au niveau CIT, plusieurs utilisateurs peuvent être créés avec des droits spécifiques , disponibles par section et par pages.

Conformité légale

Les factures et notes de crédit et les données qui y sont contenues sont des documents officiels, ce qui signifie qu’une fois créées et envoyées à un client, elles ne peuvent plus être modifiées. Notre ICT a été conçue pour empêcher toute modification une fois que le document est officiellement publié .

Cependant, la réalité peut apporter quelques exceptions . Par exemple, une facture manuelle ou une note de crédit manuelle peut être effectuée en dehors de l’outil, et le numéro de facture ou de note de crédit n’est alors pas similaire sur l’outil lui-même. Certaines configurations sont disponibles dans l’infrastructure pour pouvoir gérer de tels cas concrets.

Pour prouver l’origine des données , chaque appel et importation d’API sont enregistrés dans des journaux avec la plate-forme associée, les données reçues et la date / heure des appels.

Gestion globale

Parfois, lorsque vous créez une toute nouvelle application, des choses imprévisibles se produisent . Ici, une belle solution a émergé.

Comme cet outil centralisait toutes les plates-formes de ce client, connectant la plupart des données entre elles, avec quelques lignes de code supplémentaires, cette application va devenir non seulement un outil de facturation centralisé , mais un outil global de gestion des données .

Toutes les données éditées sur le CIT lui-même sont désormais facultativement envoyées aux sites Web associés, ce qui permet d’éditer une seule fois un client, un fournisseur ou un produit sur plusieurs plates-formes. Et de la manière dont elles ont été créées, même des données spécifiques pourraient être gérées facilement!

Conclusion

Notre CIT, réalisé avec Symfony , permet désormais beaucoup plus que ce qui avait été demandé au début , et peut en même temps gérer la plupart du temps tous les scénarios possibles dans les affaires nationales et internationales , mais aussi permettre aux propriétaires de la plate-forme, s’ils le souhaitent, de centraliser toutes les données possibles en un seul point , et de pouvoir toujours pour le modifier sur les différentes origines de ces données .