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