Passer au contenu principal

Cartographie et transformation des données : gestion de différentes API et formats de données

Maîtrisez le mappage des champs, la normalisation des données, la conversion des unités, la gestion des devises et le mappage de la taxonomie des catégories dans les API de commerce électronique et les formats de données.

E
ECOSIRE Research and Development Team
|15 mars 202614 min de lecture2.8k Mots|

Chaque plateforme de commerce électronique parle un langage différent. Amazon envoie les commandes au format XML avec des objets d'adresse imbriqués. Shopify renvoie JSON avec des champs de chaîne plats. eBay utilise un mélange de REST et d'ancien XML-RPC.

Fait partie de notre série Intégration e-commerce

Lire le guide complet

Chaque plateforme de commerce électronique parle un langage différent. Amazon envoie les commandes au format XML avec des objets d'adresse imbriqués. Shopify renvoie JSON avec des champs de chaîne plats. eBay utilise un mélange de REST et d'ancien XML-RPC. WooCommerce intègre les métadonnées dans des tableaux clé-valeur. Votre ERP attend tout dans un format interne spécifique avec des types de données validés.

Le mappage et la transformation des données constituent la couche de traduction qui permet le fonctionnement de l'intégration multicanal. Faites les choses correctement et les données circulent silencieusement entre les systèmes. Si vous vous trompez, vous passerez des heures à déboguer pourquoi les numéros de téléphone des clients remplissent le champ de la ville ou pourquoi les poids des produits sont divisés par 2,2.

Points clés à retenir

  • Un modèle de données canonique (standard interne) élimine le mappage N-vers-N au profit du N-vers-1 plus 1-vers-N
  • Les erreurs de conversion d'unités sont le bug de mappage de données le plus courant et le plus coûteux dans le commerce électronique transfrontalier
  • Analyse défensive - valide chaque champ, par défaut chaque valeur manquante - évite les échecs en cascade
  • Versionnez vos mappages avec votre code ; Les modifications de l'API interrompent les intégrations en silence sans schémas versionnés

Le modèle de données canonique

Sans modèle canonique, connecter 5 canaux à votre ERP nécessite 10 mappages uniques (5 entrants + 5 sortants), chacun gérant les bizarreries de l'autre système. L'ajout d'un sixième canal nécessite 2 mappages supplémentaires.

Avec un modèle canonique, chaque canal mappe vers et depuis un seul format interne. L'ajout d'un sixième canal ne nécessite qu'un seul nouveau mappeur entrant et un nouveau mappeur sortant, quel que soit le nombre d'autres canaux existants.

Conception du modèle canonique

Votre modèle canonique doit être :

  • Superset de tous les canaux : incluez tous les champs dont un canal pourrait avoir besoin, même si certains canaux n'utilisent pas tous les champs.
  • Fortement typé : les dates sont ISO 8601, les poids sont en grammes, les devises utilisent les codes ISO 4217, les prix sont des nombres entiers (cents) et non des flottants.
  • Versionné : les modifications du schéma sont explicites et rétrocompatibles
  • Documenté : chaque champ a une description, un type de données, une règle de validation et un mappage source

Exemple : modèle d'ordre canonique

Un ordre canonique simplifié :

ChampTapezSource : ShopifySource : AmazoneSource : eBay
IDCommande externechaînecommande.idID de commande AmazonNuméro de commande
clientEmailchaînecommande.emailAcheteurInfo.AcheteurEmailTransactionArray.Transaction.Buyer.Email
Nom d'expéditionchaînecommande.adresse_expédition.nomAdresse d'expédition.NomAdresse d'expédition.Nom
lineItems[].skuchaîneline_items[].skuArticles de commande[].SellerSKUTransactionArray.Transaction.Item.SKU
lineItems[].quantitéentierline_items[].quantitéArticles de commande[].QuantitéOrderedTransactionArray.Transaction.QuantityPurchased
lineItems[].priceInCentsentierline_items[].prix * 100OrderItems[].ItemPrice.Amount * 100TransactionArray.Transaction.TransactionPrice * 100
monnaiechaîne (ISO 4217)commande.currencyCommandeTotal.CurrencyCodeTransactionArray.Transaction.AmountPaid.currencyID
méthode d'expéditionénumérationorder.shipping_lines[0].titleNiveau de service du navireShippingServiceSelected.ShippingService
Date de commandechaîne (ISO 8601)commande.created_atDate d'achatDate de création

