Creación y gestión de variantes utilizando Carga de datos

Puede utilizar Data Load para crear, leer, actualizar y eliminar variantes de producto. De manera opcional, también puede utilizar la carga de datos para mantener la relación de entrada de catálogo entre una variante y sus códigos de artículo hijos.

Por qué y cuándo se efectúa esta tarea

Hay dos métodos para cargar datos de variantes de producto. El uso de una u otra dependerá de si espera que el programa de utilidad Data Load resuelva y mantenga automáticamente  la relación de entrada de catálogo entre una variante y sus códigos de artículo hijo. Puede controlar este comportamiento con la una propiedad de configuración Data Load denominada resolveAndAssociateVariantItems.

Nota: Aunque las variantes del producto se comportan de forma similar a los productos en la mayoría de los aspectos, existen diferencias importantes en su creación.
  • No se puede crear una variante duplicada, que sí puede hacerse con un producto. Por ejemplo, si ha creado una variante utilizando el atributo red, no puede crear una segunda variante basada en el atributo red.
  • Para un producto determinado, si ya existe una variante definida a partir de un atributo concreto, no se puede utilizar el producto para crear variantes utilizando un atributo diferente. Por ejemplo, si unos zapatos tienen una variante de color rojo, se pueden utilizar para crear otra variante de color, por ejemplo, una variante de color negro. Sin embargo, no se pueden utilizar para crear una variante de talla.

