評価拡張機能のチュートリアル

このチュートリアルでは、Adobe Commerce as a Cloud Service および AI を利用した開発ツールを使用して、Adobe App Builder 用の製品評価拡張機能を構築する手順を説明します。

開始する前に、​ 前提条件 ​ を完了してください。

前提条件を確認

次の前提条件がインストールされていることを確認します。

# Check Node.js version (should be 22.x.x)
node --version

# Check npm version (should be 9.0.0 or higher)
npm --version

# Check Git installation
git --version

# Check Bash shell installation
bash --version

上記のコマンドのいずれかで期待される結果が返されない場合は、​ 前提条件 ​ を参照してガイダンスを確認してください。

拡張機能の開発

この節では、AI を利用した開発ツールを使用して、Adobe Commerce as a Cloud Serviceの評価拡張機能を開発する手順について説明します。

  1. Cursor/Settings/Cursor Settings/Tools & MCP に移動し、commerce-extensibility ツールセットがエラーなく有効になっていることを確認します。 エラーが表示された場合は、ツールセットのオン/オフを切り替えます。

    MCP コマース拡張ツールセットが有効になっていることを示すカーソル IDE 設定 ​ {width="600" modal="regular"}

    note note
    NOTE
    AI 支援による開発ツールを使用する場合、エージェントによって生成されるコードと応答に自然なバリエーションが生じることを期待してください。
    コードで問題が発生した場合は、いつでもエージェントにデバッグの支援を求めることができます。
  2. カーソルのコンテキストでドキュメントを無効にします。

    • Cursor/Settings/Cursor Settings/Indexing & Docs に移動し、一覧表示されているドキュメントをすべて削除します。

    ​ ドキュメントリストが空のカーソルインデックス作成とドキュメント設定 ​ {width="600" modal="regular"}

  3. 製品評価拡張機能のコードを生成します:

    • カーソルチャットウィンドウから、モード Agent 選択します。
    • 次のプロンプトを入力します。
    code language-shell-session
    Implement an Adobe Commerce as a Cloud Service extension to handle Product Ratings.
    
    Implement a REST API to handle GET ratings requests.
    
    GET requests will have to support the following query parameters:
    
    sku -> product SKU
    
    note note
    NOTE
    エージェントがドキュメントの検索を要求した場合は、許可します。
  4. エージェントが最適なコードを生成できるように、エージェントの質問に正確に答えます。

    ​ 拡張機能プロンプトが入力されたエージェントモードのカーソルチャットウィンドウ ​ {width="600" modal="regular"} ​ 拡張要件を明確にする質問をする AI エージェント ​ {width="600" modal="regular"}

  5. 次のテキスト例を使用して、エージェントの質問に回答し、ランダム化された評価データを設定します。

    code language-shell-session
    Yes, this headless extension is for Adobe Commerce as a Cloud Service storefront,
    but we do not need any authentication for the GET API because guest users should be able to use it on the storefront.
    
    This extension is called directly from the storefront, no async invocation, such as events or webhooks, is required.
    
    Start with just the GET API for now, we will implement other CRUD operations at a later time.
    
    We do not need a DB or storage mechanism right now, just return random ratings data between 1 and 5 and a ratings count between 1 and 1000.
    
    The API should only return the average rating for the product and the total number of ratings.
    We do not need to add tests right now.
    

    エージェントは、実装の信頼できるソースとして機能する requirements.md ファイルを作成します。

    AI エージェントによって作成された Requirements.md ファイルと実装の詳細 ​ {width="600" modal="regular"}

  6. requirements.md ファイルを確認し、計画を検証します。

    すべてが正しいと思われる場合は、エージェントに フェーズ 2 - アーキテクチャ計画 に移行するよう指示します。

  7. アーキテクチャ計画を確認します。

  8. コードの生成を続行するようにエージェントに指示します。

    エージェントは、必要なコードを生成し、次の手順で詳細な概要を提供します。

    AI エージェントフェーズ 2 Architecture Plan for Ratings API {width="600" modal="regular"} ​ 生成されるコードファイルと構造の概要 ​ {width="600" modal="regular"} ​ テストとデプロイメントの次のステップを提供する AI エージェント ​ {width="600" modal="regular"}

