Você está aqui:
Mostrar promoções com base na moeda da transação em organizações de várias moedas (beta)
Conclua essa configuração opcional para mostrar promoções com base na moeda da transação. Por padrão, quando você usa várias moedas em sua organização, a janela Procurar catálogos mostra promoções com base na moeda da conta associada à transação.
Edições obrigatórias
| Disponível em: Lightning Experience |
| Disponível em: Edições Enterprise, Unlimited e Developer do Revenue Cloud com a licença Revenue Cloud Advanced e a licença Gerenciamento de promoções globais Complemento básico ou Licença Gerenciamento de fidelidade – Crescimento ou Starter. |
| Permissões de usuário necessárias | |
|---|---|
| Para personalizar definições de contexto: | Administrador do Serviço de contexto |
| Para personalizar fluxos: | Gerenciar fluxos |
Importante
Você poderá mostrar promoções com base na moeda da transação somente se não tiver configurado promoções baseadas em canal.
Configurar a definição de contexto de descoberta de produto
Altere a definição para mostrar promoções com base na moeda da transação.
-
Edite sua definição de contexto estendida de Descoberta de produto.
- Em Configuração, localize e selecione Definições de contexto.
- Clique em Definições personalizadas.
-
Clique em sua definição de contexto estendida de Descoberta de produto.
Se você estiver usando a definição de contexto predefinida, estenda sua definição de contexto de ProductDiscoveryContext.
- Clique em Editar.
- Na página Editar definições de contexto, clique em Avançar.
-
Na página Editar estrutura, clique em
ao lado de Promotion__std.
- Para nome, insira Transaction__c e clique em Avançar.
- Clique em Transaction__c.
-
Clique em Adicionar atributos e adicione os detalhes da moeda.
- Para nome, insira ccycode__c.
- Para Tipo, selecione INPUT OUTPUT
- Para Tipo de dados, selecione STRING.
-
Clique em Adicionar atributos e adicione os detalhes da conta.
- Para nome, insira accountId__c.
- Para Tipo, selecione INPUT OUTPUT.
- Para Tipo de dados, selecione STRING.
-
Clique em Adicionar atributos e adicione os detalhes do ID.
- Para nome, insira id__c.
- Para Tipo, selecione INPUT OUTPUT.
- Para Tipo de dados, selecione STRING.
- Clique em Avançar.
-
Na página Editar marcas de atributo, adicione os nomes de atributo como nomes de marca.
- Ao lado de accountId__c, clique em Adicionar marcas.
- Para nome da marca, insira accountId__c.
- Clique em Concluído.
-
Repita essas etapas para adicionar marcações para ccycode__c e id__c.
Use o nome do atributo como o nome da marca.
- Salve suas alterações.
Criar um mapeamento de promoções personalizado
- Abra a guia Mapear dados.
-
Ao lado de ProductDiscoveryPromoMapping, clique em
e selecione Clonar.
- Insira um nome e salve suas alterações.
- Exclua o mapeamento entre o nó Conta e o nó SalesTransaction.
-
Mapeie estes nós e atributos.
Contexto de descoberta de produto Contexto da transação de vendas Transação__c SalesTransaction ccycode__c CurrencyIsoCode accountId__c Conta - Salve suas alterações.
-
Ao lado de ProductDiscoveryMapping, clique em
e selecione Editar mapeamento de entrada.
- Clique em Gerar mapeamentos de nó.
- Na janela Gerar mapeamentos de nó, clique em Retenir e gerar.
- Salve suas alterações.
- Ative sua definição de contexto.
Criar uma classe do Apex
Crie uma classe do Apex para uma ação de fluxo.
-
Clique em
e selecione Console do desenvolvedor.
- Selecione Arquivo | Novo | Classe do Apex .
- Para nome, insira DiscoverProductFlowAction.
-
Adicione esse código e salve suas alterações.
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}; } }
Personalizar o fluxo de descoberta de produto
- Em Configuração, localize e selecione Fluxos.
-
Abra seu fluxo de Descoberta de produto.
Se você estiver usando o fluxo padrão, abra Descobrir produtos.
-
Antes do elemento da tela Lista de produtos, clique em
e selecione Ação.
- Insira um rótulo e um nome de API.
- Localize e selecione DiscoverProductFlowAction.
- Ative objectAPIName e insira objectAPIName como seu valor.
- Ative recordId e insira recordId como seu valor.
- Salve suas alterações.
- Clique em Lista de produtos.
- Clique em Contêiner de página de lista de produtos.
- Para o atributo Matriz de entrada de dados de contexto, selecione a saída da ação.
- Salve suas alterações.
- Ative o fluxo.
Este artigo resolveu seu problema?
Diga-nos para podermos melhorar!

