Description du projet
TraduitPlus précisément, l'intégration doit transmettre automatiquement les commandes, factures, clients, produits et inventaire dans les deux sens. Une nouvelle commande dans la boutique doit apparaître dans le système comptable comme une facture ou une vente avec le client correctement lié ; un client créé ou modifié de chaque côté doit être associé, pas dupliqué ; et lorsque le stock change en raison d'une vente, d'un retour ou d'un ajustement manuel, l'autre système doit le prendre en compte. Nous attachons de l'importance à un mappage clair des champs — nous décidons donc comment les champs de la boutique se mappent aux champs comptables (taxes, SKU, méthodes de paiement, devises), et ce mappage peut être examiné et corrigé, pas une "boîte noire".
Étant donné que la synchronisation est bidirectionnelle, les conflits sont inévitables, et la manière dont vous les résolvez compte plus pour nous que la vitesse brute. Si le même client ou produit est modifié des deux côtés entre les exécutions, nous avons besoin de règles raisonnables, d'un choix de source de vérité pour chaque entité, et d'un journal montrant ce qui a changé, ce qui a été ignoré et ce qui a été escaladé pour un examen humain. Veuillez décrire comment vous allez construire la synchronisation (exécutions programmées plus temps quasi réel là où c'est critique), comment vous allez éliminer les doublons, comment vous allez récupérer si l'API comptable est en panne pendant une minute, et comment vous allez nous permettre de redémarrer en toute sécurité un lot échoué sans doubler les factures.
— Entités : commandes, factures, clients, produits, inventaire
— Échange bidirectionnel, source de vérité et journal des conflits pour chaque entité
— Mappage des champs éditable (taxe, SKU, devise, méthode de paiement)
— Réessais sûrs et redémarrages idempotents sans factures en double