ストアネイティブな割引コードの発行
MailInAppは、連携したShopifyおよびWooCommerceストア向けに、動的なストアネイティブな割引コードの発行をサポートしています。
購入者を第三者のチェックアウトや汎用の公開クーポンへ誘導するのではなく、MailInAppは送信時に、あなたのストア上で直接、1回限り・顧客限定の割引コードを自動的に発行します — 以下の2つの独立した仕組みのいずれか、または両方、あるいはどちらも使わないという形で、1つのプロジェクトから利用できます。
- プロジェクトレベルの割引オファー — 送信ページの設定で、マッチした受信者ごとに1つのコードを発行します。ストア全体、またはドロップダウンから選んだ1つの商品に限定でき、購入履歴オーディエンスセグメントと組み合わせることを想定しています。割引オファーを参照してください。
- 商品ブロックの商品ごとの割引 — スタジオの商品ブロック自身にあるトグルで、そのブロックがカタログからインポートしたまさにその商品だけに限定され、オーディエンスフィルターや送信ページの設定は一切不要です。Shopify商品割引コードとWooCommerce商品割引コードで、はじめから終わりまで解説しています。
どちらも同じストア接続を通じて発行され、以下の仕組みを共有します。商品ごとの割引は、コードを1つの商品に限定するという条件が追加されるだけで、プロジェクトレベルのオファーや他のすべての商品ブロックとは別に、独自のクールダウンマーカーを保持します。
仕組み
キャンペーンまたはジャーニーに割引オファーが含まれる場合:
- 動的な顧客解決:
- Shopify: 割引ノードを生成する前に、Admin GraphQL経由で受信者の顧客GraphQL ID(
gid://shopify/Customer/...)を解決します。 - WooCommerce: WooCommerce REST APIを使って、生成したクーポンを受信者の正確なメールアドレスに限定します。
- Shopify: 割引ノードを生成する前に、Admin GraphQL経由で受信者の顧客GraphQL ID(
- 使い切り・セキュア:
- コードにはランダムな暗号学的サフィックスが付きます(例:
MIA-7F3A91B2)。 - すべてのコードは1回限りの使用(
usage_limit: 1)に制限され、受信者のメールアドレスにのみ紐付けられるため、クーポンサイトへの流出を防げます。
- コードにはランダムな暗号学的サフィックスが付きます(例:
- 任意の商品スコープ:
- ストア全体で発行されたコードは、どの購入にも適用されます。商品に限定したコード — プロジェクトレベルのオファー自身のスコープピッカー、または商品ブロックの商品ごとの割引 — は、その商品だけに限定されます。Shopifyでは実際のProduct GIDに対する
customerGets.items.products.productsToAdd、WooCommerceではクーポンのproduct_idsフィールドで実現します。
- ストア全体で発行されたコードは、どの購入にも適用されます。商品に限定したコード — プロジェクトレベルのオファー自身のスコープピッカー、または商品ブロックの商品ごとの割引 — は、その商品だけに限定されます。Shopifyでは実際のProduct GIDに対する
- ストアのチェックアウトでの事前適用:
- ストア全体またはプロジェクトスコープのコードのリンクは、通常のチェックアウトでそれを適用します(WooCommerceでは
/cart/?coupon=MIA-...、Shopifyでは/にリダイレクトする/discount/MIA-...)。 - 商品ブロック自身の商品ごとの割引は、代わりに買い物客をその商品自身のページへ、コードが既に適用された状態で直接戻します(WooCommerceでは商品URLに
?coupon=MIA-...を追加、Shopifyでは/discount/MIA-...?redirect=<商品パス>)— ストアフロントのルートではありません。メールが特定の1商品を指し示していたためです。
- ストア全体またはプロジェクトスコープのコードのリンクは、通常のチェックアウトでそれを適用します(WooCommerceでは
- 買い物客がクリックする前から確認できる:
- 商品ブロックの商品ごとの割引をオンにした瞬間、スタジオのキャンバスには、送信されるメールやライブビューと同じ割引バッジと取り消し線付きの価格が表示されます — 確認のためにライブビューを開く必要はありません。
- Shopifyストアの場合、任意のMailInApp discount badgeアプリブロックが、メールからクリックしてきた買い物客に対して、チェックアウトの前に同じバッジを実際の商品ページに直接表示します — 設定方法は下記の商品ページでの割引表示(Shopify)を参照してください。WooCommerce向けの相当機能はありません — WooCommerceのクーポンには、商品ページ自体の表示内容を変更する仕組みがないためです。
商品ページでの割引表示(Shopify)
スタジオのキャンバスは、商品ブロックの商品ごとの割引をオンにした瞬間に、すでに割引バッジと取り消し線付きの価格を表示します — 設定は不要です。同じバッジを実際のShopifyストアフロントに表示するには、ストアごとに一度だけの手動手順が必要です。MailInAppがテーマを自動的に編集することはないためです。
- Shopify管理画面でOnline Store → Themesに移動し、公開中(またはドラフト)のテーマでCustomizeをクリックします。
- 上部のページピッカーをProductページに切り替えます。
- 価格・購入ボタンを表示しているセクション(通常はProduct informationまたはBuy buttons)をクリックします。
- そのセクション内で(「Add section」ではなく)Add blockをクリックし、Appsの下からMailInApp discount badgeを選びます。
- 価格の横にドラッグし、必要に応じて設定パネルでバッジの色を調整して、Saveをクリックします。
そのセクションのブロックピッカーにAppsが表示されない場合、そのセクションはまだアプリブロックに対応していません — 別のセクションを試すか、テーマ開発者に依頼してスキーマに{"type": "@app"}を追加してもらってください。ほとんどのOnline Store 2.0テーマ(Dawnとそのフォーク)は、メインの商品セクションで既にこれに対応しています。Online Store 2.0テーマが必要です。
このバッジは、通常のストアフロント訪問では意図的に非表示のままです — 実際の商品ごとの割引メールが生成する署名付きリンクとともに商品ページが読み込まれたときだけレンダリングされます。そのため、自分でページを閲覧しても表示されず、テスト送信(メールを直接レンダリングし、バッジのリンクに署名する割引発行ステップをスキップします)でも表示されません。実際に確認するには、受信者(自分自身でも構いません)に本当に送信し、届いたメールから今すぐ購入をクリックしてください。これは商品自身の価格から計算される表示専用のプレビューであり、実際の割引はいずれの場合も使い切りコードを通じてチェックアウト時にのみ適用されます。
対応しているオファーの種類
- パーセンテージオフ:例として、サイト全体・コレクション・単一商品に対する15%または20%の割引。
- 固定金額オフ:例として、カート合計から10ドルまたは25ドルオフ、あるいは1商品からのオフ。
- 有効期限:コードには自動計算された有効期限(例:送信時点から7日または14日)が付き、加盟店のストア側で緊急性が強制されます。
- アカウントのクールダウン:組み込みのクールダウンマーカーにより、複数のスケジュールやプロジェクトにわたって同じ連絡先へ過剰にクーポンを発行することを防ぎます — プロジェクトレベルのオファー用に1つ、商品ブロックごとに別々のマーカーがあるため、ある商品への割引が、他の商品のクールダウンやプロジェクトレベルのオファーのクールダウンを妨げることはありません。
セットアップとAPI連携
- Shopify:
write_discountsスコープを持つ接続済みストアの認証情報が必要です(OAuth接続時に処理されます)。 - WooCommerce: 読み取り/書き込み権限を持つ、接続済みストアのREST API consumer keyとsecretが必要です。
商品ブロックの商品ごとの割引には、そのブロックがストアからインポートピッカー経由で実際の商品をインポートしていることも必要です(手入力の外部URLでは不可)— コードを限定するには、ストア自身の数値の商品idが発行時に必要になるためです。