Aller au contenu principal
Beta de lancement — ExcelifyXML vient d'ouvrir ! Un avis, un bug, une idée ? Écrivez-nous — on lit tout.
← Tous les guides

7 min de lecture

Modifier un catalogue XML Salesforce Commerce Cloud (SFCC) dans Excel

Par Quentin Delepierre, consultant Salesforce Commerce Cloud

Business Manager importe et exporte en XML, les équipes catalogue travaillent dans Excel. Ce guide montre comment passer de l'un à l'autre sans script : ce que deviennent vos produits, prix et stocks dans le tableur, et comment réimporter le résultat.

Business Manager ne parle que XML

Dans Salesforce B2C Commerce (SFCC, ex-Demandware), les catalogues, les listes de prix, les stocks et les bibliothèques de contenus s'importent et s'exportent en XML, selon les schémas de la plateforme.

Or les modifications de masse arrivent dans des tableurs : traductions à reprendre, dates de mise en ligne à décaler, attributs à compléter, prix à corriger. Sans outil, il reste deux options : faire écrire le XML par un développeur, ou le modifier à la main dans un éditeur de texte, au risque d'un import rejeté pour une balise mal fermée.

Quels exports SFCC fonctionnent

  • Catalogue (produits et catégories) : une ligne par produit. Si le fichier contient aussi des catégories, une colonne _type indique pour chaque ligne s'il s'agit d'une catégorie ou d'un produit. Pour ne travailler que sur les produits, choisissez product via « Pas la bonne ligne ? » : les catégories ne sont plus dans le CSV, mais elles restent telles quelles dans le XML reconstruit.
  • Liste de prix (pricebook) : l'aperçu propose une ligne par prix (price-table), avec l'identifiant du produit et le montant. Pour une toute petite liste de quelques prix, il peut annoncer une seule ligne : choisissez alors price-table via « Pas la bonne ligne ? ». L'en-tête de la liste (identifiant, devise) est conservé tel quel et réécrit à la reconstruction. Un fichier qui contient plusieurs listes de prix doit être découpé, une liste par fichier.
  • Stock (inventory-list) : une ligne par produit (record) quand le fichier ne contient qu'un entrepôt. S'il en contient plusieurs, l'aperçu propose une ligne par entrepôt : pour une ligne par produit, tapez record dans « Autre balise », sous « Pas la bonne ligne ? ». Une colonne donne alors l'identifiant de l'entrepôt et chacun garde son propre en-tête.
  • Bibliothèque de contenus (library) : dossiers et contenus, avec la même colonne _type que pour le catalogue.

À quoi ressemble le CSV

Chaque élément ou attribut du produit devient une colonne. Les valeurs traduites prennent une colonne par langue : display-name[fr-FR], display-name[x-default]. Les attributs XML commencent par @ : @product-id. Dans le fichier CSV, ces en-têtes s'écrivent avec une apostrophe devant ('@product-id), une protection contre les formules : laissez-la, la reconstruction la retire. Les drapeaux comme online-flag restent des colonnes true / false.

Les éléments répétés sont numérotés dans l'ordre du fichier : images.image-group[0], images.image-group[1]…, chacun avec sa colonne .@view-type.

Extrait d'un export catalogue SFCC
<product product-id="25502228">
    <ean>5060155242347</ean>
    <display-name xml:lang="x-default">Striped Silk Tie</display-name>
    <display-name xml:lang="fr-FR">Cravate en soie rayée</display-name>
    <online-flag>true</online-flag>
    <brand>Marquee</brand>
</product>
Les colonnes obtenues (extrait)
@product-id ; ean ; display-name[x-default] ; display-name[fr-FR] ; online-flag ; brand
25502228 ; 5060155242347 ; Striped Silk Tie ; Cravate en soie rayée ; true ; Marquee

Le cas des attributs personnalisés

Quand chaque attribut personnalisé n'apparaît qu'une fois par produit, il prend son identifiant comme nom de colonne : custom-attributes.custom-attribute[refinementColor]. C'est le cas le plus simple.

