다중 통화 조직에서 트랜잭션 통화를 기반으로 프로모션 표시(베타)
이 옵션 설정을 완료하여 트랜잭션 통화를 기반으로 프로모션을 표시합니다. 기본적으로 조직에서 복수 통화를 사용할 경우 카탈로그 찾아보기 창에 트랜잭션과 연결된 계정의 통화를 기반으로 프로모션이 표시됩니다.
필수 Edition
| 지원 제품: Lightning Experience |
| 다음 버전에서 사용 가능: Revenue Cloud Advanced 라이센스와 글로벌 프로모션 관리 기본 추가 기능 라이센스 또는 Loyalty Management - Growth 또는 Starter 라이센스가 있는 Revenue Cloud Enterprise, Unlimited 및 Developer Edition. |
| 필요한 사용자 권한 | |
|---|---|
| 컨텍스트 정의 사용자 정의: | 컨텍스트 서비스 관리자 |
| 플로 사용자 정의: | 플로 관리 |
중요
거래 통화를 기반으로 프로모션을 표시할 수 있는 경우에만 채널 기반 프로모션을 설정하지 않은 경우
제품 검색 컨텍스트 정의 구성
트랜잭션 통화를 기반으로 프로모션을 표시하도록 정의를 변경합니다.
-
확장된 제품 검색 컨텍스트 정의를 편집합니다.
- 설정에서 컨텍스트 정의를 찾아서 선택합니다.
- 사용자 정의 정의를 클릭합니다.
-
확장된 제품 검색 컨텍스트 정의를 클릭합니다.
사전 구축 컨텍스트 정의를 사용하는 경우 ProductDiscoveryContext 컨텍스트 정의를 확장합니다.
- 편집을 클릭합니다.
- 컨텍스트 정의 편집 페이지에서 다음을 클릭합니다.
-
구조 편집 페이지에서 Promotion__std 옆의
를 클릭합니다.
- 이름에 Transaction__c를 입력하고 다음을 클릭합니다.
- Transaction__c를 클릭합니다.
-
특성 추가를 클릭하고 통화 세부 사항을 추가합니다.
- 이름에 ccycode__c를 입력합니다.
- 유형으로 INPUT OUTPUT을 선택합니다.
- 데이터 유형으로 문자열을 선택합니다.
-
특성 추가를 클릭하고 계정 세부 사항을 추가합니다.
- 이름에 accountId__c를 입력합니다.
- 유형으로 INPUT OUTPUT을 선택합니다.
- 데이터 유형으로 문자열을 선택합니다.
-
특성 추가를 클릭하고 ID 세부 사항을 추가합니다.
- 이름에 id__c를 입력합니다.
- 유형으로 INPUT OUTPUT을 선택합니다.
- 데이터 유형으로 문자열을 선택합니다.
- 다음을 클릭합니다.
-
특성 태그 편집 페이지에서 특성 이름을 태그 이름으로 추가합니다.
- accountId__c 옆에 있는 태그 추가를 클릭합니다.
- 태그 이름에 accountId__c를 입력합니다.
- 완료를 클릭합니다.
-
다음 단계를 반복하여 ccycode__c 및 id__c에 대한 태그를 추가합니다.
특성 이름을 태그 이름으로 사용합니다.
- 변경 사항을 저장합니다.
사용자 정의 프로모션 매핑 만들기
- 지도 데이터 탭을 엽니다.
-
ProductDiscoveryPromoMapping 옆에 있는
를 클릭하고 클론을 선택합니다.
- 이름을 입력하고 변경 사항을 저장합니다.
- 계정 노드와 SalesTransaction 노드 간의 매핑을 삭제합니다.
-
다음 노드 및 특성을 매핑합니다.
제품 검색 컨텍스트 세일즈 트랜잭션 컨텍스트 Transaction__c SalesTransaction ccycode__c CurrencyIsoCode accountId__c Account - 변경 사항을 저장합니다.
-
ProductDiscoveryMapping 옆에 있는
를 클릭하고 입력 매핑 편집을 선택합니다.
- 노드 매핑 생성을 클릭합니다.
- 생성 노드 매핑 창에서 보존 및 생성을 클릭합니다.
- 변경 사항을 저장합니다.
- 컨텍스트 정의를 활성화합니다.
Apex 클래스 만들기
플로 작업에 대한 Apex 클래스를 만듭니다.
-
를 클릭하고 개발자 콘솔을 선택합니다.
- 파일 | 신규 | Apex 클래스 을 선택합니다.
- 이름에 DiscoverProductFlowAction을 입력합니다.
-
이 코드를 추가하고 변경 사항을 저장합니다.
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}; } }
제품 검색 플로 사용자 정의
- 설정에서 Flows(플로)를 찾아 선택합니다.
-
제품 검색 플로를 엽니다.
기본 플로를 사용하는 경우 제품 검색을 엽니다.
-
제품 목록 화면 요소 앞에서
를 클릭하고 작업을 선택합니다.
- 레이블 및 API 이름을 입력합니다.
- 찾고 DiscoverProductFlowAction을 선택합니다.
- objectAPIName을 켜고 objectAPIName을 값으로 입력합니다.
- recordId를 켜고 recordId를 값으로 입력합니다.
- 변경 사항을 저장합니다.
- 제품 목록을 클릭합니다.
- 제품 목록 페이지 컨테이너을 클릭합니다.
- 컨텍스트 데이터 입력 배열 특성에서 작업의 출력을 선택합니다.
- 변경 사항을 저장합니다.
- 플로를 활성화합니다.
이 기사를 통해 문제를 해결했습니까?
개선을 위한 의견을 보내주세요.

