Chargement de promotions avec l'utilitaire de chargement de données

Vous pouvez configurer l'utilitaire de chargement de données afin de charger des données de promotion dans un fichier d'entrée XML pour créer ou changer des promotions dans un magasin. En vous servant de l'utilitaire de chargement de données pour charger des promotions, vous pouvez créer ou modifier rapidement plusieurs promotions en une seule opération.

Pourquoi et quand exécuter cette tâche

Lorsque vous chargez des données de promotion avec l'utilitaire de chargement de données, l'utilitaire se sert de la classe DOMXmlHandler pour convertir les données XML d'entrée de promotion en objet DOM. Ensuite, il transmet l'objet au médiateur d'objet métier PromotionDOMMediator, qui convertit l'objet en liste d'objets de données tabulaires. Puis, les objets de données tabulaires sont conservés dans la base de données. Une fois le processus de chargement terminé, les professionnels peuvent afficher et gérer les promotions dans l'outil Promotions.

L'utilitaire de chargement de données ne prend pas en charge le chargement des données de promotion dans un espace de travail.

Remarque : vous ne pouvez pas vous servir de l'utilitaire de chargement de données pour définir ou changer l'état d'une promotion.
  • Si vous créez une promotion avec l'utilitaire de chargement de données, la promotion est toujours inactive lorsque le processus de chargement se termine. Par exemple, si vous chargez une promotion extraite dans un environnement de test, la promotion créée est inactive même si elle était active lors de son extraction.
  • Si vous changez une promotion avec l'utilitaire de chargement de données, l'état de la promotion en cours ne change pas. Par exemple, si vous changez une promotion active, la promotion reste active une fois le processus de chargement terminé. Il se peut que les changements apportés aux promotions actives n'apparaissent pas dans la boutique en ligne une fois le processus de chargement terminé. Vous devez désactiver, puis réactiver la promotion pour que les mises à jour de la promotion soient affichées dans la boutique en ligne.

