ホームヒーローのキャンペーン連動仕様¶
- 日付: 2026-04-20
- 対象: Storefront ホームのメインバナー(ホームヒーロー), WordPress CMS メインバナー管理
背景¶
ホームヒーローのメインバナーは WordPress 側で独立管理しているが、キャンペーン導線と結び付けたい要件がある。
一方で、公開 URL の slug は変更される可能性があるため、連動キーを slug に依存させない。
決定事項¶
- メインバナーは任意で
campaignIdを持てる。 campaignIdは campaign の公開 URL ではなく、連動用の一意な業務 ID として扱う。campaignIdが設定されたバナーは、Storefront 上で解決できる campaign にのみ連動する。- メインバナーの
displayPeriodは campaign の期間へ統合しない。独立した機能として維持する。 campaignIdが設定されたバナーは、scheduleModeにより表示期間の判定方法を切り替えられる。
メインバナーの追加フィールド¶
WordPress の「メインバナー(リピーター)」の各 slide に、以下を追加する。
campaignId- 型: 文字列
- 必須: 任意
- 用途: 連動先 campaign の一意 ID
scheduleMode- 型: select
- 必須: 任意
- 初期値:
banner-only - 選択肢:
banner-onlycampaign-onlyboth
表示ルール¶
campaign 非連動バナー¶
campaignId 未設定のバナーは、従来どおり独立バナーとして扱う。
displayPeriodの範囲内なら表示するdisplayPeriod未設定なら常時表示する- 商品・collection・campaign には紐づけず、商品表示制御や対象商品の有無では非表示にしない
- 遷移先は
destinationUrlが設定されている場合のみ使用する
campaign 連動バナー¶
campaignId が設定されたバナーは、次の条件で表示する。
campaignIdから Storefront 上の campaign 導線を解決できること- 解決した campaign が、その時点で Storefront 上の公開対象であること
- 解決した campaign collection に、現在の顧客から見える商品が1件以上あること
scheduleModeに応じた期間条件を満たすこと
ここでいう「公開対象」は、Vendure の campaigns 親 collection 配下に存在し、表示制御ルールで許可され、かつ有効な campaign code と一致している状態を指す。campaign collection が存在しても、対象商品がすべて非表示・対象外・未登録の場合は、バナーも campaign 一覧も表示しない。
scheduleMode ごとの判定¶
banner-only- campaign が公開対象であること
- campaign collection に現在の顧客から見える商品が1件以上あること
- かつ、バナー自身の
displayPeriodを満たすこと campaign-only- campaign が公開対象であること
- campaign collection に現在の顧客から見える商品が1件以上あること
- バナー自身の
displayPeriodは表示判定に使わない both- campaign が公開対象であること
- campaign collection に現在の顧客から見える商品が1件以上あること
- かつ、バナー自身の
displayPeriodを満たすこと
リンク解決ルール¶
campaignId が設定されたバナーは、Storefront 側で campaignId から現在の campaign URL を解決し、遷移先を /campaigns/{current-slug} とする。
- WordPress バナー側で campaign の URL を手入力しない
slugが将来変更されても、campaignIdが同じなら追従する
異常系¶
campaignId が設定されていても、次の場合はそのバナーを表示しない。
- 該当 campaign が見つからない
- 該当 campaign が Storefront の公開対象ではない
- 該当 campaign collection に現在の顧客から見える商品が1件もない
- campaign URL を解決できない
関連導線の表示制御¶
Storefront の collection 導線は、原則として「表示制御で許可されていること」と「現在の顧客から見える商品が1件以上あること」の両方を満たす場合だけ表示する。
| 導線 | 表示条件 |
|---|---|
| ヘッダーの商品メニュー | 対象 collection が表示制御で許可され、可視商品が1件以上ある |
| 検索ポップオーバーのブランド/製品タイプ導線 | 対象 collection が表示制御で許可され、可視商品が1件以上ある |
| 商品一覧・検索サイドバー | 対象 collection が表示制御で許可され、可視商品が1件以上ある |
| ホームの契約ブランド | ブランド collection に現在の顧客から見える商品が1件以上ある |
| キャンペーン一覧 | campaign collection が表示制御で許可され、有効 campaign code と一致し、可視商品が1件以上ある |
| キャンペーン詳細 | campaign collection が表示制御で許可され、有効 campaign code と一致し、可視商品が1件以上ある |
| campaign 連動メインバナー | campaignId が解決でき、上記 campaign 条件を満たし、scheduleMode の条件を満たす |
| campaign 非連動メインバナー | displayPeriod のみで判定する。商品・collection の可視性では非表示にしない |
運用上の意図¶
- 連動キーを
campaignIdに固定し、URL 変更に耐えるようにする displayPeriodは campaign の期間設定と混ぜず、バナー独自の掲出制御として維持する- 連動バナーでも壊れた導線を出さないよう、公開対象でない campaign にはリンクさせない
- 商品がない campaign や collection への導線を出さず、遷移後に空一覧だけが表示される状態を避ける