> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# リプレイスメントアップセル

> Aftersell のリプレイスメントアップセルの仕組みと、バリアントや数量の入れ替えから、単発購入をサブスクリプションに変換するまでのセットアップ方法。

リプレイスメントアップセルを使うと、購入後ページで、顧客の注文に含まれる単発購入の商品を別の商品に入れ替えられます。置き換え先は、同じ商品のサブスクリプション版、別のバリアントや数量、あるいはまったく別の商品にできます。顧客がワンクリックで承諾すると、元のラインアイテムが返金され、置き換えのラインアイテムが注文に追加されます。

<Note>
  リプレイスメントアップセルは現在ベータ機能です。ストアで使用するには、アプリ内チャットからサポートにメッセージを送ってください。アカウントで有効化します。有効化されるまで、オファーエディタに **Replace item in original order with upsell** トグルは表示されません。
</Note>

<Warning>
  リプレイスメントアップセルは、元のラインアイテムが単発購入の場合にのみ機能します。顧客の注文にすでにサブスクリプションが含まれている場合、オファーはサイレントにスキップされます。既存のサブスクリプションを変更する(頻度の変更、商品の入れ替え、またはその両方)には、代わりに[サブスクリプションアップグレード](/ja/aftersell/subscription-upgrades)を使用してください。
</Warning>

<Warning>
  顧客がリプレイスメントアップセルを承諾すると、Aftersell は置き換え商品の全額を請求し、元の商品を返金します。差引金額は表示されている Accept Offer ボタンと一致しますが、顧客の銀行明細には 2 件の取引が表示されます。二重請求されたと顧客が思わないように、オファーの文言と購入後の確認メールを設計してください。
</Warning>

<div id="which-feature-do-you-need">
  ## どの機能が必要ですか?
</div>

サブスクリプションに関連する購入後機能は 3 つあり、それぞれ役割が異なります。以下のフローで適切なものを選んでください。

<Info>
  **顧客の注文にすでにサブスクリプションが含まれていますか?**

  → **はい** → [サブスクリプションアップグレード](/ja/aftersell/subscription-upgrades)を使用します。Recharge、Skio、または Loop 内の顧客の既存のサブスクリプション契約を変更します(頻度の変更、商品の入れ替え、またはその両方)。

  → **いいえ** → 以下に進みます。

  **顧客に購入した商品を保持させたまま定期サブスクリプションを追加したいですか、それとも購入した商品を完全に置き換えたいですか?**

  → **購入した商品を保持 + 新しいサブスクリプションを上乗せ** → [サブスクリプションアップセル](/ja/aftersell/subscriptions_in_post_purchase_offers)を使用します。

  → **購入した商品を別のものに置き換える**(サブスクリプション版、別の商品、別のバリアントや数量) → **リプレイスメントアップセル**(このガイド)を使用します。
</Info>

<div id="what-is-a-replacement-upsell">
  ## リプレイスメントアップセルとは?
</div>

顧客がリプレイスメントアップセルを承諾すると:

1. 元の単発ラインアイテムが Shopify で**返金**されます。
2. 置き換えのラインアイテムが同じ注文に**追加**されます。設定に応じて、単発購入またはサブスクリプションとして追加されます。
3. 顧客は同じ注文で置き換え商品の支払いを行います。
4. 明細には 2 件の取引が表示されます:元商品の返金と、置き換え商品の請求です。表示される Accept Offer ボタンは、2 つの価格の**差引額**を反映します。

これは Shopify の購入後 API を使って実装されています:

* 単発の置き換え(別のバリアント、数量、または商品)の場合、Aftersell は `add_variant` チェンジセットを送信します。
* サブスクリプションの置き換えの場合、Aftersell は `add_subscription` チェンジセットを送信します。
* 元のラインアイテムは Shopify の返金 API を通じて削除されます。

サブスクリプションの置き換えにおいて、Aftersell はサブスクリプションアプリの API を直接呼び出しません。サブスクリプションは Shopify のネイティブ Subscription API によって作成され、サブスクリプションアプリが自身の Shopify インテグレーションを通じて取り込みます。

<div id="what-replacement-upsell-can-do">
  ## リプレイスメントアップセルでできること
</div>

リプレイスメントアップセルは 4 つのシナリオをサポートします。いずれの場合も、**元のラインアイテムは単発購入である必要があります**。置き換え先は単発でもサブスクリプションでも構いません。

* **単発から単発、同じ商品、別のバリアント。** たとえば、ツインサイズをクイーンサイズに入れ替える。
* **単発から単発、同じ商品、別の数量。** たとえば、1 本のボトルを同じ商品の 3 本パックに入れ替える。置き換え側で **Override quantity** を有効にして、出荷される数量を設定します。
* **単発から単発、完全に別の商品。** たとえば、スターターボトルを別の SKU のフルサイズ版に入れ替える。
* **単発からサブスクリプション。** たとえば、単発のボトルを同じボトルの月次サブスクリプションに、または別の商品のサブスクリプション版に入れ替える。これが最も一般的なユースケースです。

