# トライアル用キーコード配布機能 設定手順書

## 1. 概要

本機能は、専用画面でメールアドレスを入力するとトライアル用キーコードをメール送信し、一定間隔でフォローメールを送信する機能です。

---

## 2. 事前準備

### 2.1 必要な情報

- 対象代理店の `med_no`（代理店番号）
- 対象代理店の `shop_cd`（ショップコード）
- トライアル用に配布するキーコード（`licences` テーブルに登録済みのもの）

### 2.2 キーコードの準備

トライアル用キーコードは `licences` テーブルに登録し、`mem_no` を NULL にしておく必要があります。

```sql
-- キーコードの登録確認
SELECT licence_cd, mem_no, licence_status_flg
FROM licences
WHERE med_no = [対象の代理店番号]
  AND mem_no IS NULL
  AND licence_status_flg = true;
```

---

## 3. データベースセットアップ

### 3.1 テーブル作成

以下のSQLを実行してテーブルを作成します。

```bash
psql -U postgres -d [データベース名] < src/release/trial/dbsetting/01_trial_tables_create.sql
```

### 3.2 作成されるテーブル

| テーブル名 | 説明 |
|------------|------|
| trial_settings | トライアル設定 |
| trial_requests | 配布リクエスト履歴 |
| trial_email_templates | フォローメールテンプレート |
| trial_follow_emails | フォローメール送信履歴 |

---

## 4. 管理画面でのトライアル設定

### 4.1 トライアル設定の作成

1. 管理画面にログイン
2. メニューから「トライアル設定管理」を選択
3. 「新規登録」ボタンをクリック
4. 以下の項目を入力:

| 項目 | 説明 | 必須 |
|------|------|------|
| トライアル名 | 表示用の名称（例：春のキャンペーントライアル） | ○ |
| 代理店 | 対象の代理店を選択 | ○ |
| 開始日 | トライアル受付開始日 | ○ |
| 終了日 | トライアル受付終了日 | ○ |
| 配布上限 | 0=無制限、1以上=上限数 | - |
| フォローメール | 有効にするとフォローメールを送信 | - |
| ステータス | 有効/無効 | ○ |

5. 「登録」ボタンをクリック
6. 確認画面で内容を確認し、「登録」ボタンをクリック

### 4.2 メールテンプレートの作成

1. メニューから「メールテンプレート管理」を選択
2. 「新規登録」ボタンをクリック
3. 以下の項目を入力:

| 項目 | 説明 | 必須 |
|------|------|------|
| テンプレート名 | 管理用の名称 | ○ |
| 代理店 | 対象の代理店を選択 | ○ |
| 対象トライアル設定 | 特定の設定のみに適用する場合に選択 | - |
| 送信タイミング | 配布後N日後に送信（例：3） | ○ |
| 件名 | メールの件名 | ○ |
| 本文 | メールの本文 | ○ |
| ステータス | 有効/無効 | ○ |

**使用可能な変数:**
- `{{email}}` - 申込者のメールアドレス
- `{{keycode}}` - 配布したキーコード
- `{{unsubscribe_url}}` - 配信停止URL

---

## 5. バッチ処理の設定

### 5.1 crontab設定

フォローメール送信バッチを毎日10時に実行する場合:

```bash
# crontab -e で以下を追加
0 10 * * * /usr/bin/php /var/www/html/dat/batch/trial_follow_email.php >> /var/log/trial_follow_email.log 2>&1
```

### 5.2 バッチの手動実行

テスト目的で手動実行する場合:

```bash
/usr/bin/php /var/www/html/dat/batch/trial_follow_email.php
```

---

## 6. ユーザー向けURLの設定

### 6.1 トライアル申込URL

```
https://[ドメイン]/trial/?shop_cd=[ショップコード]
```

例:
```
https://example.com/trial/?shop_cd=ABC123
```

### 6.2 配信停止URL

配信停止URLはメール内の `{{unsubscribe_url}}` 変数で自動生成されます。

---

## 7. 動作確認チェックリスト

### 7.1 初期設定確認

- [ ] テーブルが正常に作成されている
- [ ] 未使用のキーコードが登録されている
- [ ] トライアル設定が有効になっている
- [ ] メールテンプレートが登録されている

### 7.2 申込フロー確認

- [ ] `/trial/?shop_cd=XXX` にアクセスできる
- [ ] メールアドレス入力画面が表示される
- [ ] 確認画面に遷移できる
- [ ] 完了画面が表示される
- [ ] キーコード通知メールが届く

### 7.3 管理画面確認

- [ ] 配布履歴一覧に申込が記録されている
- [ ] 配布数がカウントアップされている

### 7.4 フォローメール確認

- [ ] バッチが正常に実行される
- [ ] 送信タイミングでメールが送信される
- [ ] 配信停止が正常に動作する

---

## 8. トラブルシューティング

### 8.1 キーコードが取得できない

**原因:** 未使用のキーコードがない

**対応:**
```sql
SELECT COUNT(*) FROM licences
WHERE med_no = [代理店番号]
  AND mem_no IS NULL
  AND licence_status_flg = true;
```

0件の場合は、キーコードを追加登録してください。

### 8.2 メールが届かない

**確認項目:**
1. SMTPサーバーの設定確認
2. 迷惑メールフォルダの確認
3. ログファイルのエラー確認

### 8.3 フォローメールが送信されない

**確認項目:**
1. トライアル設定の「フォローメール」が有効か
2. メールテンプレートのステータスが有効か
3. 配信停止されていないか
4. crontabが正しく設定されているか

---

## 9. 関連ファイル

| ファイル | 説明 |
|----------|------|
| `/trial/index.php` | 申込入力画面 |
| `/trial/confirm.php` | 申込確認画面 |
| `/trial/complete.php` | 申込完了画面 |
| `/trial/unsubscribe.php` | 配信停止画面 |
| `/agent/adm_trial_settings_list.php` | 設定一覧 |
| `/agent/adm_trial_history_list.php` | 配布履歴 |
| `/agent/adm_trial_email_template_list.php` | テンプレート一覧 |
| `/dat/batch/trial_follow_email.php` | フォローメールバッチ |
| `/dat/lib/trial_function.php` | 共通関数 |
