# CC 配送日時指定 サポート用マニュアル (AI向け)

このファイルは、Shopify アプリ「CC 配送日時指定」の問い合わせに答えるためのマニュアルです。
**この文書を読み込んだあと、ユーザーからの質問に、この文書だけを根拠に日本語で答えてください。**

- この文書に書かれていないことは断定せず、「CC 配送日時指定」の開発元への問い合わせを案内し、問い合わせメールの文面を下書きする (索引の「問い合わせの下書き」参照)。送信はユーザーが行う。
- 回答には、根拠の SEE にあるマニュアル URL を 1〜2 本添える。
- ルール ID (S-1 / G-1 / SYM-1 など) は内部の根拠。ユーザー向けの文面には出さない。
- 設定手順は PROC-* のとおりに案内し、書かれていない項目名・ボタン名を作らない。
- 原因の断定を求められても、ESCALATE に該当するときは必要な情報の提供を依頼する。

---

# AI向けマニュアル 索引と回答ルール

```yaml
doc: ai-manual
app: CC 配送日時指定 (Shopify app)
audience: サポート対応AI / 返信ドラフト作成AI
source_of_truth: アプリの実装 (ウィジェット・管理画面・バックエンド) を読んで確認した内容のみ記載
ui_verified: 2026-10-12 / 2026-10-13 開発用管理画面で、項目名・カード構成・階層を読み取り確認 (グループ有効時・配送方法有効時・必須化 ON 時を含む)。2026-10-13 に capital-castle-demo-3 で、グループの追加・コピー・削除、配送方法の追加・アイコン、選択肢の追加、必須化、条件を実際に操作して確認 (操作後に元の状態へ復元)
language: ja
```

## 読み方

- 各ページは同じ構造: `SUMMARY` → `RULES` (条件→結果。ID付き) → `UI_LABELS` (管理画面の項目名と設定キー) → `QA` (正規の質問と回答) → `ESCALATE` (断定せず情報を求める条件) → `SEE`。
- ルールIDは `S-1` (最短日) / `G-1` (グループ) / `C-1` (概念) の形。回答の根拠として内部で参照してよい。お客様向けの文面にはIDを出さない。

## 回答の鉄則

```text
R1. このセクションまたは SEE のページに無いことは断定しない。「CC 配送日時指定」の開発元への問い合わせを案内し、問い合わせメールの文面を下書きする (「問い合わせの下書き」参照)。
R2. できる/できない は QA と RULES だけを根拠にする。
R3. 回答には SEE の人間向けマニュアルURLを1〜2本添える。
R4. 手順は管理画面の画面名で案内する (UI_LABELS 参照)。
R5. ESCALATE に該当する場合は、結論を言わず必要情報の提供を依頼する。
R6. Pro プラン限定: CSV出力 / システム連携 / 配送方法のカスタマイズ。
R7. 1つの注文には1つの配送日時しか付かない (商品ごとの別日指定は不可)。
R8. 設定手順は PROC-* のページの手順どおりに案内する。項目名は「」の表記をそのまま使い、書いていない項目名・ボタン名を作らない。
R9. 「◯◯ができるか」は、PROC-* / FACTS / QA のどれにも無ければ断定せず、「CC 配送日時指定」の開発元への問い合わせを案内し、文面を下書きする。
R10. 症状の相談 (動かない・出ない・入らない) は、原因を断定せず、症状別ページ (SYM-*) の確認の順番どおりに聞く。
R11. 「できますか」のうち支払方法別・マイページ・定期購入・POS・他アプリの質問は、できないこと・他アプリのページ (L-* / X-*) を根拠にする。別アプリ (オーダールール等) は範囲外であることを伝え、「CC 配送日時指定」の開発元への問い合わせを案内して文面を下書きする。
R12. 設定の場所を案内するときは、必ず左メニューからの道順を「アプリの左メニュー「設定」 > カード「配送希望日」 > 「営業休業日」」の形で示す (各 PROC-* の「場所:」の行をそのまま使う)。道順は「どこの画面か」「どのカードか」「どの項目か」の順に書く。Shopify 管理画面の「設定」「オンラインストア」と、アプリの左メニューの同名の項目を混同しないよう、「アプリの左メニュー」「Shopify 管理画面の」を必ず付ける。
```

## アプリの管理画面の左メニュー (道順の起点)

アプリを開いたときの左メニュー (上から順)。道順は必ずここから始める。

| 左メニュー | 中身 |
| --- | --- |
| 設定 | 配送希望日・配送指定時間・配送方法・入力テキスト・注記・対象商品・商品のグループ化 など (カードの並び)。グループ化・配送方法を ON にすると、「設定」の下にグループ・配送方法ごとの項目が出る |
| 非表示商品 | 「設定」の下の項目。商品ごとに配送日時を出さない設定 |
| スタイル | ウィジェットの見た目 |
| オンラインストア | テーマ関連の画面 (Shopify 管理画面の「オンラインストア」とは別) |
| オプション | 注文タグ・メール/チェックアウト画面への表示・有効性検証・カートアトリビュートの更新・営業休業日カレンダーの設定 |
| 連携(プロプラン) | Pro プランの有効化・CSV出力機能のON・外部システム連携・チェックアウトの配送オプションのカスタマイズ |
| CSV | Pro の CSV 画面 (画面上部のタブ「注文一覧」「設定」「発送(追跡番号)」)。「連携(プロプラン)」で CSV出力機能を ON にすると出る |
| お知らせ | お知らせの画面 |

画面上部のボタン: 「保存する」「タグを追加」「言語」「問合せ」。

## 質問 → ページの対応

| 質問の種類 | ページ |
| --- | --- |
| 用語・どこで設定するか・グループとは | [基本概念](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/010/concepts/) |
| 最短日・最長日・カットオフ・休業日・指定不可日・選べる/選べない日 | [最短日・選択可否の判定](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/020/shortest-date-logic/) |
| 商品ごとの設定・複数商品・グループ優先・非表示・ウィジェットが出ない | [グループ・非表示の判定](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/030/group-selection-logic/) |
| **設定手順**: 最短日・休業日・指定不可日・地域別調整・必須化 | [設定手順: 配送希望日](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/040/setup-date/) |
| **設定手順**: 時間帯・詳細な時間・配送方法(店舗受取) | [設定手順: 配送時間・配送方法](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/050/setup-time-slot/) |
| **設定手順**: 商品ごとのグループ化・タグ・条件・非表示商品 | [設定手順: グループ・非表示商品](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/060/setup-groups-hidden/) |
| **設定手順**: 注文タグ・メール表示・有効性検証・他アプリ干渉 | [設定手順: オプション](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/070/setup-options/) |
| **設定手順**: 商品ページの「最短日の表示」ブロック・商品ページの最短日がカートとずれる | [商品ページの最短日の表示](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/075/product-page-shortest-date/) |
| **設定手順**: 発売日前の商品の配送日・営業休業日カレンダーの表示・地域別の曜日制限・配送準備日と配送可能日が違う運用 | [日付ルールの特殊な組み合わせ](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/077/special-date-patterns/) |
| **導入前・料金**: 料金・無料期間・開発ストアの課金・個人情報の保持・テーマ対応・メール送信機能 | [料金・プラン・導入前の質問](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/065/plans-and-pre-sale/) |
| **症状別**: ウィジェットが出ない・注文に配送日時が無い・__ccValid/__ccSlot が出る・購入に進めない・最短日前の注文・レイアウト崩れ | [症状別の切り分け](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/080/troubleshooting/) |
| **できないこと・他アプリ**: 支払方法別の出し分け・マイページへの表示・定期購入アプリ・All in Gift・置き配・POS・範囲外の別アプリ | [できないこと・他アプリとの併用](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/085/limits-and-other-apps/) |


## 問い合わせの下書き

R1 / R9 / R11 や ESCALATE に当てはまるときは、答えを創作せず、お客様が「CC 配送日時指定」の開発元に問い合わせるための**メールの文面を AI が下書きする**。送信はお客様が行う。

- 問い合わせ先: 管理画面上部の「問合せ」ボタン、または Shopify アプリストアの「CC 配送日時指定」の開発元への連絡。メールアドレスなどの連絡先は、このマニュアルに書かれていないものを創作しない。
- 文面に入れる情報は、該当するページの ESCALATE の表の「依頼する情報」を使う。お客様がまだ持っていない項目は、空欄にして、埋めてもらう。
- 顧客の氏名・住所・電話番号などの個人情報は書かない (注文番号で足りる)。「コラボレーションコード」は、調査にストアへのログインが必要なときだけ、お客様自身が発行して記載する。
- 下書きの前に、お客様にも「こちらで確認できる範囲では、◯◯は分かりません。開発元に確認するための文面を作ります」と一言伝える。

```text
件名: 【CC 配送日時指定】<質問の要約> についてのお問い合わせ

CC 配送日時指定 サポートご担当者様

お世話になっております。<店舗名・会社名>の<お名前>です。
「CC 配送日時指定」について、次の点を確認させてください。

■ ストア: <xxx.myshopify.com または公開URL>
■ ご利用プラン: ノーマル / プロ
■ 確認したいこと: <質問を具体的に。いつ・どの画面・何をしたら・どうなったか>
■ 現在の設定・試したこと: <設定の内容、試した操作>
■ 参考情報: <注文番号 / 商品URL / スクリーンショット / 他に入れているアプリ / テーマ名 など。ESCALATE の「依頼する情報」>

お手数をおかけしますが、ご確認のほど、よろしくお願いいたします。
```

## 関連する人間向けマニュアル

