Modélisation du code XML d'exécution de promotion pour le nouveau type de promotion

Dans cette leçon, vous apprenez comment modéliser le code XML d'exécution de promotion pour un nouveau type de promotion intitulé "Achetez l'entrée de catalogue X pour $ et recevez en cadeau l'entrée de catalogue Y." Pendant le flux des achats, le moteur de promotion analyse et traite le code XML d'exécution de promotion afin d'évaluer si un client est habilité à bénéficier d'une promotion.

Pourquoi et quand exécuter cette tâche

Pour des informations générales sur cette première leçon, consultez :

Généralement, pour créer un type de promotion personnalisé, vous utilisez le code XML d'exécution d'une promotion basée sur un type similaire. Vous analysez ensuite le code XML d'exécution de promotion afin de déterminer dans quelle mesure le code XML d'exécution de promotion du type de promotion personnalisé est différent. Dans la plupart des cas, les différences se trouvent dans les sections de condition d'achat et de récompense. Une fois que vous avez modélisé votre code XML d'exécution de promotion personnalisé, utilisez le modèle pour identifier les données qui doivent être gérées via l'interface utilisateur du Centre de gestion.

Pour cette leçon, un modèle d'instance du code XML d'exécution de promotion complet pour le nouveau type de promotion est fourni ; par conséquent, vous n'avez pas à le modéliser vous-même. Dans cette leçon, vous examinez le contenu du code XML d'exécution de promotion fourni et vous en étudiez les sections principales.

Pour créer un type de promotion personnalisé, vous n'avez pas besoin de redéfinir la totalité du code XML d'exécution de promotion ; vous devez définir une nouvelle condition d'achat dans le code XML. Généralement, la condition d'achat est composée de deux parties : le Pattern pour la condition de la promotion et la Distribution pour la récompense de la promotion. Dans cette leçon, vous apprenez à modéliser les éléments <Pattern> et <Distribution>.

