Création et gestion de variantes à l'aide de la charge de données

Vous pouvez utiliser Data Load pour créer, lire, mettre à jour et supprimer des variantes de produits. En option, vous pouvez également utiliser la charge de données pour maintenir la relation d'entrée de catalogue entre une variante et ses SKU enfants.

Pourquoi et quand exécuter cette tâche

Il existe deux approches pour charger les données de variantes de produits. Ce que vous utilisez dépend si vous vous attendez à ce que l'utilitaire Data Load résolve et maintienne automatiquement la relation d'entrée de catalogue entre une variante et ses SKU enfants.  Vous pouvez contrôler ce comportement à l'aide d'une propriété de configuration Data Load nommée resolveAndAssociateVariantItems.

Remarque : Bien que les variantes de produits se comportent de la même façon que les produits à la plupart des égards, il existe d'importantes différences dans la façon dont elles sont créées.
  • Vous ne pouvez pas créer une variante en double comme vous le pouvez avec un produit. Par exemple, après avoir créé une variante à l'aide de l'attribut red, vous ne pouvez pas créer une deuxième variante basée sur l'attribut red.
  • Pour un produit donné, s'il existe déjà une variante définie à l'aide d'un attribut particulier, le produit ne peut pas être utilisé pour créer des variantes à l'aide d'un attribut différent. Par exemple, si une chaussure a une variante de couleur rouge, elle peut être utilisée pour créer d'autres variantes de couleur, telles qu'une variante de couleur noire. Toutefois, elle ne peut pas être utilisée pour créer une variante de taille.