<div id="what-replacement-upsell-cannot-do">
  ## リプレイスメントアップセルでできないこと
</div>

以下のシナリオは、**オファー表示時に Aftersell によってブロックされます**。顧客の注文がいずれかに該当する場合、オファーはサイレントにスキップされます。

* **サブスクリプションから単発へ。** サブスクリプションのラインアイテムを削除しても、Recharge、Skio、または Loop のサブスクリプション契約はキャンセルされません。顧客は引き続き請求され、さらに置き換え商品も受け取ることになります。
* **サブスクリプションから別のサブスクリプションへ。** 上記と同じ根本原因に加え、Shopify の「1 注文につき 1 サブスクリプション」ルールにより、すでにサブスクリプションを含む注文への新しいサブスクリプションの追加がブロックされます。
* **サブスクリプションのバリアントや頻度の入れ替え。** 同じ根本原因です。

顧客の既存のサブスクリプションを変更する必要がある場合は、代わりに[サブスクリプションアップグレード](/ja/aftersell/subscription-upgrades)を使用してください。サブスクリプションアップグレードは、サブスクリプションラインの削除と再追加を試みることなく、Recharge、Skio、または Loop の既存契約を直接変更します。

<Tip>
  リプレイスメントアップセルがスキップされた場合(上記のブロック対象シナリオ、サポート対象外の支払いゲートウェイ、またはディスカウントされたトリガーライン)、Aftersell は代わりに同じファネルの**ダウンセル**オファーを自動的に表示しようとします。リプレイスメントアップセルを使うときは、買い物客に必ずオファーが表示されるように、フォールバックとしてダウンセルをセットアップしてください。
</Tip>

<div id="what-the-customer-sees">
  ## 顧客に見えるもの
</div>

顧客の視点を理解しておくと、最も多いサポートチケット「なぜ二重請求されたのですか?」を防げます。

<div id="in-the-post-purchase-offer">
  ### 購入後オファーでは
</div>

Accept Offer ボタンには、元商品と置き換え商品の**差引額**が表示されます。たとえば、顧客が \$30 のボトルを購入し、\$45 の 3 本パックを提案する場合、Accept ボタンには「Add \$15.00 to your order」と表示されます。置き換え商品が元商品より安い場合、ボタンはクレジット(返金)として表示されます。

オファーカードには、置き換え商品の画像、タイトル、価格が表示されます。Shopify でバリアントに画像が紐付けられている場合、オファーカードはバリアント固有の画像を使用します。バリアントに画像が紐付けられていない場合、オファーカードは親商品の最初の画像にフォールバックします。つまり、同じ商品の 2 つのバリアント間の入れ替えでは、各バリアントに Shopify で個別の画像が設定されているかどうかによって、画像が変わる場合と変わらない場合があります。

<div id="on-the-shopify-order-after-acceptance">
  ### 承諾後の Shopify 注文では
</div>

注文には最終的に両方が表示されます:

* **返金**が適用された元のラインアイテム。
* 全額で請求された、置き換え商品の新しいラインアイテム。

注文合計は差引結果を反映しますが、顧客の銀行明細には 2 件の取引(置き換え商品の請求 1 件と元商品の返金 1 件)が表示されます。これは、Aftersell が支払いレベルでリプレイスメントアップセルの承諾を処理する方法によるものです。差引額は表示されている Accept Offer ボタンと一致します。

混乱を減らすには:

* 返金と置き換えの仕組みを明示的に説明する一文をオファーの文言に含めます。例:「承諾すると、元の商品を返金し、置き換え商品の代金を請求します。明細には 2 件の項目が表示されますが、差引額はこのボタンに表示されているアップグレード価格です。」
* リプレイスメントアップセル用の Aftersell の自動返金通知メールを有効にします。返金について説明する確認メールが顧客に送信されます。

<div id="in-the-subscription-provider-portal-when-replacement-is-a-subscription">
  ### サブスクリプションプロバイダーのポータルでは(置き換えがサブスクリプションの場合)
</div>

置き換えがサブスクリプションの場合、顧客はサブスクリプションプロバイダー(Recharge、Skio、Loop、Appstle、Smartrr、Stay.ai)のカスタマーポータルで新しいサブスクリプションを確認できます。ポータルは Aftersell ではなくサブスクリプションプロバイダーが所有しています。サブスクリプションプロバイダーのウェルカムメールが、承諾から数分以内に送信されるように設定されていることを確認してください。

<div id="compatible-subscription-platforms">
  ## 互換性のあるサブスクリプションプラットフォーム
</div>

置き換えがサブスクリプションの場合、リプレイスメントアップセルは Shopify のネイティブ Subscription API を使用するすべてのサブスクリプションアプリで機能します。このフローで Aftersell がプロバイダーの API を直接呼び出すことはありません。サブスクリプションは Shopify によって作成され、サブスクリプションアプリが自身の Shopify インテグレーションを通じて取り込みます。