Procedimiento

  1. Cargar atributos del diccionario de atributos y sus valores permitidos.
  2. Cargar productos.
  3. Cargar códigos de artículo.
  4. Cargue variantes con atributos, utilizando la propiedad de configuración resolveAndAssociateVariantItems para establecer cómo se mantiene la relación de entrada de catálogo.
    resolveAndAssociateVariantItems
    True = el programa de utilidad de carga de datos mantiene implícitamente la relación de entrada de catálogo entre una variante y sus códigos de artículo hijo.
    False = se carga explícitamente la relación de entrada de catálogo entre una variante y sus códigos de artículo hijo.
  5. (Opcional) Si ha elegido cargar explícitamente la relación de entrada de catálogo entre la variante y los cógidos de artículo (resolveAndAssociateVariantItems = false), realice la carga ahora.

    Parámetros en el archivo wc-loader-catalog-entry.xml

    La variante se carga utilizando CatalogEntryMediator (lo mismo que en el producto o en el código de artículo), con el tipo establecido en "Variante". Los ejemplos se pueden encontrar en el Utility Docker de HCL Commerce en el directorio CommerceServer90Dir/samples/DataLoad/Catalog/Variant.

    En el archivo wc-loader-catalog-entry.xml, se define la correlación para el atributo de definición de una variante de la siguiente forma.
    <!-- Variant attributes -->
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[50]/Name" value="VariantAttribute_Id" valueFrom="Fixed" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[50]/StringValue/Value" value="VariantAttribute_Id" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[51]/Name" value="VariantAttribute_Identifier" valueFrom="Fixed" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[51]/StringValue/Value" value="VariantAttribute_Identifier" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[52]/Name" value="VariantAttributeValue_Id" valueFrom="Fixed" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[52]/StringValue/Value" value="VariantAttributeValue_Id" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[53]/Name" value="VariantAttributeValue_Identifier" valueFrom="Fixed" />
    <_config:mapping xpath="CatalogEntryAttributes/Attributes[53]/StringValue/Value" value="VariantAttributeValue_Identifier" />
    
    Donde
    VariantAttribute_Id
    La clave primaria de la tabla ATTR para el atributo de definición de la variante. Solo es necesario proporcionar una de las dos columnas (VariantAttribute_Id y VariantAttribute_Identifier) en los datos de entrada.
    VariantAttribute_Identifier
    El campo IDENTIFIER de la tabla de base de datos ATTR para el atributo de definición de la variante. Solo es necesario proporcionar una de las dos columnas (VariantAttribute_Id y VariantAttribute_Identifier) en los datos de entrada.
    VariantAttributeValue_Id
    La clave primaria de la tabla ATTRVAL para el valor de atributo de definición de la variante. Solo es necesario proporcionar una de las dos columnas (VariantAttributeValue_Id y VariantAttributeValue_Identifier) en los datos de entrada.
    VariantAttributeValue_Identifier
    El campo IDENTIFIER de la tabla de base de datos ATTRVAL para el valor de atributo de definición de la variante. Solo es necesario proporcionar una de las dos columnas (VariantAttributeValue_Id y VariantAttributeValue_Identifier) en los datos de entrada.
    Una variante debe tener exclusivamente un par atributo de definición/valor. Todas las variantes bajo el mismo producto padre deben tener el mismo atributo de definición pero un valor diferente.
    Restricción: Algunos atributos tienen un gran número de valores predefinidos. Si elige como atributo de definición un valor predefinido que no utiliza un código de artículo real, la variante no funcionará, a pesar de que sea potencialmente visible en el escaparate.
    Y en la sección de la configuración de CatalogEntryMediator:      
    <_config:BusinessObjectMediator className="com.ibm.commerce.catalog.dataload.mediator.CatalogEntryMediator" componentId="com.ibm.commerce.catalog" > 
    Hay dos propiedades de configuración disponibles:        
    <_config:property name="resolveAndAssociateParentVariants" value= "false" />
       <_config:property name="validateParentProductDefiningAttributes" value= "false" />

    La propiedad resolveAndAssociateVariantItems determina si se debe mantener automáticamente la relación entre la variante y el código de artículo. La propiedad validateParentProductDefiningAttributes determina si se debe realizar la validación en el atributo de definición de la variante, por ejemplo, si existe una variante bajo el mismo producto con el mismo par atributo/valor de atributo.  Desactivar este indicador puede mejorar el rendimiento de la carga de datos, con la condición de que se garantice la integridad de los datos en otro lugar. El archivo wc-dataload-catalog-entry-variant.xml es el archivo principal de control para cargar variantes y el archivo CatalogEntries-variant.csv son los datos de entrada de ejemplo en formato CSV.

    Cargar variantes con un archivo .csv

    Puede utilizar el archivo CatalogEntries-variant.csv de ejemplo para cargar variantes. El archivo tiene el formato CatalogEntry,,,,,,,,,,,. Hay tres parámetros específicos de las variantes de producto.

    PartNumber,Type,ParentPartNumber,Sequence,ParentGroupIdentifier,Hide,
    Name,ShortDescription,LongDescription,VariantAttribute_Identifier,VariantAttributeValue_Identifier,Delete
    Donde los nuevos parámetros son:
    Ocultar
    Este indicativo indica si se debe ocultar esta entrada de catálogo en la búsqueda y la navegación por el escaparate. La entrada todavía existe y se puede trabajar con ella, pero no aparece en la tienda.
    Valores: 0 = Mostrar, 1 = Ocultar
    VariantAttribute_Id
    Especifica el ID de atributo de definición de la variante. Esta es la clave primaria de la tabla de base de datos ATTRVAL. Todas las variantes del mismo producto padre tienen el mismo VariantAttribute_Identifier.
    VariantAttributeValue_Identifier
    Especifica el identificador de atributo de definición de la variante en la tabla de base de datos ATTR. Las variantes del mismo producto padre deben tener valores de VariantAttributeValue_Identifier diferentes.
    Un ejemplo de entrada podría ser:
    Cords-Black,Variant,Cords,1,Pants,1,Men's corduroy pants - Black,
    Men's corduroy pants - Black,"Fabric 50% cotton, 50% polyester.",CordsColor,Black,0

    Cargar una relación de entrada de catálogo entre una variante y sus códigos de artículo hijos

    La relación de entrada de catálogo entre una variante y sus códigos de artículo hijos se carga utilizando CatalogEntryRelationshipMediator. Los ejemplos se pueden encontrar en el Utility Docker de en el directorio CommerceServer90Dir/samples/DataLoad/Catalog/Variant.

    El archivo wc-loader-catalog-entry-relationship.xml define la correlación de datos y configura el mediador.

    El archivo wc-dataload-catalog-entry-relationship.xml es el archivo de control principal para ejecutar la carga de datos.

    El archivo CatalogEntryRelationship-variant-item.csv son los datos de entrada de ejemplo en formato CSV.

    Carga relaciones entre los códigos de artículo y el atributo del diccionario de atributos.

    Al cargar la relación entre un código de artículo y un atributo del diccionario de atributos, cambia implícitamente la relación padre-hijo entre variantes y códigos de artículo. En este caso, si activa la propiedad de configuración resolveAndAssociateParentVariants, el programa de utilidad de carga de datos mantendrá automáticamente la relación entre variantes y códigos de artículo.

    Los ejemplos se pueden encontrar en el Utility Docker de WC en el directorio CommerceServer90Dir/samples/DataLoad/Catalog/AttributeDictionaryAttribute.

    En el archivo de configuración wc-loader-catalog-entry-AD-attribute-relationship.xml, se encuentra una propiedad de configuración denominada resolveAndAssociateVariantItems. Esta propiedad toma de forma predeterminada el valor false.
    <_config:BusinessObjectMediator className="com.ibm.commerce.catalog.dataload.mediator.CatalogEntryAttributeDictionaryAttributeMediator" 
               componentId="com.ibm.commerce.catalog" >
            ...
            <_config:property name="resolveAndAssociateVariantItems" value="false" />
         </_config:BusinessObjectMediator>