Procédure

  1. Dans l'échantillon suivant, observez l'élément <Pattern> du nouveau type de promotion.
    L'élément clé de l'élément <Pattern> est <filter>. Un <filter> est un ensemble de logique métier appliqué à un élément LineItemSet et qui débouche sur un second élément LineItemSet constituant un sous-ensemble du premier. Pour plus d'informations, voir Filtres personnalisés. Pour cette promotion, vous utilisez un filtre existant, MultiSKUFilter, qui filtre le jeu LineItemSet basé sur l'entrée CatalogEntry et l'entrée CatalogEntry parent des articles LineItems, puis renvoie tous les articles LineItems dont l'entrée CatalogEntry ou CatalogEntry parent appartient à la liste d'inclusion et non à la liste d'exclusion du filtre. L'échantillon de code suivant est une instance de l'élément <Pattern> dans le code XML d'exécution de promotion :
    
    <Pattern impl="com.ibm.commerce.marketing.promotion.condition.Pattern">
    <Constraint impl="com.ibm.commerce.marketing.promotion.condition.Constraint">
    <WeightedRange impl="com.ibm.commerce.marketing.promotion.condition.WeightedRange">
    <LowerBound>1</LowerBound>
    <UpperBound>-1</UpperBound>
    <Weight>1</Weight>
    </WeightedRange>
    <FilterChain impl="com.ibm.commerce.marketing.promotion.condition.FilterChain">
    <Filter impl="com.ibm.commerce.marketing.promotion.condition.MultiSKUFilter">
    <xsl:for-each select="PromotionData/Elements/PurchaseCondition/IncludeCatalogEntryIdentifier">
    <IncludeCatEntryKey>
    <xsl:call-template name="CatalogEntryKeyTemplate">
    <xsl:with-param name="dn" select="Data/DN" />
    <xsl:with-param name="sku" select="Data/SKU" />
    </xsl:call-template>
    </IncludeCatEntryKey>
    </xsl:for-each>
    <xsl:for-each select="PromotionData/Elements/PurchaseCondition/ExcludeCatalogEntryIdentifier">
    <ExcludeCatEntryKey>
    <xsl:call-template name="CatalogEntryKeyTemplate">
    <xsl:with-param name="dn" select="Data/DN" />
    <xsl:with-param name="sku" select="Data/SKU" />
    </xsl:call-template>
    </ExcludeCatEntryKey>
    </xsl:for-each>
    </Filter>
    </FilterChain>
    </Constraint>
    </Pattern>
    Dans l'exemple précédent, les éléments en caractères gras sont ceux gérés par l'interface utilisateur. Pour cette instance, le professionnel a indiqué que les clients doivent placer l'entrée de catégorie TAPL-02 ou TAPL-01 dans leur panier afin de pouvoir bénéficier de cette promotion.
  2. Dans l'échantillon suivant, observez l'élément <Distribution> du nouveau type de promotion.
    L'élément clé de l'élément <Distribution> est <Adjustment>. Les ajustments sont des mesures incitatives proposées aux clients. Les ajustements peuvent être appliqués à un ou plusieurs articles de commande dans le modèle correspondant ou à l'ensemble de la commande. Pour plus d'informations, voir Ajustements personnalisés. Pour cette promotion, vous utilisez un ajustement existant, FreePurchasableGiftAdjustment. Il offre un cadeau en tant que récompense dans le cadre d'une promotion. L'échantillon de code suivant est une instance de l'élément <Distribution> dans le code XML d'exécution de promotion :
    
    <Distribution impl="com.ibm.commerce.marketing.promotion.reward.Distribution">
    <Type>Volume</Type>
    <Base>Cost</Base>
    <Currency>USD</Currency>
    <Range impl="com.ibm.commerce.marketing.promotion.reward.DistributionRange">
    <UpperBound>-1</UpperBound>
    <LowerBound><xsl:value-of select="PromotionData/Elements/PurchaseCondition/Data/BaseItemTotalPrice" /></LowerBound>
    <UpperBoundIncluded>true</UpperBoundIncluded>
    <LowerBoundIncluded>true</LowerBoundIncluded>
    <RewardChoice>
    <Reward impl="com.ibm.commerce.marketing.promotion.reward.DefaultReward">
    <xsl:for-each select="PromotionData/Elements/PurchaseCondition/GiftCatalogEntryIdentifier">
    <AdjustmentFunction impl="com.ibm.commerce.marketing.promotion.reward.AdjustmentFunction">
    <FilterChain impl="com.ibm.commerce.marketing.promotion.condition.FilterChain">
    <Filter impl="com.ibm.commerce.marketing.promotion.condition.DummyFilter" />
    </FilterChain>
    <Adjustment impl="com.ibm.commerce.marketing.promotion.reward.FreePurchasableGiftAdjustment">
    <GiftItem>
    <xsl:call-template name="CatalogEntryKeyTemplate">
    <xsl:with-param name="dn" select="Data/DN" />
    <xsl:with-param name="sku" select="Data/SKU" />
    </xsl:call-template>
    </GiftItem>
    <Quantity><xsl:value-of select="Data/giftQuantity" /></Quantity>
    <AddStrategy>1</AddStrategy>
    <AdjustmentType>wholeOrder</AdjustmentType>
    </Adjustment>
    </AdjustmentFunction>
    </xsl:for-each>
    </Reward>
    </RewardChoice>
    </Range>
    <PatternFilter impl="com.ibm.commerce.marketing.promotion.condition.DummyPatternFilter" />
    </Distribution>

    Dans l'exemple précédent, les éléments en caractères gras sont ceux gérés par l'interface utilisateur. Pour cette instance particulière, le professionnel a indiqué que si les clients dépensent 200 $ ou plus en achetant les entrées de catalogue de l'élément <Pattern>, ils reçoivent un cadeau.

Résultats

Cette leçon a présenté les deux sections clé du code XML d'exécution de promotion. Dans la leçon suivante, vous commencerez à planifier les modifications de l'interface utilisateur du Centre de gestion nécessaires pour la prise en charge du nouveau type de promotion.