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

このチュートリアルでは、Adobe App BuilderとAI支援の開発ツールを使用して、Adobe Commerce as a Cloud Serviceの製品評価拡張機能を構築する方法について説明します。

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

前提条件を確認

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

# 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
    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
    担当者がドキュメントの検索をリクエストした場合は、許可します。
  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. エージェントにコード生成を続行するように指示します。

    エージェントは必要なコードを生成し、次の手順を詳しく説明します。

    評価APIのAI エージェントフェーズ 2 アーキテクチャ計画 {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との統合

Edge Delivery Servicesによって提供されるAdobe Commerce ストアフロントと評価APIを統合するには、エージェントに対して、評価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
commerce-help-cloud-service