Procédure

  1. Les attributs du dictionnaire d'attributs et leurs valeurs autorisées.
  2. Chargez les produits.
  3. Chargez les SKU.
  4. Chargez des variantes avec des attributs, à l'aide de la propriété de configuration resolveAndAssociateVariantItems pour définir la façon dont la relation d'entrée de catalogue est maintenue.
    resolveAndAssociateVariantItems
    True = L'utilitaire de charge de données maintient implicitement la relation d'entrée de catalogue entre une variante et ses SKU enfants.
    False = Vous chargez explicitement la relation d'entrée de catalogue entre une variante et ses SKU enfants.
  5. (Facultatif) Si vous avez choisi de charger explicitement la relation d'entrée de catalogue entre la variante et la SKU (resolveAndAssociateVariantItems =False), effectuez la charge dès maintenant.

    Paramètres dans le fichier wc-loader-catalog-entry.xml

    La variante est chargée à l'aide de CatalogEntryMediator (le même que le produit ou la SKU), avec le type défini sur "Variant". Des exemples peuvent être trouvés dans l'utilitaire docker HCL Commerce sous le répertoire CommerceServer90Dir/samples/DataLoad/Catalog/Variant.

    Dans le fichier wc-loader-catalog-entry.xml, le mappage de l'attribut de définition d'une variante est défini comme suit.
    <!-- 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" />
    
    VariantAttribute_Id
    Clé primaire du tableau ATTR pour l'attribut de définition de la variante. Une seule des deux colonnes (VariantAttribute_Id et VariantAttribute_Identifier) doit être fournie dans les données d'entrée.
    VariantAttribute_Identifier
    Identificateur de champ de l'attribut de définition de la variante ATTR du tableau de base de données. Une seule des deux colonnes (VariantAttribute_Id et VariantAttribute_Identifier) doit être fournie dans les données d'entrée.
    VariantAttributeValue_Id
    Clé primaire du tableau ATTRVAL pour la valeur d'attribut de définition de la variante. Une seule des deux colonnes (VariantAttributeValue_Id et VariantAttributeValue_Identifier) doit être fournie dans les données d'entrée.
    VariantAttributeValue_Identifier
    Identificateur de champ du tableau de base de données ATTRVAL pour la valeur d'attribut de définition de la variante. Une seule des deux colonnes (VariantAttributeValue_Id et VariantAttributeValue_Identifier) doit être fournie dans les données d'entrée.
    Une variante doit avoir une seule et unique paire d'attributs/valeurs de définition. Toutes les variantes sous le même produit parent doivent avoir le même attribut de définition mais une valeur différente.
    Restriction : Certains attributs ont un grand nombre de valeurs prédéfinies. Si vous choisissez comme attribut de définition une valeur prédéfinie qui n'est pas utilisée par une SKU réelle, alors la variante ne fonctionnera pas, bien qu'elle soit potentiellement visible dans la vitrine.
    Et dans la section de la configuration CatalogEntryMediator :      
    <_config:BusinessObjectMediator className="com.ibm.commerce.catalog.dataload.mediator.CatalogEntryMediator" componentId="com.ibm.commerce.catalog" > 
    Deux propriétés de configuration sont disponibles :        
    <_config:property name="resolveAndAssociateParentVariants" value= "false" />
       <_config:property name="validateParentProductDefiningAttributes" value= "false" />

    La propriété resolveAndAssociateVariantItems détermine s'il convient de maintenir automatiquement la relation entre la variante et la SKU. La propriété validateParentProductDefiningAttributes détermine s'il convient d'effectuer une validation sur l'attribut de définition de la variante, par exemple, si une variante existante se trouve sous le même produit avec la même paire de attribut/valeur d'attribut.  La désactivation de cet indicateur peut améliorer les performances de charge de données, à condition que l'intégrité des données soit assurée ailleurs. Le fichier wc-dataload-catalog-entry-variant.xml est le fichier de contrôle principal pour charger les variantes, et le fichier CatalogEntries-variant.csv est l'exemple de données d'entrée au format CSV.

    Chargement de variantes à l'aide d'un fichier .csv

    Vous pouvez utiliser l'exemple CatalogEntries-variant.csv de fichier pour charger des variantes. Le fichier est au format CatalogEntry,,,,,,,,,,,. Il existe trois paramètres spécifiques aux variantes de produits.

    PartNumber,Type,ParentPartNumber,Sequence,ParentGroupIdentifier,Hide,
    Name,ShortDescription,LongDescription,VariantAttribute_Identifier,VariantAttributeValue_Identifier,Delete
    Emplacement des nouveaux paramètres :
    Masquer
    Cet indicateur indique s'il faut masquer cette entrée de catalogue de la recherche et de la navigation dans la vitrine. L'entrée existe toujours et peut être utilisée, mais ne s'affiche pas dans le magasin.
    Valeurs : 0=Afficher, 1=Masquer
    VariantAttribute_Id
    Spécifie l'id d'attribut de définition de la variante. Il s'agit de la clé primaire du tableau de base de données ATTRVAL. Toutes les variantes du même produit parent ont le même VariantAttribute_Identifier.
    VariantAttributeValue_Identifier
    Spécifie l'identificateur d'attribut de définition de la variante dans le tableau de base de données ATTR. Les variantes d'un même produit parent doivent avoir des valeurs VariantAttributeValue_Identifier différentes.
    Par exemple, une entrée exemple peut être :
    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

    Relation d'entrée de catalogue de chargement entre une variante et ses SKU enfants

    La relation d'entrée de catalogue entre une variante et ses SKU enfants est chargée à l'aide de CatalogEntryRelationshipMediator. Des exemples peuvent être trouvés dans l'utilitaire docker WC sous le répertoire CommerceServer90Dir/samples/DataLoad/Catalog/Variant.

    Le fichier wc-loader-catalog-entry-relationship.xml définit le mappage de données et configure le médiateur.

    Le fichier wc-dataload-catalog-entry-relationship.xml est le fichier de contrôle principal pour exécuter la charge de données.

    Le fichier CatalogEntryRelationship-variant-item.csv est l'exemple de données d'entrée au format CSV.

    Charger les relations entre un attribut SKU et un attribut de dictionnaire d'attributs

    Lors du chargement de la relation entre l'attribut SKU et l'attribut du dictionnaire d'attributs, il modifie implicitement la relation parent-enfant entre les variantes et les SKU. Dans ce cas, si vous activez la propriété de configuration resolveAndAssociateParentVariants, l'utilitaire de charge de données maintiendra automatiquement la relation entre les variantes et les SKU.

    Des exemples peuvent être trouvés dans l'utilitaire docker WC sous le répertoire CommerceServer90Dir/samples/DataLoad/Catalog/AttributeDictionaryAttribute.

    Dans le fichier de configuration wc-loader-catalog-entry-AD-attribute-relationship.xml, une propriété de configuration nommée resolveAndAssociateVariantItems est trouvée. Cette propriété prend par défaut la valeur false.
    <_config:BusinessObjectMediator className="com.ibm.commerce.catalog.dataload.mediator.CatalogEntryAttributeDictionaryAttributeMediator" 
               componentId="com.ibm.commerce.catalog" >
            ...
            <_config:property name="resolveAndAssociateVariantItems" value="false" />
         </_config:BusinessObjectMediator>