Skip to main content

概要

UpcartはAftersellとは別のアプリであるため、Aftersellのポストパーチェスやチェックアウトのフローとは異なり、StrategyはUpsellsモジュールに組み込まれていません。代わりに、Strategies APIを直接呼び出してその結果をUpcartの公開APIを通じて既存のUpsellsモジュールに渡す、小さなスクリプトで2つのアプリを橋渡しします。 このスクリプトはそのまま使えるものです。UpcartのカスタムHTMLに一度貼り付け、2つの値(Strategy APIキーとStrategy ID)を置き換えるだけで、UpsellsモジュールにはStrategyが返す商品が表示されるようになります。

必要なもの

  1. Strategy APIキー。 Aftersellで Settings → Product Strategy に移動し、Security Token カードでトークンをコピーします(これがStrategy APIキーです)。
  2. Strategy ID。 AftersellのStrategyエディターで実行したいStrategyを開き、そのIDをコピーします。
  3. UpcartでUpsellsモジュールが有効になっていること。 スクリプトは既存のアップセルブロックに表示される商品リストを上書きするため、何かをレンダリングするにはモジュールがオンになっている必要があります。

スクリプトの追加

Upcartで Settings → Custom HTML → Scripts (before load) に移動し、以下のスクリプトを貼り付けます。STRATEGY_IDSTRATEGY_API_KEY をAftersellで取得した値に置き換えてから保存します。
Strategy APIキーは、あなたのショップのStrategyに対する呼び出しを認可します。上記のスクリプトはこのキーをクライアントサイドのコードに配置しますが、これはcart drawerからAPIを呼び出す唯一の現実的な方法です。このキーは他の公開ストアフロント認証情報と同様に扱い、意図しない形で漏洩した場合は、Aftersellの Settings → Product Strategy からローテーションしてください。

Strategyが参照できる情報

これはストアフロントのカートから実行されるため、コンテキストはAftersellのネイティブなサーフェスで利用できるものの限定的なサブセットになります:

商品コンテキスト

現在Upcartのカートに入っているラインアイテムが入力商品として送信されます。商品タイプベンダー商品ハンドル商品タイトル、および 商品ID / バリアントID などのトリガーは、すべてこれらのアイテムに対して評価されます。

カートコンテキスト

  • Subtotal - ストアの主要通貨単位(例: ドル)でのカート小計。Upcartの total_price は補助単位(セント)なので、スクリプトはStrategies APIの他の部分が使用する単位、つまり cart_subtotal ルールを記述する単位に合わせるために100で割ります。
  • Item count - 全ライン合計の数量。
  • Line count - 個別のラインアイテムの数。

セッションコンテキスト

  • 通貨コード - window.Shopify.currency.active から取得されます。
顧客トリガーとUTMトリガーはマッチしません。 デフォルトのスクリプトは、顧客タグ、注文数、所在地、UTMパラメーターを送信しないため、これらのトリガーを使用するルールは決して発火しません。常に何かが返されるように、商品、カート、通貨のトリガー、またはCatch allを使用してください。

Strategyが結果を返すとどうなるか

Strategyが返した商品は、UpcartがUpsellsモジュールに本来表示するリストを完全に置き換えます。マーチャントが定義したアップセルリストは、そのカートの間は上書きされます — マージされるわけではありません。 各Strategy商品は、Upcartが期待する商品の形式(バリアント、画像、オプション、メタフィールドなど)にマッピングされるため、他の商品とまったく同じようにアップセルブロック内にレンダリングされます。

商品が返されない場合

Strategyが商品を返さない場合、Upsellsモジュールはでレンダリングされ、アップセルは表示されません。 これを避けるには、Strategyに Catch all を設定して、常にフォールバック商品が返されるようにします。Catch allの設定方法については、Strategyの構築ページを参照してください。

カート変更時の再評価

チェックアウトアップセルとは異なり、Upcartの実装はカートが変更されるたびにStrategyを再評価します — アイテムの追加、削除、数量の変更などです。スクリプトはUpcartの cartUpdated イベントをサブスクライブし、新しいカートをStrategies APIに送信して、新しいアップセルリストでcart drawerを更新します。 カートシグネチャのチェックにより、ラインアイテムと数量が実際に変わっていない場合は冗長な呼び出しがスキップされるため、カートを実質的に変更しない連続したカートイベントがAPIを再度呼び出すことはありません。

Upcart Strategyのヒント

  • カートを軸に設計する。 ここで最も強力なシグナルは、カートの構成と商品のトリガーです。顧客履歴やUTMベースのターゲティングは、デフォルトのスクリプトでは送信されません。
  • Catch allをセーフティネットとして使う。 Catch allがないと、ルールが1つもマッチしないときにUpsellsモジュールには何も表示されません。
  • デフォルトでキャッシュフレンドリー。 カートシグネチャのガードにより、カートが実質的に変わっていない場合はAPIが再度呼び出されません。カートを編集せずに開閉を繰り返す買い物客に有効です。