Vous êtes ici :
Affichage des promotions basées sur la devise de transaction dans les organisations à devises multiples (bêta)
Suivez cette configuration facultative pour afficher les promotions basées sur la devise de la transaction. Par défaut, lorsque vous utilisez plusieurs devises dans votre organisation, la fenêtre Parcourir les catalogues affiche les promotions basées sur la devise du compte associé à la transaction.
Éditions requises
| Disponible avec : Lightning Experience |
| Disponible avec : les éditions Enterprise, Unlimited et Developer de Revenue Cloud avec la licence Revenue Cloud Advanced, et la licence complémentaire de base Gestion globale des promotions ou Loyalty Management - Growth ou Starter. |
| Autorisations utilisateur requises | |
|---|---|
| Pour personnaliser les définitions de contexte : | Administrateur de Context Service |
| Pour personnaliser des flux : | Gérer le flux |
Important
Vous pouvez afficher des promotions basées sur la devise de la transaction uniquement si vous n'avez pas configuré de promotions basées sur le canal.
Configuration de la définition du contexte de découverte de produits
Changez la définition pour afficher les promotions basées sur la devise de la transaction.
-
Modifiez votre définition étendue du contexte Découverte des produits.
- Dans Configuration, recherchez et sélectionnez Définitions de contexte.
- Cliquez sur Définitions personnalisées.
-
Cliquez sur votre définition étendue du contexte Découverte des produits.
Si vous utilisez la définition de contexte prédéfinie, étendez votre définition ProductDiscoveryContext.
- Cliquez sur Modifier.
- Dans la page Modifier les définitions de contexte, cliquez sur Suivant.
-
Dans la page Modifier la structure, cliquez sur
en regard de Promotion__std.
- Dans Nom, saisissez Transaction__c, puis cliquez sur Suivant.
- Cliquez sur Transaction__c.
-
Cliquez sur Ajouter des attributs, puis ajoutez les détails de la devise.
- Dans Nom, saisissez ccycode__c.
- Pour Type, sélectionnez ENTRÉE SORTIE
- Pour Type de données, sélectionnez STRING (chaîne).
-
Cliquez sur Ajouter des attributs, puis ajoutez les détails du compte.
- Dans Nom, saisissez accountId__c.
- Pour Type, sélectionnez ENTRÉE SORTIE.
- Pour Type de données, sélectionnez STRING (chaîne).
-
Cliquez sur Ajouter des attributs, puis ajoutez les détails de l'ID.
- Dans Nom, saisissez id__c.
- Pour Type, sélectionnez ENTRÉE SORTIE.
- Pour Type de données, sélectionnez STRING (chaîne).
- Cliquez sur Suivant.
-
Dans la page Modifier les balises d'attribut, ajoutez les noms d'attribut en tant que noms de balise.
- En regard de accountId__c, cliquez sur Ajouter des balises.
- Dans Nom de la balise, saisissez accountId__c.
- Cliquez sur Terminé.
-
Répétez ces étapes pour ajouter des balises pour ccycode__c et id__c.
Utilisez le nom de l'attribut comme nom de balise.
- Enregistrez vos modifications.
Création d'un mappage de promotions personnalisées
- Ouvrez l'onglet Mapper les données.
-
En regard de ProductDiscoveryPromoMapping, cliquez sur
, puis sélectionnez Clone.
- Saisissez un nom, puis enregistrez vos modifications.
- Supprimez le mappage entre le nœud Compte et le nœud SalesTransaction.
-
Mappez ces nœuds et attributs.
Contexte de découverte de produits Contexte des transactions commerciales Transaction__c SalesTransaction ccycode__c CurrencyIsoCode accountId__c Compte - Enregistrez vos modifications.
-
En regard de ProductDiscoveryMapping, cliquez sur
, puis sélectionnez Modifier le mappage d'entrée.
- Cliquez sur Générer des mappages de nœuds.
- Dans la fenêtre Générer des mappages de nœuds, cliquez sur Conserver et générer.
- Enregistrez vos modifications.
- Activez votre définition du contexte.
Création d’une classe Apex
Créez une classe Apex pour une action de flux.
-
Cliquez sur
, puis sélectionnez Developer Console.
- Sélectionnez Fichier | Nouveau | Classe Apex .
- Dans Nom, saisissez DiscoverProductFlowAction.
-
Ajoutez ce code, puis enregistrez vos modifications.
public class DiscoverProductFlowAction { // Define input parameters public class FlowInput { @InvocableVariable(required=false) public String objectApiName; @InvocableVariable(required=false) public String recordId; } // Define output parameters public class FlowOutput { @InvocableVariable public runtime_industries_cpq.ContextDataInput[] additionalContextData; } // This method is invoked from a flow @InvocableMethod(label='Process Input' description='Creates the Array of ContextDataInput for additional Context Data') public static List<FlowOutput> generateAdditionalContextData(List<FlowInput> inputs) { String objectApiName; String recordId; String ccyCode; String accountId; Quote quoteObject; Order orderObject; FlowOutput output = new FlowOutput(); // Capture input from the flow for(FlowInput input : inputs ){ objectApiName = input.objectApiName; recordId = input.recordId; } //Write logic to Query Currency from Transaction Entity if(objectApiName == 'Quote') { quoteObject = [SELECT CurrencyIsoCode,AccountId FROM Quote WHERE Id = :recordId LIMIT 1][0]; ccyCode = quoteObject.CurrencyIsoCode; accountId = quoteObject.AccountId; } else if(objectApiName == 'Order') { orderObject = [SELECT CurrencyIsoCode,AccountId FROM Order WHERE Id = :recordId LIMIT 1]; ccyCode = orderObject.CurrencyIsoCode; accountId = orderObject.AccountId; } //Populate the ContextDataInput list to store additional context data List<runtime_industries_cpq.ContextDataInput> listContextData = new List<runtime_industries_cpq.ContextDataInput>(); runtime_industries_cpq.ContextDataInput cd1 = new runtime_industries_cpq.ContextDataInput(); cd1.nodeName = 'Transaction'; //Where Quote is the name of the node in the context definition. cd1.nodeData = new Map<String,Object>(); cd1.nodeData.put('id',recordId); cd1.nodeData.put('ccycode',ccyCode); cd1.nodeData.put('accountId',accountId); listContextData.add(cd1); // Return the additional Context Data to a flow output.additionalContextData = listContextData; return new List<FlowOutput>{output}; } }
Personnalisation du flux de découverte de produits
- Dans Configuration, recherchez et sélectionnez Flux.
-
Ouvrez votre flux Découverte de produits.
Si vous utilisez le flux par défaut, ouvrez Discover Products.
-
Avant l'élément d'écran Liste de produits, cliquez sur
, puis sélectionnez Action.
- Saisissez une étiquette et un nom d’API.
- Recherchez et sélectionnez DiscoverProductFlowAction.
- Activez objectAPIName, puis saisissez objectAPIName en tant que valeur.
- Activez recordId, puis saisissez recordId en tant que valeur.
- Enregistrez vos modifications.
- Cliquez sur Liste de produits.
- Cliquez sur Conteneur de page Liste de produits.
- Pour l'attribut Tableau d'entrée de données du contexte, sélectionnez la sortie de l'action.
- Enregistrez vos modifications.
- Activez le flux.
Cet article a-t-il résolu votre problème ?
Dites-nous ce que nous pouvons améliorer !