ローカルでの拡張機能のテスト

次の手順では、拡張機能をデプロイする前に動作することを確認する方法を説明します。

  1. コードをローカルでテストできるようにエージェントに依頼します。

    code language-shell-session
    Test the ratings API locally on a dev server using cURL.
    
  2. エージェントの指示に従い、API がローカルで動作していることを確認します。

    ​ ローカル API テスト用の AI エージェントの手順 ​ {width="600" modal="regular"} cURL でローカル API テストの結果が成功したことを示すターミナル ​ {width="600" modal="regular"}

拡張機能のデプロイ

エージェントを使用して、拡張機能を Adobe I/O Runtime にデプロイします。

  1. 生成されたコードを検証した後、次のプロンプトを使用して拡張機能をデプロイします。

    code language-shell-session
    Deploy the ratings API.
    

    エージェントは、デプロイ前に、デプロイメント前の準備状況の評価を実行します。

    AI エージェントのデプロイメント前準備状況評価チェックリスト ​ {width="600" modal="regular"}

  2. 評価結果に自信がある場合は、エージェントにデプロイメントを続行するように指示します。

    エージェントは、MCP ツールキットを使用して、検証、ビルド、およびデプロイを自動的に行います。

    MCP ツールキット検証ビルドおよびデプロイメントプロセス ​ {width="600" modal="regular"}

デプロイメントの検証

ストアフロントに統合する前に API をテストします。 担当者は、新しいアクションの場所とテスト戦略を指定する必要があります。

​ デプロイ済みのアクション URL とテストコマンドを使用した AI エージェントテスト戦略 ​ {width="600" modal="regular"}

また、ターミナルで cURL を使用して、手動で API をテストすることもできます。

curl -s "https://<your-site>.adobeioruntime.net/api/v1/web/ratings/ratings?sku=TEST-SKU-123"

​ デプロイ済みの評価 API の cURL テストが成功したことを示すターミナル ​ {width="600" modal="regular"}

Edge Delivery Servicesとの統合

Ratings API を Adobe Commerce を利用した Edge Delivery Services ストアフロントに統合するには、エージェントに依頼して、ratings API の要件を含むサービス契約を作成してください。

Create a service contract for the ratings api that I can pass on to the storefront agent. Name it RATINGS_API_CONTRACT.md

AI エージェントがストアフロント統合用のサービス契約ファイルを作成 ​ {width="600" modal="regular"}

​ エンドポイントと応答の詳細を含む評価 API 契約マークダウンファイル ​ {width="600" modal="regular"}

ターミナルに戻り、extension フォルダーで次のコマンドを実行して、契約ファイルを storefront フォルダーにコピーします。

cp RATINGS_API_CONTRACT.md ../storefront

ストアフロントに接続

このセクションでは、Edge Delivery Services および AI を利用した開発ツールを使用して、評価拡張機能のストアフロント部分を実装する手順を説明します。

NOTE
表示されるプロンプトは開始点です。 変更せずに使用できますが、エージェントと自然に会話することを検討してください。
AI 支援開発ツールを使用する場合、エージェントによって生成されるコードと応答には常に自然なバリエーションがあります。
コードで問題が発生した場合は、デバッグの支援をエージェントに依頼します。

ストアフロントの前提条件

ストアフロントの統合を開始する前に、次の点を確認してください。

ストアフロントのワークスペースの設定

開発用にローカルのストアフロント環境を準備します。

  1. storefront フォルダーに移動します。

    code language-bash
    cd storefront
    
  2. 新しいカーソルウィンドウでストアフロントフォルダーを開きます。

    また、Cursor CLI がインストールされている場合は、ターミナルで次のコマンドを使用してウィンドウを開きます。

    code language-bash
    cursor .
    
  3. ローカル開発サーバーを起動します。

    code language-bash
    npm run start
    
  4. ブラウザーで製品ページに移動します。

    code language-shell-session
    http://localhost:3000/products/llama-plush-shortie/adb336
    
  5. ボイラープレートのストアフロントの製品詳細ページ(PDP)を確認し、製品の視覚的な評価がないことを確認します。

