本記事では、アンケートの回答を受け付けた後、
メールにてギフトコードが閲覧可能なURLを送信する方法について紹介します。
全体像
予めギフトコードDBにギフトコードを格納しておきます。
アンケート回答フォームよりアンケートを回答すると、ギフトコードDBのギフトコードに紐づき、
アンケートDBに登録され回答者に通知がされます。
アンケート回答フォームのサンクス画面にPHPを設置し、
ギフトコードDBのギフトコードIDとギフトコードを取得します。
フォームの登録時に発行された、アンケート管理IDとギフトコードIDをTRDBに登録し消し込みを行います。
DB設定
以下3つのDBを作成します。
アンケート管理用TRDB
アンケート回答DB
ギフトコードDB
フィールド名 | フィールドタイトル | フィールドタイプ | 自動生成設定 |
---|---|---|---|
アンケート管理ID | enqueteId | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
ギフトコード | giftCode | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
ギフトコードID | giftCodeId | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
連携済みフラグ | connectFlg | セレクト | デフォルト値:2(連携済み) |
登録日時 | registDate | TRDB登録日時 | - |
アンケート回答DB
フィールド名 | フィールドタイトル | フィールドタイプ | 自動生成設定 |
---|---|---|---|
アンケート管理ID | enqueteId | 数字・記号・アルファベット(32 bytes) | 自動生成:値が存在しても、上書きする |
メールアドレス | メールアドレス(大・小文字無視) | 自動生成:使用しない | |
ギフトコード | giftCode | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
ギフトコードDB
フィールド名 | フィールドタイトル | フィールドタイプ | 自動生成設定 |
---|---|---|---|
アンケート管理ID | enqueteId | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
ギフトコードID | giftCodeId | 数字・記号・アルファベット(32 bytes) | 自動生成:値が存在しても、上書きする |
ギフトコード | giftCode | 数字・記号・アルファベット(32 bytes) | 自動生成:使用しない |
連携済みフラグ | connectFlg | セレクト | デフォルト値:1(未連携) |
連携日時 | connectDate | 日付(○年○月○日 ○時○分○秒) | - |
上記のフィールドは必須のフィールドになります。
その他のフィールドは、必要に応じて追加してください。
TRDBのアクション設定についてはアンケート回答DBとギフトコードDBにそれぞれ更新アクションを作成し、
ギフトコードDBには連携済みフラグフィールドを更新アクションのマッピングに設定してください。
また、TRDB登録日時を連携日時フィールドにマッピングしてください。
アンケート回答DBにはギフトコードを更新アクションのマッピングに設定してください。
フォーム設定方法
アンケート回答DBに新規登録型のフォームを新規作成してください。
サンキューページの設定をソース編集に切り替えてください。
ページ最上部に以下のPHPを記載してください。
PHP
その後下部のHTMLソースを以下のように編集してください。
HTML
アンケート回答DBに対するマイエリアを発行してください。
クリックログインを有効にし、ログイン後ページにギフトコードの差し替えを出力してください。
サンクスメールの設定を行い、上記マイエリアに対するクリックログインURLを記載して
フォームの設定は以上になります。
サンキューページの設定をソース編集に切り替えてください。
ページ最上部に以下のPHPを記載してください。
PHP
<? //<!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=OFF NAME=XXX --> ?> <? $db = $SPIRAL->getDataBase("giftCodeDB"); $db->addSortField("id"); $db->addSelectFields("giftCodeId","giftCode"); $db->setLinesPerPage(5); $result = $db->doSelect(); $enqueteId = $SPIRAL->getContextByFieldTitle("enqueteId"); $errorFlg = 0; foreach ($result["data"] as $value) { $db = $SPIRAL->getDataBase("enqueteTRDB"); try { $registResult = $db->doInsert(array( "enqueteId" => $enqueteId, "giftCodeId" => $value["giftCodeId"], "giftCode" => $value["giftCode"] )); var_dump($registResult); // 成功時のみ出力 break; } catch (Exception $e) { $errorFlg = 1; continue; } } ?>
その後下部のHTMLソースを以下のように編集してください。
HTML
<div class="smp_tmpl"> <div class="sub_text"> ご登録ありがとうございました。 <? if($errorFlg == 1){ echo "<br>"; echo "エラーが発生した為、管理者に連絡してください。"; } ?> </div> </div>
アンケート回答DBに対するマイエリアを発行してください。
クリックログインを有効にし、ログイン後ページにギフトコードの差し替えを出力してください。
サンクスメールの設定を行い、上記マイエリアに対するクリックログインURLを記載して
フォームの設定は以上になります。