商品ブロックから1つの商品向けにShopifyの使い切り割引コードを発行する

プロジェクトレベルの割引オファーは、1つのストア全体(または1つの商品)向けの1つのコードで、オーディエンス全体をターゲットにします。こちらはより狭い、ブロックレベルの兄弟機能です:商品ブロック自身に宿る割引で、Shopifyのカタログからインポートした1つの本物の商品に紐付き、メールが送信される瞬間に受信者ごとに発行され、その商品自身のページでそのまま引き換えられます — 購入履歴セグメントや割引オファーの設定は一切不要です。

Shopifyストアにリンクしたスタジオの商品ブロックは、その1つの商品にスコープされた、受信者ごとの使い切り割引コードを自身で発行できます — 購入履歴セグメントもプロジェクトレベルの割引オファーも不要です。

MailInAppにはすでに、マッチしたオーディエンス全体を1つのコードでターゲットにするプロジェクトレベルの割引オファーがあります。こちらはより狭いツールです:商品ブロック自身に宿る割引で、Shopifyカタログからインポートした実際の商品に紐付き、そのメールのすべての受信者に対して自動的に発行され、その商品自身のページでそのまま引き換えられます。

ステップ1 — Shopifyを接続する

設定 → 連携から、まだ接続していなければ自分のShopifyストアを接続します。MailInAppは、読み取りスコープに加えてwrite_discountsもリクエストします。これは、まさにこのユースケースが依存するコードを発行するためです — 自分の商品・注文・顧客そのものへの書き込みアクセスを求めることは一切ありません。

ステップ2 — 商品を商品ブロックにインポートする

スタジオで商品ブロックを追加し、そのストアからインポート検索を開きます。URLを手入力するのではなく、同期済みのShopifyカタログから本物の商品を選びます。インポートは一度に3つのことを行います:名前・説明・画像・価格を入力し、チェックアウトを外部ストアのチェックアウトへリンクに切り替え、商品自身のShopifyハンドルから外部商品ページURLを入力します。この3つすべてが次のステップにとって重要です — 手入力のURLには本物のストア商品idが背後にないため、インポートするまで割引のトグルは非表示のままです。

ステップ3 — 商品ごとの割引をオンにする

ブロックに本物のインポート済み商品があると、インスペクターに商品ごとの割引のトグルが表示されます。オンにして、次を設定します:

  • 割引タイプ — パーセントまたは固定額の割引。
  • 割引額 — 実際の数値。
  • 有効期限(送信からの日数) — 発行されたコードが有効な期間。

これは、そのプロジェクトが持つかもしれないプロジェクトレベルの割引オファーとは独立しています — 1回の送信が両方を持つことも、どちらも持たないことも、片方だけを持つこともできます。

ステップ4 — 送信する、MailInAppはこの商品だけに限定したコードを発行する

各受信者のメールがレンダリングされる直前に、MailInAppはメールアドレスでそのShopify顧客レコードを検索し、Shopify Admin GraphQL API経由で割引コードを作成します:使い切り(usageLimit: 1)、その1人の顧客に限定、そしてストア全体ではなくこの商品だけに限定されます。ブロック自身の今すぐ購入リンクは自動的に書き換えられてそれを運びます — ブロックidは見出しに手入力できるものではないため、マージタグで手作業でテンプレート化する必要は何もありません。

ステップ5 — 買い物客は、コードがすでに適用された状態で、まさにその商品のページに戻る

引き換えは自分のストア自身の/discount/<code>URLを通じて行われ、コードがすでに適用された状態でこの商品自身のページへ直接リダイレクトします — ストアフロントのホームページでも、一般的なカートでもありません。これは意図的なものです:メールは特定の1つの商品を見せたのですから、割引付きのリンクは、買い物客に再び探させるのではなく、その同じ商品に着地させるべきです。

帰属付けは他のどのストアクリックとも同じように機能する

引き換えリンクには、プロジェクトの他の送信先リンクと同じutm_campaignがそのまま含まれます。そのコードで行われた注文は、他のどんなShopifyのクリックスルー注文とも同じ方法でこの送信に帰属します — その帰属付けが実際に最初から最後までどう機能するかは、Shopifyの注文・チェックアウト・収益を追跡するを参照してください。

受信者についてコードの発行が失敗した場合

そのメールはそれでも送信されます。メールアドレスに一致するShopify顧客レコードがない場合、あるいはライブAPI呼び出しが一時的に不調な場合、その受信者の今すぐ購入は、単にブロックのプレーンな、割引なしの商品リンクにフォールバックします — 壊れたリンクになることも、送信がブロックされることも決してありません。

これはプロジェクトレベルの割引オファーとどう違うか

送信ページの割引オファーは、多くの場合購入履歴セグメントと組み合わせて、マッチしたオーディエンス全体を、ドロップダウンから選んだ1つのコードスコープ(ストア全体、あるいは1つの商品)でターゲットにします。この機能は、それらすべてをスキップします:ブロック自身が持つ商品にスコープされ、オーディエンスフィルターは不要で、そのメールを受け取る誰に対しても発行されます。それぞれが独自のクールダウンマーカーも保持するため、ある商品への商品ごとの割引が、同じ連絡先に対する別の商品の割引やプロジェクトレベルのオファーをブロックすることはありません。このパターンのオーディエンスターゲット版については、購入履歴セグメント&割引コードで過去の購入者を取り戻すを参照してください。

はじめに

Shopifyを接続し、実際の商品を1つ商品ブロックにインポートし、控えめな商品ごとの割引をオンにして、まずは小さなリストに送信して、引き換えリンクが期待どおりの場所に着地することを確認してください。完全なリファレンスは商品ブロック、Shopify連携、ストアネイティブな割引コードの発行を参照してください。