評価 API の統合

エージェントを使用して、評価 API をストアフロント製品の詳細ページに統合します。

  1. エージェントで次のプロンプトを使用します。

    code language-shell-session
    Integrate the ratings API into the PDP to show star ratings and a review count for products. Here's the service contract: @RATINGS_API_CONTRACT.md
    
  2. エージェントがタスクの複雑さを評価し、段階的なワークフローを呼び出します。 フェーズ 1 (要件収集) では、エージェントは要件ドキュメントを作成し、次のような明確な質問をします。

    • PDP の評価はどこに表示されるべきですか?
    • これは、新しいスタンドアロンブロックにしますか、それとも既存の PDP ドロップインコンポーネント内のスロットのカスタマイズにしますか?
    • API が利用できない場合やデータが返されない場合、フォールバックは何になるでしょうか?
    • 評価は PLP (製品リスト)にも表示しますか、それとも PDP のみに表示しますか?
    • 設計仕様やモックアップはありますか?

    プロジェクト要件に基づいて、これらの質問に答えます。 エージェントは要件ドキュメントを更新し、フェーズを完了としてマークします。

  3. フェーズ 2 (アーキテクチャ計画) では、エージェントはアーキテクチャを提案する前にドキュメントとコードベースを調査します。 エージェントは次の操作を実行します。

    • PDP ドロップイ Commerce コンテナ、スロット、イベントペイロードに関するドキュメントを検索します。
    • blocks ディレクトリと scripts/initializers/ フォルダーをスキャンして、既存の PDP 関連コードを探します。
    • 使用可能なコンテナおよびスロットのコンテキスト形状の TypeScript 定義を調べます。

    次に、エージェントは次のようなアーキテクチャオプションを提示します。

    • オプション A: 既存の PDP ドロップインスロットをカスタマイズして、製品タイトル近くに定格を挿入できます。これは、軽いタッチで、アップグレードに適しています。
    • オプション B: API から独立して取得する新しいスタンドアロン product-ratings ブロックを作成します。より柔軟で、分離されています。
    • オプション C: 製品 SKU の PDP ドロップインイベントもリッスンする新しいブロックを作成します(ハイブリッドアプローチ)。

    この計画には、API 統合、パフォーマンスに関する考慮事項(遅延読み込み、キャッシュ)、セキュリティ(入力サニタイズ)、テストアプローチに関する詳細も含まれています。

    アーキテクチャ計画を確認し、エージェントに続行を指示します。

  4. フェーズ 3 (導入アプローチ) では、エージェントは次のいずれかを選択するように求めます。

    • オプション A: コードを生成する前に、詳細な実装計画を確認してください(最初にすべてのファイル、パターン、コード構造を参照してください)。
    • オプション B: コード生成に直接進みます。

    好みのアプローチを選択します。

  5. フェーズ 4 (実装) では、エージェントは選択したアーキテクチャに基づいてコードを生成します。 アプローチに応じて、エージェントはいくつかの特殊なスキルを使用します。

    • コンテンツモデリング: 新しいブロックが必要な場合、エージェントは、API エンドポイント URL を含んだ設定テーブルなど、作成者にとって使いやすいコンテンツ構造を設計します。
    • ブロック開発: エージェントは、JavaScriptの装飾関数、スコープ指定された CSS スタイル、アクセシビリティ用の ARIA ラベル、読み込みとエラー状態の処理など、Edge Delivery Services の規則に従ってブロックファイルを作成します。
    • ドロップインカスタマイズ: アーキテクチャでスロットのカスタマイズを使用する場合、エージェントは正しいコンテナを読み込み、製品タイトル近くの検証済みスロットを使用し、現在の SKU の製品データイベントをサブスクライブします。

    生成されるコードを監視し、必要に応じて質問したり、エージェントをリダイレクトしたりできます。 エージェントは、コードの生成が完了すると、実稼動環境への準備状況の概要を生成します。

  6. フェーズ 4.5 (テスト) 中、エージェントは実装のテストを提示します。 同意する場合、エージェントは次の操作を行います。

    • 適切なスクリプトとスタイルでローカルテストページを作成します。
    • 開発サーバーを起動します。
    • ビジュアルレンダリング、インタラクティビティ、レスポンシブ動作、アクセシビリティおよびパフォーマンスについて、ブラウザーベースの検証を実行します。
    • 結果を含む構造化テストレポートを生成します。

    ブラウザーに従って、動作を確認し、問題を報告します。

  7. コードベースの変更を確認し、製品ページのアップデートを確認します。

    開発環境とブラウザーに、次の変更が表示されます。

    • 製品評価コンポーネントが自動的に作成されます。
    • このコンポーネントは、選択したアーキテクチャに応じて、​ ドロップインスロット ​ を使用するか、スタンドアロンブロックとして PDP に統合されます。
    • 星は、API の評価値に基づいて、適切な盛土比率で表示されます。

    ​ 製品タイトルの下に統合された星評価を示す製品の詳細ページ ​ {width="600" modal="regular"}

