Eofferix reçoit des fichiers XML/YML et des réponses XML/YML. Les données peuvent être chargées une fois, reçues automatiquement depuis une pièce jointe email, récupérées par URL directe, par URL avec autorisation, via FTP/FTPS/SFTP ou depuis l’API fournisseur.
Après le chargement du fichier source, le service crée un snapshot XML qui sert à configurer la structure du résultat. XML/YML peut ensuite être transformé en JSON, tableaux CSV/XLSX, autre XML/YML avec éléments, attributs et valeurs modifiés, ou importé dans les applications prises en charge par le service.

Fonctionnement Du Snapshot XML
Après le chargement du fichier source, Eofferix l’analyse et le transforme en snapshot court avec éléments uniques, attributs et exemples de valeurs. Si le document contient mille produits, le snapshot affiche un élément répété type au lieu de mille branches identiques.
Dans le snapshot, vous pouvez renommer les éléments et attributs, modifier la structure, retirer les branches inutiles, créer de nouveaux noeuds et configurer des règles de transformation. YML est traité de la même façon : le service lit catalogue, catégories, offres, prix, stocks et paramètres comme une structure XML.
Ce Qui Peut Être Transformé
- Renommer des éléments et attributs. Dans le XML lui-même, un attribut s’écrit sans
@:<offer id="A-100">. Dans les chemins et listes Eofferix, il apparaît comme@id; il peut être renommé pour obtenir<product external_id="A-100">, et<name>peut devenir<title>. - Filtrer les enregistrements. Garder seulement les offres avec
@available = true, les produits dont le stock est supérieur à zéro ou les éléments d’une catégorie donnée. - Modifier l’imbrication. Déplacer un prix depuis un attribut vers un élément séparé, regrouper les valeurs
<param>en caractéristiques et placer les images dans le conteneur attendu. - Calculer des valeurs. Calculer un prix avec marge, un pourcentage de remise, un chemin de catégorie, une date d’import ou une valeur basée sur un noeud XML voisin.
- Transformer les images. Convertir les images en
jpg/png/webp, les redimensionner ou appliquer un filigrane. - Importer dans une application. Relier les éléments et attributs XML aux champs d’un catalogue, CMS, CRM, marketplace ou autre destination prise en charge.

Exemples De Transformations
L’outil de transformation permet de modifier fortement le XML/YML final : filtrer les éléments inutiles, renommer noeuds et attributs, créer une nouvelle structure, calculer des valeurs par règles et préparer le résultat pour un site, une marketplace, un PIM ou un système interne.
Ce Que Fait L’exemple De Prix
Les règles ci-dessous sont séparées par étapes. Chaque capture montre seulement la ligne de règle responsable de l’étape courante.
1. On supprime d’abord les espaces dans la valeur du prix. C’est utile lorsque le fournisseur envoie le prix comme texte, par exemple 12 990, dans un noeud XML.

2. Si le prix n’est pas vide, le service l’augmente de 15 %. Cela ajoute une marge sans modifier le XML source.

3. Ensuite, la règle regarde un autre noeud du document : /catalog/items/stock/qty. Si le stock est inférieur à 5, le prix est remplacé par 0.

4. Une autre règle utilise le noeud /catalog/items/brand : pour TestBrand, le prix est en plus multiplié par 1,5.

5. À la fin, le résultat est arrondi à une décimale selon les règles standard.

Exemple Simple : Renommer Les Éléments Et Garder Les Produits Actifs
Dans cet exemple, nous prenons les éléments répétés catalog.items.item, gardons seulement les produits actifs et adaptons les noms d’éléments au format d’export cible.
<catalog>
<items>
<item id="A-100" active="true">
<name>Fauteuil Nordic</name>
<brand>Nordic Home</brand>
<prices>
<base currency="USD">129.90</base>
<discount currency="USD">119.90</discount>
</prices>
</item>
</items>
</catalog><catalog>
<products>
<product external_id="A-100">
<title>Fauteuil Nordic</title>
<brand>Nordic Home</brand>
<price currency="USD">119.90</price>
<old_price currency="USD">129.90</old_price>
</product>
</products>
</catalog>Règles :
- Le XML source contient un produit avec
id = A-100. Les autres produits suivent la même structure, mais le snapshot affiche un représentant de la branche répétéecatalog.items.item. Cliquez sur la valeurtruede l’attributactive, puis dans Conditions d’export choisissez Condition pour tout l’élément. Cela permet d’exporter seulement les éléments àtrue, ou d’exclure les éléments àfalse.
La condition s’applique à l’élément complet : le produit est exporté si active vaut true ; la deuxième règle peut servir de contrôle inverse pour false. - Renommez l’attribut
idenexternal_id: cliquez sur le nom de l’attribut ou du noeud et saisissez le nouveau nom.
Paramètres du noeud : external_id est saisi dans le champ Nom du noeud. - Renommez l’élément
nameentitlede la même façon. - Deux scénarios fonctionnent pour les prix. Si le conteneur
pricesconvient, renommezdiscountenpriceetbaseenold_price. Sipriceetold_pricedoivent être au niveau du produit, créez de nouveaux noeuds à côté detitleet remplissez-les depuis/catalog/items/item/prices/discountet/catalog/items/item/prices/base. Vous pouvez aussi modifier directement la structure d’un noeud : survolez le nom du noeud puis, dans le menu affiché, cliquez sur la flèche vers la gauche pour le remonter au niveau des autres noeuds de l’élément.
Nouveaux Noeuds
Un nouveau noeud XML est nécessaire lorsque le résultat doit contenir un champ absent du XML/YML source, ou lorsque les données source doivent être réorganisées.

Un noeud peut être rempli avec :
- une valeur venant d’une autre partie du fichier source. Par exemple, si le XML contient
<name>Produit test</name>,<article>111-111</article>et<brand>MarqueTest</brand>, ils peuvent être combinés dans un nouveau noeud :<FullName>Produit test 111-111 MarqueTest</FullName>; - une valeur système, comme la date d’exécution ou le nom de la source;
- une expression, par exemple assembler le chemin de catégorie ou calculer le pourcentage de remise;
- il peut aussi être transformé en variable.
Variables : Pourquoi Elles Sont Utiles
Une variable stocke un résultat intermédiaire. Elle est pratique quand une valeur doit être utilisée dans plusieurs champs ou conditions.
Important : les variables n’apparaissent pas dans l’export final. Elles servent uniquement à aider les autres transformations : vous pouvez stocker un résultat intermédiaire puis l’utiliser dans des règles, conditions ou calculs.

Par exemple, la variable final_price est calculée une seule fois :
final_priceest écrit dans<price>;<old_price>reçoit le prix de base quandfinal_priceest inférieur au prix de base;- la condition d’export vérifie que
final_priceest supérieur à zéro; - une autre règle utilise
final_pricepour calculer la remise.
Les règles restent ainsi plus courtes, et le prix ne diverge pas entre différentes parties du résultat à cause de calculs manuels répétés.