Remarquez comment chaque source correspond à la même structure canonique. La transformation gère les différences de chemin (imbriqué ou plat), les différences de nom (camelCase vs PascalCase vs Snake_case) et les différences de format (dates, nombres, devises).


Défis et solutions courants en matière de cartographie

Le mappage de données regorge de cas extrêmes. Voici les problèmes les plus courants et comment les résoudre.

DéfiExempleSolutions
Champs manquantseBay n'envoie pas d'e-mail aux clients pour le paiement en tant qu'invitéChaîne vide par défaut, indicateur pour révision manuelle
Différents formats de datesShopify : ISO 8601, Amazon : ISO 8601, eBay : format US parfoisAnalyser avec une bibliothèque (dayjs, date-fns), toujours stocker au format ISO 8601
Prix ​​flottant ou entierShopify : « 19,99 » (chaîne), Amazon : 19,99 (flotteur)Multiplier par 100, arrondir, stocker sous forme de cents entiers
Fractionnement du nomUn champ : « John Smith » vs deux champs : premier/dernierDiviser sur le dernier espace, gérer les cas extrêmes (Jr., III, van der)
Formatage d'adresseUS : état sous forme de code à 2 lettres, UK : aucun état, DE : format différentNormaliser à une adresse structurée (ligne 1, ligne 2, ville, état, poste, pays)
Formats de numéros de téléphone"+1 (555) 123-4567" contre "5551234567" contre "+15551234567"Supprimez les non-chiffres, analysez avec libphonenumber, stockez au format E.164
Unités de poidsShopify : livres/onces, Amazon : configurable, eBay : varieConvertissez tout en grammes en interne, convertissez les flux sortants par canal
HTML dans les champs de texteDescription avec balises HTML vs exigence de texte brutSupprimer le HTML pour les canaux de texte brut, conserver pour les canaux HTML
Incompatibilités d'énumérationStatut de la commande : « Payé » vs « Terminé » vs « CONFIRMÉ »Mapper vers une énumération interne via une table de recherche
Chaîne nulle ou videCertaines API distinguent null (non fourni) de "" (explicitement vide)Normaliser à null en cas de manque, "" pour explicitement vide

Conversion d'unités

Les erreurs de conversion d’unités provoquent de réels dégâts financiers. Un produit répertorié à 2,2 kg sur votre site apparaissant comme 2,2 livres sur Amazon signifie que les estimations des frais d'expédition sont erronées, les calculs de poids volumétrique sont erronés et les clients reçoivent un produit deux fois plus lourd que prévu.

Conversion de poids

DeEn grammesEn oncesEn livresEn kilogrammes
1 gramme10,035270,0022050,001
1 once28.349510,06250,02835
1 livre453.5921610,45359
1 kilogramme100035.2742.204621

Règle : stockez tous les poids en grammes en interne. Convertissez les messages sortants en l'unité requise par chaque canal. Ne faites jamais confiance à l'étiquette de l'unité à partir des données entrantes : vérifiez que la valeur a du sens pour la catégorie de produit. Un ordinateur portable pesant 2 grammes est évidemment en kilogrammes.

Conversion des dimensions

Les dimensions sont tout aussi dangereuses. Amazon US s'attend à des pouces. Amazon DE attend des centimètres. Votre logiciel d'expédition peut avoir besoin de millimètres.

Règle : stockez toutes les dimensions en millimètres en interne. Convertissez les flux sortants par canal. Vérifiez que les dimensions sont physiquement plausibles.

Conversion de devises

La gestion multi-devises ajoute une autre couche. Votre modèle canonique stocke les prix dans la plus petite unité de la devise de base (cents pour USD, pence pour GBP, centimes pour EUR).

Pour les commandes transfrontalières, stockez à la fois le montant en devise d’origine et le montant en devise de base converti avec le taux de change utilisé. Cela crée une piste d'audit pour les écarts liés aux devises.


