あなた独自の報酬ポイント発行
----- Issuance of Unique Reward Points. -----

ナレッジ

ご利用にあたり、お伝えしておくことが特に必要と思われる事柄を以下にまとめてます。

ポイント処理の単位

商品の決済にともなうポイントの処理ですが、購入品が複数あった場合でも個別には実行されません。仕組み的に「商品個数」をそれぞれ計算して処理を実行するという設計にはなっておらず、ポイント処理は「決済時の合計金額」をひとつの単位とみなします。ご自身の環境で利用する際は「ショッピングカートに入っている商品の合計金額」に対してポイント処理の実行がおこなわれるという事を意識するようにして下さい。

ポイントレートの指定

ポイントの付与や使用時のレートは、それぞれ還元率(conv_rate)と利用料率(use_rate)として個別の値を設定できます。
このレート指定ですが次のようなお約束事があります。
  • 還元率、利用料率の値が同じ場合は「rate="xx"」という省略表記の指定可
  • 個別設定と省略指定における有効性判断(優先度)ですが、個別設定の2項目対もしくは省略形どちらか「片方の指定方法のみ真」となります。
  • 上述した有効性判断の仕様(どちらか片方のみ真)により個別設定の2項目対にプラスして省略形も指定(conv_rate="xx" use_rate="xx" rate="xx")、個別設定2項目のどちらか1項目と省略形(conv_rate="xx" rate="xx" or use_rate="xx" rate="xx")など混ぜ合わせた値指定がおこなわれた場合は、すべてエラーが返されます。

ポイント付与対象者の識別

ポイント付与をはじめとする処理の対象者を識別するために独自のUUIDを定義しています(この場合の対象者はあなたでなく、あなたの顧客を指す)この識別情報はクッキーとしてお買い物をする利用者側のブラウザに保存されます。ポイント処理の依頼が発生するとこちらのシステムは利用者側にUUIDの存在確認を依頼し、既にUUIDが存在してた場合は、その有効期限を延長します。今回がはじめての処理依頼と判断したら新規にUUIDを生成し、利用者のブラウザに対象者情報を保存します。

利用者情報の保持(永続性の担保)※特に重要

あなたのサイト利用者お一人おひとりを識別し、それぞれのポイント情報を保持することは利用者側にその識別子を保存しておくことで実現できますが、この利用者情報の扱いには特に注意が必要です。あなたの顧客とその方のポイント情報を紐付ける識別子(UUID)はクッキーとしてブラウザに保存されることから、避けては通れない特有の問題が生じます(利用者環境の不確実性:クッキーはブラウザを跨いで使い回しできない)この不確実性の対処には、あなたご自身が保有する顧客データベースとクッキーとして保存される識別子の紐付けが必要です。あなたの顧客データと識別子の紐付けがおこなわれることで、永続的にいつでも最新のポイント情報を扱えることが担保されます。以下に識別子の紐付けに用いるコードサンプルを掲載しておくので、こちらを参考にポイント利用者情報を保持するための実装をおこなってください。

ワードプレス環境においてのポイント利用者情報紐付け

WPの関数「get_user_meta()」と「update_user_meta() 」を用いて、クッキーに格納されている識別子「get_pointsystem_account_uuid()」の値を確認する。

(UUID)利用者情報の確認処理

        function point_system_account_save($account_uuid){
            $user_id = get_current_user_id();
                if($user_id == 0){
                    // not login
                    return $account_uuid;
                }
            
            $meta_key = 'point_system_account_name';
            
            // 以前に登録済みのIDが存在しているかチェック
            $point_system_account_name = get_user_meta( $user_id, $meta_key, true );
            
            if($point_system_account_name !== FALSE){
                // 以前の登録済みのIDが存在した場合、そのIDをポイントシステムで利用するように設定
                set_pointsystem_account_uuid($account_uuid);
                return $point_system_account_name;
            }
            
            // 登録済みのIDが存在していない場合は生成されたUUIDで登録する
            $account_uuid = get_pointsystem_account_uuid();
            update_user_meta( $user_id, $meta_key, $account_uuid );
            return $account_uuid;
    }
            
    // 顧客データと紐づいた $account_uuid が存在した場合取得し、存在していなければ生成する
    $account_uuid = point_system_account_load();

PHPで書かれた環境においてのポイント利用者情報紐付け

(UUID)利用者情報の確認処理

    $user_id = get_current_user_id(); // ログインしていない場合に 0 を返し、ログインしている場合はユーザーIDを返す
    
    update_user_meta( $user_id, $meta_key, $meta_value ); // 指定した $user_id, $meta_key をキーとして、$meta_value で上書き保存する
    
    $meta_value = get_user_meta( $user_id, $meta_key, $single ); // 指定した $user_id, $meta_key をキーとして、$meta_value を取得する

その他の言語環境においてのポイント利用者情報紐付け

(UUID)利用者情報の確認処理

    ワードプレスの関数ライブラリ「get_current_user_id()」及び「get_user_meta()」と「 update_user_meta()」の代替となる役割関数を定義して同じような処理を実装して下さい。