Adobe Commerce 製品のサブスクリプションを有効にする
Stripe Connector for Adobe Commerce を設定して Adobe Commerce 製品のサブスクリプションを有効にします。
管理パネルにある各製品の構成ページを使用して、Adobe Commerce の仮想商品またはシンプル商品をサブスクリプションの商品に変更できます。顧客がサブスクリプションの商品を購入すると、このモジュールが Stripe Billing を使用してその注文に対する継続支払いを登録します。Stripe では、このサブスクリプションを管理し、Adobe Commerce でのサブスクリプション設定に基づいて、支払いの回収を試みます。支払いがエラーになった場合は、Stripe から顧客にお知らせして、請求情報の更新をお願いすることもできます。これは、サブスクリプションおよびメールの設定で変更できます。
支払いが成功すると、ウェブサイトは Webhook 通知を Stripe から受け取ります。モジュールは更新ごとに、Adobe Commerce の管理パネルで新しい注文を自動的に作成します。サブスクリプションの初期手数料は継続的な注文には含まれず、モジュールは個々の継続的なサブスクリプション商品の配送料と税金を再計算します。
サブスクリプションを有効化および設定する方法
どの Adobe Commerce 商品でも、商品設定ページからサブスクリプションを有効にできます。商品を作成または編集する際には、Stripe Subscriptions (Stripe のサブスクリプション) セクションが表示されるまで下にスクロールしてください。
サブスクリプションの設定オプション
ここには、以下のオプションがあります。
- Subscription Enabled (サブスクリプションの有効化): これをオンにすると、この商品をサブスクリプションに設定し、顧客がこの商品を購入する際に自動的にサブスクリプションプランを作成します。Stripe アカウントでサブスクリプションプランを作成する必要はありません。顧客が購入すると、この商品に対するサブスクリプションプランが自動的に作成されます。
- Frequency (頻度): Days (日)、Weeks (週)、Months (月) または Years (年) を選択します。顧客には、ここで選択した頻度が表示されます。1 Month (1 カ月) ではなく30 Days (30 日間) を使用するには、これを Days (日) に設定します。Days (日) を選択すると、Stripe アカウントのサブスクリプションサイクルにこれが反映されます。
- Repeat Every (以下の期間ごとに繰り返し): 指定した頻度に基づいて請求サイクルの長さを設定します。たとえば、値が 30 で頻度が Days (日) の場合、30 日ごとに請求されます。
- Trial Days (トライアル日数): サブスクリプションの初回請求前のトライアル日数 (無料の日数) を入力します。
- Initial Fee (初期手数料): サブスクリプション価格に加えて請求する金額を入力します。
- Start on specific date (特定の日に開始): カスタムの開始日の指定オプションを表示できるようにします。顧客がサブスクリプションを購入すると、すぐに開始するのではなく、指定した日付に開始します。
- Pick start date (開始日を選択): サブスクリプションの開始日を指定します。形式は特定の日付ですが、開始日が過ぎると、開始日は該当する次回の請求サイクルに設定されます。たとえば、開始日が
01/01/2024
の場合、月次サブスクリプションは常に毎月 1 日に開始しますが、6 カ月単位のサブスクリプションは常に 1 月 1 日または 7 月 1 日に開始します。 - First payment (初回の支払い): 開始日を有効にしたときに、初回の支払いを回収する方法を指定します。以下の方法があります。
- 指定した開始日に回収します。
- 注文が行われた後の最初の支払いを回収し、それ以降のすべての支払いは、指定した開始日に回収します。このオプションは、注文を受けたら最初の商品をすぐに配送し、その後の配送は請求サイクルの開始日に合わせて行われる、物理的な商品のサブスクリプションに役立ちます。
- Prorate first payment (比例配分による初回の支払い): 初回の支払いを即時に行うよう設定すると、このフィールドが表示されます。設定を有効にすると、注文日からサブスクリプションの開始日までの日数が考慮され、通常のサブスクリプションが開始されるまでの短縮サイクルが初回の支払いに反映されます。
- 顧客はサブスクリプションを変更可能: 顧客が顧客のアカウントセクションからサブスクリプションを編集できるようにします。各注文アイテムの数量、カスタマイズ可能なオプション、設定可能なオプション、またはバンドルオプションを変更できます。これらは配送先住所、配送方法、支払い方法に対する追加の編集オプションであり、顧客はいつでも変更できます。
- 比例配分によるアップグレード: 顧客が請求サイクルと請求サイクルの間でサブスクリプションをアップグレードする場合、価格の差異を考慮して手数料を適用できます。新しいサブスクリプションの価格を次回の請求サイクルまで繰り延べる場合は、無効にします。
- 比例配分によるダウングレード: 顧客がサイクルの途中でサブスクリプションをダウングレードした場合、顧客のアカウント残高にクレジットでき、そのクレジットを今後のサブスクリプションの支払いに適用できます。次回の請求サイクルの価格が下がる場合は、無効にします。
設定可能なサブスクリプション
Magento のコンフィグ商品を使用して、1 つの商品に対して複数のオプションを顧客に提示できます。顧客は、ドロップダウン、ビジュアルスワッチ、またはテキストスワッチを使用して希望するオプションを選択できます。各オプションには、シンプル商品または仮想商品を使用でき、その商品自体をサブスクリプションにすることもできます。
設定可能なサブスクリプション
Stores (ストア) > 属性 > 商品に移動します。
属性を作成し、希望する入力タイプとラベルを選択します。
属性のスコープはグローバルに設定してください。
Stores (ストア) > 属性 > **Attribute Set (属性セット)**に移動し、この属性を属性セットに追加します。
属性セットを 1 つの商品に追加します。
以上で、ここで更新した 1 つの商品を使用して、コンフィグ商品を作成できるようになります。
バンドルにするサブスクリプション
Adobe Commerce を使用することで、複数の商品を一緒に販売する場合に製品をまとめてバンドルにできます。これにより、顧客は決済フローの開始前に個々の商品をカートから削除できなくなります。
バンドル製品に 1 つ以上のサブスクリプションが含まれている場合、Stripe はバンドル全体の価格をサブスクリプション価格として扱います。継続支払いの場合、Stripe はバンドルアイテム全体の金額とバンドルの個別サブスクリプションアイテムの金額の両方を回収します。
支払いの回収後に、Adobe Commerce は、バンドルアイテム全体 (元の注文のサブスクリプションアイテムと通常のアイテム) が含まれた継続注文を自動的に作成します。次に、サブスクリプションおよびバンドル内の他の商品の在庫が処理されます。これは、サブスクリプションと通常の商品が別々に含まれているカートの場合とは異なります。そうしたカートの場合は、継続注文にはサブスクリプション商品のみが含まれます。
サブスクリプション商品を通常の商品と組み合わせ、次のサイクルからサブスクリプション製品のみを請求する場合は、グループ商品を作成できます。あるいは、処理する在庫がない場合にサブスクリプションの初期手数料を設定することもできます。
サブスクリプションプランの切り替え
顧客は、アカウントから以下を変更できます。
- 設定可能なサブスクリプション、バンドルにするサブスクリプション、シンプルなサブスクリプション、仮想サブスクリプション
- カスタマイズ可能または設定可能なオプション
- 数量
- バンドルオプション
- 配送先住所または配送方法
- 支払い方法
顧客は、同じコンフィグ商品に属する複数のプランを切り替えることもできます。
顧客がアカウントにログインし、**My subscriptions (サブスクリプション)**に移動します。
変更するサブスクリプションを選択し、Change subscription (サブスクリプションの変更) をクリックします。
顧客はサブスクリプション商品ページにリダイレクトされ、そこでプラン、数量、その他の商品オプションを変更できます。
カートの更新をクリックすると、自動的に決済ページにリダイレクトされ、そこで更新前と更新後のサブスクリプション価格を確認できます。
顧客がサブスクリプションを更新をクリックすると、サブスクリプションの価格またはプランが直ちに更新されます。その後、顧客は自分のアカウントの My subscriptions (サブスクリプション) にリダイレクトされます。
設定可能なサブスクリプション
サブスクリプションの有効と無効の切り替えは、それぞれのサブスクリプション商品に対して個別に行うことも、Stores (ストア) > 設定 > 売上 > 支払い方法 > Stripe > サブスクリプションの下のグローバル設定から行うこともできます。
設定可能なサブスクリプション
仮想サブスクリプションの比例配分 (日割り / 秒割り計算)
このモジュールは、仮想サブスクリプションの比例配分に対応しています。アップグレードとダウングレードに対して個別に比例配分を有効にできます。
設定可能なサブスクリプション
モジュールは、現在のプランと新しいプランの 30 日間の料金を比較して、アップグレードかダウングレードかを判断します。新しいプランの料金の方が低い場合は、ダウングレードとみなされます。料金が同じか高い場合は、アップグレードとみなされます。
- ダウングレードの場合、返金を作成し、元の注文のクレジットメモとして記録します。
- 追加の支払いを必要とするアップグレードの場合、残りの請求期間に対する比例配分額の新しい注文を即座に作成します。
- 同じ料金のアップグレードの場合、支払いも返金もありません。元の注文にコメントを追加して、顧客がサブスクリプションを変更したことを示します。
上記いずれの場合にも、モジュールは、新しいプランに更新する注文を次回の請求サイクル時に作成します。
コマンドラインから顧客のサブスクリプションをまとめて変更する
特定の商品のサブスクリプション料金を増減したり、または注文の配送料、商品名、税率を変更したりすることができます。これを実行するには、Stripe モジュール内で CLI コマンドを使用して古いプランから新しいプランに既存のサブスクリプションを移行する必要があります。
php bin/magento stripe:subscriptions:migrate-subscription-price <original_product_id> <new_product_id> [<starting_order_id> [<ending_order_id>]]
これにより、決済中に顧客が注文したときと同様に new_
の新しい注文が作成されます。請求と配送の詳細は元の注文と同一であり、サブスクリプションと同じ支払い方法が使用されます。
モジュールでは、新しい課税規則、配送方法、価格変更などに基づいて注文合計が再計算されます。元の注文に割引が適用されていた場合、新しい注文にも適用されます。初期手数料は合計に含まれていません。
注文の作成に成功すると、original_
を含む元の注文はキャンセルされます。モジュールは、元の注文にコメントを追加して、新しい注文への移行、および関連するサブスクリプションの Stripe でのキャンセルについて記述します。また、顧客にもサブスクリプションの請求情報が変更されたことを伝える新しい注文メールが送信されます。顧客はこのメールで新しい合計額を確認できます。
モジュールで何らかの理由によって注文ができなかった場合は、組み込みのロールバックシステムによって新しい注文の作成がキャンセルされ、元の注文がそのまま残されます。
original_
を new_
として使用することが可能で、その場合は、モジュールが注文の合計額のみを再計算します。シンプルなサブスクリプション商品 (単一の SKU を持つ物品) から仮想的なサブスクリプション商品に移行することはできますが、その逆はできません。これは、物品には配送先住所が必要ですが、仮想的な商品には必要ないためです。
注文 ID パラメーターはオプションです。指定されていない場合、すべてのストアビューとすべての Stripe 実行環境からの Web サイトの全注文がスクリプトによって処理されます。複数の Stripe アカウントを設定している場合、スクリプトはすべての Stripe アカウントからサブスクリプションを移行します。
Stripe サブスクリプションを別のプラットフォームから Adobe Commerce に移行する
別のプラットフォームからサブスクリプションを移行するには、次のタスクを実行する必要があります。
Adobe Commerce の「stripe_customers」データベーステーブルで、Adobe Commerce の顧客 ID と Stripe の顧客 ID の間のマッピングを作成します。これは、データベース内にある以下の SQL ステートメントを使用して実行できます。
INSERT INTO stripe_customers(customer_id, stripe_id, customer_email) VALUES ('2', 'cus_xxxxxxxxxx', 'janedoe@example.com');
各商品の設定ページにある Subscriptions by Stripe (Stripe によるサブスクリプション) タブから、過去の注文におけるサブスクリプション商品のすべてを作成して設定します。
サブスクリプション設定フォーム
古いプラットフォームから Adobe Commerce に注文を移行します。Adobe Commerce 管理エリアで注文を手動で作成する場合は、小切手 / 郵便為替の支払い方法を使用して、本番環境での支払いが回収されないようにすることができます。注文の移行が完了したら、次の SQL コマンドを使用して、この支払い方法を Stripe に置き換えることができます。
UPDATE sales_order_payment SET method='stripe_payments' WHERE method='checkmo';
Adobe Commerce で注文と商品を正常に作成したら、Stripe アカウントの既存のサブスクリプションを更新して、次のメタデータを設定します。
サブスクリプションメタデータリスト
サブスクリプションの更新に基づく継続的な注文の作成をテストします。
- Stripe ダッシュボードの開発者 > Webhook に少なくとも 1 つは Webhook が設定されていることを確認します。
- Stripe Events (イベント) セクションでテストするイベントを確認します。イベントタイプは
invoice.
である必要があり、請求書はサブスクリプションに属している必要があります。payment_ succeeded - Magento のルートディレクトリーから、
bin/magento stripe:webhooks:process-event <event_
コマンドを使用してイベントをトリガーします。id> - コンソールでエラーが発生しておらず、モジュールが Adobe Commerce で継続的なサブスクリプション注文を作成したことを確認します。