Documentation menu

ストアネイティブな割引コードの発行

MailInAppは、連携したShopifyおよびWooCommerceストア向けに、動的なストアネイティブな割引コードの発行をサポートしています。

購入者を第三者のチェックアウトや汎用の公開クーポンへ誘導するのではなく、MailInAppは送信時に、あなたのストア上で直接、1回限り・顧客限定の割引コードを自動的に発行します — 以下の2つの独立した仕組みのいずれか、または両方、あるいはどちらも使わないという形で、1つのプロジェクトから利用できます。

  • プロジェクトレベルの割引オファー — 送信ページの設定で、マッチした受信者ごとに1つのコードを発行します。ストア全体、またはドロップダウンから選んだ1つの商品に限定でき、購入履歴オーディエンスセグメントと組み合わせることを想定しています。割引オファーを参照してください。
  • 商品ブロックの商品ごとの割引 — スタジオの商品ブロック自身にあるトグルで、そのブロックがカタログからインポートしたまさにその商品だけに限定され、オーディエンスフィルターや送信ページの設定は一切不要です。Shopify商品割引コードWooCommerce商品割引コードで、はじめから終わりまで解説しています。

どちらも同じストア接続を通じて発行され、以下の仕組みを共有します。商品ごとの割引は、コードを1つの商品に限定するという条件が追加されるだけで、プロジェクトレベルのオファーや他のすべての商品ブロックとは別に、独自のクールダウンマーカーを保持します。


仕組み

キャンペーンまたはジャーニーに割引オファーが含まれる場合:

  1. 動的な顧客解決:
    • Shopify: 割引ノードを生成する前に、Admin GraphQL経由で受信者の顧客GraphQL ID(gid://shopify/Customer/...)を解決します。
    • WooCommerce: WooCommerce REST APIを使って、生成したクーポンを受信者の正確なメールアドレスに限定します。
  2. 使い切り・セキュア:
    • コードにはランダムな暗号学的サフィックスが付きます(例:MIA-7F3A91B2)。
    • すべてのコードは1回限りの使用(usage_limit: 1)に制限され、受信者のメールアドレスにのみ紐付けられるため、クーポンサイトへの流出を防げます。
  3. 任意の商品スコープ:
    • ストア全体で発行されたコードは、どの購入にも適用されます。商品に限定したコード — プロジェクトレベルのオファー自身のスコープピッカー、または商品ブロックの商品ごとの割引 — は、その商品だけに限定されます。Shopifyでは実際のProduct GIDに対するcustomerGets.items.products.productsToAdd、WooCommerceではクーポンのproduct_idsフィールドで実現します。
  4. ストアのチェックアウトでの事前適用:
    • ストア全体またはプロジェクトスコープのコードのリンクは、通常のチェックアウトでそれを適用します(WooCommerceでは/cart/?coupon=MIA-...、Shopifyでは/にリダイレクトする/discount/MIA-...)。
    • 商品ブロック自身の商品ごとの割引は、代わりに買い物客をその商品自身のページへ、コードが既に適用された状態で直接戻します(WooCommerceでは商品URLに?coupon=MIA-...を追加、Shopifyでは/discount/MIA-...?redirect=<商品パス>)— ストアフロントのルートではありません。メールが特定の1商品を指し示していたためです。
  5. 買い物客がクリックする前から確認できる:
    • 商品ブロックの商品ごとの割引をオンにした瞬間、スタジオのキャンバスには、送信されるメールやライブビューと同じ割引バッジと取り消し線付きの価格が表示されます — 確認のためにライブビューを開く必要はありません。
    • Shopifyストアの場合、任意のMailInApp discount badgeアプリブロックが、メールからクリックしてきた買い物客に対して、チェックアウトの前に同じバッジを実際の商品ページに直接表示します — 設定方法は下記の商品ページでの割引表示(Shopify)を参照してください。WooCommerce向けの相当機能はありません — WooCommerceのクーポンには、商品ページ自体の表示内容を変更する仕組みがないためです。

商品ページでの割引表示(Shopify)

スタジオのキャンバスは、商品ブロックの商品ごとの割引をオンにした瞬間に、すでに割引バッジと取り消し線付きの価格を表示します — 設定は不要です。同じバッジを実際のShopifyストアフロントに表示するには、ストアごとに一度だけの手動手順が必要です。MailInAppがテーマを自動的に編集することはないためです。

  1. Shopify管理画面でOnline Store → Themesに移動し、公開中(またはドラフト)のテーマでCustomizeをクリックします。
  2. 上部のページピッカーをProductページに切り替えます。
  3. 価格・購入ボタンを表示しているセクション(通常はProduct informationまたはBuy buttons)をクリックします。
  4. そのセクション内で(「Add section」ではなく)Add blockをクリックし、Appsの下からMailInApp discount badgeを選びます。
  5. 価格の横にドラッグし、必要に応じて設定パネルでバッジの色を調整して、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が発行時に必要になるためです。