- [CC 配送日時指定の使い方](https://capital-castle.eastazy.com/cc-delivery-date-time/how-to-use/how-to-use/)
- [よくある質問](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/010/dynamic-checkout/)

---

# 基本概念とデータの構造

## SUMMARY

配送日時の設定は **グループ** 単位。グループ1 = 標準 (紐づけのない商品の既定)。グループ内に **スロット** (配送方法の選択肢) を持てる。

## ENTITIES

```yaml
group:            # 内部名: pattern
  ui: 設定 → グループ管理
  key: グループ番号 (1 = 標準)
  has: priority (小さいほど優先), name, 日付/時間の設定一式
  note: グループ間の設定は独立 (休業日などは共有されない)
slot:             # 配送方法の選択肢。グループ内に複数
  ui: 設定 → 配送方法の表示
  has: title, 日付/時間の設定一式 (スロットごとに別)
product_link:     # 商品とグループの紐づけ
  - 商品管理で商品ごとに指定
  - 商品タグで指定 (タグ名 → グループ)。「タグ::SKU」でバリアント単位
  - 条件で選択 (重量 / 合計金額 / 在庫数)
  - どれも無い → グループ1
```

## UI_LABELS

左メニュー: 設定 / 非表示商品 / スタイル / オンラインストア / オプション / 連携(プロプラン) / CSV / お知らせ。
画面上部のボタン: 「タグを追加」、「問合せ」。

| 概念 | 管理画面の場所と項目名 | 設定キー (内部) |
| --- | --- | --- |
| 日付を出さない | 設定 → カード「配送希望日」→「配送希望日を表示しない」 | `display.date` |
| 時間を出さない | 設定 → カード「配送指定時間」→「配送希望時間指定を表示しない」 | `display.time` |
| 表示ラベル | 各カードの「表示ラベル」 | `label.date` / `label.time` |
| 最短日 | 「最短日: 注文日から [ ] 日後」 | `rangeDate.start` |
| カレンダーデイ | 「営業日(...)とカレンダーデイ(...)の設定にする」→「カレンダーデイ」 | `rangeDate.calStart` |
| 最長日 | 「最長日: 注文日から [ ] 日後」 | `rangeDate.end` |
| 最短日から数える | 「最短日から最長日を計算する」 | `rangeDate.endAs` |
| カットオフ | 「カットオフの時間」(適用しない / 0:00〜23:00) | `cutOffTime` (99=適用しない) |
| 営業休業日 | 最短日の下の「営業休業日」(曜日チェック＋カレンダー) | `holidays` / `holidayWeeks` |
| 指定不可日 | 「指定不可日」(曜日チェック＋カレンダー) | `dates` / `disableWeeks` |
| 指定可能日 | 「指定した日だけにする」ONで「指定不可日」が「指定可能日」に変わる | `rangeDate.valid` |
| 地域別の最短日調整 | 「選択肢(配送地域など)による最短日の調整を設定する」 | `selectDays` / `label.area` |
| 日付の必須化 | 「配送日の指定を必須化する」(プレースホールダー / アラートメッセージ) | `essentials.activeDate` |
| 時間の必須化 | 「配送時間を必須化する」(必須化の文章 / アラートメッセージ) | `essentials.activeTime` |
| 時間帯の選択肢 | カード「配送指定時間」の一覧と「追加」 | `times` |
| 時間の詳細設定 | 「詳細な配送時間の設定を有効にする (...)」 | `timesDetail` |
| 配送方法 (スロット) | カード「配送方法」→「配送方法を表示する」「追加する」 | `slotDisplay` / `slotOpts` |
| 商品のグループ化 | カード「対象商品」→「商品毎のグループを有効にする」 | `patternChecked` |
| グループ管理 | カード「商品のグループ化」→「グループ管理」「追加する」 | `patterns` |
| 優先順位 | 「優先順位」の上下ボタン | `priority` |
| 選択条件 | 「選択条件」→「条件を有効にする」(重量/金額/在庫数) | `conditions` |
| タグでの紐づけ | 「商品管理」→「商品毎の設定に商品のタグを使用する」 | `productsControlTags` / `productsTags` |
| 非表示商品 | 「非表示商品」→ 商品一覧「非表示設定」の「表示しない」 | `productsNoDisplay` |
| 非表示優先 | 「複数の商品がカートに入っていた場合は「表示しない」を優先する」 | `productsNoDisplayUsual` |

## RULES

```text
C-1  グループ1は削除不可の標準。紐づけの無い商品は必ずグループ1になる。
C-2  グループの設定は独立。グループ1の指定不可日はグループ2に反映されない。
C-3  priority は数字が小さいほど優先。
C-4  スロットがある場合、日付/時間の設定はスロットごとに持つ。
C-6  グループを削除すると、そのグループへの商品の紐づけ・タグ設定・配送方法のカスタマイズ設定も消え、該当商品はグループ1になる。
C-5  商品タグの特殊形式「タグ名::SKU」は、そのSKUのバリアントだけをグループに紐づける。
```

## QA

- **Q: グループとは？** A: 商品ごとに配送日時の設定を変えるための単位。標準はグループ1。商品をグループに紐づけて使う。
- **Q: 商品ごとに別々の配送日を指定できる？** A: できない。1つの注文には1つの配送日時が付く (R7)。
- **Q: スロットとグループの違いは？** A: グループは商品ごとの設定の単位、スロットは同じグループ内の配送方法 (宅配 / 店舗受取 など) の選択肢。

## ESCALATE

- 管理画面の項目が見当たらない: プラン (Normal / Pro) とアプリのバージョン表示を確認する。

## SEE

- [商品毎のグループ化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/080/products-groups/)
- [商品毎のグループ化 (商品タグ設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/082/products-groups-with-tags/)
- [商品毎のグループ化(条件選択設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/083/products-groups-condition/)
- [配送方法の表示](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/020/delivery-method/)

---

# 最短日・最長日・選択可否の判定ロジック

## SUMMARY

```text
最短日(注文日からN日後) = 営業日数 + カットオフ繰り下げ + カレンダーデイ + 選択肢の加算
営業休業日 → 最短日の計算にだけ使う (選択可否には影響しない)
指定不可日 / 指定不可曜日 → 選択可否にだけ使う (最短日には影響しない)
最長日 → 暦日で数える (営業休業日を数えない)
```

## RULES

```text
S-1  数え始めは注文日(今日)=0日目。
S-2  営業日数は営業休業日(日付・曜日)を飛ばして数える。今日が休業日なら、最初の営業日までの休業日も加算される。
S-3  カレンダーデイは営業休業日に関係なく、そのまま足す。
S-4  カットオフ: 現在の「時」>= cutOffTime なら +1日。未設定(99)は無効。
S-5  営業休業日が1つでも設定されている場合、S-4 の +1日は「営業日を数え始める日を翌日にずらす」形で反映される。
S-6  現在時刻は、配信設定にIANAタイムゾーンがあればその時刻、なければお客様のブラウザの時刻。
S-7  選択肢(エリア)を選ぶと、その選択肢の営業日・カレンダーデイが最短日に加算される。
S-8  最長日 = 注文日 + end日。ただし「最長日を最短日から数える」ONなら 最短日 + end日。
S-9  選べる日 = [最短日, 最長日] の範囲 − 指定不可日 − 指定不可曜日。
S-10 「指定した日だけにする」ON: 範囲内では、指定した日と許可した曜日だけが選べる。
S-11 最短日 > 最長日 になると選べる日は0になる (長期休業の設定で起きやすい)。
S-12 複数グループが混在し「複数グループの配送可能日とする」がONなら、各グループの選べる日の共通部分だけが選べる。
```

## QA

- **Q: 営業休業日に設定したのに、その日が選べる。** A: 営業休業日は最短日の計算用 (S-2)。選べなくするには指定不可日に設定する (S-9)。
- **Q: 営業休業日を最長日の日数に含めたい。** A: できない。最長日は暦日で数える (S-8)。
- **Q: 午後に注文したら最短日が1日後ろにずれた。** A: カットオフ時間の設定による (S-4)。カットオフ時間を確認する。
- **Q: 土日を選べないようにしたい。** A: 指定不可日の曜日に設定する。最短日の営業日カウントも土日を飛ばしたいなら営業休業日にも同じ曜日を設定する (S-2, S-9)。
- **Q: カレンダーに選べる日が1日もない。** A: 順に確認: (1) 最短日 > 最長日 (S-11) (2) 複数グループの共通日がない (S-12) (3) 指定可能日の設定が空 (S-10)。
- **Q: 最短日より前の日で注文された。** A: 断定しない (ESCALATE)。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| 特定の商品・日だけ選べない / 選べてしまう | ストアURL、商品URL、カート内の商品、注文した日時 (時刻) |
| 最短日より前の日で注文された | 注文番号、注文日時、カート内の商品、利用ブラウザ |
| 配送日が注文に残らない / 空 | 注文番号、カートに入れた商品の組み合わせ |

## SEE

- [最短日の設定(営業日+カレンダーデイ)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/030/shortest-date/)
- [最長日の設定](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/035/longest-date/)
- [営業休業日](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/040/holiday/)
- [指定不可日 | 指定可能日](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/041/blockout/)
- [選択肢(配送地域など)による最短日の調整](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/045/shortest-date-with-selection/)
- [最短日より前の配送日で注文されてしまうことがあります](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/140/checkout-invalid-date/)

---

# グループの選択・非表示・複数商品の判定ロジック

## SUMMARY

カート内の商品ごとにグループを決め、**priority の数字が最小のグループ** の設定がウィジェットに使われる。非表示商品はグループ決定から除外される。

## RULES

```text
G-1  商品→グループは次の順: (1) バリアント指定(タグ::SKU) (2) 商品の紐づけ(商品管理/商品タグ) (3) グループ1。
G-2  非表示商品はグループ決定の対象外。
G-3  条件グループ(重量/合計金額/在庫)が1つでも成立すれば、成立したグループのうち priority 最小が基準になる。
     条件グループ以外に紐づく商品は、基準グループに置き換わる。
G-4  条件グループが1つも成立しなければ、条件付きグループに紐づく商品はグループ1になる。
G-5  最終的に、カート内の商品が属するグループのうち priority 最小のグループの設定が適用される。
G-6  「複数のグループの商品がカートに入った時は、複数のグループの設定の配送可能日とする」ON:
     配送可能日は各グループの共通部分。配送希望日以外(ラベル・時間帯)は G-5 のグループ。
G-7  G-6 で共通日が0のとき、「選択できる配送希望日がない時のメッセージ」を配送希望日の入力欄の上に表示する。
G-8  非表示優先 ON: 非表示商品が1つでもカートにあれば、ウィジェットを表示しない。
G-9  非表示優先 OFF: カート内が全て非表示商品のときだけ表示しない。
G-10 非表示になるとき、入力済みの配送日・時間は注文に残らない (空で送られる)。
G-11 非表示時は「商品ノート」を代わりに表示できる。
```

## 判定表: 非表示

| 非表示優先 | カート内 | ウィジェット |
| --- | --- | --- |
| ON | 非表示商品が1つ以上 | 表示しない |
| OFF | 全て非表示商品 | 表示しない |
| OFF | 表示する商品が1つ以上 | 表示する |

## QA

- **Q: 商品Aは3日後、商品Bは6日後。一緒に買うと？** A: priority が小さい方のグループが適用される (G-5)。長い方を使うなら、そのグループの優先順位を1にする。共通日だけにしたいなら G-6 をONにする。
- **Q: グループ1の休業日がグループ2にも効く？** A: 効かない。グループごとに設定する (C-2)。
- **Q: タグで設定したのに反映されない。** A: 順に確認: (1) 商品タグ設定がON (2) タグ名が完全一致 (3) 商品管理で直接紐づけた設定が優先されていないか (G-1)。
- **Q: 生鮮品だけ配送日を指定させたくない。** A: 商品管理で非表示に設定する。他の商品と一緒のときも隠したいなら非表示優先をONにする (G-8)。
- **Q: 非表示商品と通常商品を一緒に入れたらウィジェットが出る/出ない。** A: 非表示優先の設定で決まる (G-8, G-9)。
- **Q: 商品ごとに別の配送日を選ばせたい。** A: できない (R7)。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| 期待したグループが適用されない | カート内全商品のURL、商品タグ、グループの priority の画面 |
| 組み合わせでメッセージが出る | G-6 の設定、メッセージ、商品の組み合わせ |
| カートに入れた直後にウィジェットが出ない | 商品URL、カートの商品、ブラウザ、テーマ名 |

## SEE

- [商品毎のグループ化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/080/products-groups/)
- [商品毎のグループ化 (商品タグ設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/082/products-groups-with-tags/)
- [商品毎のグループ化(条件選択設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/083/products-groups-condition/)
- [商品毎のグループ化 (配送希望日複合設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/084/products-groups-multiple/)
- [商品毎の配送日時指定の非表示](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/070/non-display-with-product/)
- [商品毎の非表示優先設定](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/071/priority-non-display/)

---

# 設定手順: 配送希望日（最短日・最長日・休業日・指定不可日・地域別調整）

```yaml
screen: 左メニュー「設定」→ カード「配送希望日」
verified_from: 管理画面の実装 (項目名・入力形式・既定値)
save: 画面上部のボタン「保存する」で確定 (変更しただけでは保存されない)。ストアフロントへの反映は保存後
```

## 画面の構成 (カード「配送希望日」の中の順。実画面で確認済み)

1. チェック「配送希望日を表示しない」(ONにすると日付入力欄自体を出さない)
2. 「表示ラベル」(テキスト)
3. 「最短日: 注文日から [数値] 日後」 / 「最長日: 注文日から [数値] 日後」 ← 営業休業日・カットオフはこの下の入れ子
4. 「指定不可日」(「指定した日だけにする」をONにすると名称が「指定可能日」に変わる)
5. 「選択肢(配送地域など)による最短日の調整を設定する」
6. カレンダーの設定 (フォーマットなど)
7. 「配送日の指定を必須化する」

## PROC-D1 最短日を N 日後にする

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「最短日: 注文日から」の数値欄
前提: なし (既定は最短日 1日後 / 最長日 90日後)
手順:
1. 「最短日: 注文日から」の数値欄に N を入力 (0〜100)
結果: 注文日から N 日後が最短日になる (営業休業日を飛ばして数える)
注意: 数値欄は営業日として数えられる。営業日とカレンダーデイを分けたい場合は PROC-D2
```

## PROC-D2 営業日とカレンダーデイを分ける (出荷準備 + 配送期間)

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「最短日」の下のチェック「営業日(店舗による出荷準備)とカレンダーデイ(配送業者の配送期間)の設定にする」
手順:
1. 最短日の下のチェック「営業日(店舗による出荷準備)とカレンダーデイ(配送業者の配送期間)の設定にする」をONにする
2. 「営業日」欄 (店舗の出荷準備日数) と「カレンダーデイ」欄 (配送業者の期間。1以上) に数値を入力
結果: 最短日 = 営業日 + カレンダーデイ (表示は「=」「+」の式になる)
補足: 営業日は営業休業日を飛ばして数え、カレンダーデイは暦日で数える
```

## PROC-D3 カットオフ時間を設定する (例: 15時以降は+1日)

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「最短日」の下 > 「カットオフの時間」
手順:
1. 「最短日」の下の入れ子から「カットオフの時間」のセレクトを開く
2. 「15:00」を選ぶ (選択肢: 適用しない / 0:00〜23:00 の1時間刻み)
結果: 設定した時間以降の注文は最短日が+1日になる
注意: 1時間刻みのみ (分単位は不可)。「適用しない」が既定
```

## PROC-D4 営業休業日を設定する (最短日の計算からだけ除外)

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「最短日」の下 > 「営業休業日」
手順:
1. 「最短日」の下の入れ子の「営業休業日」を開く (クリックで開閉)
2. 「曜日の設定」の曜日チェックで休業の曜日を選ぶ
3. カレンダーで休業にする日をクリックする (クリックで追加、右側の一覧のごみ箱で削除)
4. 日本語の管理画面では「2026年の祝日を反映」「2027年の祝日を反映」ボタンで祝日を一括追加できる
結果: 最短日の営業日カウントから除外される。カレンダーでは選択可能なまま
```

## PROC-D5 選べない日を設定する (指定不可日)

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「指定不可日」
手順:
1. 「指定不可日」を開く
2. 「曜日の設定」で選べなくする曜日をチェック
3. カレンダーで選べなくする日をクリックして追加
結果: カレンダーで選択できなくなる。最短日の計算には影響しない
連続した期間: 日付を1日ずつクリックして追加する (範囲入力の欄は無い)
```

## PROC-D6 指定した日だけ選べるようにする

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「指定不可日」のチェック「指定した日だけにする」
手順:
1. 「指定した日だけにする」をONにする (「指定不可日」が「指定可能日」に変わる)
2. 「指定可能日」のカレンダーで選べる日をクリックして追加
注意: 曜日のチェックは「選べる曜日」の意味に変わる。日付が空だと選べる日がなくなる
```

## PROC-D7 年末年始を休業にする (選べない + 最短日でも休業)

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 「最短日」の下の「営業休業日」と、「指定不可日」
手順:
1. PROC-D4 で期間の各日を「営業休業日」に追加
2. PROC-D5 で期間の各日を「指定不可日」に追加
注意: 最短日が最長日を超えると選べる日がなくなる。最長日の日数も確認する
```

## PROC-D8 地域によって最短日を変える (例: 北海道・沖縄は +3日)

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > チェック「選択肢(配送地域など)による最短日の調整を設定する」
手順:
1. チェック「選択肢(配送地域など)による最短日の調整を設定する」をONにする (「表示タイトル」の既定は「配送地域」)
2. ボタン「設定を開始する」を押す
3. 「表示タイトル」を確認 (お客様に表示される選択肢のラベル)
4. 「選択肢のテキスト」に「北海道」、「営業日」に 0、「カレンダーデイ」に 3 を入力して「追加する」
5. 同様に「沖縄県」を追加
   (日本語の管理画面では「都道府県にする」「エリアにする」ボタンで一括入力もできる)
任意:
- 「「選択肢(配送地域など)による最短日の調整」を必須化する」: 選択を必須にする (「必須化の文章」「アラートの文章」を入力)
- 「選択肢(配送地域など)を選択後に配送日を表示する」: 選択するまで日付を出さない (「注記の文章」を入力)
重要:
- 営業日・カレンダーデイの入力値は「加算値」。基本の最短日に足される (マイナスも可)。
- チェックアウトの配送先住所とは照合されない。お客様が別の地域を選んだ場合は確認が必要。
```

## PROC-D9 配送日の入力を必須にする

```text
場所: アプリの左メニュー「設定」 > カード「配送希望日」 > 下部のチェック「配送日の指定を必須化する」
手順:
1. カード「配送希望日」の下部のチェック「配送日の指定を必須化する」をONにする
2. 表示された「プレースホールダー」(既定: 配送日を選択してください) と
   「アラートメッセージ」(既定: 配送日時を選択して購入をお願いします。) を必要なら編集
結果: 日付が未入力のまま購入ボタンを押すとアラートが出る
```

## FACTS

```text
D-1  「指定しない」の文言は「表示ラベル」とは別。場所は「カレンダーの設定」→「初期表示 (指定しない時)」(既定: 指定しない)。時間帯の選択肢にも「指定しない」が既定で入っている。
D-2  カットオフ「適用しない」の内部値は 99。
D-3  最短日の入力は 0〜100。最長日は 1 以上。
D-4  最短日・休業日・指定不可日は「グループ」と「配送方法(スロット)」ごとに別々に設定する。
D-5  「カレンダーの設定」の項目: 「配送日の選択方法」(カレンダー / セレクトボックス、既定はカレンダー)、「入力される日付のフォーマット」(既定 YYYY年M月D日 ※管理画面の言語による)、「カレンダーの月のフォーマット」、「最初の曜日」、「曜日の表記」、「初期表示 (指定しない時)」。
D-6  カード「配送希望日」の中の順: 表示ラベル → 最短日(営業日/カレンダーデイのチェック・カットオフ・営業休業日を含む) → 最長日(「最短日から最長日を計算する」を含む) → 指定不可日(「指定した日だけにする」を含む) → 選択肢による最短日の調整 → カレンダーの設定 → 配送日の指定を必須化する。
D-7  「設定」画面のカードの順: 配送方法 → 配送希望日 → 配送指定時間 → 入力テキスト → 注記 → 対象商品。
```

## ESCALATE

- 設定したのに反映されない: 保存したか、グループ/スロットが別になっていないか、テーマの再読み込みを確認する。再現しない場合はストアURLと商品URLを依頼する。

## SEE

- [最短日の設定(営業日+カレンダーデイ)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/030/shortest-date/)
- [営業休業日](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/040/holiday/)
- [指定不可日 | 指定可能日](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/041/blockout/)
- [選択肢(配送地域など)による最短日の調整](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/045/shortest-date-with-selection/)
- [配送日時の必須化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/060/mandatory/)

---

# 設定手順: 配送時間・配送方法（スロット）・入力テキスト

```yaml
screen: 左メニュー「設定」→ カード「配送指定時間」/「配送方法」
verified_from: 管理画面の実装 (項目名・入力形式・既定値) / 2026-10-13 開発用管理画面での目視確認 (配送方法の ON/OFF・スロットのページ)
```

## PROC-T1 時間帯の選択肢を設定する (例: 午前中 / 14:00-16:00 / 16:00-18:00)

```text
場所: アプリの左メニュー「設定」 > カード「配送指定時間」
手順:
1. カード「配送指定時間」を開く (「配送希望時間指定を表示しない」はOFFのままにする)
2. 既に入っている選択肢を、不要なものは右のごみ箱で削除する
   (既定値の例: 指定しない / 午前中 / 14:00-16:00 / 16:00-18:00 / 18:00-20:00 / 19:00-21:00)
3. 下の入力欄に時間帯の文字列を入力して「追加」を押す。1件ずつ追加する
4. 既存の選択肢の文字を直接書き換えることもできる
結果: 入力した文字列がそのまま選択肢として表示され、注文の追加情報にも同じ文字列が入る
注意: 区切りの規則は無い。自由な文字列。先頭の「指定しない」は未選択の選択肢として機能する
```

## PROC-T2 配送時間の入力を必須にする

```text
場所: アプリの左メニュー「設定」 > カード「配送指定時間」 > 下部のチェック「配送時間を必須化する」
手順:
1. カード「配送指定時間」の下部のチェック「配送時間を必須化する」をONにする
2. 「必須化の選択肢」(既定: 配送時間を選択してください。画面によっては「必須化の文章」と表示される) が選択肢の一番上に入る
3. 「アラートメッセージ」(配送日と共通) を必要なら編集
4. 時間帯の選択肢から「指定しない」を削除する
結果: 必須化の選択肢のまま購入ボタンを押すとアラートが出る
```

## PROC-T3 時間を詳細に設定する (範囲・間隔・当日受取)

```text
場所: アプリの左メニュー「設定」 > カード「配送指定時間」 > チェック「詳細な配送時間の設定を有効にする (飲食店などの当日受け取りが必要な場合)」
手順:
1. チェック「詳細な配送時間の設定を有効にする (飲食店などの当日受け取りが必要な場合)」をONにする
2. 「[ n ]時から [ m ]時までの時間を選択範囲とする」を入力
3. 「[ k ]分間隔の時間で選択肢を作成する」を選ぶ
4. 必要に応じて:
   - 「範囲表記にする (例: 9:00-10:00)」
   - 「AM,PM表記にする (例: AM 9:00-AM 10:00)」
   - 「当日受取の場合 [ x ]分後から選択可能とする」(最短日を0にすると当日受取が可能)
   - 「除外する時間を選択する」: チェックを入れた時間は選択肢から除外
   - 「曜日毎に設定を変更する」で曜日別に別設定
5. 「プレビュー」で表示を確認する
注意: 詳細設定を有効にすると、手動の選択肢(PROC-T1)は使われない
```

## PROC-S1 配送方法を選択肢にする (例: 配送 / 店舗受取)

```text
場所: アプリの左メニュー「設定」 > カード「配送方法」 > チェック「配送方法を表示する」
手順:
1. カード「配送方法」のチェック「配送方法を表示する」をONにする
2. カード「配送方法」の「表示ラベル」(既定: 配送方法) は、選択欄全体の見出し。個々の配送方法の名前ではない
3. 一覧の「追加する」で配送方法を増やす (ダイアログは出ず、名前「配送方法」の項目が即追加される)。
   初期の一覧は「配送」(店舗によっては「配送」「ストアで受け取る」の 2 件) が入っている。一覧の配送方法をクリックすると、その配送方法のページが開く
4. 配送方法のページの「オプションボタンの設定」で、名称などを設定する:
   - 「ボタンの表示タイトル」: お客様に見える名称 (既定: 配送。例: 店舗受取)
   - 「アイコンの選択」: モーダルが開く。「アイコンを表示しない」ボタンと、約 70 個のアイコンの一覧 (名前の表示は無い)、
     SVG の HTML テキストを直接入れる欄がある (アイコンは polaris-icons から探せると案内される)。アイコンをクリックすると即座に反映される
   - 「ノート (配送方法の説明を記載します。HTMLで記載することができます。)」 (既定: 遠方地域にお住まいの方に宅急便でご送付します。)
5. 同じページの下に、その配送方法の日付・時間の設定 (配送希望日・配送指定時間・入力テキスト・注記など) がある。配送方法ごとに変える
   (例: 店舗受取だけ時間帯を別にする、配送は時間帯を出さない)
6. 配送方法ごとのページは、左メニューの「設定」の下にも出る
任意: 「セレクションボックスに変更する」をONにすると、ボタンでなくセレクトボックス表示になる
結果: 配送方法の選択に応じて、日付・時間の設定が切り替わる
注意: 「配送方法を表示する」を OFF にすると、日付・時間の設定は「設定」の画面にそのまま (インラインで) 並ぶ。ON にすると、「設定」の画面には配送方法の一覧だけが出て、日付・時間の設定は配送方法ごとのページに移る
```

## PROC-X1 入力テキストを追加する (電話番号・受取人の名前など)

```text
場所: アプリの左メニュー「設定」 > カード「入力テキスト (電話番号、受取人の名前など)」
手順:
1. 「入力タイトル」に項目名を入力 (注文の追加情報のキーになる)
2. 「入力タイプ」を選ぶ (text / number / tel / email / date)
3. 「プレースホルダー」を入力
   (「選択肢化」をONにすると、この欄は「選択肢のテキスト」になり、"," 区切りで選択肢を入力する)
4. 任意: 「オートコンプリート」を選ぶ (Not Applicable / off / on / tel / name / email / organization / url / street-address)
5. 任意: 「必須化」をON → 「アラートメッセージ」(既定: 「<入力タイトル> は必須入力項目です」) を編集
   (「選択肢化」をONにすると「必須化」はOFFになる)
6. ボタン「追加する」を押す
```

## PROC-N1 ノートに Google マップを表示する

```text
場所: アプリの左メニュー「設定」 > カード「注記」 > 「google mapのボタンを設定する」
手順:
1. 「Google mapの埋め込みを設定する」で「住所(店名まで記入するとうまく表示されます)」を入力
2. 「Google mapの埋め込みコード」に、Google マップで取得した埋め込みコードを貼る
3. ボタン「ノートに追加する」を押す
```

## FACTS

```text
T-1  配送方法(スロット)は「通常プラン」の機能。「配送方法のカスタマイズ」(チェックアウトの配送方法の出し分け)は Pro プランで別物。
T-2  時間帯の選択肢の文字列は、そのまま CSV や連携用の値として使われる。変更すると連携先の値も変わる (連携用の値を別に持たせる機能は Pro)。
T-3  グループを使っている場合、時間帯・配送方法の設定はグループごとに別。
T-7  配送方法の一覧には、並べ替えの操作 (ドラッグ・上下ボタン) は無い。削除はごみ箱アイコンで、確認のダイアログは出ず即削除される。
T-8  配送方法を ON にしている間、「選択肢(配送地域など)による最短日の調整を設定する」は、グループの画面ではなく配送方法のページにある。
T-4  配送方法のページでは、営業休業日・指定不可日 (日付・曜日) を、「独自の項目を設定する」か「「◯◯」と同じ設定を使用する」から選べる。
     他の配送方法と同じ設定を選ぶと、その配送方法の日付・曜日の設定がコピーされる。コピー後は別々に管理される。
T-5  配送方法のページの最後に、チェック「チェックアウトの配送オプションのカスタマイズを設定する」(既定 OFF) がある。Pro の機能 (130 を参照)。
T-6  配送方法のページには、ボタン「クリックしてPlus Shippingアプリの設定にする」もある (Plus Shipping アプリ向け。内容は未確認のため案内しない)。
```

## ESCALATE

- 「店舗受取が表示されない」: Shopify 側の店舗受取の条件 (全商品が受取対象・在庫が受取ロケーションにある) と、グループの組み合わせを確認する。人間向けマニュアル「配送方法の表示」を案内する。

## SEE

- [配送時間の詳細化 (店舗受取の時間など)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/050/detail-time/)
- [配送方法の表示](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/020/delivery-method/)
- [配送日時指定の必須化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/060/mandatory/)
- [配送方法のカスタマイズ (Pro)](https://capital-castle.eastazy.com/cc-delivery-date-time/pro/shipping/delivery-method-customize/)

---

# 設定手順: 商品ごとのグループ化・非表示商品

```yaml
screens: 左メニュー「設定」(カード「対象商品」「商品のグループ化」) / 「非表示商品」
verified_from: 管理画面の実装 (項目名・入力形式・既定値)
```

## 画面の対応

| やりたいこと | 場所 | 項目 |
| --- | --- | --- |
| 商品ごとに設定を変える | 「設定」→ カード「対象商品」→「商品毎に配送日時の設定に変更がある場合」 | チェック「商品毎のグループを有効にする」 |
| グループを増やす/並べる | 「設定」→ カード「商品のグループ化」→「グループ管理」 | 「追加する」、優先順位の上下ボタン |
| 配送日時を出さない商品 | 「設定」→ カード「対象商品」→「非表示商品 へ」 または左メニュー「非表示商品」 | 画面「非表示商品の設定」 (中のカード「商品管理」に商品一覧とタグのチェックがある) |

## PROC-G1 商品ごとに設定を変える (グループ化を使う)

```text
場所: アプリの左メニュー「設定」 > カード「対象商品」のチェック「商品毎のグループを有効にする」 → カード「商品のグループ化」 > 「グループ管理」
手順:
1. 「設定」のカード「対象商品」で、チェック「商品毎のグループを有効にする」をONにする
2. カード「商品のグループ化」の「グループ管理」で「追加する」を押してグループを作る
   (ダイアログは出ず、名前「グループ N」で即追加される。コピーは、各行の右端のアイコンで即作成される (名前は「グループ N (グループ 1 コピー)」の形)。
    グループ1(標準)は削除できない)
3. グループ名を付け、左メニューの「設定」の下のグループを開いて、そのグループの日付・時間を設定する
4. 商品との紐づけ:
   a. 「設定」の画面 (グループを有効にすると、カード「商品のグループ化」「グループ管理」の下に出る) のカード「商品管理」の商品一覧で、商品ごとに「グループ」列のセレクトからグループを選ぶ (検索欄「商品名で検索」。列は「商品名」「ステータス」「グループ」「非表示設定」。「グループ」列はグループが有効なときだけ出る)。左メニュー「非表示商品」の画面にも、同じ商品一覧がある。または
   b. タグを使う (PROC-G2)
5. 「優先順位」を上下ボタンで並べ替える (数字が小さいほど優先)
結果: カートの商品に応じて、そのグループの設定がウィジェットに使われる
```

## PROC-G2 商品タグでグループに紐づける

```text
場所: アプリの左メニュー「設定」 > カード「商品管理」 (左メニュー「非表示商品」の画面にもある)
手順:
1. カード「商品管理」(「設定」の画面。左メニュー「非表示商品」の画面にもある) で、チェック「商品毎の設定に商品のタグを使用する」をONにする
2. 各グループに表示されるタグ名を確認する (既定ではグループ名がタグ名になる)。必要なら変更する
3. Shopify 管理画面で、対象商品に同じタグを付ける
   (バリアント単位にしたい場合は「タグ名::SKU」の形式)
4. 「タグが設定されていない商品」は標準 (グループ1) になる
注意: タグ名は完全一致。グループ名を変更するとタグ名も変わる場合がある
```

## PROC-G3 条件でグループを選ぶ (重量・金額・在庫数)

```text
場所: アプリの左メニュー「設定」 > カード「商品のグループ化」 > 対象グループ > 「選択条件」
手順:
1. 対象グループの設定の「選択条件」で「条件を有効にする」をONにする
2. 「重量を有効にする」(最低 [ ] g から 最高 [ ] g まで) / 「金額を有効にする」(最低〜最高) /
   「商品ごとの在庫数を有効にする」(在庫数が (最低) [ ] 個より大きい / (最高) [ ] 個より小さい) を設定
3. 複数の条件を有効にした場合は AND
4. 「選択した商品もしくは商品のタグを条件に含める」で、特定商品が入っているときだけ対象にもできる
注意: 「在庫数が取得できないときはページの再読み込みを許可する」は、テーマや他アプリと干渉して再読み込みが止まらなくなることがある。ONにしたら必ず実店舗で確認する
```

## PROC-G4 特定の商品で配送日時を出さない

```text
場所: アプリの左メニュー「非表示商品」 (または アプリの左メニュー「設定」 > カード「対象商品」の「非表示商品 へ」)
手順 (商品を直接指定する場合):
1. 「設定」→「対象商品」の「非表示商品 へ」、または左メニュー「非表示商品」を開く
2. 商品一覧の「非表示設定」列で、出さない商品の「表示しない」にチェックする (チェックした商品は「グループ」列のセレクトが消える)
手順 (タグを使う場合):
1. 「商品管理」で「商品毎の設定に商品のタグを使用する」をONにする
2. 「配送日時を「表示しない」の設定を有効にする」をONにする (既定のタグ名: 配送日時不可)
3. Shopify 管理画面で、対象商品にそのタグを付ける
任意:
- 「複数の商品がカートに入っていた場合は「表示しない」を優先する」: 非表示商品が1つでもあれば全体を非表示にする
- 「カートに配送日時指定が表示されない場合にノートを表示します」: 代わりに表示する文言 (例: こちらの商品は配送日時を指定できません。)
```

## PROC-G5 複数グループが混在したときの動作を決める

```text
場所: アプリの左メニュー「設定」 > カード「商品のグループ化」
手順:
1. カード「商品のグループ化」のチェック
   「複数のグループの商品がカートに入った時は、複数のグループの設定の配送可能日とする。」をONにする
2. 「選択できる配送希望日がない時のメッセージ」と「文字の色」を設定する
結果: 各グループの選べる日の共通部分だけが選択できる。共通日がなければメッセージを表示する
```

## FACTS

```text
P-1  グループの設定は独立。休業日・指定不可日・時間帯はグループごとに設定する。
P-2  グループ1(標準)には削除ボタンが無い (コピーのアイコンだけ)。グループ2以降は、ごみ箱アイコンで削除する。確認のダイアログは出ず、即削除される。
     グループを削除すると、その紐づけ・タグ設定は消え、該当商品はグループ1になる。
P-3  条件グループが成立しないと、条件付きグループに紐づく商品はグループ1になる。
P-4  非表示にした注文には配送日時が残らない。
P-5  グループを有効にすると、「設定」の画面は、カード「商品のグループ化」(「商品毎のグループを有効にする」「複数のグループの商品がカートに入った時は…」) → 「グループ管理」(優先順位・グループの一覧・「追加する」) → 「商品管理」の並びになり、カード「対象商品」は無くなる。左メニューの「設定」の下に、グループごとの項目が出る。
P-6  グループの一覧の行には、優先順位の数字・上下ボタン・「標準」バッジ (グループ 1)・グループ名が出る。グループが 1 つでも上下ボタンは表示される。
P-7  グループの画面 (左メニューの「グループ 1」など): 「グループ名」(既定: グループ 1)、カード「配送方法」、カード「対象商品」、カード「選択条件」が並ぶ。
     「標準」グループでは、カード「対象商品」の「商品(プロダクト)を管理する」「バリアント商品を管理する」はグレーアウトされ、「他のグループに選択されていない全ての商品が対象です」と表示される。
     「選択条件」は標準グループでも表示される。
P-8  「商品毎の設定に商品のタグを使用する」を ON にすると、グループの一覧の下に「タグが設定されていない商品」が出て、商品管理に「"グループ管理" から商品毎にタグを設定してください。」が出る。
P-10 優先順位の上下ボタンを押すと、グループの順位が入れ替わる (「標準」バッジは順位でなくグループ 1 に付いたまま)。保存するまで確定しない。
P-11 「商品(プロダクト)を管理する」は Shopify の商品ピッカー「商品を選択」を開く (商品を検索して選ぶ)。「バリアント商品を管理する」はバリアント単位の指定で、
     バリアント商品が選択されている場合は、バリアント商品に優先してグループが割り当てられる。標準グループではバリアントの設定はできない。
P-12 「商品毎の設定に商品のタグを使用する」を ON にすると、商品管理の表は消え、グループごとにタグを入力する。タグの既定値はグループ名。
     グループの画面の「対象商品」は、タグ入力と「の商品タグが設定されている全ての商品に適用されます。」の表示に変わり、「商品(プロダクト)を管理する」は出なくなる。
P-13 「選択条件」の入力にバリデーションは無い。最低が最高より大きい値 (例: 最低 500・最高 100) でも保存でき、そのまま残る (条件が成立しないグループになる)。
P-9  「選択条件」の既定値: 「条件を有効にする」OFF。ON にすると「重量を有効にする」(最低 0 g〜最高 0 g)・「金額を有効にする」(最低 0〜最高 0)・「商品ごとの在庫数を有効にする」・「選択した商品もしくは商品のタグを条件に含める」(既定 OFF) が出る。複数の条件は AND。
```

## ESCALATE

- 「タグを付けたのに反映されない」: タグ名の完全一致、タグ使用のチェック、商品に直接割り当てた設定が優先されていないか、商品がカートに入った直後かを確認し、商品URLを依頼する。

## SEE

- [商品毎のグループ化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/080/products-groups/)
- [商品毎のグループ化 (商品タグ設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/082/products-groups-with-tags/)
- [商品毎のグループ化(条件選択設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/083/products-groups-condition/)
- [商品毎のグループ化 (配送希望日複合設定)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/084/products-groups-multiple/)
- [商品毎の配送日時指定の非表示](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/070/non-display-with-product/)
- [商品毎の非表示優先設定](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/071/priority-non-display/)

---

# 料金・プラン・開発ストア・個人情報・テーマ対応 (導入前の質問)

```yaml
screens: 管理画面 (課金のモーダル / 左メニュー)
verified_from: 管理画面の課金処理 (initialPaymentCheck / PayClickButton / env) / 人間向けFAQ / 実際の問い合わせ対応の返信
note: 金額・期間は 2026-10 時点のコードの値。変わっている可能性があるときは断定せず、アプリのストアページを案内する。
```

## SUMMARY

プランは **ノーマル** と **プロ** の 2 種類。どちらも月額で、14 日間の無料期間がある。
課金は Shopify の仕組みで、ユーザーが承認するまで始まらない。パートナー開発ストアでは課金されない。

## FACTS

```text
B-1  料金: ノーマル 2.99 ドル/月、プロ 4.99 ドル/月。月額のみ。いずれも 14 日間の無料期間 (承認時に開始) がある。
B-2  プロ限定の機能: CSV 出力 (追跡番号アップデートを含む)、外部システム連携、配送方法のカスタマイズ (チェックアウトの配送オプションの出し分け)。
     「配送方法の表示」(ウィジェットでの配送方法の選択) はノーマルでも使える。
B-3  課金はお客様 (マーチャント) の承認なしには始まらない。管理画面を開いたときにプランの承認のモーダルが出る。
B-4  管理画面の起動のたびに、Shopify の API でそのストアのプランと契約を確認する (キャッシュしない)。
B-5  パートナー開発ストア (Shopify の「開発用ストア」) では課金のモーダルは出ず、プロの機能まで使える。
B-6  Shopify の有料プラン (Basic / Grow / Plus など) に切り替えて課金を始めたストアは、通常のストアとして扱われ、
     アプリの課金 (承認) が必要になる。「クライアント移管」と表示されていても、有料契約済みのストアは同じ。
B-7  個人 (顧客) 情報は、アプリのデータベースに保持していない。API で都度取得し、ブラウザ側で加工して表示する。
     例外: CSV 出力の「自由入力欄」にマーチャントが入力した内容 (発送元の情報など) はアプリ側に保存される。
     顧客の個人情報を手入力しない限り、アプリ側で保持することはない。プライバシーポリシーは公開されている。
B-8  メールを送信する機能は無い。注文確認メールなどに配送日時を載せるには、Shopify の通知テンプレートに表示コードを入れる (070 の PROC-O3)。
B-9  初期ロード時の配送日・時間は「指定なし」。顧客が選ぶと、ページを移動しても値が引き継がれる (X-5)。
B-10 テーマとの相性はテーマごとに異なる。アプリブロックとして置く方式で、テーマのカート (ドロワー式など)・他アプリとの干渉で調整が要ることがある。
     動作確認の実績があるテーマの例: Palo Alto。確認が必要なときは、テーマ名・ドロワーカートの有無を聞き、断定せずに、開発元への問い合わせの文面を下書きする。
B-11 Shopify Plus のチェックアウト拡張機能 (チェックアウト画面の中への入力欄) には対応していない (L-2)。
B-12 配送日時を自動で入れる機能 (例: 「ゆっくり配送は注文の 5 日後を自動で入れる」) は無い。
```

## QA

- **Q: 料金は。無料期間は。** A: ノーマル 2.99 ドル/月、プロ 4.99 ドル/月。どちらも 14 日間の無料期間がある (B-1)。金額の最新はアプリのストアページで確認してもらう。
- **Q: ノーマルとプロの違いは。** A: プロは CSV 出力・外部システム連携・配送方法のカスタマイズが使える (B-2)。日時指定そのものはノーマルで使える。
- **Q: 開発ストア (構築中) で、14 日を過ぎても無料で使えるか。** A: パートナー開発ストアなら課金されない (B-5)。Shopify の有料プランに切り替えて課金が始まると、アプリも課金が必要 (B-6)。ストアの状態を見ないと断定しない。
- **Q: 管理画面を開くと課金の承認画面が出て操作できない。** A: ストアが開発ストアでない (有料プラン契約済み) ためと考えられる (B-6)。承認するまで課金は始まらない (B-3)。ストアのプランを確認してもらう。
- **Q: 「クライアント移管」のストアなのに課金される。** A: そのストアが Shopify の有料プランを契約済みなら、通常の課金になる (B-6)。移管の表示とは別の話。
- **Q: 個人情報はアプリ内に保存されるか。** A: 顧客の個人情報は保存しない (B-7)。CSV の自由入力欄に入れた内容は保存される。プライバシーポリシーの URL を案内する。
- **Q: 使っているテーマで動くか (Palo Alto など)。** A: テーマごとに確認する (B-10)。テーマ名・ドロワーカートの有無を聞く。
- **Q: 初期状態は「指定なし」にできるか。** A: 初期ロードは「指定なし」。顧客が選んだ値は引き継がれる (B-9)。
- **Q: 発送準備のお知らせメールを、このアプリから送れるか。** A: メール送信機能は無い (B-8)。
- **Q: Shopify Plus にしたら、チェックアウト画面で選べるか。** A: できない (B-11)。
- **Q: 注文の何日後などの日付を自動で入れたい。** A: そのような機能は無い (B-12)。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| 開発ストアなのに課金の承認画面が出る | ストアURL (xxx.myshopify.com)、Shopify のプラン (開発用/有料)、「クライアント移管」の表示の有無、画面のスクリーンショット |
| 請求・返金・解約の相談 | ストアURL、請求の日付、Shopify の請求の画面。断定せず、開発元への問い合わせの文面を下書きする |
| 個人情報の取り扱いの詳細な照会 | 社内の確認項目 (データの保存先・保持期間など)。回答は断定せず、プライバシーポリシーを案内し、開発元への問い合わせの文面を下書きする |

## SEE

- [チェックアウト画面に表示できますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/070/checkout/)
- [メールに入力された配送日時指定を表示することはできますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/120/mail/)
- [CC 配送日時指定の使い方](https://capital-castle.eastazy.com/cc-delivery-date-time/how-to-use/how-to-use/)
- [プライバシーポリシー](https://capital-castle.notion.site/8fe175eeb35f461b9455772e91fcca4b)

---

# 設定手順: オプション（注文タグ・メール表示・有効性検証・他アプリとの干渉）

```yaml
screens: 画面上部のボタン「タグを追加」 / 左メニュー「オプション」
verified_from: 管理画面の実装 (項目名・文言)
```

## PROC-O1 注文に配送日のタグを付ける (手動)

```text
場所: アプリの画面上部のボタン「タグを追加」 (「保存する」「言語」「問合せ」と同じ並び)
手順:
1. 管理画面上部のボタン「タグを追加」を押す (同じ並びに「保存する」「言語」「問合せ」がある) (押した後は「タグを追加しました」と表示される)
結果: 注文の一覧で、お客様が指定した配送日がタグ (YYYY-MM-DD 形式) として付く
制限: ボタンを押した日から3日以内で、ステータスがオープンの注文だけが対象
```

## PROC-O2 注文に自動でタグを付ける (Shopify Flow)

```text
場所: アプリの左メニュー「オプション」 > 「オーダーへの自動タグづけ (Shopify Flow)」
手順 (左メニュー「オプション」→「オーダーへの自動タグづけ (Shopify Flow)」):
1. Shopify Flow をインストール (未インストールの場合)
2. 「ダウンロード」ボタンで shopify-flow-import-file.flow をダウンロード
3. Flow の右上の「インポート」でそのファイルをインポート
4. インポートしたワークフローを「ワークフローをオン」にする
結果: 注文の「追加の詳細」の全項目がタグになる
任意: 特定の項目だけをタグにしたいときは、「編集」→ アクションを削除 → タグ付けしたいラベルを選んでコードをコピー → アクションを追加して保存
補足: 日付フォーマットは管理画面の設定どおり。別のフォーマットにしたい場合は Pro プラン
```

## PROC-O3 メール・サンキューページに配送日時を出す

```text
場所: アプリの左メニュー「オプション」 > 「メールとチェックアウト画面への表示方法」
- 「注文の確認メール」: インストラクションを開き、Liquid コードを通知メールのテンプレートに貼る (手動)
- 「サンキューページ (追加スクリプト)」: 追加スクリプトによる方法
- 「(新)サンキューページと注文状況ページ」: 拡張機能による方法 (ベーシックプラン以上のマーチャント向け)。他アプリの対応も確認して切り替える
注意: コードの挿入はマーチャントの手作業。自動では入らない
```

## PROC-O4 チェックアウトで日付の有効性を検証する

```text
場所: アプリの左メニュー「オプション」 > 「チェックアウト時の配送日の有効性検証」 > チェック「有効にする」
検証する内容: 必須化の入力有無、最短日、最長日 (失敗した場合、お客様は購入に進めない)
制限:
- カットオフ時間での検証はできない。カットオフが複数のグループにある場合は、検証用に「カットオフの時間」を1つだけ選ぶ (選ばれなかったカットオフのグループ/選択肢は最短日の計算に使われない)
- 選択肢(配送エリアなど)・配送指定時間・入力テキストは、必須化の入力有無だけを検証する
- 保存サイズが上限を超えている場合はONにできない
メッセージ: 「配送希望日の有効性検証のメッセージ」などを編集できる (既定の文言あり)
```

## PROC-O5 他アプリと干渉するとき

```text
場所: アプリの左メニュー「オプション」 > 「カートアトリビュートのアップデート」
- 「アプリ（カートページ）の読み込み時にカートアトリビュートのアップデートを行わない」
- 「「購入する」ボタンを押した時にカートアトリビュートのアップデートを行わない」
用途: 使っている他アプリとの干渉で不具合が出るときに ON にして解消を試す
注意: ON にすると、注文に配送日時が確実に追加されるための更新を行わなくなる。実店舗で動作確認する
```

## 「オプション」画面の見出し一覧 (上から。実画面で確認済み)

1. チェックアウト時の配送日の有効性検証 (「有効にする」。現在の保存サイズ表示あり)
2. 保存データのバックアップファイルの作成
3. オーダーへの自動タグづけ (Shopify Flow)
4. 言語毎の表示切り替え
5. メールとチェックアウト画面への表示方法
6. カートアトリビュートのアップデート
7. 営業休業日カレンダーの設定 (日より前の日付を自動で削除する)
8. 設定サポートを有料で依頼する

## FACTS

```text
O-1  「タグを追加」は手動ボタン。自動でタグを付けたいなら Shopify Flow (PROC-O2)。
O-2  メールへの表示は、マーチャントがテンプレートにコードを貼る方式。アプリが自動でメールを書き換えることはない。
O-3  有効性検証を ON にしても、カットオフ時間の検証はできない。
```

## ESCALATE

- 「メールに配送日時が出ない」: テンプレートにコードを貼ったか、ラベル(グループ名を変更した場合は再取得)が一致しているか、通知メールの種類を確認する。
- 「検証でお客様が購入に進めない」: ストアURL、カート内の商品、表示されたメッセージ、設定したグループの最短日・最長日を依頼する。

## SEE

- [注文に配送日時指定のタグを追加](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/090/delivery-datetime-tags-to-order/)
- [チェックアウト画面での有効性検証](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/100/checkout-validation/)
- [メールに入力された配送日時指定を表示することはできますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/120/mail/)
- [サンキューページと注文状況ページに配送希望日時を表示することはできますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/130/thankyou-order/)

---

# 商品ページの「最短日の表示」ブロックの仕様と設定

```yaml
screens: オンラインストア → テーマ → カスタマイズ → 商品ページ → アプリブロック「最短日の表示」
verified_from: theme-develop の shortestPorducts.ts / product/getMessage.ts / テーマ拡張の block 定義 (product-cc-dellivery.liquid) / 人間向けマニュアル
note: このブロックは「表示するだけ」。カートに入れたあとの日付の選択はカート側のウィジェットで行う。
```

## SUMMARY

商品ページに、その商品の **最短お届け日** を表示するアプリブロック「最短日の表示」(英語名 Display Shortest Date)。
表示する日付は、管理画面の最短日の設定 (営業日・カレンダーデイ・カットオフ・営業休業日・地域別の調整) を計算した結果と同じ (020 の S-*)。

## RULES

```text
P-1  日付は、閲覧中のバリアントを対象に計算する。バリアントを切り替えると再計算する。
P-2  「商品毎のグループを有効にする」が ON のとき、その商品がどのグループになるか (商品の紐づけ・商品タグ・タグ::SKU・条件) で、
     グループごとの最短日を表示する。商品ページでは、ほかにカートへ入っている商品は考慮しない。
     (カート側のウィジェットは、カート内の全商品から priority 最小のグループを使う。ここが食い違いの原因になりやすい)
P-3  条件 (重量/合計金額/在庫) のグループは、このバリアントの重量・金額・数量で判定する。カートに同じバリアントが入っていれば、その数量を使う。
P-4  次の場合はブロックごと表示されない:
     - 非表示商品として設定された商品
     - そのグループ (または配送方法) で「配送希望日を表示しない」設定になっている
     - 「在庫切れの時は表示しない」が ON で、そのバリアントが在庫切れ
P-5  日付の書式は管理画面「カレンダーの設定」の「入力される日付のフォーマット」と同じ。
P-6  現在時刻は、配信設定にタイムゾーンがあればその時刻、無ければ閲覧者のブラウザの時刻 (S-6 と同じ)。
P-7  「配送方法、配送地域などをセレクトボックスで表示する」ON: 商品ページで配送方法/配送地域を選ぶと、その選択肢の分だけ最短日が変わる (S-7)。
     配送方法 (スロット) が有効なときは「配送方法名: 日付」を並べて表示する。
P-8  存在しないバリアントの組み合わせ (選べない組み合わせ) を選ぶと、数秒間は前の表示のままで、そのあと既定のグループの表示になる。
P-9  このブロックは動的チェックアウトとは無関係に、商品ページに「表示」するだけ。注文に配送日時は付かない。
```

## UI_LABELS

アプリブロック「最短日の表示」の設定項目 (テーマカスタマイズの右側):

| 項目名 | 初期値 |
| --- | --- |
| 最初の文章 | 最短お届け日は |
| 最後の文章 | です。 |
| ノート | (テキスト) |
| フォントのサイズ / ノートのフォントのサイズ | 16 / 14 |
| テキストカラー / テキストカラー(ノート) / テキストカラー(最短日) | #6A6A6A / #737373 / #121212 |
| 在庫切れの時は表示しない | OFF |
| 配送方法、配送地域などをセレクトボックスで表示する | OFF |
| 選択肢(配送地域など)の初期表示のテキスト | - |

## PROC-P1 商品ページに最短日を表示する

場所: Shopify 管理画面の「オンラインストア」 > 「テーマ」 > 「カスタマイズ」 > 商品ページ > 「ブロックを追加」 > アプリの「最短日の表示」

1. Shopify 管理画面の「オンラインストア」→「テーマ」→「カスタマイズ」を開く
2. 上部のページ選択で「商品ページ」(商品テンプレート) を選ぶ
3. 表示したい位置で「ブロックを追加」→ アプリの「最短日の表示」を選ぶ
4. 右側で文章・文字サイズ・色を調整して保存する

## PROC-P2 配送地域や配送方法で日付を切り替えて見せる

場所: アプリの左メニュー「設定」 > カード「配送希望日」 > チェック「選択肢(配送地域など)による最短日の調整を設定する」 (先に設定) → テーマの「カスタマイズ」 > 「最短日の表示」ブロック

1. 設定画面で「選択肢(配送地域など)による最短日の調整を設定する」(または配送方法) を設定しておく
2. 「最短日の表示」ブロックで「配送方法、配送地域などをセレクトボックスで表示する」を ON にする
3. 必要なら「選択肢(配送地域など)の初期表示のテキスト」を変える (初期値は「-」)

## QA

- **Q: 商品ページの最短日は、何をもとに決まるか。調整したい。** A: 最短日の設定 (営業日・カレンダーデイ・カットオフ・営業休業日・地域別の加算) の計算結果。調整は設定画面の該当項目を変える (020 の S-1〜S-7)。
- **Q: 商品ごとに最短日を変えたい。** A: 商品のグループ化 (タグ・商品管理・条件) で、グループごとに最短日を設定する。商品ページのブロックにはグループごとの日付が出る (P-2)。
- **Q: バリアントごとに最短日を変えたい。** A: 「タグ::SKU」でバリアントをグループに紐づける (C-5)。優先順位に注意 (複数タグが付くと priority 最小が使われる)。
- **Q: 商品ページの日付と、カートで選べる最短日が違う。** A: 商品ページは閲覧中のバリアントだけで計算するが、カートはカート内の全商品から priority 最小のグループを使う (P-2)。複数商品・条件グループ・非表示商品の有無を確認する。地域別の加算は、商品ページではセレクトボックスで選ばないと加算されない (P-7)。
- **Q: 商品ページに最短日が出ない。** A: P-4 を順に確認する (非表示商品か / 日付を表示しない設定か / 在庫切れの非表示)。あわせて、ブロックを置いたテンプレートが商品ページか確認する。
- **Q: 日付が表示されるが「今日」になる / 古い。** A: 断定しない。ブラウザ・テーマ・ストアURL を依頼する (ESCALATE)。
- **Q: 商品ページに「配送日時を選ぶカレンダー」を置きたい。** A: 商品ページにも設置できるが、商品ごとのグループ化は反映されない (L-4)。
- **Q: 「発送予定日」と表示したい。** A: 文章は「最初の文章」「最後の文章」で変えられる。計算されるのは最短日で、発送日の計算ではない。別の計算が必要な場合は確認する。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| 商品ページの日付が期待とずれる | 商品URL、バリアント、設定画面の最短日の設定、カート内の商品、ブラウザ |
| バリアントを切り替えても日付が変わらない / 遅れて変わる | 商品URL、テーマ名、切り替えたバリアント、ブラウザのコンソールのエラー |
| ブロックが出ない | 商品URL、テーマ名、テーマカスタマイズでブロックを追加している画面 |

## SEE

- [商品ページに最短配送日を表示する](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/068/shortest-date-product/)
- [最短日の設定(営業日+カレンダーデイ)](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/030/shortest-date/)
- [選択肢(配送地域など)による最短日の調整](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/045/shortest-date-with-selection/)
- [商品毎のグループ化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/080/products-groups/)
- [商品ページに設置できますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/030/products-page/)

---

# 日付ルールの特殊な組み合わせ: 発売日前の商品・営業休業日カレンダー・地域別の制限・自社配送

```yaml
screens: 設定 (配送希望日 / 商品のグループ化) / オンラインストア → テーマ → カスタマイズ (アプリブロック「営業休業日カレンダー」)
verified_from: テーマウィジェット (theme-develop の getMessage / selectDays / holiday-calendar) / テーマ拡張の block 定義 / 人間向けマニュアル / 実際の問い合わせ対応の返信
note: 「できる」は D-* のルールから導ける範囲だけ。店舗の運用の細部はストアの設定を見ずに断定しない。
```

## SUMMARY

日付の制限は、**最短日 (営業日・カレンダーデイ・カットオフ・地域加算)** と **選べる日 (指定不可日・指定不可曜日・指定可能日)** を組み合わせて作る。
商品によって制限が違うときは **商品のグループ化** (グループごとに別設定)。販売の開始日の制御は本アプリの機能ではない。

## RULES

```text
Z-1  「◯月◯日から販売」(販売期間の制御) は本アプリでは設定できない。
     代替: Shopify の公開スケジュール、または販売期間を制限する別アプリ。
     (同じ開発元の「CC オーダールール」で期間販売ができる。詳細は範囲外のため、開発元への問い合わせを案内する)
Z-2  「販売は先だが、配送日は◯月◯日以降にしたい」は、その商品だけのグループを作り、
     そのグループの「指定不可日」に◯月◯日の前日までを登録する (または最短日を長くする)。
     その他の全商品は、バッジ「標準」のグループ (削除できない) の設定が適用される。
Z-3  営業休業日カレンダー (表示専用のブロック) は、設定した営業休業日・休業曜日をグレーアウト+打ち消し線で見せる。
     本日は枠線。日付を選ぶ機能は無い。曜日の言語と開始曜日はアプリの設定に従う。
Z-4  「配送希望日を表示しない」(日付 OFF) のグループでは、そのグループの営業休業日は反映されない。
     日付入力を出さずに営業休業日カレンダーだけ使いたいときは、営業休業日を入れた専用のグループを作り、
     カレンダーに反映するグループとしてそのグループを選ぶ。
Z-5  営業休業日カレンダーには、グループ・選択肢ごとに「反映する/しない」を選べる。複数選ぶと休業日の和集合を表示する。
Z-6  選択肢 (配送地域など) ごとに変えられるのは、最短日の加算 (営業日数・カレンダーデイ) だけ (S-7)。
     選択肢ごとに指定不可日・指定不可曜日・営業休業日を変える設定は無い。
Z-7  「配送準備は営業日 (月〜金)、配送可能日は月〜土」のように、数え方と選べる曜日が違うときは、
     営業休業日 (最短日の数えから外す日) と 指定不可曜日 (選べない日) を別々に設定する (S-2 / S-9)。
Z-8  営業休業日は最短日の計算にだけ、指定不可日・指定不可曜日は選べるかどうかだけに効く。
     祝日で配送もしないときは、営業休業日と指定不可日の両方に登録する。
```

## PROC-Z1 営業休業日カレンダーを商品ページなどに出す

場所: Shopify 管理画面の「オンラインストア」 > 「テーマ」 > 「カスタマイズ」 > 「ブロックを追加」 > アプリの「営業休業日カレンダー」。反映するグループの選択は アプリの左メニュー「オプション」 > 「営業休業日カレンダーの設定」

1. Shopify 管理画面の「オンラインストア」→「テーマ」→「カスタマイズ」を開く
2. カレンダーを出したいページ・セクションで「ブロックを追加」→ アプリの「営業休業日カレンダー」(英語名 Holiday Calendar) を選ぶ
3. ブロックの設定項目: 休業日のラベルテキスト / 休業日の背景色 / 休業日の文字色 / 文字サイズ (px) / 過去に戻れる月数 (既定 0) / 先に進める月数 (既定 3)
4. 反映するグループを選ぶ: アプリの設定画面「オプション」の「営業休業日カレンダーの設定」で、グループ・選択肢ごとにチェックを入れる

補足: 「営業休業日と指定不可日は ◯ 日より前の日付を自動で削除する」を設定していると、過去の休業日はカレンダーに出ない (削除した日付は復元できない)。

## PROC-Z2 一部の商品だけ、配送日を◯月◯日以降にする

場所: アプリの左メニュー「設定」 > カード「商品のグループ化」 > 対象グループ > 「指定不可日」 (グループの作り方は PROC-G1〜G2)

1. 「商品毎のグループ化」を有効にし、グループを追加する (PROC は 060 を参照)
2. そのグループに対象商品を紐づける (タグまたは商品管理)
3. そのグループの設定で、「指定不可日」のカレンダーに、◯月◯日の前日までの日付を登録する
4. その他の商品は、バッジ「標準」のグループの設定のまま (何もしなくてよい)

## QA

- **Q: 7/25 から販売で、配送日は 8/7 以降にしたい。** A: 配送日の制限は Z-2 で可能。販売開始日の制御は本アプリでは不可 (Z-1)。
- **Q: 日時指定は使わず、営業休業日カレンダーだけ使いたい。** A: 営業休業日カレンダーのブロックは単体で置ける (PROC-Z1)。日付を OFF にすると休業日が反映されないので、営業休業日用のグループを作る (Z-4)。
- **Q: 地域ごとに指定不可曜日を変えたい (遠方は金曜着不可など)。** A: 選択肢ごとに指定不可曜日を変える設定は無い (Z-6)。選択肢ごとに変えられるのは最短日の加算だけ。運用の詳細 (対象地域・曜日・締め時間) を依頼して確認する。
- **Q: 土日は営業日に数えないが、土曜は配送したい。** A: 営業休業日に土日、指定不可曜日に日曜、のように別々に設定する (Z-7)。
- **Q: 祝日を一括で入れたい。** A: 日本語の管理画面では「◯年の祝日を反映」ボタンで営業休業日・指定不可日に一括追加できる (040 のカレンダーの設定)。
- **Q: 営業休業日カレンダーに過去の休業日が出ない。** A: 自動削除の日数のため。日数を大きくするか 0 にする。削除済みの日付は戻らない (PROC-Z1)。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| 地域・曜日・時間帯が複雑に絡む制限 | 対象地域、発送元の締め時間、配送にかかる日数、選べない/選べる曜日の一覧 |
| 営業休業日カレンダーが表示されない | ストアURL、ブロックを追加したページ、テーマ名 |
| 設定したのに日付が選べてしまう/選べない | 該当グループの設定画面、カート内の商品、注文した日時 |

## SEE

- [営業休業日カレンダーの設定](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/105/holiday-calendar/)
- [商品毎のグループ化](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/080/products-groups/)
- [指定不可日 | 指定可能日](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/041/blockout/)
- [営業休業日](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/040/holiday/)
- [選択肢(配送地域など)による最短日の調整](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/045/shortest-date-with-selection/)

---

# 症状別の切り分け: ウィジェットが出ない・配送日時が注文に無い・購入に進めない

```yaml
screens: テーマエディタ (アプリの埋め込み / セクション) / 左メニュー「オプション」「商品」
verified_from: テーマウィジェット (theme-develop) / チェックアウト検証 Function / テーマ拡張の block 定義 / 人間向けFAQ
note: 原因は「候補」。マーチャントのストアを見ずに断定しない。ESCALATE の情報を依頼する。
```

## SUMMARY

症状から原因を絞るページ。**原因は断定せず、候補を確認の順番どおりに案内する**。1 つの症状に複数の原因があり、ストアを確認しないと決まらないものが多い。

配送日時は、カートの属性 (注文の「追加の詳細」) としてウィジェットが書き込む。購入の経路がカートの属性を運べない、または書き込む前に JavaScript が動かなかった、のどれかで「注文に無い」が起きる。

## 前提 (仕組みの事実)

```text
T-1  ウィジェットはカートの属性に次を書き込む: 配送希望日のラベル=日付 / 配送希望時間のラベル=時間 /
     (配送エリアのラベル=選択値) / 入力テキストのキー=入力値 / 配送方法のラベル=選んだ配送方法。
     キー名は管理画面のラベル設定と同じ (ラベルを変えるとキーも変わる)。
T-2  __ccValid は「チェックアウト時の配送日の有効性検証」が ON のときだけ書き込まれる。
     値は選択内容を JSON 配列にした文字列。チェックアウトの検証 (Shopify Function) が読む。
T-3  __ccSlot は「配送方法のカスタマイズ」(Pro) が ON のときだけ書き込まれる。
     値は "<配送方法の番号>::<グループ番号>" の形。
T-4  日時指定の対象外のカート (非表示商品の設定により対象外になったカート。G-8 / G-9) では、
     ウィジェットは出ず、上記の属性は空 (削除) になる。入力済みの値は注文に残らない (G-10)。
T-5  アプリの埋め込み (App embed) が有効なら、全ページでウィジェットのコードが読み込まれる。
     「セクション」として置いた場合は、置いたテンプレートのページだけで読み込まれる。
T-6  動的チェックアウト (「今すぐ購入」/ Apple Pay などのボタン) は、Shopify の仕様でカートの属性を運べない。
T-7  チェックアウトの検証は、カートの属性が "inValid" のとき、既定のエラーを出して購入を止める。
```

## 症状別: 確認の順番

### SYM-1 カートにウィジェットが表示されない

```text
確認の順:
1. アプリの埋め込み (App embed) が有効か、または カートのテンプレートにセクションが置かれているか
   → どちらも無ければ表示されない (T-5)。
2. カートの商品が全て「非表示商品」か。非表示優先が ON で、非表示商品が1つでも入っていないか
   → G-8 / G-9。このときは設定した「商品ノート」が代わりに出ることがある (G-11)。
3. 商品ページで見ている場合: 商品ページ用のセクション (ウィジェットモード) が置かれているか。
   カートページ用の設定と、商品ページ用の設定は別。
4. 上記に当てはまらないときは ESCALATE へ。テーマ側のカート (ドロワー式など) や、他アプリとの干渉は
   マーチャントのストアを見ないと断定できない。
```

- 「購入ボタンが押せない/表示されない」場合: テーマエディタの「アプリの埋め込み」にある「配送日時指定ウィジェットが表示されるまで購入ボタンを隠す」が ON のときは、ウィジェットが出るまで購入ボタンが隠れる。ウィジェットが出ない原因を先に解消するか、この設定を OFF にする。

### SYM-2 注文の「追加の詳細」に配送日時が無い

```text
原因の候補 (確認の順):
1. 動的チェックアウト (「今すぐ購入」・Apple Pay などのボタン) から購入された (T-6)。
   → ボタンを OFF にしてもらう。配送日時が必須の場合は特に。
2. 非表示商品の設定で、日時指定の対象外のカートだった (T-4 / G-8 / G-9)。この場合は仕様どおり空。
3. 他アプリとの干渉。配送日時以外の属性は注文に残っていて、配送日時だけ無いときの可能性が高い。
   → 干渉しているアプリの提供元への確認が必要。
4. 後払い決済など外部の決済機能が属性を消した。配送日時の属性がすべて無いときの可能性。
5. 端末の不具合や通信の遅延で、アプリの JavaScript が読み込まれなかった。再現性が無い。
```

- 頻発する場合は「コラボレーションコード」を添えてサポートに連絡してもらう (調査のため)。
- 配送日時が重要な店舗 (冷凍食品・生花など) での対策は SYM-4 の「読み込み時に __ccValid をポスト」。

### SYM-3 注文の「追加の詳細」に __ccValid / __ccSlot が出る

```text
原因: 機能の動作に必要な値のため。
- __ccValid: 「チェックアウト時の配送日の有効性検証」を ON にしている (T-2)
- __ccSlot : 「配送方法のカスタマイズ」(Pro) を ON にしている (T-3)
対処: これらの機能を使うなら必須。値を残したくないだけなら、注文後に Shopify Flow で
     「追加の詳細」から削除するワークフローを設定する (人間向けマニュアルにファイルあり)。
注意: 機能を OFF にすれば出なくなるが、その機能 (検証・配送方法のカスタマイズ) も働かなくなる。
```

### SYM-4 チェックアウトで購入に進めない / エラーが出る

```text
原因の候補:
1. 「有効性検証」が ON で、配送日時の属性が付いていない (ウィジェットが動かなかった・動的チェックアウト等)
   → 検証用のメッセージ (「配送希望日の有効性検証のメッセージ」で設定) が出る。
2. 選んだ配送日が、設定上選べない日になっている (最短日より前・最長日より後・指定不可日など)
   → 日付のエラーメッセージが出る。カートに入れて数日放置した場合にも起きる。
3. 必須項目 (配送時間・配送エリア・入力テキスト) が未入力。
4. 「読み込み時に __ccValid をポスト」が ON で、ウィジェットのコードが読み込まれなかった
   → __ccValid が "inValid" のまま残り、検証が既定のエラーを出して止める (T-7)。
   → お客様はカートに戻ってページを再読み込みする必要がある。
```

- 「読み込み時に __ccValid をポスト」はテーマエディタの「アプリの埋め込み」(またはセクション) の設定項目。配送日時が必須で、読み込み失敗を検知して購入を止めたい店舗向け。離脱のリスクがある (購入に進めなくなる)。
- 検証はカットオフの時間では行えない (O-3)。

### SYM-5 最短日より前の配送日で注文された

```text
原因: カートで有効な日付を選んだあと、購入せずに数日置いてからチェックアウトを完了した場合など。
     カートでは検証されるが、チェックアウト画面ではアプリ側の検証が行われない。
対策: 「チェックアウト時の配送日の有効性検証」を ON にする (チェックアウトで最短日以降かを検証する)。
例外: 決済が別サイトを経由する方法 (例: KOMOJU) で、決済画面に遷移したあと数日置いて完了した場合は、
     有効性検証が働かない。注意書きの文言を案内するか、再指定できる別の方法を検討してもらう。
```

### SYM-6 カートで入力した配送日時が注文に反映されない

SYM-2 の 1 (動的チェックアウト) と 3 (他アプリ) を最初に確認する。次の点も案内する。

- 他の配送日時指定アプリから乗り換えた直後は、他アプリのコードが残って干渉することがある。非表示にしていても、コードが残っていれば干渉する。アンインストールして確認してもらう。
- 以下のアプリとは同時に使えないことが確認されている: Hulk Products Options。

### SYM-7 ウィジェットのレイアウトが崩れる

```text
対処: アプリの「CSSの設定」(テーマエディタの「アプリの埋め込み」にある) に CSS を書いて調整する。
- セレクタは .cc-calendar-overall から始める (他のレイアウトへの影響を防ぐため)。
- "%}" の表記は使えない。使うときは "width: 100%;" のようにセミコロンを付ける。
- テーマ別の実績のある CSS が人間向けマニュアルにある。
- 注記 (note) だけが右寄せになる場合の実績: 埋め込みアプリの CSS に `.cc-calendar-overall .note{justify-content:unset}` を追加した。
- 配送方法・店舗受取など、選択によってだけ崩れる場合は、その状態で崩れている要素を特定してもらう (スクリーンショット)。
```

### SYM-8 メールに配送日時が出ない

別ページ [設定手順: オプション](https://capital-castle.eastazy.com/cc-delivery-date-time/ai/070/setup-options/) の PROC-O3 と ESCALATE を参照する。アプリが自動でメールを書き換えることはなく、テンプレートにコードを貼る方式 (O-2)。

### SYM-9 配送希望時間だけが空のまま注文が通る (別アプリが上書きしている疑い)

```text
症状: __ccValid では時間は選択済みなのに、注文の配送希望時間が空 (日付は入っている)。短時間に連続して注文する顧客で起きる。
考え方:
- 本アプリは __ccValid と配送希望時間を同じ処理で一括更新する。両者がずれるのは、本アプリ単独では起きにくい。
- 事例: メッセージカード/ギフト系の別アプリのコードが、配送希望日・配送希望時間を遅延してカートへ書き込み、後から上書きしていた。
確認する順番:
  1. __ccValid の値 (配列の 5 番目が true = 時間選択済み) と、注文の配送希望時間が食い違っているか
  2. ストアに、メッセージ入力・ギフト・カート操作をする他アプリが入っているか (カートの属性を書き換えるもの)
  3. 他アプリのコードが「配送希望日」「配送希望時間」の属性を更新していないか
対処: 他アプリ側で、配送希望日・配送希望時間を更新しないようにしてもらう。
      本アプリ側で、他アプリの書き込みのタイミングを保証することはできない (後から書いた方が残る)。
```

### SYM-10 スマホでカレンダーの × が反応しない・閉じるのが遅い

```text
- アプリ側で対応済み (2026-04): × ボタンのタップ領域を 44×44px に拡張し、イベントの重複登録を整理した。
- それでも遅い場合: テーマや他アプリのスクリプトが原因のことがある。
  事例: カートページのスクリプトが 0.5 秒ごとに /cart.js を同期 XHR で取得し続け、メインスレッドが止まっていた。
確認: ストアURL、端末と OS (iPhone / Android)、カートページに入っている他のスクリプト・アプリ名。
```

### SYM-11 配送日時の表示が遅い・初期表示に時間がかかる

```text
- アプリの JavaScript 自体の読み込みは遅延が少ない。ウィジェットはカートページの「購入手続き」ボタンに合わせて表示するため、
  テーマや他アプリによってボタンの生成が遅いストアでは、表示も遅れる可能性がある。
- 対策: 表示場所を固定する。表示したい場所に <span id="cc-delivery-date-time-app"></span> を置く
  (FAQ「配送日時指定を任意の場所に表示できますか」)。
- 他アプリが /cart.js を常に取得し続けていないか (例: 決済・購入関連の外部アプリ) を確認する。
- HTML に #cc-calendar-overall が 2 つあるのは仕様 (非表示のひな形を複製して表示用を作る)。遅延の原因にはならない。
```

### SYM-12 Google の検索結果に、配送日時の選択肢が表示される

```text
- 原因: ウィジェットのテキスト (選択肢・日付セル・設定 JSON) が、全ページの DOM に展開されているため、
  Googlebot が JavaScript を実行して読み取り、検索スニペットに混ざることがある。
- 対応済み (2026-04): ウィジェットの要素に data-nosnippet 属性を付与した。全ストアに反映済みで、マーチャント側の設定変更は不要。
- 反映時期: 既にインデックス済みのスニペットは、Google の再クロール後に順次消える (数日〜数週間)。
- 消えない/表示環境による: 検索結果はアカウントや時期で見え方が変わる。site: 検索でページ名と症状の出るページを依頼する。
```

### SYM-13 店舗受取の下に「明日 18:59」など、見覚えの無い日時が出る

```text
- 本アプリの表示ではなく、Shopify の店舗受取の設定の「受取予定日」の表示であることがある。
- 確認: Shopify 管理画面 → 設定 → 発送と配達 → 店舗受取 → 該当の店舗の「受取予定日」の設定。
```

### SYM-14 「チェックアウト時の配送日の有効性検証」が保存サイズ超過で ON にできない

```text
- Shopify 側の保存サイズの制約で、サイズを増やすことはできない。アプリ側でデータの圧縮は実施済み。
- 対処 (サイズを小さくする):
  1. グループを減らす (最も確実)
  2. 営業休業日・指定不可日を最小にする (最長日 + 1 か月程度まで)
  3. 「営業休業日と指定不可日は ◯ 日より前の日付を自動で削除する」を設定する
```

### SYM-15 設定の保存ボタンが回り続けて保存できない

```text
- 事例: 過去の「追加の詳細な時間」の設定が適切に削除されておらず、保存時のデータでエラーになっていた。
  マーチャント側では原因が見えず、データを確認して修正する必要がある。
- 断定せず、ESCALATE の情報を依頼する (コラボレーションコードが必要)。
```

### SYM-16 カートの中身が突然空になる

```text
- 本アプリにカートの商品を操作する処理は無い。アプリの埋め込みを OFF にしても起きるなら、本アプリが原因ではない。
- 事例: 別のギフトアプリが原因だった。
- 確認: 埋め込みを OFF にしても再現するか、いつ起きるか (操作・ページ)、入っている他アプリ。
```

## QA

- **Q: 注文に配送日時が入っていない。アプリの不具合か。** A: 断定しない。SYM-2 の順に確認してもらう。配送日時以外の属性が残っているか、動的チェックアウト経由か、を最初に聞く。
- **Q: __ccValid を消したい。** A: 機能に必要 (SYM-3)。残したくないだけなら Shopify Flow で削除。
- **Q: 配送日時の入力を確実に必須にしたい。** A: 「必須化」の設定 + 「チェックアウト時の配送日の有効性検証」を ON。さらに、読み込み失敗を検知するなら「読み込み時に __ccValid をポスト」を ON (SYM-4、離脱リスクあり)。動的チェックアウトのボタンは OFF にする。
- **Q: 動的チェックアウトでも配送日時を取れるか。** A: 取れない (T-6)。ボタンを OFF にする。
- **Q: お客様の端末では出ない、自分の端末では出る。** A: 再現しない場合は断定しない。ブラウザ、端末、通信状況、商品URLを依頼する。再現性が無い読み込み失敗は SYM-2 の 5。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| ウィジェットが出ない (SYM-1 に当てはまらない) | ストアURL、商品URL、カートの商品、テーマ名、ブラウザ、アプリの埋め込みが有効かのスクリーンショット |
| 注文に配送日時が無い | 注文番号、「追加の詳細」のスクリーンショット (他の属性が残っているか)、購入経路 (動的チェックアウトか)、使用中の決済・他アプリ |
| 頻発する | 上記に加えて「コラボレーションコード」 (ログインして調査するため) |
| チェックアウトで止まる | 表示されたメッセージ、ストアURL、カートの商品、有効性検証の設定 (ON/OFF・「読み込み時に __ccValid をポスト」の ON/OFF) |
| レイアウトが崩れる | ストアURL、テーマ名、崩れている箇所のスクリーンショット |
| 時間だけ空で注文が通る | 注文番号 (複数)、__ccValid の値、注文の追加の詳細、入っている他アプリ (メッセージ・ギフト系) |
| 保存できない / 保存ボタンが回り続ける | ストアURL、操作の手順、コラボレーションコード |
| 表示が遅い・× が反応しない | ストアURL、端末と OS、ブラウザ、カートページに入っている他アプリ |

## SEE

- [動的チェックアウトには対応していますか?](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/010/dynamic-checkout/)
- [カートで入力した配送日時が反映されません](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/040/cart/)
- [オンラインショップへの設置はできたのですがレイアウトが崩れます](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/060/layout/)
- [最短日より前の配送日で注文されてしまうことがあります](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/140/checkout-invalid-date/)
- [__ccValidもしくは__ccSlotが注文の「追加の詳細」に含まれるようになりました](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/160/property/)
- [配送希望日時が入力されていない注文があるケースがあります](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/170/no-property/)
- [チェックアウト画面での有効性検証](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/100/checkout-validation/)
- [コラボレーションコードとは何ですか?](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/110/checkout/)
- [配送日時指定を任意の場所に表示できますか?](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/020/display-everywhere/)
- [営業休業日カレンダーの設定](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/105/holiday-calendar/)

---

# できないこと・他アプリとの併用・範囲外の質問

```yaml
screens: 左メニュー「オプション」「連携(プロプラン)」/ 設定 → 入力テキスト
verified_from: テーマウィジェット (theme-develop) / チェックアウト拡張 (checkout-ui の shopify.extension.toml) / 人間向けFAQ / 実際の問い合わせ対応の返信
note: 「できません」と答えてよいのは L-* に書いたものだけ。他アプリの設定方法は案内しない (その製品のマニュアルを案内する)。
```

## SUMMARY

「CC 配送日時指定」は、**カート画面のウィジェットが、配送日時をカートの属性 (注文の「追加の詳細」) に書き込む**アプリ。チェックアウトの内部・POS・他アプリの動作は制御しない。
他アプリとの連携は「注文の追加の詳細にあるキーと値を、相手が読む」形になる。相手が読めるかは相手のアプリの仕様で決まる。

## RULES (できないこと)

```text
L-1  支払方法 (クレジット / 銀行振込 / コンビニ払い など) によって、配送日時の表示・必須・非表示を切り替える機能は無い。
     理由: 配送日時はカート画面で選ぶが、支払方法はその後のチェックアウトで選ぶ (Shopify の仕様)。
     代替: 注記欄に「銀行振込・コンビニ払いは入金後の発送となるため、指定した配送希望日は無効です」のように書く。
L-2  チェックアウト画面の中に配送日時の入力欄を出すことはできない (本アプリのウィジェットは未対応)。
L-3  動的チェックアウト (「今すぐ購入」/ Apple Pay などのボタン) 経由の注文には配送日時が付かない (Shopify の仕様)。
     日時指定を必須にする場合は、動的チェックアウトのボタンを OFF にする。
L-4  商品ページに置いても、商品ごとのグループ化は反映されない。グループは「カートに入った商品」に対して決まる。
L-5  マイページ (お客様アカウント) の注文履歴の一覧に配送日時を出す機能は無い。
     - 新しいお客様アカウント: 「注文状況」ページにアプリブロック (checkout-ui) を置くと、配送希望日時を表示できる。
       (サンキューページにも置ける。Shopify のチェックアウト設定画面からブロックを追加する)
     - 旧アカウントページ: アプリの機能ではなく、テーマの注文一覧の liquid で order.attributes から表示する。
L-6  「定期購入のときだけ日時指定を非表示にする」設定は無い。定期購入の判定はアプリ側に無い。
L-7  選択済みの配送日時を、商品をカートから削除したときに自動でリセットする機能は確認できていない (X-5)。
L-8  TikTok Shop など Shopify 以外のチャネルでは使えない (Shopify 専用)。開発の予定は無い。
L-9  Shopify POS との連携 (POS からの注文で受取日時を必須にする等) は無い。開発の予定は無い。
L-10 置き配などの専用機能は無い。代替は「入力テキスト」(050 の PROC-X1) で項目を足し、注文の追加の詳細に値を載せる。
     連携先 (ロジレス・ヤマトB2クラウド など) がその項目を取り込めるかは、連携先の仕様による。
```

## RULES (他アプリとの併用)

```text
X-1  All in Gift: カート画面に All in Gift を置いたときだけ、配送日時の情報を取り込める。
     商品ページに置いた場合は取り込めない。All in Gift 側の「取り込むkey」に、本アプリの「表示ラベル」の文字列を設定する。
X-2  All in Gift の選択 (e ギフトなど) に合わせて日時指定ウィジェットを隠す連動は、正式な連携ではなくサポート対象外。
     コード例が FAQ (「カスタマイズした条件に合わせて…非表示にできますか」) にある。
X-3  定期購入アプリ: 定期の 2 回目以降の注文は、定期購入アプリが最初の注文を元に作る。
     そのとき最初に指定した配送日時が引き継がれても、本アプリが制御しているわけではない。定期購入アプリ側の仕様を確認してもらう。
X-4  他アプリと同じ項目名 (例: delivery_date) を使うと衝突する。Pro の「連携用のラベル」を別の名前に変えれば避けられる。
X-5  カートの属性は商品をカートから削除しても残る (/cart/clear.js でも消えない。実機で再現確認済み)。
     そのため、商品を入れ直したあとのカートに、前回の配送日時が復元されて注文に載ることがある。
     顧客が日付を選び直せば上書きされる。選択可能な範囲外の日付は復元されない。
X-6  範囲外の別アプリ: 「CC オーダールール」(数量制限・予約販売など)・年齢確認・卸売(B2B)アプリなどは、本マニュアルの対象外。
     機能・設定を推測で答えず、範囲外であることを伝え、「CC 配送日時指定」の開発元への問い合わせを案内して文面を下書きする。
```

## PROC-L1 旧アカウントページの注文一覧に配送日時だけを出す (liquid)

テーマの注文一覧を出力している liquid ファイル (Dawn の場合はお客様アカウントの注文テンプレート) に追記する。
実際のマーチャントで動作確認済みの書き方 (`order.attributes` を使う。`attributes` だけでは注文の値にならない):

```liquid
{% for attribute in order.attributes %}
  {% if attribute.first == "配送希望日" %}
    <p>{{ attribute | first }}</p>
    <p>{{ attribute | last }}</p>
  {% endif %}
{% endfor %}
{% for attribute in order.attributes %}
  {% if attribute.first == "配送希望時間" %}
    <p>{{ attribute | first }}</p>
    <p>{{ attribute | last }}</p>
  {% endif %}
{% endfor %}
```

- `"配送希望日"` `"配送希望時間"` は、管理画面の「表示ラベル」に設定した文字列と一致させる (ラベルを変えているストアはその文字列にする)。
- 絞らずに全て出すと `__ccValid` などの内部の値も表示される。
- テーマのファイルを編集するため、サポート対象外の作業。コード提示は参考として行う。

## QA

- **Q: 銀行振込やコンビニ払いのときだけ日時指定を出さないようにしたい。** A: できない (L-1)。注記欄の文言で案内する方法がある。
- **Q: チェックアウトの画面に日時指定を出せるか。** A: 出せない (L-2)。サンキューページと注文状況ページに「表示」するブロックは置ける (L-5)。
- **Q: マイページの注文履歴に配送希望日時を出したい。** A: 新アカウントは注文状況ページにアプリブロックを置く。旧アカウントはテーマの liquid で `order.attributes` から出す (L-5)。
- **Q: マイページに出したら __ccValid などの余計な値も出る。** A: liquid で `attribute.first` がラベルと一致するものだけ出す。ラベルは管理画面の「表示ラベル」の文字列。
- **Q: 定期購入のときだけ日時指定を隠したい。** A: 設定では隠せない (L-6)。定期購入の有無を検知するコードを自分で書き、FAQ の `window.ccSelectedTag` を使う方法がある (サポート対象外)。
- **Q: 定期の 2 回目以降の注文にも同じ配送日時が入る。** A: 定期購入アプリが注文を複製しているため。定期購入アプリに確認してもらう (X-3)。
- **Q: 定期購入アプリと配送日の項目名が被る (ネクストエンジン連携)。** A: 「連携用のラベル」を別の名前にする (X-4)。
- **Q: All in Gift と連携できるか。** A: カート画面に置いた場合のみ可能 (X-1)。商品ページでは不可。
- **Q: 置き配の選択肢を付けて連携先に渡したい。** A: 入力テキストで項目を足すと注文の追加の詳細に載る。連携先が取り込めるかは連携先に確認する (L-10)。
- **Q: ヤマトB2クラウドで置き配の送り状を出したい。** A: 当アプリでは対応できない。B2クラウド側の仕様の問題。
- **Q: POS から注文するときに受取日時を必須にしたい。** A: 機能は無く、予定も無い (L-9)。
- **Q: TikTok Shop でも使いたい。** A: 使えない (L-8)。
- **Q: 商品を消して選び直したのに、前の配送日時が残っている。** A: カートの属性が残る仕様 (X-5)。顧客が選び直せば上書きされる。リセット用の設定は確認できていないので、断定せず確認する。
- **Q: 商品ページに置いたら、グループの設定が効かない。** A: 仕様 (L-4)。カートに入った商品に対して適用される。

## ESCALATE

| 状況 | 依頼する情報 |
| --- | --- |
| 他アプリを入れた後に、日時指定ができない商品でも指定できてしまう | 注文番号、注文の「追加の詳細」の値、カート内の商品、入っている他アプリ名 |
| 他アプリとの連携で値が取り込まれない | 連携先アプリ名、注文の「追加の詳細」のキーと値、連携先に設定したキー名 |
| 身に覚えのない配送日時が注文に入っている | 注文番号、注文日時、顧客がログインしていたか、前回の注文の有無、ブラウザ |
| 範囲外の別アプリの質問 | (答えずに) 範囲外であることを伝え、開発元への問い合わせの文面を下書きする |

## SEE

- [動的チェックアウトには対応していますか?](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/010/dynamic-checkout/)
- [チェックアウト画面に表示できますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/070/checkout/)
- [商品ページに設置できますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/030/products-page/)
- [サンキューページと注文状況ページに配送希望日時を表示することはできますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/130/thankyou-order/)
- [カスタマイズした条件に合わせて配送日時指定ウィジェットを非表示にできますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/080/display-settings/)
- [All in Giftと連携できますか？](https://capital-castle.eastazy.com/cc-delivery-date-time/questions/050/All-in-Gift/)
- [入力テキスト](https://capital-castle.eastazy.com/cc-delivery-date-time/normal/075/input-text/)