Un attribut traduit (le même attribute-id en x-default et en fr-FR) donne une colonne par langue, comme les textes : custom-attributes.custom-attribute[seo_url][x-default], custom-attributes.custom-attribute[seo_url][fr-FR]. Chaque colonne contient le même attribut pour tous les produits : une modification en masse se fait directement dans la colonne. Pour ajouter une traduction à un produit qui n'en a pas, remplissez sa cellule dans la colonne de la langue : la reconstruction crée la balise avec son attribute-id et son xml:lang. Seules les langues présentes dans l'export ont une colonne.

Une exception : si un même attribut apparaît deux fois dans la même langue pour un produit, le bloc est numéroté, dans l'ordre du fichier. Chaque attribut occupe alors plusieurs colonnes : son nom (custom-attribute[0].@attribute-id), sa langue (@xml:lang) et sa valeur (custom-attribute[0]), et le même numéro peut désigner un attribut différent d'un produit à l'autre. Lisez le nom dans la colonne @attribute-id voisine et filtrez sur cette colonne avant de modifier : la reconstruction remet toujours la valeur sous le bon attribut. Le classeur Excel autonome numérote encore les attributs traduits de cette façon.

Les étapes

  1. Exportez l'objet depuis Business Manager (catalogue, liste de prix, stock ou bibliothèque) et récupérez le fichier XML.
  2. Déposez-le sur la page Upload d'ExcelifyXML. L'aperçu gratuit montre la ligne détectée, le nombre de lignes et de colonnes, et les premières valeurs. Vérifiez qu'il y a bien un produit (ou un prix, ou un stock) par ligne, puis confirmez (1 crédit).
  3. Ouvrez data.csv dans Excel. Si le fichier contient des codes EAN ou UPC, importez-les en Texte (Données › À partir d'un fichier texte/CSV) pour qu'Excel ne les transforme pas.
  4. Faites vos modifications : valeurs, traductions, dates, lignes ajoutées ou supprimées.
  5. Sur la page Reconstruction, choisissez « Fichiers séparés » et déposez le data.csv modifié avec son skeleton.json. Vous récupérez le XML, avec la racine, l'espace de noms et l'en-tête du fichier d'origine.
  6. Importez-le dans Business Manager, d'abord sur une sandbox ou un environnement de test.

Réimporter dans Business Manager

  • Choisissez le mode d'import en connaissance de cause. Merge met à jour ce que contient le fichier et laisse le reste en place ; Replace remplace chaque objet par sa version du fichier. Pour une modification de masse sur un fichier complet, Merge est le choix prudent.
  • Business Manager valide le fichier contre le schéma avant l'import et liste les erreurs dans le journal : commencez toujours par un environnement de test.
  • Une ligne supprimée du CSV disparaît du XML. En mode Merge, cela ne supprime pas le produit dans SFCC : il n'est simplement pas modifié.
  • Les balises vides auto-fermantes sans attribut (<upc/>) disparaissent au passage par le CSV : l'aperçu vous prévient quand votre fichier en contient. Une balise auto-fermante qui porte un attribut est conservée.

Les pièges qu'ExcelifyXML gère pour vous

  • Booléens : Excel réécrit true / false en TRUE / FALSE, ou VRAI / FAUX en français, ce que le schéma SFCC refuse. Dans les colonnes qui ne contenaient que true / false, la reconstruction remet les valeurs en minuscules.
  • Retours chariot : les &#13; des descriptions et des attributs JSON sont conservés, comme dans le fichier d'origine.
  • Codes EAN et UPC : si Excel en a mis un en notation scientifique (3,61235E+12), la reconstruction s'arrête et montre la colonne et les lignes concernées, au lieu de produire un catalogue faux.
  • Dates ISO (2026-09-01T00:00:00.000Z) : Excel les laisse en texte, elles reviennent telles quelles. Une date réécrite dans un autre format arrête la reconstruction.
  • Descriptions HTML : les valeurs qui contiennent du balisage sont réécrites en CDATA, le XML reste valide.

Et les gros catalogues ?

Un export catalogue SFCC dépasse vite 4 Mo. Le forfait gratuit transforme jusqu'à 4 Mo, le forfait VIP jusqu'à 30 Mo. Au-delà, ou pour ne consommer qu'un crédit, transformez un échantillon qui contient tous les champs utilisés, puis reconstruisez le fichier complet avec le même skeleton.json.

Transformez votre export Business Manager en CSV éditable :

Transformer un fichier