# Stripe Billingを使用して Adobe Commerce コマースのサブスクリプションを有効にする Stripe Billing を使用して、Adobe Commerce 用 Stripe プラグインを設定して Adobe Commerce 製品のサブスクリプションを有効にします。 管理パネルにある各製品の構成ページを使用して、Adobe Commerce の[仮想商品](https://experienceleague.adobe.com/docs/commerce-admin/catalog/products/types/product-create-virtual.html?lang=en)または[シンプル商品](https://experienceleague.adobe.com/docs/commerce-admin/catalog/products/types/product-create-simple.html?lang=en)をサブスクリプションの商品に変更できます。顧客がサブスクリプションの商品を購入すると、このモジュールが [Stripe Billing](https://stripe.com/billing) を使用してその注文に対する継続支払いを登録します。Stripe では、このサブスクリプションを管理し、Adobe Commerce でのサブスクリプション設定に基づいて、支払いの回収を試みます。支払いがエラーになった場合は、Stripe から顧客にお知らせして、請求情報の更新をお願いすることもできます。これは、[サブスクリプションとメール通知の設定](https://dashboard.stripe.com/settings/billing/automatic)で変更できます。 支払いが成功すると、ウェブサイトは [Webhook](https://docs.stripe.com/use-stripe-apps/adobe-commerce/payments/configuration.md#webhooks) 通知を Stripe から受け取ります。モジュールは更新ごとに、Adobe Commerce の管理パネルで新しい注文を自動的に作成します。サブスクリプションの初期手数料は継続的な注文には含まれず、モジュールは個々の継続的なサブスクリプション商品の配送料と税金を再計算します。 ## サブスクリプションを有効化および設定する方法 どの Adobe Commerce 商品でも、商品設定ページから*サブスクリプション* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis)を有効にできます。商品を作成または編集する際には、**Stripe Subscriptions (Stripe のサブスクリプション)** セクションが表示されるまで下にスクロールしてください。 ![](https://b.stripecdn.com/docs-statics-srv/assets/configure-subscriptions.b12826232ddbe6ab5ac8e6419f8252ee.png) サブスクリプションの設定オプション ここには、以下のオプションがあります。 - **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 (初回の支払い):** 開始日を有効にしたときに、初回の支払いを回収する方法を指定します。以下の方法があります。 - 指定した開始日に回収します。 - 注文が行われた後の最初の支払いを回収し、それ以降のすべての支払いは、指定した開始日に回収します。このオプションは、注文を受けたら最初の商品をすぐに配送し、その後の配送は請求サイクルの開始日に合わせて行われる、物理的な商品のサブスクリプションに役立ちます。 - **顧客はサブスクリプションを変更可能:** 顧客が顧客のアカウントセクションからサブスクリプションを編集できるようにします。各注文アイテムの数量、カスタマイズ可能なオプション、設定可能なオプション、またはバンドルオプションを変更できます。これらは配送先住所、配送方法、支払い方法に対する追加の編集オプションであり、顧客はいつでも変更できます。 ## 設定可能なサブスクリプション Magento の[コンフィグ商品](https://experienceleague.adobe.com/docs/commerce-admin/catalog/products/types/product-create-configurable.html?lang=en)を使用して、1 つの商品に対して複数のオプションを顧客に提示できます。顧客は、ドロップダウン、ビジュアルスワッチ、またはテキストスワッチを使用して希望するオプションを選択できます。各オプションには、シンプル商品または仮想商品を使用でき、その商品自体をサブスクリプションにすることもできます。 ![](https://b.stripecdn.com/docs-statics-srv/assets/subscription-configurable.bc087bed26a306087b175e3681d2d1f0.png) 設定可能なサブスクリプション 1. **Stores (ストア)** > **属性** > **商品**に移動します。 1. [属性](https://experienceleague.adobe.com/docs/commerce-admin/catalog/products/types/product-create-configurable.html?lang=en#step-1%3A-choose-the-attributes)を作成し、希望する入力タイプとラベルを選択します。 1. 属性のスコープは**グローバル**に設定してください。 1. **Stores (ストア)** > **属性** > **Attribute Set (属性セット)**に移動し、この属性を属性セットに追加します。 1. 属性セットを 1 つの商品に追加します。 1. 以上で、ここで更新した 1 つの商品を使用して、コンフィグ商品を作成できるようになります。 ## バンドルにするサブスクリプション Adobe Commerce を使用することで、複数の商品を一緒に販売する場合に[製品をまとめてバンドルに](https://experienceleague.adobe.com/docs/commerce-admin/catalog/products/types/product-create-bundle.html?lang=en)できます。これにより、顧客は決済フローの開始前に個々の商品をカートから削除できなくなります。 バンドル製品に 1 つ以上のサブスクリプションが含まれている場合、Stripe はバンドル全体の価格をサブスクリプション価格として扱います。継続支払いの場合、Stripe はバンドルアイテム全体の金額とバンドルの個別サブスクリプションアイテムの金額の両方を回収します。 支払いの回収後に、Adobe Commerce は、バンドルアイテム全体 (元の注文のサブスクリプションアイテムと通常のアイテム) が含まれた継続注文を自動的に作成します。次に、サブスクリプションおよびバンドル内の他の商品の在庫が処理されます。これは、サブスクリプションと通常の商品が別々に含まれているカートの場合とは異なります。そうしたカートの場合は、継続注文にはサブスクリプション商品のみが含まれます。 サブスクリプション商品を通常の商品と組み合わせ、次のサイクルからサブスクリプション製品のみを請求する場合は、[グループ商品](https://experienceleague.adobe.com/docs/commerce-admin/catalog/products/types/product-create-grouped.html?lang=en)を作成できます。あるいは、処理する在庫がない場合にサブスクリプションの初期手数料を設定することもできます。 ## サブスクリプションプランの切り替え 顧客は、アカウントから以下を変更できます。 - 設定可能なサブスクリプション、バンドルにするサブスクリプション、シンプルなサブスクリプション、仮想サブスクリプション - カスタマイズ可能または設定可能なオプション - 数量 - バンドルオプション - 配送先住所または配送方法 - 決済手段 顧客は、同じ[コンフィグ商品](https://docs.stripe.com/use-stripe-apps/adobe-commerce/payments/subscriptions.md#configurable-subscriptions)に属する複数のプランを切り替えることもできます。 1. 顧客がアカウントにログインし、**My subscriptions (サブスクリプション)**に移動します。 1. 変更するサブスクリプションを選択し、**Change subscription (サブスクリプションの変更)** をクリックします。 1. 顧客はサブスクリプション商品ページにリダイレクトされ、そこでプラン、数量、その他の商品オプションを変更できます。 1. **カートの更新**をクリックすると、自動的に決済ページにリダイレクトされ、そこで更新前と更新後のサブスクリプション価格を確認できます。 1. 顧客が**サブスクリプションを更新**をクリックすると、サブスクリプションの価格またはプランが直ちに更新されます。その後、顧客は自分のアカウントの **My subscriptions (サブスクリプション)** にリダイレクトされます。 ![](https://b.stripecdn.com/docs-statics-srv/assets/subscription-customer-update.3aac87ba9a5df4ecdad3277ccede9988.png) 設定可能なサブスクリプション サブスクリプションの有効と無効の切り替えは、それぞれのサブスクリプション商品に対して個別に行うことも、**Stores (ストア)** > **設定** > **売上** > **支払い方法** > **Stripe** > **サブスクリプション**の下のグローバル設定から行うこともできます。 ![](https://b.stripecdn.com/docs-statics-srv/assets/subscription-enable-update-stripe-billing.b63b6a19302660c1daeaac8367977287.png) 設定可能なサブスクリプション ## コマンドラインから顧客のサブスクリプションをまとめて変更する 特定の商品のサブスクリプション料金を増減したり、または注文の配送料、商品名、税率を変更したりすることができます。これを実行するには、Stripe モジュール内で CLI コマンドを使用して古いプランから新しいプランに既存のサブスクリプションを移行する必要があります。 ```bash php bin/magento stripe:subscriptions:migrate-subscription-price [ []] ``` これにより、決済中に顧客が注文したときと同様に `new_product_id` の新しい注文が作成されます。請求と配送の詳細は元の注文と同一であり、サブスクリプションと同じ支払い方法が使用されます。 モジュールでは、新しい課税規則、配送方法、価格変更などに基づいて注文合計が再計算されます。元の注文に割引が適用されていた場合、新しい注文にも適用されます。初期手数料は合計に含まれていません。 注文の作成に成功すると、`original_product_id` を含む元の注文はキャンセルされます。モジュールは、元の注文にコメントを追加して、新しい注文への移行、および関連するサブスクリプションの Stripe でのキャンセルについて記述します。また、顧客にもサブスクリプションの請求情報が変更されたことを伝える新しい注文メールが送信されます。顧客はこのメールで新しい合計額を確認できます。 モジュールで何らかの理由によって注文ができなかった場合は、組み込みのロールバックシステムによって新しい注文の作成がキャンセルされ、元の注文がそのまま残されます。 `original_product_id` を `new_product_id` として使用することが可能で、その場合は、モジュールが注文の合計額のみを再計算します。シンプルなサブスクリプション商品 (単一の *SKU* (SKUs (Stock Keeping Units) represent a specific Product variation, taking into account any combination of attributes and cost (for instance, size, color, currency, cost)) を持つ物品) から仮想的なサブスクリプション商品に移行することはできますが、その逆はできません。これは、物品には配送先住所が必要ですが、仮想的な商品には必要ないためです。 注文 ID パラメーターはオプションです。指定されていない場合、すべてのストアビューとすべての Stripe 実行環境からの Web サイトの全注文がスクリプトによって処理されます。複数の Stripe アカウントを設定している場合、スクリプトはすべての Stripe アカウントからサブスクリプションを移行します。 ## Stripe サブスクリプションを別のプラットフォームから Adobe Commerce に移行する 別のプラットフォームからサブスクリプションを移行するには、次のタスクを実行する必要があります。 1. Adobe Commerce の「stripe_customers」データベーステーブルで、Adobe Commerce の顧客 ID と Stripe の顧客 ID の間のマッピングを作成します。これは、データベース内にある以下の SQL ステートメントを使用して実行できます。 ```sql INSERT INTO stripe_customers(customer_id, stripe_id, customer_email) VALUES ('2', 'cus_xxxxxxxxxx', 'janedoe@example.com'); ``` 1. 各商品の設定ページにある **Subscriptions by Stripe (Stripe によるサブスクリプション)** タブから、過去の注文におけるサブスクリプション商品のすべてを作成して設定します。 ![](https://b.stripecdn.com/docs-statics-srv/assets/subscription-fields.bd3c35b64f2140b5a1e81a1ea87fffcd.png) サブスクリプション設定フォーム 1. 古いプラットフォームから Adobe Commerce に注文を移行します。Adobe Commerce 管理エリアで注文を手動で作成する場合は、**小切手 / 郵便為替**の支払い方法を使用して、本番環境での支払いが回収されないようにすることができます。注文の移行が完了したら、次の SQL コマンドを使用して、この支払い方法を Stripe に置き換えることができます。 ```sql UPDATE sales_order_payment SET method='stripe_payments' WHERE method='checkmo'; ``` 1. Adobe Commerce で注文と商品を正常に作成したら、Stripe アカウントの既存のサブスクリプションを更新して、次のメタデータを設定します。 ![](https://b.stripecdn.com/docs-statics-srv/assets/subscription-metadata.9626076f0ef6b57017a28ca259569d0e.png) サブスクリプションメタデータリスト > サブスクリプションの[作成方法](https://docs.stripe.com/api/subscriptions/create.md)や[更新方法](https://docs.stripe.com/api/subscriptions/update.md)もご覧ください。 1. サブスクリプションの更新に基づく継続的な注文の作成をテストします。 - Stripe ダッシュボードの**開発者** > **Webhook** に少なくとも 1 つは *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) が設定されていることを確認します。 - **Stripe Events (イベント)** セクションでテストするイベントを確認します。イベントタイプは `invoice.payment_succeeded` である必要があり、請求書はサブスクリプションに属している必要があります。 - Magento のルートディレクトリーから、`bin/magento stripe:webhooks:process-event ` コマンドを使用してイベントをトリガーします。 - コンソールでエラーが発生しておらず、モジュールが Adobe Commerce で継続的なサブスクリプション注文を作成したことを確認します。 ## See also - [Adobe Commerce 管理パネルを使用する](https://docs.stripe.com/use-stripe-apps/adobe-commerce/payments/admin.md) - [トラブルシューティング](https://docs.stripe.com/use-stripe-apps/adobe-commerce/payments/troubleshooting.md)