Modèles de normalisation des données

Les données brutes du marché sont compliquées. La normalisation le nettoie avant qu'il n'entre dans votre modèle canonique.

Normalisation du texte

  • Coupez les espaces : les espaces de début et de fin sont courants dans les réponses de l'API.
  • Normaliser Unicode : convertissez les caractères pleine chasse, les guillemets intelligents et les caractères spéciaux en leurs équivalents ASCII, le cas échéant
  • Standardisation de la casse : stockez les données internes dans une casse cohérente (par exemple, UPPER pour les codes de pays, Title Case pour les noms, Lower pour les e-mails)
  • Décodage d'entité HTML : &amp; à &, &lt; à <, etc.

Normalisation des adresses

Les adresses constituent le type de données le plus incohérent entre les canaux. Un pipeline de normalisation doit :

  1. Analysez les adresses en texte libre en composants structurés (rue, ville, état, poste, pays)
  2. Validez les codes postaux par rapport aux règles de format du pays
  3. Normalisez le pays selon les codes ISO 3166-1 alpha-2 (US, GB, DE – et non « États-Unis », « Royaume-Uni », « Allemagne »).
  4. Normaliser l'état/la province selon les abréviations standard
  5. Vérifier que les combinaisons ville/état/poste sont géographiquement cohérentes

Normalisation des SKU

Les SKU provenant de différentes sources peuvent utiliser différents formats pour le même produit :

  • Fournisseur : "ABC-001-BLK-L"
  • Amazone : "ABC001BLKL"
  • Shopify : "abc-001-noir-large"
  • eBay : "ABC 001 Noir L"

Votre modèle canonique doit utiliser un seul format SKU interne et maintenir une table de recherche mappant les formats SKU externes aux ID internes.


Gestion des formats d'API

Différentes API renvoient des données dans différents formats. Votre couche de transformation doit tous les gérer.

JSON (Shopify, Walmart, boutique TikTok)

