Product Management APIs
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

商品配信APIの基礎

製品 API の基礎 では、製品の作成と管理に使用される管理 API について説明します。 ストアフロントに商品データを表示するには、商品配信 API を使用する必要があります。 チャネルから単一の製品またはすべての製品を取得するには、 headless-commerce-delivery-catalog サービスを呼び出します。

チャネルから製品を入手する

新しいLiferay DXPインスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/dxp:2025.q1.6-lts

メールアドレス test@liferay.com とパスワード testを使用して、 http://localhost:8080 で Liferay にサインインします。 プロンプトが表示されたら、パスワードを learnに変更します。

次に、次の手順に従います。

  1. Product Delivery API の基礎をダウンロードして解凍します。

    curl https://resources.learn.liferay.com/commerce/latest/en/product-management/developer-guide/liferay-k9b9.zip -O
    
    unzip liferay-k9b9.zip
    
  2. デフォルトでは、製品はすべてのチャネルで表示されます。 設定により可視性を制限できます。 詳細については、 「チャネルを使用した製品の表示設定 」を参照してください。

    チャネル ID を見つけるには、 グローバル メニュー (Applications Menu icon) を開き、 コマースチャネルに移動します。 チャンネルを選択すると、その IDが表示されます。

    グローバル メニュー (Applications Menu icon) を開き、 コマース製品に移動して製品 ID を見つけます。 製品を選択すると、その IDが表示されます。

  3. cURL スクリプトを使用して、チャネルから製品を取得します。 コマンドラインで、curlフォルダに移動します。 チャンネル ID と製品 ID をパラメータとして、 Products_GET_ById.sh スクリプトを実行します。 1234 をチャネル ID に置き換え、 5678 を製品 ID に置き換えます。

    ./Products_GET_ById.sh 1234 5678
    

    JSON 応答には製品が表示されます。

    {
       "catalogName": "Minium",
       "createDate": "2024-11-11T13:15:37Z",
       "customFields": [],
       "description": "Product designed and manufactured to accommodate OEM applications. All\nproducts are tested and inspected in an ISO-9000 compliant environment",
       "expando": {},
       "externalReferenceCode": "MIN93015minium-initializer",
       "id": 34309,
       "metaDescription": "",
       "metaKeyword": "",
       "metaTitle": "",
       "modifiedDate": "2024-11-11T13:35:41Z",
       "name": "ABS Sensor",
       "productConfiguration": {
          "allowBackOrder": true,
          "allowedOrderQuantities": [],
          "availabilityEstimateId": 34326,
          "availabilityEstimateName": "3-5 days",
          "inventoryEngine": "",
          "maxOrderQuantity": 10000,
          "minOrderQuantity": 1,
          "multipleOrderQuantity": 1
       },
       "productId": 34310,
       "productType": "simple",
       "shortDescription": "",
       "slug": "abs-sensor",
       "tags": [],
       "urlImage": "https://localhost:8080/o/commerce-media/default/?groupId=34197",
       "urls": {
          "en_US": "abs-sensor"
       }
    }
    
  4. Java クライアントを使用して REST サービスを呼び出すこともできます。 curl フォルダから、 java フォルダに移動します。 ソースファイルをコンパイルします。

    javac -classpath .:* *.java
    
  5. Products_GET_ById クラスを実行します。 1234 をチャネル ID に置き換え、 5678 を製品 ID に置き換えます。

    java -classpath .:* -DchannelId=1234 -DproductId=5678 Products_GET_ById
    

cURLコマンドの検証

Products_GET_ById.sh スクリプトは、cURL コマンドを使用して REST サービスを呼び出します。

curl \
	"http://localhost:8080/o/headless-commerce-delivery-catalog/v1.0/channels/${1}/products/${2}" \
	--user "test@liferay.com:learn"

ここでは、コマンドの引数を紹介します。

