Exemple : Chargement de prix catalogue en plusieurs devises

Cet exemple illustre comment charger simultanément des prix catalogue dans plusieurs devises. Vous pouvez charger des devises nationales différentes dans votre magasin en modifiant le fichier source de cet exemple. Tous les codes de devises sont basés sur la norme ISO 4217.

A propos de cet exemple

Les devises suivantes sont chargées dans cet exemple :
  • Dollar US (USD)
  • Dollar canadien (CAD)
  • Euro (EUR)

Procédure

  1. Editez le fichier wc-loader-catalog-entry.xml afin de mettre à jour les paramètres de chargement de données.
    1. Accédez au répertoire des exemples.

      LinuxOuvrez un shell de ligne de commande dans le conteneur Utility Docker. Pour plus d'informations sur l'entrée et la sortie des conteneurs, voir Exécution des utilitaires à partir de Utility server Docker container. Remplacez le répertoire par :

      utilities_root/samples/DataLoad/Catalog/MultiListPrices

      HCL Commerce DeveloperAccédez au répertoire :WCDE_installdir\samples\DataLoad\Catalog\MultiListPrices

    2. Ouvrez le fichier wc-loader-catalog-entry.xml en édition.
    3. Créez un médiateur BusinessObjectBuilder dans le fichier sous la forme d'un élément enfant du médiateur <_config:DataLoader>.
    4. Ajoutez le code suivant au médiateur BusinessObjectBuilder créé :
      <_config:BusinessObjectBuilder className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.
        BaseBusinessObjectBuilder"
                 packageName="com.ibm.commerce.price.facade.datatypes.PricePackage" dataObjectType="PriceListType" >
        <_config:DataMapping>
          <!-- The unique reference number of the catalog entry -->
          <_config:mapping xpath="PriceEntry[0]/CatalogEntryIdentifier/UniqueID" value="CatalogEntryUniqueId" />
          <!-- The part number of the catalog entry -->
          <_config:mapping xpath="PriceEntry[0]/CatalogEntryIdentifier/ExternalIdentifier/PartNumber" value="PartNumber" />
          <!-- The Offer price -->
          <_config:mapping xpath="PriceEntry[0]/Price/Price/value" value="ListPrice" />
          <!-- The Offer price currency -->
          <_config:mapping xpath="PriceEntry[0]/Price/Price/currency" value="CurrencyCode" />
          <!-- When more than one Offer is effective at a particular time, the one with the highest Precedence is used -->
          <_config:mapping xpath="PriceEntry[0]/precedence" value="Precedence" />
          <!-- The Offer start date -->
          <_config:mapping xpath="PriceEntry[0]/startDate" value="StartDate" />
          <!-- The Offer end date -->
          <_config:mapping xpath="PriceEntry[0]/endDate" value="EndDate" />
          <!-- The unit of measure for MinimumQuantity and MaximumQuantity -->
          <_config:mapping xpath="PriceEntry[0]/quantityUnit" value="QuantityUnit" />
          <!-- The minimum quantity that can be purchased in a single Order under this Offer -->
          <_config:mapping xpath="PriceEntry[0]/minimumQuantity" value="MinimumQuantity" />
          <!-- The maximum quantity that can be purchased in a single Order under this Offer -->
          <_config:mapping xpath="PriceEntry[0]/maximumQuantity" value="MaximumQuantity" />
          <!-- The Offer description -->
          <_config:mapping xpath="PriceEntry[0]/Description/value" value="Description" />
          <!-- The Offer description language -->
          <_config:mapping xpath="PriceEntry[0]/Description/language" value="Language" />
          <_config:mapping xpath="PriceEntry[0]/Description/language" value="LanguageId" />
          <_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[0]/currency" 
            value="AlternativeCurrency1" />
          <_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[0]/value" 
            value="AlternativeListPrice1" />
          <_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[1]/currency" 
            value="AlternativeCurrency2" />
          <_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[1]/value" 
            value="AlternativeListPrice2" />
          
          <!-- The Delete indicator -->
          <_config:mapping xpath="" value="Delete" deleteValue="1" />
        </_config:DataMapping>
      <_config:BusinessObjectMediator className="com.ibm.commerce.price.dataload.mediator.ListPriceOfferMediator" 
        componentId="com.ibm.commerce.price" >
      </_config:BusinessObjectMediator>
      </_config:BusinessObjectBuilder>
  2. HCL Commerce DeveloperDans une ligne de commande, accédez au répertoire WCDE_installdir\bin.
  3. LinuxOuvrez une ligne de commande dans le . Accédez au répertoire utilities_root/bin. Pour plus d'informations sur l'entrée et la sortie des conteneurs, voir Exécution des utilitaires à partir de Utility server Docker container.
  4. Entrez la commande suivante :
    • Linux./dataload.sh ../samples/DataLoad/Catalog/MultiListPrices/wc-dataload.xml
    • HCL Commerce Developerdataload ..\samples\DataLoad\Catalog\MultiListPrices\wc-dataload.xml

Vérification des résultats

Le fichier de configuration wc-dataload.xml appelle le fichier de configuration wc-loader-catalog-entry.xml afin de charger des informations sur les produits, les SKU et les prix catalogue depuis le fichier CatalogEntries.csv source, situé dans le même répertoire. Trois prix catalogue sont créés pour chaque entrée de catalogue. La devise par défaut est USD. Les devises alternatives sont chargées à partir des colonnes AlternativeCurrency1 et AlternativeCurrency2 du fichier CSV. Les valeurs de prix catalogue de remplacement sont chargées à partir des colonnes AlternativeListPrice1 et AlternativeListPrice2 du fichier CSV.
Vérifiez que les données ont été chargées en exécutant les instructions SQL suivantes :
  • Pour renvoyer les différents prix catalogue créés pour les produits et les UGS, entrez :
    select * from listprice where catentry_id in (select catentry_id from catentry where 
    partnumber like 'Cords%')

Vous pouvez également vérifier le chargement en visualisant les devises dans le centre de gestion ou dans la boutique en ligne du magasin.

Nettoyage des données

Pour supprimer de la base de données les données chargées dans cet exemple, exécutez le fichier CleanUp.sql dans le répertoire /samples/DataLoad/Catalog/MultiListPrices.