互換性のあるプロバイダーには、Recharge、Skio、Loop、Stay.ai、Appstle、Smartrr、Bold Subscriptions(Shopify のネイティブサブスクリプション API 上で動作している場合)、および Shopify のネイティブ販売プランが含まれます。

置き換え先に前払いサブスクリプションプラン(たとえば、3 か月ごとに前払いで請求)が設定されている場合は、前払いが置き換え先としてサポートされているかをサブスクリプションプロバイダーに確認してください。前払いの扱いはプロバイダーによって異なります。

<div id="payment-method-requirements">
  ## 支払い方法の要件
</div>

Aftersell は、購入後のウィンドウ内で返金と再請求のパターンを確実にサポートできない一部の支払いゲートウェイで、リプレイスメントアップセルを明示的にブロックします:

* **Authorize.net**(`authorize_net`)。Authorize.net は、返金を発行する前に取引の決済(セトルメント)が完了している必要があり、決済には遅延があるため、Aftersell は同じ Shopify 注文で元商品の返金と置き換え商品の追加を確実に行えません。Authorize.net を決済プロセッサーとして使用している場合は、それらの顧客には代わりにサンキューページオファーを提供してください。
* **手動支払いゲートウェイ**(`manual`)。代金引換、カスタム支払い方法、下書き注文のチェックアウト、その他ボールトされた与信を取得しない手動支払いプロセッサーが該当します。リプレイスメントアップセルは後続の請求を行うためにアクティブなボールト済み支払いを必要としますが、手動ゲートウェイはこれを提供しません。

注文の支払いゲートウェイがこれらのいずれかである場合、リプレイスメントアップセルはオファーをサイレントにスキップします。スキップ理由は、Aftersell の Order Browser に **"Payment gateway does not support replacement upsells."** として表示されます。

(リプレイスメントアップセルに限らず)Aftersell のすべての購入後オファーに影響する支払い方法の全体的な一覧については、[支払い方法](/ja/aftersell/payment_methods)をご覧ください。

<div id="creating-a-replacement-upsell-offer">
  ## リプレイスメントアップセルオファーの作成
</div>

<Frame>
  <img src="https://mintcdn.com/aftersell/SnVX3h-PpMMxQMDU/images/aftersell/replacement-upsells-offer-editor-setup.gif?s=c1865a7d11a614a24ec4dca59c53afda" alt="オファーエディタでのリプレイスメントアップセルのセットアップ" width="856" height="480" data-path="images/aftersell/replacement-upsells-offer-editor-setup.gif" />
</Frame>

リプレイスメントアップセルを作成するには:

1. Aftersell ダッシュボードで **Post-purchase funnels** に移動します。
2. 既存のファネルを開くか、**Add Funnel** をクリックします。
3. アップセルオファーを追加して設定します。

設定は標準の購入後オファーの中にあり、有効化するとリプレイスメントアップセルのコントロールが表示されます。

リプレイスメントアップセルオファーには 3 つの独立した商品選択があり、置き換えが発火するには、これらが一貫して設定されている必要があります:

* **ファネルトリガー。** ファネルレベルで設定します。どの注文にオファーが表示されるかを決定します。
* **アップセル商品。** オファーの Upsell Products セクションで設定します。顧客が承諾したときに注文に追加される商品です。
* **置き換え対象の商品。** **Replace item in original order with upsell** セクション内で、**Edit product to replace** ボタンをクリックして設定します。返金され削除される、顧客のカート内の正確な商品とバリアントです。

**置き換え対象の商品**が顧客が実際に購入したバリアントと一致しない場合、Aftersell は削除する一致ラインアイテムを見つけられず、置き換えはサイレントに発火しません。

<div id="step-1-configure-the-funnel-trigger">
  ### ステップ 1:ファネルトリガーを設定する
</div>

トリガーは、どの注文にオファーが表示されるかを決定します:

* **商品トリガー。** 置き換えたい単発商品に設定します。これがないと、無関係な注文でオファーが発火する可能性があります。
* **サブスクリプショントリガー。** **do not include a subscription** に設定します。これにより、すでにサブスクリプションを含む注文(置き換えがブロックされる注文)にはオファーが表示されなくなります。

有効なすべてのトリガーは AND ロジックを使用します。すべての条件が満たされる必要があります。

<div id="step-2-pick-the-upsell-product">
  ### ステップ 2:アップセル商品を選ぶ
</div>

オファーエディタで:

1. **Add Upsell** をクリックし、顧客が代わりに受け取るべき商品を検索します。
2. 置き換えがサブスクリプションの場合、購入オプションとして **Subscription only** を選択し、販売プランを選びます。
3. 置き換えが単発購入の場合、**One-time purchase only** を選択します。
4. 同じ商品のバリアントや数量の入れ替えを行う場合は、同じ商品を選び、バリアントまたは数量のコントロールを調整します。

<div id="step-3-enable-replacement-upsell">
  ### ステップ 3:リプレイスメントアップセルを有効にする
</div>

オファーの詳細設定で、**Replace item in original order with upsell** を有効にします。これが、標準のアップセルをリプレイスメントアップセルに変えるトグルです。