引数説明
"http://localhost:8080/o/headless-commerce-delivery-catalog/v1.0/channels/${1}/products/${2}"RESTサービスのエンドポイント
-u "test@liferay.com:learn"基本的な認証情報

ここでは、デモのために基本的な認証を使用しています。 本番環境では、 OAuth2経由でユーザーを認証する必要があります。 OAuth2 を利用するサンプル React アプリケーションについては、 OAuth2 を使用してユーザーを承認する を参照してください。

Javaクラスを調べる

Products_GET_ById.java クラスは、製品関連のサービスを呼び出してチャネルから製品を取得します。

public static void main(String[] args) throws Exception {
	ProductResource.Builder builder = ProductResource.builder();

	ProductResource productResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		productResource.getChannelProduct(
			Long.valueOf(System.getProperty("channelId")),
			Long.valueOf(System.getProperty("productId")), null));
}

このクラスは、次の3行のコードのみを使用してRESTサービスを呼び出します。

行(省略形)説明
ProductResource.Builder builder = ...ProductResource サービスインスタンスを生成するための Builder を取得します。
ProductResource productResource = builder.authentication(...).build();基本認証を指定し、 ProductResourceサービスインスタンスを生成します。
productResource.getChannelProduct(...);productResource.getChannelProduct メソッドを呼び出し、パラメータを渡して製品を取得します。

プロジェクトには、依存関係としてcom.liferay.headless.commerce.delivery.catalog.client.jarファイルが含まれていることに注意してください。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/apiでインストール先のAPIエクスプローラーで確認できます。

メイン メソッドのコメントは、クラスの実行を示しています。

他の Java クラスの例もこれに似ていますが、異なる ProductResource メソッドを呼び出します。

重要

サービスの詳細については、 ProductResource を参照してください。

以下は、cURL と Java を使用して Product REST サービスを呼び出す別の例です。

チャネルからすべての製品を取得する

次の cURL または Java コマンドを実行すると、チャネルからすべての製品を取得できます。

Products_GET_FromChannels.sh

コマンド:

./Products_GET_FromChannels.sh

コード:

curl \
	"http://localhost:8080/o/headless-commerce-delivery-catalog/v1.0/channels/${1}/products" \
	--user "test@liferay.com:learn"

Products_GET_FromChannels.java

コマンド:

java -classpath .:* Products_GET_FromChannels

コード:

public static void main(String[] args) throws Exception {
	ProductResource.Builder builder = ProductResource.builder();

	ProductResource productResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	Page<Product> page = productResource.getChannelProductsPage(
		Long.valueOf(System.getProperty("channelId")), null, null, null,
		Pagination.of(1, 2), null);

	System.out.println(page);
}

Product チャネル オブジェクトの出力は JSON です。

このAPIでは、製品のフィルタリング、ページ分割、検索、ソートを行うためのパラメーターも許可します。 詳細については、 getProductsPage メソッドを参照してください。 クエリでは、以下の製品フィールドを使用して、結果のフィルタリング、検索、ソートを行うことができます。

  • catalogId
  • categoryIds
  • categoryNames
  • createDate
  • カスタムフィールド Liferay DXP 2024.Q4+/ポータル GA129+
  • modifiedDate
  • name
  • productType
  • statusCode
  • tags
フィルタークエリ説明
productType eq 'simple'製品種類がシンプル
contains(name, 'Bar')製品名にBarを含む
customFields/sampleSize eq '100.0'カスタムフィールド名 sampleSize は 100 です
ソートクエリ説明
createDate:desccreateDate の降順で並べ替えます
name:asc名前 で昇順に並べ替える
createDate:desc,name:descまず createDate の降順で並べ替え、次に名前の降順で並べ替えます。

詳細については、 API クエリ パラメータ を参照してください。

重要

上記の両方のエンドポイントには、オプションの accountId パラメータもあります。 ユーザーが複数のアカウントに属している場合は、これらの API を呼び出すときに accountId を渡す必要があります。