La plupart des API modernes utilisent JSON. L'analyse est simple, mais faites attention :

  • Précision numérique : les nombres JSON peuvent perdre en précision pour les grands entiers (ID d'ordre supérieurs à 2^53). Analyser sous forme de chaînes si nécessaire.
  • Structures imbriquées : Shopify imbrique les adresses de livraison dans les commandes à l'intérieur de la réponse. Utilisez une navigation de chemin appropriée.
  • Pagination : basée sur un curseur (Shopify) ou basée sur une page. Gérez la limitation du débit entre les pages.

XML (rapports Amazon SP-API, eBay)

XML ajoute de la complexité avec les espaces de noms, les attributs par rapport aux éléments et les déclarations de codage.

  • Gestion des espaces de noms : les rapports Amazon utilisent des espaces de noms XML qui doivent être enregistrés avant que les requêtes XPath ne fonctionnent
  • Sections CDATA : le contenu du texte peut être enveloppé dans CDATA, que certains analyseurs suppriment et d'autres préservent
  • Encodage des caractères : toujours analyser en UTF-8. Certains flux existants déclarent ISO-8859-1.

CSV/TSV (Google Shopping, fichiers plats Amazon)

Les chaînes basées sur le flux acceptent les données tabulaires.

  • L'ordre des colonnes est important : certains flux dépendent de la position et non de l'en-tête.
  • Echaping : Les champs contenant des virgules doivent être mis entre guillemets. Les champs contenant des guillemets doivent utiliser des guillemets doubles.
  • Encodage : BOM (Byte Order Mark) au démarrage du fichier provoque des échecs d'analyse sur certains systèmes. Dénudez-le.
  • Fin de ligne : Windows (CRLF) vs Unix (LF). Normalisez avant l'analyse.

EDI (commerce de détail d'entreprise, 3PL)

L'échange de données informatisées est toujours utilisé par les grands détaillants et les 3PL. Les documents EDI (bon de commande 850, préavis d'expédition 856, facture 810) utilisent des formats à largeur fixe ou séparés par des délimiteurs définis par les normes X12 ou EDIFACT.


Gestion des erreurs dans la transformation

Lorsque les données ne correspondent pas à votre schéma attendu, la couche de transformation doit décider : échec, défaut ou indicateur.

Matrice de stratégie

Type d'erreurStratégieExemple
Champ obligatoire manquantÉchouer (rejeter l'enregistrement)Commande sans email client
Champ facultatif manquantValeur par défautAucun numéro de téléphone – valeur par défaut null
Format invalideTentative de correction, signaler si impossibleDate "15/03/2026" analysée comme ISO
Valeur hors plageSignaler pour examenPoids de 0 grammes (probablement manquant)
Valeur d'énumération inconnueCarte vers "autre", signaler pour examenNouveau mode d'expédition non recherché
Problèmes d'encodageNettoyer et enregistrerMojibake dans les titres de produits
Incompatibilité de version du schémaTransformer à l'aide de l'adaptateur de versionRéponse de l'API v2 au gestionnaire v3

Pipeline de validation

Chaque enregistrement doit passer par un pipeline de validation après transformation :

  1. Validation du schéma : l'enregistrement correspond-il à la structure attendue ?
  2. Validation de type : les nombres sont-ils en réalité des nombres, les dates sont-elles en fait des dates ?
  3. Validation des règles métier : le total de la commande est-il positif ? L'adresse de livraison se trouve-t-elle dans un pays que vous desservez ?
  4. Validation référentielle : Le SKU existe-t-il dans votre catalogue produits ?

Les enregistrements dont la validation échoue sont mis en quarantaine – stockés dans une file d’attente d’erreurs pour examen manuel plutôt que supprimés silencieusement ou traités avec des données incorrectes.

Pour surveiller ces échecs de validation, voir Integration Monitoring.


Gestion des versions et des modifications

Les API changent. Shopify introduit une nouvelle version de l'API chaque trimestre. Amazon met régulièrement à jour les modèles SP-API. eBay abandonne les anciens points de terminaison. Votre couche cartographique doit gérer ces modifications sans temps d'arrêt.

Stratégie de gestion des versions

  • Épingler les versions de l'API : spécifiez toujours la version de l'API que vous appelez. Shopify vous permet de demander 2025-01. Amazon SP-API utilise des versions de modèle datées.
  • Versionnez vos mappeurs : lorsqu'une API de canal change, créez une nouvelle version du mappeur plutôt que de modifier celle existante. Exécutez les deux versions en parallèle pendant la transition.
  • Tests de régression automatisés : pour chaque mappeur, conservez un ensemble d'échantillons d'entrées et de sorties attendues. Lorsqu'un mappeur change, les tests détectent les régressions involontaires.
  • Surveillance des dépréciations : abonnez-vous aux journaux de modifications de l'API et aux notifications d'extinction. Planifiez les migrations 60 jours avant les dates d'obsolescence.

Pour l'architecture d'intégration complète, consultez l'article pilier : Le guide ultime d'intégration du commerce électronique.


Questions fréquemment posées

Comment gérer les champs qui existent sur un canal mais pas sur un autre ?

Votre modèle canonique inclut le sur-ensemble de tous les champs. Lors de la transformation de données entrantes provenant d'un canal dépourvu de champ, définissez-le sur null ou sur une valeur par défaut raisonnable. Lors de la transformation d'un message sortant vers un canal qui n'accepte pas de champ, omettez-le simplement. Le modèle canonique agit comme un traducteur universel : toutes les langues n’ont pas un mot pour chaque concept, et c’est très bien.

Quelle est la meilleure bibliothèque pour la transformation de données dans une pile Node.js ?

Pour les transformations JSON, des bibliothèques comme JSONata, Lodash (pour l'accès et la manipulation du chemin) et Zod (pour la validation) couvrent la plupart des besoins. Pour XML, utilisez fast-xml-parser pour l'analyse et xmlbuilder2 pour la construction. Pour CSV, Papa Parse gère bien les cas extrêmes. Pour les pipelines ETL complexes, envisagez Apache NiFi ou des fonctions de transformation personnalisées avec des tests unitaires approfondis.

Comment tester les mappages de données sans accéder aux API en direct ?

Enregistrez de vraies réponses API sous forme d'appareils et utilisez-les dans des tests unitaires. Chaque mappeur doit disposer d'une suite de tests complète avec des exemples réels, des cas extrêmes (champs vides, longueurs maximales, caractères spéciaux) et des cas d'erreur (données mal formées). Exécutez ces tests dans CI/CD sur chaque validation qui modifie le code de mappage. Des outils comme Nock (Node.js) ou WireMock (Java) peuvent simuler les points de terminaison de l'API pour les tests d'intégration.

Dois-je utiliser un outil ETL ou écrire un code de transformation personnalisé ?

Pour les intégrations de commerce électronique standard avec des plates-formes connues, le code personnalisé dans votre couche d'application (Node.js/TypeScript ou Python) est plus maintenable qu'un outil ETL distinct. Les plateformes ETL (Fivetran, Airbyte, Apache NiFi) ajoutent de la valeur lorsque vous intégrez plus de 20 sources de données avec des pipelines de transformation complexes. Pour les intégrations de commerce électronique de 3 à 8 canaux, les mappeurs spécialement conçus avec une bonne couverture de tests sont plus simples et plus déboguables.


Quelle est la prochaine étape

Le mappage des données est la base peu glamour qui rend l'intégration multicanal fiable. Lorsque votre couche de transformation gère chaque cas limite avec élégance, le reste de votre pile d'intégration fonctionne sur des données propres, cohérentes et validées — et les sessions de débogage de fin de soirée disparaissent.

Explorez les services d'intégration d'ECOSIRE pour des mappeurs de données prédéfinis connectant Odoo à plus de 15 marchés, ou contactez notre équipe pour discuter des exigences de transformation personnalisées pour votre intégration.


Publié par ECOSIRE — aider les entreprises à évoluer grâce à des solutions basées sur l'IA dans Odoo ERP, Shopify eCommerce et OpenClaw AI.

E

Rédigé par

ECOSIRE Team

Rédaction technique

L'équipe de rédaction technique d'ECOSIRE traite d'Odoo ERP, de l'e-commerce avec Shopify, des agents IA, de l'analytique avec Power BI, de l'automatisation avec GoHighLevel et des bonnes pratiques du logiciel d'entreprise. Nos guides aident les entreprises à prendre des décisions technologiques éclairées.

ECOSIRE

Faites évoluer votre boutique Shopify

Services de développement, d'optimisation et de migration personnalisés pour le commerce électronique à forte croissance.

Plus de Intégration e-commerce

Commerce composable : le guide de l'architecture MACH pour 2026

Maîtrisez le commerce composable avec l'architecture MACH en 2026. Apprenez les microservices, les API-first, les stratégies cloud natives et sans tête pour un commerce électronique évolutif.

Connecteur eBay Odoo : référencement, commandes et synchronisation de l'inventaire

Configurez le connecteur Odoo eBay pour Odoo 19. Gérez les annonces, automatisez la synchronisation des commandes, synchronisez l'inventaire, gérez les retours et gérez les comptes eBay multi-boutiques depuis Odoo.

Gestion des retours et des échanges sur Shopify

Guide complet de la gestion des retours Shopify : conception de politiques, flux de travail automatisés, logistique inverse, traitement des échanges et réduction rentable des taux de retour.

Headless Shopify avec Hydrogen : créez des vitrines personnalisées hautes performances

Guide complet pour créer des vitrines Shopify sans tête avec le framework Hydrogen couvrant Remix, l'API Storefront, l'hébergement Oxygen et l'optimisation des performances.

Synchronisation des stocks multicanaux : éviter les ruptures de stock et les ventes excessives

Guide de synchronisation de l'inventaire multicanal. Couvre les méthodes de synchronisation en temps réel, l'allocation des stocks de sécurité, l'intégration ERP, la prévention des ventes excessives et la gestion des entrepôts.

Architecture de commerce sans tête : découpler le frontend du backend

Comparez le commerce sans tête et monolithique, explorez la conception axée sur l'API avec l'API Shopify Storefront, les interfaces Next.js et les options de plateforme de commerce moderne.