
「クーポンコードをユーザー間で共有されても困らないような形で、特定のユーザーにしか使えない期間限定クーポンを発行したい」という声を伺い、この記事を書いています。
Shopifyのディスカウント機能には、ユーザーごとに有効期限を定める直接的な機能はありませんが、ディスカウントの対象顧客を顧客セグメントで指定して絞り込むことはできるため、特定の顧客しか利用できないような制限をつけることは可能です。
本記事では、その具体的な方法を「初回購入の2週間後に、次回の注文が10%OFFになるディスカウントクーポンを20日の期間限定で発行し、LINEでクーポンを配信する」という例で解説します。誕生日クーポン施策への応用方法なども解説しますので、ぜひ最後までご一読ください!
前提条件・想定施策
Shopifyの「顧客セグメンテーション・お客様セグメント」を利用してディスカウント対象者を制御する方法を紹介します。従って、対象顧客を実際に絞り込めるかどうかは顧客セグメントの条件次第です。
本記事では、「初回購入の2週間後に、次回の注文が10%OFFになるディスカウントクーポンを20日の期間限定で発行し、LINEで配信する」という想定でご紹介します。
顧客セグメンテーション・お客様セグメントについて詳しくは下記記事をご参照ください。
設定手順
手順①:顧客メタフィールドを定義する
ディスカウントクーポンの発行日を日付データとして格納するメタフィールドを定義します。
から新しいメタフィールドの定義を追加します。

メタフィールドの名前・ネームスペースとキー・説明は任意で設定してください。上図では”ディスカウントクーポン発行日”として、 で定義しています。
メタフィールドのデータ形式は日付(Date)としてYYYY-MM-DDの形で保存されるように設定してください。
設定が完了したら、右下の「保存」ボタンをクリックして定義を追加します。
手順②:お客様セグメントを作成する
ディスカウントクーポンの対象顧客リストとして指定するお客様セグメントを、顧客セグメンテーション機能で作成します。
にて
から、お客様セグメントの条件を指定します。

の部分は手順①で定義した「ネームスペースとキー」を入力してください。
metafields.discount.coupon_issue_date BETWEEN -20d AND today
今回は、ディスカウントクーポンの発行から20日間を有効期間とするため、手順①で定義したメタフィールドの日付(metafields.discount.coupon_issue_date)が、20日前から今日の日付(BETWEEN -20d AND today)である場合に対象となるよう指定します。
本施策の一番のミソはこのお客様セグメント機能です。条件として絶対的な日付ではなく相対的な日付(今日から何日前など)を設定できるため、動的なリストの作成・管理が可能となっています。
お客様セグメントを新規で作成したタイミングでは、メタフィールドに日付データが格納されているユーザーはいないはずですので、絞り込み結果は0人となります(今後動的に追加されていきます)。
この状態で「セグメントを保存する」から任意のセグメント名を入力し、右下の「保存」ボタンをクリックします。

手順③:ディスカウントを設定する
にて本施策用のディスカウントを作成します。
ディスカウント方法は「クーポンコード」とし、任意の割引率や要件を指定してください。

お客様の資格設定で「特定のお客様セグメント」を指定し、手順②で作成したお客様セグメントを選択してください。
今回の例では、顧客セグメントの条件で利用資格を制限しますので、仮にお客様同士でクーポンコードを共有されてしまったとしても、条件に合致したお客様しかクーポンを使えないよう制限されます。したがって、クーポンコードに指定する文字列は など覚えやすい文字列で問題ありません。
手順④:Shopify Flowでワークフローを作成する
続いてShopify FlowでLINE配信のワークフローを作成します。LINE配信アクションには、Shopifyアプリ「CRM PLUS on LINE」が提供しているアクションを利用しています。
「初回購入の2週間後に、次回の注文が10%OFFになるディスカウントクーポンを20日の期間限定で発行し、LINEで配信する」という想定でワークフローを作成した例が下記図です。

ワークフローの大まかな流れを解説していきます。
注文作成時( Order created )にユーザーの初回注文かを確認( Customer number of orders が以下と一致 1 )
↓
条件に一致する場合、2週間待機( Wait for 2 Weeks )
↓
まだ注文数が1か確認( Customer number of orders が以下と一致 1 )
↓
ディスカウントクーポンの利用資格を発行( Update customer metafield )
↓
ディスカウントクーポンをLINEで配信( LINEでFlexメッセージを送る )
この中で最も重要なのは、Update customer metafieldブロックです。

手順①で作成したメタフィールドに、ディスカウントクーポン発行日の日付を格納することで、手順②のお客様セグメントに含まれる条件となり、手順③で発行したディスカウントクーポンの利用資格が与えられます。
したがって、Metafield namespaceとKeyには、手順①で作成したメタフィールドを、Valueには本日の日付を返すLiquidである を、Typeには日付データを示す”Date”を指定します。
これらの手順により、ユーザーごとに利用期限が異なったディスカウントクーポンを発行して案内することが可能です。この施策は、ユーザーの情報で利用資格を制御しているため、コードをユーザー間で共有されても問題ないことや、一度設定するとその後は自動的に走り続けるなどのメリットがあります。
応用方法:誕生日クーポン施策に利用する
ユーザーの誕生日をメタフィールドに取得しているサイトの場合は、誕生日クーポン施策として本記事の手法を応用可能です。
本記事手順②の「お客様セグメントを作成」にて、条件式を下記のように指定することで、メタフィールドに格納されている日付のうち、月日が前後15日に含まれるユーザーを抽出できます。
anniversary(date: 'metafields.custom.birthday') BETWEEN -15d AND +15d
年月日ではなく月日のみを条件として見るために anniversary(date:) を使用するのを忘れないようにしてください。
anniversary(date:) について、詳しくは下記をご参照ください。
おわりに
Shopifyアプリ「CRM PLUS on LINE」では、LINE配信に関連するものを中心に、Shopify Flowでのワークフロー作成など幅広くサポートしています。
「こういう施策を実現したい!」という要望がありましたら、どうぞお気軽にお声がけください!