典型的な作成・送信の流れ

  1. 1

    Shopifyを接続する

    設定 → 連携から、まだ接続していなければ自分のShopifyストアを接続します。MailInAppは、読み取りスコープに加えて`write_discounts`もリクエストします。これは、まさにこのユースケースが依存するコードを発行するためです。

  2. 2

    商品を商品ブロックにインポートする

    スタジオで商品ブロックを追加し、ストアからインポート検索を使って、同期済みのShopifyカタログから本物の商品を選びます。インポートすると、チェックアウトが外部ストアのチェックアウトへリンクに設定され、外部商品ページURLが自動的に入力されます — どちらも次のステップが表示されるために必要です。

  3. 3

    商品ごとの割引をオンにする

    ブロックが本物のインポート済み商品を持つと、インスペクターに商品ごとの割引のトグルが表示されます。オンにして、パーセントまたは固定額の割引と、発行されたコードが有効な日数を設定します — このプロジェクトが持つかもしれないプロジェクトレベルの割引オファーとは独立しています。スタジオのキャンバスは即座に再描画され、受信者が実際に目にするのと同じ割引バッジと取り消し線付きの価格が表示されるため、ライブビューを開かなくても確認できます。

  4. 4

    送信する — MailInAppはこの商品だけに限定したコードを発行する

    各受信者のメールがレンダリングされる直前に、MailInAppはメールアドレスでそのShopify顧客レコードを検索し、Shopify Admin GraphQL API経由で、その1人の顧客とこの商品だけに限定した使い切り割引コードを作成します — ストア全体ではありません。

  5. 5

    今すぐ購入にはすでにコードが含まれている

    ブロックの今すぐ購入リンクは、自分のストアの`/discount/<code>`という引き換えURLへ書き換えられ、買い物客をコードがすでに適用された状態でこの商品自身のページへ直接リダイレクトします — ストアフロントのホームページや一般的なカートではありません。

  6. 6

    帰属付けは他のどのストアクリックとも同じように機能する

    引き換えリンクには、プロジェクトの他の送信先リンクと同じ`utm_campaign`がそのまま含まれるため、そのコードで行われた注文は、他のどんなShopifyのクリックスルーとも同じ方法でこの送信に帰属します。

よくある質問

これはプロジェクトレベルの割引オファーとどう違いますか?

送信ページの割引オファーは、多くの場合購入履歴セグメントと組み合わせて、マッチしたオーディエンス全体を、全員に対して1つのコードスコープ(ストア全体、あるいはドロップダウンから選んだ1つの商品)でターゲットにします。商品ブロック自身の商品ごとの割引は、そのブロックのインポート済み商品1つだけにスコープされ、オーディエンスフィルターも送信ページの設定もまったく必要ありません — そのメールを受け取る誰に対しても自動的に発行されます。プロジェクトは、どちらか一方、両方、あるいはどちらも使わないことができ、それぞれ独立して別々のクールダウンで動作します。

これを機能させるために購入履歴セグメントが必要ですか?

いいえ。購入履歴のセグメンテーションは、こちらではなくプロジェクトレベルの割引オファーと組み合わされます。商品ブロックの商品ごとの割引は、その商品(あるいは何か)を以前に購入したことがあるかどうかにかかわらず、そのブロックが入ったメールのすべての受信者に対して発行されます。

受信者にまだShopifyの顧客レコードがない場合はどうなりますか?

発行処理は、メールアドレスで受信者をShopifyの顧客と照合します。一致するものがなければ、その受信者のコードは発行に失敗し、それでもメールは送信されます — その場合、今すぐ購入が本来使うはずのプレーンな、割引なしの商品リンクが使われ、壊れたリンクになることはありません。

買い物客はチェックアウトへ進む前から割引を見ることができますか?

スタジオでは、自動的に見えます — トグルをオンにした瞬間に、キャンバスに同じバッジと取り消し線付きの価格が表示されます。実際のShopifyストアフロントでは、これは任意の追加ステップです:無料のMailInApp discount badgeアプリブロックを、テーマのテーマエディターから商品ページテンプレートに一度だけインストールしてください(Online Store 2.0テーマのみ)。メールからクリックしてきた買い物客は、チェックアウトの前に、実際の商品ページ自体で同じバッジを目にします — あくまでプレビューであり、商品自身の価格から計算されたものです。実際の割引は、いずれにせよ使い切りコードを通じてチェックアウト時に適用されます。

なぜ割引のトグルが商品ブロックに表示されないのですか?

ブロックがストアからインポート経由で実際の商品を保持している場合にのみ表示されます — 発行には、コードをそれに限定するためのストア自身の数値の商品idが必要で、手入力の外部商品ページURLにはそれがありません。また、MailInAppチェックアウトモードでは完全に非表示になります。そのモードは自分のShopifyストアにまったく触れないためです。

同じメール内で複数の商品に対してこれを実行できますか?

できます — 各商品ブロックは、そのブロックに紐付けて、独自のコードとクールダウンを独立して発行・追跡するため、1つの商品への割引が、別の商品への割引やプロジェクトレベルの割引オファーをブロックしたり干渉したりすることはありません。

受信者がメールを転送しても、クーポンのURLは機能しますか?

コード自体は使い切りのままで、元の受信者本人のShopify顧客レコードに限定されているため、転送されたメールが見知らぬ人に使用可能な割引を渡すことはありません — チェックアウトで実際に引き換えられるのは、その元の買い物客だけです。

スタジオでこれを作ってみましょう

無料プランから始められます — すべてのインタラクティブブロックと完全なフォールバックエンジンが、どのプランにも含まれています。