チュートリアルの概要

このチュートリアルで扱うトピックの概要は次のとおりです。

  • 拡張機能の開発: AI エージェントに新しい機能を記述し、App Builder を使用して動作する REST API を生成する方法について説明します。
  • ローカルテストとデプロイメント: API をローカルでテストし、MCP ツールキットを使用してデプロイします。
  • サービス契約: バックエンドの拡張機能とストアフロントの実装を橋渡しする API コントラクトを作成しています。
  • 段階的なストアフロントの統合: AI 支援のスキルを使用して、要件、アーキテクチャ、実装を進めます。
  • ドロップイン統合: ドロップインコンテナおよびスロット Adobe Commerce 操作。
  • コンポーネントの再利用性: 複数のブロックで使用される共有コンポーネントを作成します。

次の手順

次の提案を使用して、評価拡張機能をカスタマイズするか、独自の変更を作成します。

星の色を変更する

エージェントで次のプロンプトを使用します。

Change the star fill color to red.

期待される結果:

星が赤に変わる。

​ 赤い星の塗り潰し色で表示された製品の評価 ​ {width="600" modal="regular"}

評価配分モーダルの追加

次の手順は、視覚的な参照を含む複雑な UI 機能をエージェントがどのように処理するかを示しています。

  1. 開始する前に: 次のモック画像を保存し、ストアフロントエージェントとのチャットに貼り付けます。

    ​ 星レベルによる格付分布の内訳を示したモックアップ ​ {width="600" modal="regular"}

  2. 参照画像をガイドとして使用して評価配布モーダルを作成するには、次の手順に従います。

    • API を更新して、評価配分を表す追加データを返すようにします。
    • API コントラクトを更新します。
    • ストアフロント コードベースの契約を更新します。
    • ストアフロントエージェントに、参照画像と更新された API 契約を使用して、PDP ページに評価配分を追加するように依頼します。
  3. コードベースに次の変更が加えられたことを確認し、製品ページで最新情報を確認します。

    • エージェントによる視覚的モックアップの解釈方法
    • アクセシビリティのために適切なHTML構造を使用しているかどうか
    • 配置およびインタラクションの状態の処理方法

配布モーダルのトラブルシューティング

モーダルが期待どおりに動作しない場合は、次の操作を試してください。

  • モーダルが表示されない場合は、ブラウザーコンソールでエラーを確認します。

  • ポジショニングがオフの場合は、エージェントに次の形式で修正を依頼します。

    code language-shell-session
    adjust the modal position to be...
    

​ 星レベルの分類バーを使用して、詳細な評価分布を表示するモーダル ​ {width="600" modal="regular"}

recommendation-more-help
76c6d489-ee5b-4411-84d1-033660e03d8c