Exemple : Insertion et remplacement de listes de prix
L'utilitaire de chargement des données propose deux modes de chargement des listes de prix : insertion ou remplacement. Utilisez le mode insertion pour les nouvelles listes de prix. Utilisez le mode remplacement pour mettre à jour une liste de prix existante.
N'utilisez pas le mode insertion si une liste de prix avec le même nom ou le même uniqueId existe dans la base de données. Sous le mode remplacement, si le nom ou l'élément uniqueId de la liste de prix dans le fichier de chargement n'existe pas dans la base de données, la liste de prix concernée n'est pas remplacée. Sous le mode insertion, si une liste de prix avec le même nom ou le même uniqueId existe dans la base de données, l'enregistrement n'est pas inséré. Sous le mode remplacement, si une liste de prix du fichier de chargement n'existe pas dans la base de données, la liste de prix est insérée.
Cet exemple utilise un fichier CSV pour expliquer comment insérer, remplacer ou supprimer vos données. Vous pouvez aussi créer et utiliser un fichier au format XML pour insérer, remplacer ou supprimer vos données. Si vous choisissez de créer et d'utiliser un fichier au format XML, assurez-vous que vos éléments XML utilisent les mêmes noms que ceux des colonnes CSV.
Fichier CSV avec exemples de données de liste de prix
Le fichier CSV PriceListGroup.csv contient des exemples de données de liste de prix. La première ligne du fichier CSV peut également être composée de noms de colonnes, en fonction de l'attributfirstLineIsHeader du fichier de configuration de chargement des données de la liste de prix. firstLineIsHeader est un attribut de l'élément <_config:DataReader>. - firstLineIsHeader
-
- true
- Indique que la première ligne du fichier CSV sera traitée comme des données de nom de colonne et ne sera pas insérée dans la base de données.
- false
- Indique que la première ligne du fichier CSV contient des données devant être lues et insérées dans la base de données.
| Nom | Description | Priorité | Type |
|---|---|---|---|
| Standard Price List (Liste de prix standard) | Il s'agit de la liste de prix standard. | 1 | S |
| Holiday price list (Liste de prix période des fêtes) | Il s'agit de la liste de prix pour la période des fêtes. | 5 | C |
| Legacy system price list (liste de prix de l'ancien système) | Il s'agit de la liste de prix gérée par l'ancien système. | 2 | E |
| Overstock price list (liste de prix des articles en excédent de stock) | Il s'agit de la liste des prix des articles en excédent de stock. | 1 | C |
définitions de colonne CSV et d'élément XML
L'ordre des colonnes est défini dans le fichier de configuration de chargement des données de liste de prix. Reportez-vous à l'attribut number dans l'élément <_config:Data>.
- UniqueID
- (Facultatif, Chaîne) Identificateur de la liste de prix. Si le nom et l'élément uniqueID de la liste de prix sont tous deux fournis dans l'enregistrement CSV, l'utilitaire de chargement des données utilise l'élément uniqueID de la liste de prix. S'il existe un mappage de données pour la valeur UniqueID de liste de prix dans le fichier de configuration de chargement des données de liste de prix, la valeur uniqueID est requise dans le fichier CSV.
- Nom
- (Requis, chaîne) Nom de la liste de prix. Si le nom et l'élément uniqueID de la liste de prix sont tous deux fournis dans l'enregistrement CSV, l'utilitaire de chargement des données utilise l'élément uniqueID de la liste de prix.
- Description
- (Facultatif, chaîne) Description de la liste de prix.
- Priorité
- (Facultatif, double) Valeur qui détermine quelle liste de prix est prioritaire lorsque plusieurs listes de prix sont en vigueur simultanément. Le système utilise le conteneur de positions commerciales dont la valeur de priorité est la plus élevée. Si cette colonne a la valeur Null dans le fichier d'entrée, elle est définie à la valeur par défaut 0.0. La valeur est mappée à la colonne de base de données OFFER.PRECEDENCE. Remarque : La valeur
Precedencen'est pas utilisée avec les règles de tarification. Pour les règles de tarification, si vous voulez inclure plusieurs listes de prix dans une règle de tarification, vous devez utiliser des branches de condition dans l'outil Filtre de catalogue et tarification. Lorsque vous utilisez des branches de condition pour ajouter plusieurs listes de prix, les conditions déterminent la priorité des listes de prix. La valeur Precedence pour les listes de prix est ignorée. Si vous n'utilisez pas de règles de tarification alors que plusieurs listes de prix (conteneur de positions commerciales) s'appliquent, le système utilise la liste de prix dont la priorité est la plus élevée. - Type
- (Facultatif, chaîne) Type de conteneur de positions commerciales :
- S
- (Valeur par défaut) Liste de prix standard contenant les prix de base des produits dans le catalogue du magasin.
- C
- Liste de prix personnalisée qui spécifie une liste de produits avec leurs prix personnalisés.
- E
- Liste de prix externe.
Données de mappage
Le fragment suivant du fichier d'exemple de configuration illustre comment mapper chaque colonne de données dans le fichier CSV source à une valeur.
<_config:Data>
<_config:column number="1" name="UniqueId" />
<_config:column number="2" name="Name" />
<_config:column number="3" name="Description" />
<_config:column number="4" name="Precedence" />
<_config:column number="5" name="Type" />
</_config:Data>
L'attribut number dans l'élément <_config:column> définit l'ordre des colonnes dans le fichier des enregistrements CSV. L'attribut name définit le nom de colonne utilisé dans l'élément <_config:DataMapping>.
Le fragment suivant mappe chaque valeur à un chemin de schéma logique d'objet métier.
<_config:DataMapping>
<_config:mapping xpath="PriceListIdentifier/UniqueID" value="UniqueId" valueFrom="InputData" />
<_config:mapping xpath="PriceListIdentifier/ExternalIdentifier/Name" value="Name" valueFrom="InputData" />
<_config:mapping xpath="Description/value" value="Description" valueFrom="InputData" />
<_config:mapping xpath="precedence" value="Precedence" valueFrom="InputData" />
<_config:mapping xpath="type" value="Type" valueFrom="InputData" />
</_config:DataMapping>
L'attribut value dans l'élément <_config:DataMapping> doit être cohérent avec l'attribut name de l'article correspondant dans l'élément <_config:column>. Les deux attributs sont sensibles à la casse.
<_config:DataSource>
<_config:Data>
<_config:column number="1" name="Name" />
<_config:column number="2" name="Description" />
<_config:column number="3" name="Precedence" />
<_config:column number="4" name="Type" />
</_config:Data>
</_config:DataSource>
L'attribut number dans l'élément <_config:column> définit l'ordre des colonnes dans le fichier des enregistrements CSV. L'attribut name définit le nom de colonne utilisé dans l'élément <_config:DataMapping>.
Le fragment suivant mappe chaque valeur à un chemin de schéma logique d'objet métier.
<_config:DataMapping>
<_config:mapping xpath="PriceListIdentifier/ExternalIdentifier/Name" value="Name" valueFrom="InputData" />
<_config:mapping xpath="Description/value" value="Description" valueFrom="InputData" />
<_config:mapping xpath="precedence" value="Precedence" valueFrom="InputData" />
<_config:mapping xpath="type" value="Sequence" valueFrom="InputData" />
</_config:DataMapping>
L'attribut value dans l'élément <_config:DataMapping> doit être cohérent avec l'attribut name de l'article correspondant dans l'élément <_config:column>. Les deux attributs sont sensibles à la casse.
Médiateur d'objet métier
Le nom de classe de médiateur est com.ibm.commerce.price.dataload.mediator.PriceRuleMediator. Le schéma logique correspondant est PriceRule.xsd. L'ID du composant est le suivant : com.ibm.commerce.price.