Ideal House
コンテンツにスキップ

動的ページとバリエーションの変更#

SDK はページ読み込み後に追加された対象要素を監視します。選択中の商品の管理は引き続きオンラインストア側で行い、対象要素の属性を選択内容と同期させる必要があります。

一度読み込み、対象要素を更新する#

SDK ローダーはアプリケーションまたはテーマ全体で一つにします。ルート遷移のたびに新しいスクリプトを追加しないでください。現在の商品が表示される場所に対象要素を描画し、クイックビュー、バリエーション選択、クライアント側のルート遷移によって商品が変わったら更新します。

自動生成ボタンの場合は、対象コンテナに現在の商品コードを設定します。独自に作成したボタンの場合は、独自オンラインストアのチュートリアルに示すように、以前の SDK の状態もリセットします。

独自ボタンのリセット#

以下は、既存の独自オンラインストア向けの仕様に沿った例です。選択した商品コードが確定した後、自身の選択処理ハンドラーから呼び出してください。

js
function setSelectedProduct(button, productCode) {
  button.dataset.active = 'false';
  button.style.visibility = 'hidden';
  delete button.dataset.rvProductCode;
  delete button.dataset.rvProductType;
  delete button.dataset.rvProductId;
  delete button.dataset.rvProductIds;
  const code = typeof productCode === 'string' ? productCode.trim() : '';
  if (code) button.dataset.productCode = code;
  else delete button.dataset.productCode;
  button.disabled = !code;
}

実際のプラットフォームのライフサイクルへの接続#

すべての EC サイトに共通するバリエーション変更イベントはありません。Shopify ガイドではテーマ側で発行するイベントを定義しています。そのリスナーを追加するだけではテーマとは接続されません。実際に使用しているテーマやアプリケーションで定義されたコールバックを使用してください。

React / Next.jsVue / Nuxt では、フレームワーク別ガイドのクライアント側ライフサイクルとクリーンアップの説明に従ってください。

古い選択内容が残っていないか確認する#

利用可能な商品、別の利用可能な商品、対応付けのない商品の間で選択を切り替えます。選択変更後に Viewer が以前の商品を再度開くことがあってはなりません。クイックビューやブラウザーの戻る操作でも繰り返し確認してください。