HCL Commerce Developer

Génération du code source du widget Commerce Composer

Utilisez le modèle de ressource PageComposer Java Emitter Template (JET) pour générer les fichiers de code source que vous pouvez utiliser comme point de départ pour créer un widget Commerce Composer personnalisé. Pour utiliser ce modèle, vous devez créer un fichier d'entrée du modèle qui contient les informations requises pour générer les fichiers du code source.

Procédure

  1. Démarrez HCL Commerce Developer.
  2. Créez un projet temporaire dans votre espace de travail HCL Commerce Developer. Ce projet est utilisé comme emplacement cible où la transformation Java Emitter Template (JET) génère les fichiers de code source pour créer votre widget.
    1. Cliquez avec le bouton droit dans la vue Explorateur d'entreprise. Sélectionnez Nouveau > Projet.
    2. Dans l'assistant Nouveau projet, développez Général. Sélectionnez Projet. Cliquez sur Suivant.
    3. Dans la zone Nom du projet, entrez un nom pour le projet temporaire.
      Par exemple, NewWidgetProject.
    4. Cliquez sur Terminer.
  3. Dans votre projet NewWidgetProject temporaire, créez un fichier XML à utiliser comme fichier d'entrée du modèle pour la transformation JET. Le fichier XML d'entrée du modèle que vous créez est utilisé par la transformation JET pour générer les fichiers de code source du widget à l'aide des propriétés et attributs que vous spécifiez dans le fichier. La transformation JET crée tous les fichiers et le code requis pour créer un widget. Le fichier d'entrée peut être copié et modifié pour une utilisation future afin de vous aider à générer le code source pour la création d'autres widgets personnalisés.
    1. Cliquez à l'aide du bouton droit de la souris sur le projet NewWidgetProject temporaire. Sélectionnez Nouveau > Fichier.
    2. Dans l'assistant Nouveau fichier, assurez-vous que votre projet temporaire est sélectionné comme dossier parent. Entrez un nom de fichier pour le fichier XML d'entrée du modèle.
      Par exemple, NewWidgetPatternInputFile.xml.
    3. Cliquez sur Terminer.
    4. Cliquez avec le bouton droit sur votre nouveau fichier XML d'entrée du modèle dans votre projet temporaire. Sélectionnez Ouvrir avec > Editeur XML.
    5. Copiez le code suivant dans le fichier :
      <pageLayout vendor="" targetFolder="">
        <widget>
          <widgetDef 
           identifier="" UIObjectName="" 
           displayName="" description="" 
           widgetDisplayGroups=""> 
           widgetRestrictionGroups="" >
            <property name=""	displayName=""/>
            <property name=""	displayName=""/>
          </widgetDef>
          <widgetGroup identifier="" displayName="" />
        </widget>
      </pageLayout>
      
    6. Mettez à jour le code copié pour spécifier les informations que la transformation JET doit utiliser afin de créer votre code source widget. Assurez-vous d'inclure les informations requises.
      Remarque : N'incluez pas d'espaces ou de caractères spéciaux dans les valeurs des paramètres suivants. L'inclusion d'espaces ou de caractères spéciaux pour ces paramètres peut provoquer des erreurs :
      • vendor (pageLayout)
      • targetFolder (pageLayout)
      • identifier (toutes les instances)
      • UIObjectName (widgetDef)
      • name (propriété)
      Informations sur le widget qui peuvent être incluses avec le fichier XML d'entrée du modèle :
      Paramètre de fichier d'entrée Obligatoire Description
      vendor (pageLayout) Oui Le nom de votre société. Par exemple, myCompany.

      La valeur de cet attribut est incluse comme valeur pour la colonne WidgetVendor dans le fichier registerWidgetdef.csv généré. registerWidgetdef.csv est utilisé pour enregistrer votre widget personnalisé avec la structure Commerce Composer.

      targetFolder (pageLayout) Non Le chemin d'accès du dossier ou du projet dans lequel les fichiers de code source doivent être générés. Le chemin d'accès au dossier cible est relatif à votre répertoire d'espace de travail. Par exemple, vous pouvez indiquer comme valeur du dossier cible le projet temporaire que vous avez créé. Si votre projet est un répertoire de niveau supérieur dans votre espace de travail, spécifiez le nom de votre projet, tel que NewWidgetProject, comme dossier cible.

      Si la valeur de l'attribut n'est pas spécifiée, les fichiers sont générés dans le même dossier ou projet qui contient le fichier XML d'entrée du modèle pour la transformation JET.

      widgetDef (widget) Non

      Si vous créez un widget, vous devez inclure cet élément.

      Si vous utilisez ce modèle XML et la transformation JET pour créer uniquement les fichiers afin de définir un groupe d'affichage de widgets, n'incluez pas cet élément. Pour plus d'informations sur la définition de groupes de widgets, voir Création de groupes de widgets Commerce Composer.

      Elément qui inclut des attributs pour définir la définition de widget. Cette définition doit être chargée dans la base de données HCL Commerce avec l'utilitaire Chargement des données pour enregistrer votre widget. Ces informations sont également utilisées pour aider à définir l'objet widget correspondant dans l'outil Commerce Composer.
      identifier (widgetDef) Oui Le nom de référence externe pour la définition de widget ou de conteneur. Vous pouvez utiliser n'importe quel nom, mais il doit être unique pour le magasin. Par exemple, myNewContentRecommendationWidget.

      La valeur de cet attribut est incluse comme valeur pour la colonne WidgetDefIdentifier dans le fichier registerWidgetdef.csv généré.

      UIObjectName (widgetDef) Oui Le nom qui identifie la définition d'objet et l'objet Management Center de ce widget. Par exemple, myNewContentRecommendationWidgetObject.

      Lorsque vous créez le fichier de définition d'objet qui définit le widget pour Management Center, vous devez spécifier ce nom pour l'attribut ui_object_name dans le code XML. La valeur de cet attribut est incluse comme valeur pour la colonne WidgetUIObjectName dans le fichier registerWidgetdef.csv généré.

      displayName (widgetDef) Oui Le nom d'affichage du widget spécifique à chaque langue. Par exemple, My New Content Recommendation Widget.

      Ce nom s'affiche dans l'outil Commerce Composer pour aider les utilisateurs professionnels à identifier le widget. La valeur de cet attribut est incluse comme valeur pour la colonne WidgetDisplayName dans le fichier registerWidgetdef.csv généré.

      description (widgetDef) Oui La description du widget spécifique à chaque langue. Par exemple, This widget displays marketing content, such as ads, on a store page. Vous pouvez spécifier une chaîne vide comme valeur.

      La valeur de cet attribut est incluse comme valeur pour la colonne WidgetDescription dans le fichier registerWidgetdef.csv généré.

      widgetDisplayGroups (widgetDef) Non Utilisé pour organiser des widgets dans l'outil Commerce Composer pour aider les utilisateurs du Centre de gestion à filtrer la liste des widgets dans la fenêtre Ajout de widgets dans des emplacements. Lorsque cela est spécifié, une entrée permettant de définir ces groupes est ajoutée à la définition d'objet générée pour votre widget. Pour plus d'informations sur la définition des groupes d'affichage de widgets pour widget, voir Groupes de widgets.
      widgetRestrictionGroups (widgetDef) Non Utilisés pour restreindre les emplacements dans les modèles de présentation pour qu'ils n'incluent que des widgets provenant de groupes de widgets définis. Lorsque cela est spécifié, une entrée identifiant ces groupes est ajoutée au XML de définition de votre widget dans le fichier registerWidgetDef.csv. Pour plus d'informations sur la définition de groupes de restrictions de widgets pour un widget, voir Groupes de widgets.
      property (widgetDef) Non Incluez cet élément pour générer des informations de propriété pour votre widget. Incluez un élément de propriété distinct dans l'élément widgetdef pour chaque propriété que vous souhaitez spécifier pour votre widget. Lorsque vous spécifiez une propriété, l'outil JET ajoute la propriété à la définition XML de votre widget qui se trouve dans le fichier registerWidgetDef.csv. Une entrée est également ajoutée aux fichiers de définition Management Center générés pour vous aider à définir la propriété.
      name (propriété) Oui (si l'élément property est inclus.) Le nom d'une propriété pour votre widget personnalisé. Par exemple, numberOfContentToDisplay.

      Le nom et la valeur correspondante de la propriété sont inclus dans le fichier XML de définition de widget généré pour votre widget personnalisé.

      Si vous spécifiez un nom de propriété dans le fichier d'entrée du modèle, un type d'entrée de propriété est généré pour la propriété dans le fichier de définition de vue des propriétés. Le type d'entrée généré pour la propriété est PropertyInputText par défaut. Vous pouvez modifier le fichier de définition de la vue des propriétés pour modifier le type d'entrée par défaut afin de répondre aux exigences de votre widget.

      Si aucune propriété n'est spécifiée, le code source du widget généré crée un widget qui affiche le message Hello, world!, lorsque le widget est inclus sur une page de magasin.

      A titre d'exemple des propriétés que vous pouvez définir pour votre widget, examinez les propriétés disponibles et utilisées pour les widgets fournis par défaut. Pour plus d'informations, voir Propriétés de widget Commerce Composer.

      displayName (propriété) Oui (si l'élément property est inclus.) Le nom d'affichage d'une propriété pour votre widget personnalisé. Le nom d'affichage est le nom de la propriété qui s'affiche dans Management Center. Par exemple, Maximum number of content to display.
      inputType (propriété) Non Le type d'entrée de la propriété dans Management Center. Le type d'entrée généré pour la propriété est PropertyInputText par défaut. Vous pouvez modifier le fichier de définition de la vue des propriétés pour modifier le type d'entrée par défaut afin de répondre aux exigences de votre widget.
      widgetGroup (widget) Non
      Si votre widget est inclus dans un groupe d'affichage de widgets qui n'est pas fourni par défaut, incluez cet élément widgetGroup. En incluant cet élément, la transformation JET génère le code source pour vous aider à définir votre nouveau groupe d'affichage de widgets.
      Remarque : Si vous incluez votre widget dans un nouveau groupe de restrictions de widgets, n'incluez pas d'informations pour le groupe dans cet élément.
      Les widgets de regroupement peuvent être utilisés pour déterminer quels widgets apparaissent dans la fenêtre Ajout de widgets dans des emplacements de l'outil Commerce Composer.
      Remarque : Si vous souhaitez inclure votre widget dans plusieurs nouveaux groupes d'affichage de widgets, incluez les informations pour un seul groupe d'affichage dans cet élément. La transformation JET crée le code source pour définir un seul groupe d'affichage de widgets. Pour inclure votre widget dans d'autres groupes d'affichage de widgets, mettez à jour le code source généré.
      identifier (widgetGroup) Oui (si l'élément widgetGroup est inclus.) Le nom de référence externe du groupe d'affichage de widgets. Vous pouvez utiliser n'importe quel nom, mais il doit être unique pour le magasin. Par défaut, HCL Commerce inclut les identificateurs de groupe d'affichage de widgets suivants :
      • AnyPage
      • CategoryPage
      • SearchPage
      • CatalogEntryPage
      displayName (widgetGroup) Oui (si l'élément widgetGroup est inclus.) Le nom d'affichage du groupe d'affichage de widgets spécifique à chaque langue. Par défaut, HCL Commerce inclut les noms d'affichage du groupe d'affichage de widgets suivants :
      • Widgets de page quelconque
      • Widgets de page de catégorie
      • Widgets de page de résultats de recherche
      • Widgets de page d'entrée de catalogue

      Vous pouvez inclure plusieurs propriétés pour votre widget personnalisé dans le fichier d'entrée. Chacune des propriétés que vous spécifiez est incluse dans le fichier XML de définition de widget généré. Cette définition XML est incluse comme valeur de la colonne WidgetDefinitionxml dans le fichier registerWidgetdef.csv. Si vous spécifiez toutes les propriétés de votre widget dans le fichier d'entrée du modèle, vous pouvez utiliser la transformation JET pour faciliter la création du XML de définition pour votre widget dans le fichier registerWidgetdef.csv.

    7. Enregistrez et fermez le fichier.
      Le code suivant fournit un exemple de fichier XML d'entrée du modèle mis à jour :
      <pageLayout vendor="myCompany" targetFolder="NewWidgetProject">
        <widget>
          <widgetDef identifier="myNewContentRecommendationWidget"  
           UIObjectName="myNewContentRecommendationWidgetObject" 
           displayName="My New Content Recommendation Widget" 
           description="This widget displays marketing content, such as ads, on a store page"
           widgetDisplayGroups="AnyPage,SearchPage" 
           widgetRestrictionGroups="AnyPage,SearchPage" >
            <property name="widgetOrientation"	
             displayName="Widget Orientation"/>
            <property name="numberOfContentToDisplay"	
             displayName="Maximum number of content to display"/>
          </widgetDef>
          </widget>
      </pageLayout>
  4. Utilisez la transformation JET pour générer les fichiers de code source pour créer votre widget personnalisé.
    1. Cliquez avec le bouton droit sur votre fichier XML d'entrée du modèle. Sélectionnez Exécuter en tant que > Exécuter des configurations.
    2. Dans l'assistant Exécuter des configurations, double-cliquez sur Transformation JET à partir de la liste des filtres. Les options de configuration pour l'affichage de la transformation JET.
    3. Assurez-vous que la valeur de la zone Nom est le nom de votre fichier XML d'entrée du modèle.
    4. Dans l'onglet Principal, vérifiez que la valeur de la zone Entrée de transformation est le chemin d'accès de fichier dans votre espace de travail vers le fichier XML d'entrée du modèle.
      Par exemple : NewWidgetProject\NewWidgetPatternInputFile.xml
    5. Dans la section Transformation, sélectionnez com.ibm.commerce.toolkit.internal.pattern.pageLayout pour la valeur de la zone ID.
      Remarque : com.ibm.commerce.toolkit.internal.pattern.pageLayout_9.0.0.0.zip et com.ibm.commerce.toolkit.internal.pattern.rest_9.0.0.0.zip se trouvent dans le dossier ${WCDE_install}/setup/plugins. Dézippez ces fichiers et déplacez manuellement leurs fichiers jar dans le dossier ${RAD_install}/plugins pour rendre l'ID disponible.
      Il s'agit d'une solution de contournement pour les versions antérieures d'HCL Commerce 9.
      1. Depuis la boîte à outils de la version 8, copiez {WCDE_V8Install}/setup/plugins/com.ibm.commerce.toolkit.internal.pattern.pageLayout.zip dans le dossier {WCDE_V9Install}/setup/plugins de la boîte à outils de la version 9.
      2. Exécutez le script setupPlugins.bat à partir du dossier {WCDE_V9Install}/bin.

      Pour plus d'informations, voir http://www-01.ibm.com/support/docview.wss?uid=swg1JR59956.

    6. Facultatif : Spécifiez le niveau de gravité de la journalisation Afficher un message. La valeur par défaut est Information.
    7. Cliquez sur Appliquer > Exécuter.
      La transformation JET génère les répertoires de fichiers et les fichiers de votre widget personnalisé à l'emplacement que vous avez spécifié dans le paramètre targetFolder dans le fichier XML d'entrée du modèle.
    8. Vérifiez que la transformation JET a créé les répertoires et fichiers suivants.
      vendor
      La valeur du paramètre vendor dans le fichier XML d'entrée du modèle.
      identifier
      La valeur du paramètre identifier dans le fichier XML d'entrée de modèle.
      UIObjectName
      La valeur du paramètre UIObjectName dans le fichier XML d'entrée de modèle.
      target_folder
      Le dossier ou le projet que vous avez spécifié comme valeur pour le paramètre targetFolder dans le fichier XML d'entrée du modèle. Si vous n'avez pas spécifié de valeur pour le paramètre targetFolder, il s'agit du dossier ou du projet target_folder où se trouve le fichier XML d'entrée du modèle.
      WidgetGroupIdentifier
      La valeur de l'élément identifier dans l'élément widgetGroup du fichier XML d'entrée du modèle.
      Si la transformation JET n'a pas créé les fichiers, assurez-vous que vous avez inclus toutes les propriétés obligatoires dans votre fichier d'entrée du modèle et que votre fichier de modèle est correctement structuré. Ensuite, exécutez à nouveau la transformation JET.
      La ressource de vitrine pour définir votre widget
      identifier.jsp
      Emplacement de fichier - target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\identifier.jsp
      identifier_Data.jspf
      Emplacement de fichier - target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\identifier_Data.jspf
      identifier_UI.jspf
      Emplacement de fichier - target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\identifier_UI.jspf
      MyWidgetText_en_US.properties
      Emplacement de fichier - target_folder\Stores\WebContent\Widgets-vendor\Properties\MyWidgetText_en_US.properties
      MyWidgetText.properties
      Emplacement de fichier - target_folder\Stores\WebContent\Widgets-vendor\Properties\MyWidgetText.properties
      Répertoires de fichiers supplémentaires pour contenir les ressources de vitrine :
      • target_folder\Stores\WebContent\Widgets-vendor\com.vendor.commerce.store.widgets.identifier\javascript
      • target_folder\Stores\WebContent\Widgets-vendor\Common
      • target_folder\Stores\WebContent\Widgets-vendor\images
      Fichiers de l'utilitaire Chargement des données pour l'enregistrement et l'abonnement des magasins à votre widget
      registerWidgetdef.csv
      Emplacement de fichier - target_folder\DataLoad\widget\registerWidgetdef.csv
      subscribeWidgetDef.csv
      Emplacement de fichier - target_folder\DataLoad\widget\subscribeWidgetDef.csv
      wc-dataload-widget.xml
      Emplacement de fichier - target_folder\DataLoad\widget\wc-dataload-widget.xml
      wc-dataload-env.xml
      Emplacement de fichier - target_folder\DataLoad\wc-dataload-env.xml
      wc-loader-registerWidgetdef.xml
      Emplacement de fichier - target_folder\DataLoad\wc-loader-registerWidgetdef.xml
      wc-loader-subscribeWidgetdef.xml
      Emplacement de fichier - target_folder\DataLoad\wc-loader-subscribeWidgetdef.xml
      Fichiers pour ajouter la prise en charge Management Center de votre widget
      PageLayoutLOB_en_US.properties
      Emplacement de fichier - target_folder\LOBTools\src\com\vendor\commerce\pagelayout\client\lobtools\properties\PageLayoutLOB_en_US.properties
      PageLayoutLOB.properties
      Emplacement de fichier - target_folder\LOBTools\src\com\vendor\commerce\pagelayout\client\lobtools\properties\PageLayoutLOB.properties
      WidgetObjectDefinition.xml
      Emplacement de fichier - target_folder\LOBTools\WebContent\config\vendor\pagelayout\widgetDefinitions\UIObjectName\WidgetObjectDefinition.xml
      WidgetPropertiesView.xml
      Emplacement de fichier - target_folder\LOBTools\WebContent\config\vendor\pagelayout\widgetDefinitions\UIObjectName\WidgetPropertiesView.xml