Ejemplo: Cargar precios de catálogo en varias monedas

Este ejemplo muestra cómo cargar precios de catálogo en varias monedas nacionales simultáneamente. Puede cargar diferentes monedas nacionales en la tienda modificando el archivo de origen del ejemplo. Todos los códigos de moneda están basados en el estándar ISO 4217.

Acerca de este ejemplo

En este ejemplo se cargan las monedas siguientes:
  • Dólar USA (USD)
  • Dólar canadiense (CAD)
  • Euro (EUR)

Procedimiento

  1. Edite el archivo wc-loader-catalog-entry.xml para actualizar los valores de la carga de datos.
    1. Vaya al directorio de ejemplo.

      LinuxAbra un shell de línea de mandatos en el contenedor Utility Docker. Para obtener información sobre cómo entrar y salir de contenedores, consulte Ejecución de programas de utilidad desde Utility server Docker container. Cambie el directorio a:

      utilities_root/samples/DataLoad/Catalog/MultiListPrices

      HCL Commerce DeveloperVaya al directorio:WCDE_installdir\samples\DataLoad\Catalog\MultiListPrices

    2. Abra el wc-loader-catalog-entry.xml para editarlo.
    3. Cree un mediador BusinessObjectBuilder en el archivo como un elemento hijo del mediador <_config:DataLoader>.
    4. Añada el siguiente código al mediador BusinessObjectBuilder creado:
      <_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 DeveloperEn una línea de mandatos, vaya al directorio WCDE_installdir\bin.
  3. LinuxAbra una línea de mandatos en . Cambie el directorio a utilities_root/bin. Para obtener información sobre cómo entrar y salir de los contenedores, consulte Ejecución de programas de utilidad desde Utility server Docker container.
  4. Entre el mandato siguiente:
    • Linux./dataload.sh ../samples/DataLoad/Catalog/MultiListPrices/wc-dataload.xml
    • HCL Commerce Developerdataload ..\samples\DataLoad\Catalog\MultiListPrices\wc-dataload.xml

Verificación del resultado

El archivo de configuración wc-dataload.xml llama al archivo de configuración wc-loader-catalog-entry.xml para cargar información sobre productos, SKU y precios de lista del archivo de origen CatalogEntries.csv, que está ubicado en el mismo directorio. Se crean tres precios de catálogo para cada entrada de catálogo. La moneda predeterminada es USD. Las monedas alternativas se cargan de las columnas AlternativeCurrency1 y AlternativeCurrency2 del archivo CSV. Los valores de precio de catálogo alternativo se cargan de las columnas AlternativeListPrice1 y AlternativeListPrice2 del archivo CSV.
Verifique que los datos se han cargado, ejecutando las sentencias SQL siguientes:
  • Para devolver los múltiples precios de catálogo que se han creado para el producto y código de artículo, entre:
    select * from listprice where catentry_id in (select catentry_id from catentry where 
    partnumber like 'Cords%')

También puede verificar la carga mirando las monedas en el Centro de gestión o en el escaparate.

Limpieza de los datos

Para eliminar de la base de datos los datos que se han cargado en este ejemplo, ejecute el archivo CleanUp.sql en el directorio /samples/DataLoad/Catalog/MultiListPrices.