— Documentation
Comment ça marche ?
Le workflow complet : transformation XML → édition CSV → reconstruction du XML, 100 % en ligne. Sans tiers, sans stockage, sans installation.
Démarrage rapide
Glissez votre XML, récupérez un fichier .excelify (ZIP), modifiez le CSV dans Excel/Numbers/Sheets, reconstruisez le XML en un clic. Reconstructions illimitées, vous payez seulement pour analyser la structure.
Vue d'ensemble
ExcelifyXML analyse la structure de votre XML, génère un CSV éditable + un manifest qui décrit la structure d'origine, et vous permet de reconstruire le XML en ligne après modification.
Glissez votre fichier XML. Notre algorithme v13 détecte automatiquement la balise de ligne, gère les multi-locales, les attributs SFCC, les wrappers imbriqués.
Vous récupérez un seul fichier ZIP contenant : data.csv (vos données éditables) et skeleton.json (la structure XML).
Modifiez le CSV où vous voulez. Reconstruisez le XML via /reconstruct — en ligne, sur tous les OS. Aucune limite sur le nombre de reconstructions.
Le round-trip XML ↔ CSV
Régénérez votre XML après édition directement sur le site : glissez votre bundle modifié, récupérez le XML.
Reconstruction web
Glissez votre .excelify modifié sur la page /reconstruct. Le serveur lit le manifest, applique vos modifications, vous renvoie le XML reconstitué. Fonctionne sur Mac, Linux, Windows, Chromebook. Aucun setup.
Pourquoi un manifest ?
Le skeleton.json contient toutes les infos que le CSV ne peut pas porter à plat : racine, namespaces, encoding, wrappers intermédiaires, ordre des éléments, attributs hérités. Sans lui, on perdrait la structure. C'est lui qui rend le round-trip fidèle. Ne le modifiez jamais.
Reconstructions illimitées
Une transformation = 1 crédit = 1 manifest. Avec ce manifest, vous pouvez modifier votre CSV et reconstruire le XML autant de fois que vous voulez, gratuitement. Vous payez pour analyser la structure, pas pour la régénérer.
Structure du fichier CSV
Le CSV généré utilise une nomenclature spéciale pour préserver la structure XML :
| Pattern | Signification | Exemple |
|---|---|---|
@attribut | Attribut direct sur l'élément | @category-id → ‹category category-id="..."› |
element[lang] | Élément avec attribut xml:lang | display-name[fr] → ‹display-name xml:lang="fr"›...‹/display-name› |
element[id] | Élément avec attribute-id (custom-attributes) | custom-attribute[showInMenu] → ‹custom-attribute attribute-id="showInMenu"›... |
parent.child | Élément imbriqué | page-attributes.page-title[x-default] → ‹page-attributes›‹page-title›... |
tag[N].sub | Élément répété (indexé à partir de 0) | skill[0].@name = 1er ‹skill›, skill[1].@name = 2e ‹skill› |
ancestor.@attr | Attribut d'un élément ancêtre (contexte dénormalisé) | company.@country → ‹company country="FR"›‹employees›... |
tag[id][lang] | Multi-qualifier (Salesforce Commerce + multilingue) | custom-attribute[seo_url][fr] → ‹custom-attribute attribute-id="seo_url" xml:lang="fr"›... |
@attributAttribut direct sur l'élément
@category-id → ‹category category-id="..."›element[lang]Élément avec attribut xml:lang
display-name[fr] → ‹display-name xml:lang="fr"›...‹/display-name›element[id]Élément avec attribute-id (custom-attributes)
custom-attribute[showInMenu] → ‹custom-attribute attribute-id="showInMenu"›...parent.childÉlément imbriqué
page-attributes.page-title[x-default] → ‹page-attributes›‹page-title›...tag[N].subÉlément répété (indexé à partir de 0)
skill[0].@name = 1er ‹skill›, skill[1].@name = 2e ‹skill›ancestor.@attrAttribut d'un élément ancêtre (contexte dénormalisé)
company.@country → ‹company country="FR"›‹employees›...tag[id][lang]Multi-qualifier (Salesforce Commerce + multilingue)
custom-attribute[seo_url][fr] → ‹custom-attribute attribute-id="seo_url" xml:lang="fr"›...Bonnes pratiques
Pour que la reconstruction XML fonctionne correctement, respectez ces règles.
Ce que vous pouvez faire
- Modifier les valeurs des cellules (titres, descriptions, prix...)
- Ajouter des lignes pour créer de nouveaux éléments XML
- Supprimer des lignes pour retirer des éléments du XML final
- Filtrer ou trier — le résultat respecte l'ordre courant
À ne jamais faire
- Modifier les en-têtes (1ère ligne) — ce sont les chemins XML
- Changer le type d'une colonne (texte ↔ nombre)
- Enregistrer dans un autre format que CSV — le fichier réimporté doit rester data.csv
- Fusionner des cellules ou ajouter des feuilles supplémentaires
Résolution de problèmes
« Ordre des champs canonique » dans les warnings
Solution : Information, pas erreur. Vos lignes XML avaient des ordres de champs différents. Nous avons pris l'ordre de la première ligne comme référence. Le XML reconstitué reste 100% valide — l'ordre des champs n'a pas d'importance sémantique pour Google, Akeneo, SFCC ou Magento.
« Balises vides non préservées » dans les warnings
Solution : Votre XML contient des balises type <sale_price/> ou <upc/> (vides, auto-fermantes). En pratique, ce n'est pas un problème : WooCommerce, PrestaShop, Magento, Akeneo et autres systèmes d'import traitent l'absence d'un champ comme « ne pas modifier la valeur existante » — le même comportement qu'une balise vide. Si vous voulez forcer un effacement, écrivez « 0 » ou un espace dans la cellule.
Le XML reconstruit est différent de l'original
Solution : Sans modification de votre part, le XML reconstruit doit être structurellement identique. Si ce n'est pas le cas (ordre des éléments, attributs perdus), contactez le support avec votre fichier d'origine — c'est un bug à corriger.
Encore bloqué ?
Notre équipe répond sous 24h ouvrables. Vous pouvez aussi tester un autre fichier en attendant.
