Loading
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
ロイヤルティ管理
[友達を紹介] ウィジェットテンプレートの Apex クラス

[友達を紹介] ウィジェットテンプレートの Apex クラス

デフォルトでは使用できないウィジェット、コンポーネント、データに追加して、[友達を紹介] ウィジェットテンプレートをカスタマイズします。たとえば、メンバーの 5 件の最近の紹介が表示される状態を追加します。

必要なエディション

使用可能なインターフェース: ロイヤルティ管理を備える Enterprise Edition、Performance Edition、Unlimited Edition および Developer Edition の Lightning Experience
global class WidgetReferMember implements System.Callable {
    global Object call(String action, Map<String, Object> arguments) {
        Map<String, Object> input = (Map<String, Object>)arguments.get('input');
        Map<String, Object> output = (Map<String, Object>)arguments.get('output');
        Map<String, Object> options = (Map<String, Object>)arguments.get('options');
        if (action == 'getMemberReferralCode') {
            return getMemberReferralCode(input, output, options);
        }
        return null;
    }

    class MemberReferralCode {
        String referralCode;
        Boolean success;
        String programName;
        boolean isVisible;
        String url;
        String urlTruncated;
    }

    private Map<String, Object> getMemberReferralCode(Map<String, Object> input, Map<String, Object> output, Map<String, Object> options) {
        Long startTimeInMillis = System.currentTimeMillis();
        String visibilityType = (String)input.get('visibilityType');
        String visibilityMap = (String)input.get('visibilityMap');
        List<LoyaltyProgramMember> programMembers = [SELECT ReferralCode, Program.Name From LoyaltyProgramMember WHERE MembershipNumber =: (String)input.get('membershipNumber') AND Program.Name =: (String)input.get('programName')];
        MemberReferralCode referralCodeDetails = new MemberReferralCode();
        if(visibilityType != null && visibilityMap != null && visibilityType != '{Session.VisibilityType}' && visibilityMap != '{Session.VisibilityMap}' && !String.isEmpty(visibilityType) && !String.isEmpty(visibilityMap)) {
            String programName = (String)input.get('programName');
            String membershipNumber = (String)input.get('membershipNumber');
            String decodedMap = EncodingUtil.base64Decode(visibilityMap).toString();
            Map<String, Object> attributes = (Map<String, Object>) JSON.deserializeUntyped(decodedMap);
            attributes.put('programName', programName);
            attributes.put('membershipNumber', membershipNumber);
        }
        else
            referralCodeDetails.isVisible = true;

        if (!programMembers.isEmpty()) {
            LoyaltyProgramMember member = programMembers.get(0);
            referralCodeDetails.success = true;
            referralCodeDetails.referralCode = member.ReferralCode;
            referralCodeDetails.programName = (String)input.get('programName');
            String url = (String)input.get('url');
            if (url != null && !String.isEmpty(url) && url != '{Session.Url}') {
                String urlTruncated = url;
                referralCodeDetails.url = url;
                Integer maxSize = 25;
                if(url.length() > maxSize ){
                    urlTruncated = url.substring(0, maxSize) + '...';
                }
                referralCodeDetails.urlTruncated = urlTruncated;
            }
        } else {
            referralCodeDetails.success = false;
        }
        output.put('referralCodeDetails', referralCodeDetails);
        String iconOneLink = (String)input.get('iconOneLink');
        if(iconOneLink != null && iconOneLink != '{iconOneLink}' && iconOneLink != '{Session.iconOneLink}' && !String.isEmpty(iconOneLink)) {
            output.put('iconOneLink', iconOneLink);
        }
        String iconTwoLink = (String)input.get('iconTwoLink');
        if(iconTwoLink != null && iconTwoLink != '{iconTwoLink}' && iconTwoLink != '{Session.iconTwoLink}' && !String.isEmpty(iconTwoLink)) {
            output.put('iconTwoLink', iconTwoLink);
        }
        String iconThreeLink = (String)input.get('iconThreeLink');
        if(iconThreeLink != null && iconThreeLink != '{iconThreeLink}' && iconThreeLink != '{Session.iconThreeLink}' && !String.isEmpty(iconThreeLink)) {
            output.put('iconThreeLink', iconThreeLink);
        }
        String iconFourLink = (String)input.get('iconFourLink');
        if(iconFourLink != null && iconFourLink != '{iconFourLink}' && iconFourLink != '{Session.iconFourLink}' && !String.isEmpty(iconFourLink)) {
            output.put('iconFourLink', iconFourLink);
        }
        String iconFiveLink = (String)input.get('iconFiveLink');
        if(iconFiveLink != null && iconFiveLink != '{iconFiveLink}' && iconFiveLink != '{Session.iconFiveLink}' && !String.isEmpty(iconFiveLink)) {
            output.put('iconFiveLink', iconFiveLink);
        }
        return output;
    }
}
 
読み込み中
Salesforce Help | Article