<Frame>
  <img src="https://mintcdn.com/aftersell/SnVX3h-PpMMxQMDU/images/aftersell/replacement-upsells-settings-toggles.gif?s=8ab356420e4339753620307d53e45035" alt="オファーエディタのリプレイスメントアップセル設定とトグル" width="1728" height="1080" data-path="images/aftersell/replacement-upsells-settings-toggles.gif" />
</Frame>

これを有効にすると、以下も設定できます:

* **Allow replacement when target has a discount。** オフ(デフォルト)の場合、リプレイスメントアップセルはトリガーラインに注文レベルのディスカウントが付いている注文をスキップします。オンの場合、置き換えは発火しますが、元のラインのディスカウントは元商品とともに返金されます(置き換え商品には引き継がれません)。[ディスカウントの扱い](#discount-handling)をご覧ください。
* **Override quantity。** 置き換えラインアイテムの特定の数量を設定します。1 個をマルチパックに入れ替えるときに便利です。

<div id="step-4-set-the-product-to-replace">
  ### ステップ 4:置き換え対象の商品を設定する
</div>

**Edit product to replace** をクリックし、オファーが承諾されたときに顧客の注文から削除されるべき正確な商品とバリアントを選びます。これは、顧客が実際にカートに入れているものと一致する必要があります。

同じ商品のバリアント入れ替え(Small → Large)の場合、**置き換え対象の商品**は Small バリアントを具体的に指す必要があります。Large や顧客が購入していないバリアントを指定すると、オファーはエラーなしでスキップされます。

<div id="step-5-add-optional-discount">
  ### ステップ 5:任意のディスカウントを追加する
</div>

置き換えがサブスクリプションの場合、オファーをより魅力的にするために初回サイクルディスカウントを適用できます。ディスカウントは新しいサブスクリプションの最初の請求サイクルに適用され、以降の更新は通常のサブスクリプション価格で請求されます。

単発の置き換えの場合、ディスカウントはこの注文の単発請求に適用されます。

<div id="step-6-customize-the-offer-copy">
  ### ステップ 6:オファーの文言をカスタマイズする
</div>

返金と置き換えの仕組みをオファーの文言で明示的に説明しましょう。推奨される要素:

* タイトル:入れ替えを明確に説明します(例:「3 本パックにアップグレードしてお得に」)。
* 説明:元商品が返金され、置き換え商品が請求されることを説明します。
* Accept ボタン:デフォルトでは差引価格が表示されます。動詞ベースの CTA にしたい場合は、「Switch to subscription」や「Upgrade my order」などにカスタマイズしましょう。

<div id="discount-handling">
  ## ディスカウントの扱い
</div>

リプレイスメントアップセルには、パートナーが見落としがちなディスカウントに関する固有の動作があります。

<div id="discounts-on-the-original-line-do-not-carry-to-the-replacement">
  ### 元のラインのディスカウントは置き換え商品に引き継がれない
</div>

Aftersell が元のラインアイテムを返金すると、それに適用されていたディスカウントも一緒に返金されます。置き換えラインは全額(または置き換えオファーに設定したディスカウントがあればその価格)で請求されますが、顧客の元のディスカウントは移行されません。

顧客に同等のディスカウントを維持させたい場合は、置き換えオファーに直接設定してください。

<div id="allow-replacement-when-target-has-a-discount">
  ### Allow replacement when target has a discount
</div>

デフォルトでは、トリガーラインに注文レベルのディスカウントが付いている場合、リプレイスメントアップセルはオファーを**スキップ**します。これは、返金額の不一致を避けるための保護的なデフォルトです。

トリガーにディスカウントがあってもオファーを発火させるには、オファーの詳細設定で **Allow replacement when target has a discount** トグルを有効にします。有効にすると、返金はディスカウント後の価格(全額ではなく)をカバーし、置き換え商品はオファーの設定に従って請求されます。

<div id="first-cycle-discount-on-subscription-replacements">
  ### サブスクリプション置き換えの初回サイクルディスカウント
</div>

置き換えがサブスクリプションの場合、オファーに設定したディスカウントは**最初の請求サイクルのみ**に適用されます。以降の定期注文は通常のサブスクリプション価格で請求されます。顧客はオファーの **Recurring subtotal** の下に定期価格を確認できます。

<div id="analytics-and-reporting">
  ## アナリティクスとレポート
</div>

リプレイスメントアップセルによって生成された返金には、Shopify で **"AfterSell Post-Purchase Replacement Upsell"** というメモが付くため、置き換え関連の返金を簡単に識別できます。

Aftersell のアナリティクスは、アップセルの価値から返金額を差し引き**ません**。\$100 の商品を \$200 の商品に置き換えた場合、差引 \$100 ではなく、\$200 のアップセルとしてレポートされます。

<div id="worked-examples">
  ## 実例
</div>

よくあるリプレイスメントアップセルの 3 つのシナリオを、正確な設定と顧客体験とともに紹介します。

<div id="scenario-1-one-time-bottle-to-monthly-subscription-of-the-same-product">
  ### シナリオ 1:単発ボトルから同じ商品の月次サブスクリプションへ
</div>

**セットアップ。** 顧客が \$40 のサプリメントボトルを単発購入しました。同じボトルの月次サブスクリプションを月 \$36 で、初回サイクル 15% オフのディスカウント付きで提案したいとします。

**オファーで設定するもの:**

* ファネルトリガー:商品は単発ボトル。
* アップセル商品:同じボトル、月次販売プラン。
* 購入オプション:Subscription only。
* 初回サイクルディスカウント:15%。
* 置き換え対象の商品:単発ボトル(顧客が購入したのと同じバリアント)。

**オファーで顧客に見えるもの:**

* Accept Offer ボタン:「Add \$0.60 to your order」(\$40 の単発と、\$36 の 15% オフ後 \$30.60 の初回サイクルサブスクリプションの差引額)。
* Recurring subtotal:30 日ごとに \$36.00。

**承諾時:**

* 元の \$40 の単発ボトルが返金されます。
* 初回サイクル \$30.60 で新しいサブスクリプションラインが追加されます。
* サブスクリプションアプリに、基本価格 \$36 の月次サブスクリプションが作成されます。
* 次の請求は 30 日後に \$36 で行われます。

**顧客の明細:** \$40 の返金 1 件と \$30.60 の請求 1 件。差引:顧客は今回の配送に \$30.60 を支払い、以降は 30 日ごとに \$36 を支払います。

<div id="scenario-2-single-bottle-to-3-pack-of-the-same-product">
  ### シナリオ 2:1 本のボトルから同じ商品の 3 本パックへ
</div>

**セットアップ。** 顧客が \$30 のボトルを 1 本購入しました。3 本パックを \$75(個別に購入すると \$90)で提案したいとします。

**オファーで設定するもの:**

* ファネルトリガー:商品は単品ボトル。
* アップセル商品:同じ商品。
* Override quantity:3。
* 購入オプション:One-time purchase only。
* 置き換え対象の商品:単品ボトル(同じバリアント)。

**オファーで顧客に見えるもの:**

* Accept Offer ボタン:「Add \$45.00 to your order」(\$30 と \$75 の差引額)。

**承諾時:**

* 元の \$30 のボトルが返金されます。
* 合計 \$75 でボトル 3 本が追加されます。
* 顧客はこの Shopify 注文で差引 \$45 を支払います。

<div id="scenario-3-one-time-product-to-a-different-subscription-product">
  ### シナリオ 3:単発商品から別のサブスクリプション商品へ
</div>

**セットアップ。** 顧客が \$25 のスターターキットを単発購入しました。プレミアム商品ラインの月次サブスクリプションを月 \$50 で提案したいとします。

**オファーで設定するもの:**

* ファネルトリガー:商品はスターターキット。
* アップセル商品:プレミアム商品。
* 購入オプション:Subscription only。
* 販売プラン:月次、\$50。
* 置き換え対象の商品:スターターキット(同じバリアント)。

**オファーで顧客に見えるもの:**

* Accept Offer ボタン:「Add \$25.00 to your order」(\$25 と \$50 の差引額)。
* Recurring subtotal:30 日ごとに \$50.00。

**承諾時:**

* 元の \$25 のスターターキットが返金されます。
* \$50 で新しいサブスクリプションラインが追加されます。
* サブスクリプションアプリに \$50 の月次サブスクリプションが作成されます。
* 顧客はこの Shopify 注文で差引 \$25 を支払います。

<div id="per-variant-funnels">
  ## バリアントごとのファネル
</div>

1 つのリプレイスメントアップセルオファーは、双方で特定の 1 つの商品とバリアントを対象とします。サブスクリプションプランがバリアントごとに異なる場合(サイズ、フレーバー、価格が異なるなど)、「顧客が購入したどのバリアントでも、対応するサブスクリプションバリアントに入れ替える」という 1 つのオファーを設定することはできません。バリアントのペアごとに専用のファネルが必要です。

たとえば、美容液を 3 サイズ(Small / Medium / Large)で販売していて、それぞれを対応するサブスクリプションに入れ替えたい場合、3 つのファネルを作成します:

* ファネル 1:トリガー = Small 単発、置き換え = Small サブスクリプション。
* ファネル 2:トリガー = Medium 単発、置き換え = Medium サブスクリプション。
* ファネル 3:トリガー = Large 単発、置き換え = Large サブスクリプション。

Aftersell には現在、組み込みのバリアントペアリング機能がないため、各バリアントペアに専用のファネルが必要です。

<div id="testing-a-replacement-upsell">
  ## リプレイスメントアップセルのテスト
</div>

公開前に:

<Steps>
  <Step title="Shopify で実際のテスト注文を行う">
    トリガーとなる単発商品を含む、低価格の実際のテスト注文を行います。このステップでプレビューモードに頼らないでください。プレビューモードはファネルを視覚的にレンダリングし、Accept と Decline をクリックして進められますが、サンドボックス化されています:注文は作成されず、返金は適用されず、サブスクリプションは作成されず、請求は発生せず、メールや Webhook も発火しません。レイアウトと文言の確認にはプレビューモードを、エンドツーエンドの検証には実際のテスト注文を使用してください。
  </Step>

  <Step title="購入後ページでアップセルを承諾する">
    チェックアウト後、購入後オファーが表示されます。リプレイスメントアップセルを承諾して、実際のチェンジセットをトリガーします。
  </Step>

  <Step title="Shopify を確認する">
    **Shopify 管理画面 → Orders** でテスト注文を見つけます。返金が適用された元のラインアイテムと、追加された置き換えラインアイテムが表示されているはずです。
  </Step>

  <Step title="顧客の明細を確認する">
    実際のカードで、両方の取引(元商品の返金と置き換え商品の請求)が正しく計上されることを確認します。差引額は表示されていた Accept Offer ボタンと一致するはずです。
  </Step>

  <Step title="サブスクリプションプロバイダーを確認する(置き換えがサブスクリプションの場合)">
    プロバイダーのダッシュボードで顧客の新しいサブスクリプションを見つけます。頻度、次回請求日、商品を確認します。登録が失敗した場合、Aftersell 側での自動リトライはありません。サブスクリプションが見つからない場合は、サブスクリプションプロバイダーのサポートに連絡してください。
  </Step>
</Steps>

<div id="beta-failsafe">
  ## ベータのフェイルセーフ
</div>

リプレイスメントアップセルがベータの間、Aftersell は各オファーのエラーを追跡し、エラー数がしきい値を超えると新規顧客へのオファー表示を停止します。これにより、広範な設定ミスが多くの顧客にサイレントに影響を及ぼすことを防ぎます。

<Frame>
  <img src="https://mintcdn.com/aftersell/SnVX3h-PpMMxQMDU/images/aftersell/replacement-upsells-order-browser-failsafe.gif?s=0ec4f5a58191b9323de015eae3793c07" alt="Order Browser のリプレイスメントアップセルのベータフェイルセーフ" width="2196" height="1080" data-path="images/aftersell/replacement-upsells-order-browser-failsafe.gif" />
</Frame>

<div id="configuring-the-failsafe-threshold">
  ### フェイルセーフのしきい値の設定
</div>

フェイルセーフのしきい値は **Settings → Replacement Upsells** で設定できます。**直近 7 日間のローリングウィンドウ**で置き換えエラーをカウントし、そのウィンドウ内で選択したしきい値に達すると、リプレイスメントアップセルを一時停止します。次から選択できます:

* **Stop on any issue in the past 7 days**(推奨 — これがデフォルトです)。ローリングウィンドウ内で最初の置き換えが失敗した時点でオファーが停止します。
* **Stop after 3 issues in the past 7 days**。
* **Stop after 5 issues in the past 7 days**。
* **Stop after 7 issues in the past 7 days**(最も寛容)。
* **Custom…** — **1 から 100** の任意の整数を入力できる数値フィールドが表示されます。ストアの注文数が多く、プリセットではすぐに作動してしまう場合に使用してください。

オファーの設定に自信があり、Shopify やサブスクリプションプロバイダーの一時的なエラーを何件か吸収してもオファーを無効化したくない場合は、高いしきい値を選択してください。顧客に見える障害がストアにとって高コストである場合は、低いしきい値を選択してください。

<div id="what-trips-the-failsafe">
  ### フェイルセーフを作動させるもの
</div>

置き換えフロー内のあらゆる例外が、ローリング 7 日間ウィンドウ内のエラーとしてカウントされます。最も一般的な原因:

* チェックアウトがすでに完了しているため、Shopify がチェンジセットを拒否した。
* オファーのセットアップから顧客の承諾までの間に、置き換え商品が削除または非公開になった。
* サブスクリプション置き換えの販売プランが無効化された。
* Shopify API またはサブスクリプションプロバイダーの一時的な障害。

<div id="when-the-failsafe-trips">
  ### フェイルセーフが作動したとき
</div>

ローリング 7 日間ウィンドウ内のエラー数がしきい値に達すると、オファーは新規顧客に**表示されなくなります**。次の 2 か所で確認できます:

* **ホームページのバナー。** Aftersell のホームページに **"Replacement upsells are paused"** というタイトルの警告バナーが表示され、**Settings → Replacement Upsells** にリンクする **Review failsafe** ボタンが付きます。
* **フェイルセーフのステータスカード**(Settings → Replacement Upsells)。ステータスカードには **Failsafe tripped**(アンバー)または **Not tripped**(グリーン)のバッジと、現在のローリングカウントとしきい値が表示されます。例:「4 of 5 errors in the past 7 days」。

フェイルセーフはローリング 7 日間ウィンドウを使用するため、**自己回復**します:エラー数がしきい値を下回ると、リプレイスメントアップセルは自動的に再開されます。操作は不要です。

<div id="how-to-reset">
  ### リセット方法
</div>

フェイルセーフは **Settings → Replacement Upsells** から自分でリセットできます。根本的な問題を解決したら、**Reset failsafe** をクリックしてモーダルで確認します。ローリングエラーカウントは即座にクリアされ、新規注文に対してリプレイスメントアップセルが再開されます。(現在のエラーカウントがすでにゼロの場合、ボタンは無効になります。)

根本原因を修正してからリセットしてください。そうしないと、しきい値に達した時点でフェイルセーフが再び作動します。エラーの原因が不明な場合は、リセットする前にアプリ内チャットからサポートにお問い合わせください。

<div id="troubleshooting">
  ## トラブルシューティング
</div>

<AccordionGroup>
  <Accordion title="ファネルエディタにリプレイスメントアップセルのオファータイプが表示されない">
    リプレイスメントアップセルは、Aftersell サポートによる手動での有効化が必要なベータ機能です。アプリ内チャットからサポートに連絡してアクセスをリクエストしてください。有効化されると、オファーの詳細設定に **Replace item in original order with upsell** トグルが表示されます。
  </Accordion>

  <Accordion title="テスト注文でオファーが表示されない">
    3 つの原因が考えられます:

    * **ファネルトリガーの不一致。** トリガー商品が、テスト注文のカートに入っている商品と同じであることを確認してください。
    * **注文にすでにサブスクリプションが含まれている。** リプレイスメントアップセルは、トリガーラインがサブスクリプションである注文をスキップします。その場合は代わりにサブスクリプションアップグレードを使用してください。
    * **元のラインにディスカウントがある。** デフォルトでは、リプレイスメントアップセルは注文レベルのディスカウントが付いたラインをスキップします。オファーの詳細設定で **Allow replacement when target has a discount** を有効にしてください。
  </Accordion>

  <Accordion title="オファーは表示されるが、置き換えが実際に行われない(または顧客が元の商品を受け取った)">
    リプレイスメントアップセルオファーには、エディタに 3 つの独立した商品選択があり、置き換えが発火するには、これらが一貫して設定されている必要があります:

    1. **ファネルトリガー。** ファネルレベルで設定します。どの注文にオファーが表示されるかを決定します。
    2. **アップセル商品。** オファーの Upsell Products セクションで設定します。顧客が承諾したときに注文に追加される商品です。
    3. **Edit product to replace。** **Replace item in original order with upsell** セクション内で、**Edit product to replace** ボタンをクリックして設定します。これは、返金され削除される、顧客のカート内の正確な商品とバリアントです。

    最もよくある設定ミス:**置き換え対象の商品**が、顧客のカートに実際に入っているバリアントと一致していないことです。その場合、Aftersell は削除する一致ラインアイテムを見つけられず、置き換えはサイレントに発火しません。

    修正するには:

    * リプレイスメントアップセルオファーを開きます。
    * **Edit product to replace** をクリックし、選択された商品とバリアントが、(ファネルトリガーに従って)顧客が購入すべき商品+バリアントと**正確に一致する**ことを確認します。
    * 同じ商品のバリアント間の入れ替え(Small → Large)の場合、「置き換え対象の商品」は Small バリアントを具体的に指す必要があります。Large や顧客が購入していないバリアントを指定すると、オファーはスキップされます。
    * 保存し、入れ替え元の正確なバリアントを含む、低価格の実注文でテストします。
  </Accordion>

  <Accordion title="顧客が二重請求されたと思っている">
    これは想定どおりの動作です。元のラインが返金され、置き換え商品が請求されるため、差引額は表示されたオファー価格と同じでも、顧客の銀行明細には 2 件の取引が表示されます。混乱を減らすには:

    * 返金と置き換えの仕組みを説明する一文をオファーの文言に追加します。
    * リプレイスメントアップセル用の Aftersell の自動返金通知メールを有効にします。
    * 顧客から問い合わせがあったときに、2 行の明細パターンを説明できるようサポートチームをトレーニングします。
  </Accordion>

  <Accordion title="「Partial refunds are not allowed until the transaction is settled」と表示される">
    一部の支払いゲートウェイ(Authorize.net や、取引を遅延バッチで決済するその他のゲートウェイを含む)は、元の取引が決済されるまで返金を許可しません。リプレイスメントアップセルはチェックアウト直後に置き換え商品を請求して元商品を返金するため、返金ステップが「Partial refunds are not allowed until the transaction is settled. Please try again later.」というエラーで失敗することがあります。Aftersell は決済完了後に返金を自動的にリトライしないため、元の取引が決済された後(通常は 24 時間以内、ゲートウェイの決済スケジュールによります)、Shopify の注文から手動で返金を発行する必要があります。このシナリオを避けるため、既知のサポート対象外ゲートウェイではリプレイスメントアップセルは完全にスキップされます。サポート対象のゲートウェイでこのエラーが続く場合は、調査しますのでサポートにお問い合わせください。
  </Accordion>

  <Accordion title="置き換え後に元の注文のディスカウントが消えた">
    Aftersell が元のラインアイテムを返金すると、それに適用されていたディスカウントも返金と一緒に処理されます。置き換えラインは別途請求されます。顧客にディスカウントを維持させたい場合は、オファーのディスカウントフィールドを使って置き換えオファーに直接設定してください。
  </Accordion>

  <Accordion title="リプレイスメントアップセルでサブスクリプションを別のサブスクリプションに入れ替えられますか?">
    いいえ。注文の元のラインアイテムがすでにサブスクリプションの場合、リプレイスメントアップセルは発火しません。サブスクリプションのラインアイテムを削除してもサブスクリプションアプリの契約はキャンセルされず、顧客は引き続き請求され、さらに置き換え商品も受け取ることになるためです。既存のサブスクリプションを変更する(頻度の変更、商品の入れ替え、またはその両方)には、代わりに[サブスクリプションアップグレード](/ja/aftersell/subscription-upgrades)を使用してください。
  </Accordion>

  <Accordion title="リプレイスメントアップセルオファーが突然発火しなくなった">
    リプレイスメントアップセルは、ローリング 7 日間ウィンドウでオファーごとのエラーを追跡し、**Settings → Replacement Upsells** で設定したしきい値をエラー数が超えるとオファーの表示を停止します(デフォルト:直近 7 日間で問題が 1 件でもあれば停止)。フェイルセーフが作動すると、Aftersell のホームページに **"Replacement upsells are paused"** バナーが表示され、**Settings → Replacement Upsells** への **Review failsafe** リンクが付きます。そこのステータスカードで、現在のエラー数とフェイルセーフの作動状況を確認できます。

    エラーが発生しなくなれば、ローリング 7 日間のカウントがしきい値を下回った時点でオファーは自動的に再開されます。問題を修正した後すぐに再開するには、その設定ページで **Reset failsafe** をクリックします。根本原因が不明な場合は、アプリ内チャットからサポートにお問い合わせください。
  </Accordion>

  <Accordion title="置き換え商品の画像が間違っている、または汎用的なもの">
    Shopify でバリアントに画像が紐付けられている場合、オファーカードはバリアント固有の画像を使用します。バリアントに画像が紐付けられていない場合、オファーカードは親商品の最初の画像にフォールバックします。同じ商品のバリアント間で入れ替えていて画像が変わらない場合は、各バリアントに Shopify で個別の画像が設定されていることを確認してください。
  </Accordion>

  <Accordion title="多数の商品バリアントにまたがってリプレイスメントアップセルを設定したい">
    バリアントごとに 1 つのファネルを作成します。各ファネルには、商品+バリアントのトリガーと、対応する置き換えの商品+バリアントがあります。Aftersell には現在、組み込みのバリアントペアリング機能はありません。
  </Accordion>

  <Accordion title="顧客が承諾したのに、新しいサブスクリプションがサブスクリプションアプリにない">
    サブスクリプションアップセルと同じ障害パターンです:多くの場合、オファーのレンダリングから顧客の承諾までの間に販売プランが無効化されたことが原因です。Shopify はチェンジセットを受け入れますが、下流でサブスクリプションは登録されません。販売プランが Shopify でまだアクティブで、置き換え商品に割り当てられていることを確認してください。該当する注文について、サブスクリプションアプリの注文インポートまたは Webhook ログを確認してください。サブスクリプションが見つからない場合、通常はサブスクリプションアプリのサポートチームが手動で顧客を登録できます。
  </Accordion>

  <Accordion title="顧客が承諾した後、新しいサブスクリプションをキャンセルしたい">
    Aftersell はサブスクリプションのキャンセルを管理しません。以降のサイクルのキャンセルは、サブスクリプションプロバイダーのカスタマーポータルで行うか、顧客自身が行います。初回サイクルの Shopify の返金メカニズムは、他のラインアイテムと同じように機能します。
  </Accordion>

  <Accordion title="Authorize.net の顧客にリプレイスメントアップセルオファーが一切表示されない">
    これは想定どおりです。Authorize.net は、返金を発行する前に取引の決済が必要で、その決済の遅延がリプレイスメントアップセルの依存する返金と再請求のパターンを壊すため、Aftersell のコードでリプレイスメントアップセルから明示的にブロックされています。Authorize.net の顧客には代替としてサンキューページオファーを運用してください。Aftersell の Order Browser で注文を開くと、スキップ理由が「Payment gateway does not support replacement upsells.」と表示されることで、これが原因であると確認できます。
  </Accordion>

  <Accordion title="代金引換や下書き注文の顧客にオファーが表示されない">
    手動支払いゲートウェイ(代金引換、カスタム支払い方法、下書き注文のチェックアウト)は、後続の請求のためにカードをボールトしないため、リプレイスメントアップセルから明示的にブロックされています。Order Browser にはスキップ理由として「Payment gateway does not support replacement upsells」と表示されます。購入後オファーに関する支払い方法の全体的な制限については、[支払い方法](/ja/aftersell/payment_methods)をご覧ください。
  </Accordion>
</AccordionGroup>