Procédure

  1. Créez votre fichier d'entrée XML.
    Vous ne pouvez charger que les données de promotion qui se trouvent dans un fichier au format XML. Pour un exemple de format XML pris en charge, consultez l'exemple de fichier d'entrée Promotion.xml qui se trouve dans le répertoire suivant.
    • HCL Commerce DeveloperWCDE_installdir\samples\DataLoad\Promotion
    • Linuxutilities_root/samples/DataLoad/Promotion
    Si vous créez votre fichier d'entrée manuellement, copiez et éditez l'exemple de fichier Promotion.xml.
    Conseil : vous pouvez vous servir de l'utilitaire d'extraction de données pour générer votre fichier d'entrée. Si vous créez la même promotion dans plusieurs environnements, par exemple à des fins de test, créez la promotion dans un environnement avec l'outil Promotions. Ensuite, procédez à l'extraction de cette promotion et utilisez le fichier de sortie généré comme fichier d'entrée pour l'utilitaire de chargement de données afin de charger la promotion dans vos autres environnements. Pour plus d'informations, consultez la rubrique Extraction des données de promotion avec l'utilitaire d'extraction de données
    Dans votre fichier d'entrée, ajoutez les informations suivantes pour chaque promotion :
    • Les propriétés générales et d'identification d'une promotion dans un élément XML appelé <Base>. Ces informations incluent des données sur les codes promotionnels pour les promotions, comme le type des codes promotionnels pour la promotion. Vous pouvez spécifier un modèle ou un code promotionnel public pour la génération de codes promotionnels uniques avancés ; toutefois, n'incluez pas de codes promotionnels uniques. Vous ne pouvez pas charger les codes promotionnels uniques avec l'utilitaire de chargement de données. L'utilitaire de chargement de données charge les données dans l'élément <Base> dans les tableaux de base de données suivants :
    • Les informations de description de promotion dans un élément XML appelé <Description>. Incluez un élément <Description> distinct pour chaque langue définie que votre magasin prend en charge pour la promotion. L'utilitaire de chargement de données charge ces données dans la table de base de données PX_DESCRIPTION.
    • Les informations de condition d'achat et de récompense de la promotion dans un élément XML nommé <Elements>. L'utilitaire de chargement de données charge ces données dans les tables de base de données PX_ELEMENT et PX_ELEMENTNVP. Incluez chaque paire nom-valeur devant être chargée dans la table PX_ELEMENTNVP sous forme d'élément XML distinct dans un élément parent, qui doit être chargé dans la table PX_ELEMENT.
      Par exemple, le code suivant illustre la structure de l'élément <Elements> dans un fichier d'entrée :
      <Elements>
        <Type>
          <SubType>...</SubType>
          <Sequence>...</Sequence>
          <Data> 
            <name>value</name>
            <name>value</name>
          </Data>
          <Type>
      	      <SubType>...</SubType>
            <Sequence>...</Sequence>
            <Data> 
              <name>value</name>
              <name>value</name>
            </Data>
          </Type>
          ...
        </Type>
      <Elements>
      Eléments
      Indique que les éléments XML enfant sont des informations de condition d'achat et de récompense. Chaque élément enfant direct dans l'élément <Elements>est un type de condition ou de récompense distinct. N'est pas mappé à une colonne. Cet élément est utilisé par l'utilitaire de chargement de données pour lire le fichier d'entrée XML de promotion.
      Type
      Nom d'une condition de promotion ou d'une récompense. Votre fichier d'entrée XML peut contenir plusieurs éléments <Type>. Un élément <Type> peut être imbriqué dans un autre élément <Type>. Par exemple, le code ci-dessous contient un élément <Type> appelé <IncludePaymentTypeIdentifier>, qui est imbriqué dans un élément <Type> appelé <PurchaseCondition>.
      <Elements>
        <PurchaseCondition>
          ...
          <IncludePaymentTypeIdentifier>
      	  ...
          </IncludePaymentTypeIdentifier>
        </PurchaseCondition>
        ...
        <Elements>
      Mappé à PX_ELEMENT.TYPE.
      SubType
      Sous-type d'un élément de promotion <Type>. Chaque <Type> peut avoir un <SubType>. Par exemple, un élément <Type> nommé <PurchasingCondition> peut avoir un élément <SubType> appelé <OrderLevelPercentDiscountPurchaseCondition>. Mappé à PX_ELEMENT.SUBTYPE.
      Séquence
      Séquence que l'élément de condition d'achat ou de récompense de la promotion, <Type>, affiche pour une promotion. Chaque élément <Type> peut comporter un élément <Sequence>. Mappé à PX_ELEMENT.SEQUENCE.
      Données
      Indique que les éléments XML enfant sont des informations de paire nom-valeur pour un élément parent (condition d'achat ou récompense). Incluez chaque paire nom-valeur sous forme d'élément distinct dans un élément <Data>. Chaque élément <Type> peut comporter un élément <Data>. N'est pas mappé à une colonne. Cet élément est utilisé par l'utilitaire de chargement de données pour lire le fichier d'entrée XML de promotion.
      nom
      Nom d'une paire nom-valeur. Mappé à PX_ELEMENTNVP.NAME.
      valeur
      Valeur d'une paire nom-valeur. Mappé à PX_ELEMENTNVP.VALUE.
    Important : les noms des éléments XML dans votre fichier d'entrée autres que l'élément racine et les éléments pour les paires nom-valeur doivent utiliser des noms spécifiques. Pour la liste des éléments XML que vous pouvez inclure dans votre fichier d'entrée et les noms spécifiques que vous pouvez utiliser pour les éléments, voir Fichier d'entrée XML pour les promotions.

    Si vous voulez charger des données afin de changer les données d'une promotion, vous devez configurer votre fichier d'entrée de sorte qu'il contienne l'ID unique de la promotion. Ajoutez l'ID en tant que valeur d'un élément appelé <PromotionId>. L'utilitaire compare l'ID qui figure dans le fichier d'entrée aux valeurs d'ID de promotion qui figurent dans la base de données. Si l'ID existe dans la base de données, l'utilitaire met à jour la promotion existante avec les informations qui se trouvent dans le fichier d'entrée. Par exemple, le fragment de code suivant définit l'ID unique, "10001", d'une promotion appelée "Free Ground Shipping" :

    <?xml version="1.0" encoding="UTF-8"?>
    <Promotions>
    <PromotionData>
      <Base>
        <PromotionId>10001</PromotionId>
        <AdministrativeName>Free Ground Shipping</AdministrativeName>
        ...
      </Base>
        ...
      <Elements>
        <PurchaseCondition>
          <SubType>OrderLevelFixedShippingDiscountPurchaseCondition</SubType>
          <Sequence>0.0</Sequence>
          <Data>
            <Currency>USD</Currency>
            <MinimumPurchase>70</MinimumPurchase>
            <FixedCost>0</FixedCost>
            <AdjustmentType>IndividualAffectedItems</AdjustmentType>
          </Data>
        </PurchaseCondition>
      </Elements>
    </PromotionData>
    </Promotions>
  2. Créez les fichiers de configuration de l'utilitaire de chargement de données dont vous avez besoin pour charger vos données de promotion.
    1. Passez au répertoire qui contient les exemples de fichier de configuration pour le chargement de données de promotion :
      • HCL Commerce DeveloperDans une ligne de commande, accédez au répertoire WCDE_installdir\samples\DataLoad\Promotion.
      • LinuxOuvrez une ligne de commande dans le conteneur Utility Docker. Placez-vous dans le répertoire utilities_root/samples/DataLoad/Promotion. Pour plus d'informations sur l'entrée et la sortie des conteneurs, voir Exécution des utilitaires à partir de Utility server Docker container.
    2. Créez une sauvegarde des fichiers de configuration suivants dans le répertoire d'exemples Promotion.
      wc-loader-xml-promotion.xml
      Fichier de configuration d'objet métier.
      wc-dataload-env.xml
      Fichier de configuration de l'environnement.
      wc-dataload.xml
      Fichier de configuration de l'ordre de chargement des données.
  3. Facultatif : Ouvrez le fichier de configuration d'objet métier (wc-loader-xml-promotion.xml) pour l'éditer et configurez les paramètres de chargement de vos données de promotion.
    1. Configurez l'utilitaire de chargement de données pour permettre au processus de chargement de créer une promotion dont le nom d'administration est un doublon d'un nom de promotion existant.
      Pour configurer ce comportement, ajoutez la propriété ci-après dans la configuration d'élément <_config:BusinessObjectMediator>.
      allowDuplicateAdministrativeName
      Cette propriété configure l'utilitaire de chargement de données pour qu'il crée une promotion au lieu d'ignorer la promotion lorsque celle-ci possède le même nom d'administration qu'une promotion existante. Vous pouvez définir les valeurs suivantes pour cette propriété :
      true
      L'utilitaire de chargement de données crée une promotion dans le magasin pour chaque promotion dans le fichier d'entrée, qu'un nom d'administration en double existe ou non. Si la valeur est true, l'utilitaire de chargement de données crée toutes les promotions qui se trouvent dans le fichier d'entrée. Si cette propriété est activée, le processus de chargement peut créer des promotions en double dans un magasin.
      false
      Valeur par défaut. Si un nom d'administration en double est rencontré au cours de l'opération de chargement, l'utilitaire de chargement de données ne charge pas la promotion dont le nom est un doublon. Le rapport récapitulatif du chargement des données signale qu'une promotion n'a pas été chargée.
      Par exemple, le fragment de code suivant configure l'activation de cette propriété :
      <_config:BusinessObjectMediator className="com.ibm.commerce.promotion.dataload.mediator.PromotionDOMMediator" >
        ...
        <_config:property name="allowDuplicateAdministrativeName" value="true" >
      </_config:BusinessObjectMediator>
    2. Configurez l'utilitaire de chargement de données pour qu'il utilise un script XSLT personnalisé afin de convertir votre fichier d'entrée XML. Si votre fichier d'entrée est dans un format XML autre que le format pris en charge, créez un script XSLT dont l'utilitaire pourra se servir pour convertir votre fichier d'entrée XML.
      Incluez l'attribut xslt dans la configuration d'élément <_config:DataReader> et spécifiez votre script XSLT comme valeur pour l'attribut. Par exemple, la configuration suivante spécifie que l'utilitaire doit se servir du script XSLT customPromotion.xsl pour convertir le fichier d'entrée XML :
      <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XmlReader" xslt="customPromotion.xsl" >
        <_config:XmlHandler className="com.ibm.commerce.foundation.dataload.xmlhandler.DOMXmlHandler" />
      </_config:DataReader>
    3. Sauvegardez et fermez le fichier de configuration.
  4. Ouvrez le fichier de configuration de l'environnement de chargement de données (wc-dataload-env.xml) pour l'éditer et mettez à jour les paramètres configurés pour qu'ils correspondent aux paramètres de votre environnement.
  5. Ouvrez le fichier de configuration de l'ordre de chargement des données (wc-dataload.xml) pour l'éditer et configurez les paramètres de chargement de vos données de promotion.
    1. Dans l'élément <_config:DataLoadEnvironment>, assurez-vous que la valeur de l'attribut configFile identifie le fichier de configuration de l'environnement. Si le fichier ne se trouve pas dans le même répertoire que le fichier de configuration de l'ordre de chargement des données, incluez le chemin d'accès relatif au fichier.
    2. Dans l'élément <_config:LoadItem>, la valeur de l'attribut name doit être PromotionXml et la valeur de l'attribut businessObjectConfigFile doit identifier le fichier de configuration d'objet métier. Si le fichier ne se trouve pas dans le même répertoire que le fichier de configuration de l'ordre de chargement des données, incluez le chemin d'accès relatif au fichier.
    3. Dans l'élément <_config:DataSourceLocation>, assurez-vous que la valeur de l'attribut location identifie le fichier d'entrée XML que vous chargez. Si le fichier ne se trouve pas dans le même répertoire que le fichier de configuration de l'ordre de chargement des données, incluez le chemin d'accès relatif au fichier.
    4. Sauvegardez et fermez le fichier de configuration.
  6. Exécutez l'utilitaire de chargement de données.
  7. Vérifiez que les données de promotion ont été chargées en examinant le rapport récapitulatif du chargement des données.
    Pour plus d'informations sur l'emplacement et le contenu de ce rapport récapitulatif, voir Vérification du résultat du chargement des données de promotion.
    • Vous pouvez aussi vérifier que les données de promotion ont été chargés en exécutant les instructions SQL suivantes pour votre base de données HCL Commerce :
      select * from PX_PROMOTION;
      Assurez-vous que les données qui se trouvent dans les exemples de fichier d'entrée existent dans les tables de base de données appropriées.
    • Dans le Management Center, vérifiez que vous pouvez afficher les promotions ou les modifications de promotion nouvellement chargées dans l'outil Promotions.