クイックスタート: B2C Commerce API と SDK

Salesforce Commerce SDK を使用して、B2C Commerce API への最初のリクエストを行います。

On-Demand Sandbox の操作については、On-Demand Sandbox を使用した開発を参照してください。

このデモでは、Shopper Search API を使用して、ストアフロントのサンプルカタログに掲載されているワンピースを検索します。

テストプロジェクトの作成 

まず、テストプロジェクトを作成し、SDK をパッケージ依存としてインストールします。

ターミナルを開き、次のコマンドを実行します。

1mkdir test-commerce-sdk
2cd test-commerce-sdk
3npm init -y
4npm install commerce-sdk

デモコード 

get-dresses.js という名前のファイルを作成し、テキストエディターで開きます。

以下のデモコードをコピーし、ファイルにペーストします。

1const { Search, Customer } = require("commerce-sdk");
2
3const SLAS_CLIENT_ID = "da422690-7800-41d1-8ee4-3ce983961078";
4// WARNING: Secret is provided here for convenience only. Do not include secrets in your code!
5const SLAS_CLIENT_SECRET = "D*HHUrgO2%qADp2JTIUi";
6// const SLAS_CLIENT_SECRET = process.env.SLAS_CLIENT_SECRET
7const ORG_ID = "f_ecom_zzte_053";
8const SHORT_CODE = "kv7kzm78";
9const SITE_ID = "RefArch";
10
11// Client configuration parameters
12const config = {
13  headers: {},
14  parameters: {
15    clientId: SLAS_CLIENT_ID,
16    organizationId: ORG_ID,
17    shortCode: SHORT_CODE,
18    siteId: SITE_ID,
19  },
20};
21
22/**
23 * Get the shopper or guest JWT/access token, along with a refresh token, using client credentials
24 *
25 * @returns guest user authorization token
26 */
27async function getGuestUserAuthToken() {
28  const base64Auth = Buffer.from(`${SLAS_CLIENT_ID}:${SLAS_CLIENT_SECRET}`).toString("base64");
29  const headers = { Authorization: `Basic ${base64Auth}` };
30  const loginClient = new Customer.ShopperLogin(config);
31  return await loginClient.getAccessToken({
32    headers,
33    body: { grant_type: "client_credentials", channel_id: "RefArch" },
34  });
35}
36
37// Get a JWT to use with Shopper API clients
38async function run() {
39  let tokenData;
40  try {
41    tokenData = await getGuestUserAuthToken();
42  } catch (e) {
43    console.error(e);
44    console.error(await e.response.text());
45    return;
46  }
47
48  // Add the token to the client configuration
49  config.headers["authorization"] = `Bearer ${tokenData.access_token}`;
50
51  // Search for dresses
52  const searchClient = new Search.ShopperSearch(config);
53  const limit = 3;
54  const searchResults = await searchClient.productSearch({
55    parameters: { q: "dress", limit: limit },
56  });
57
58  if (searchResults.total) {
59    for (i = 0; i < limit; i++) {
60      const result = searchResults.hits[i];
61      console.log(`💃 ${result.productId} ${result.productName}`);
62    }
63  } else {
64    console.log("No results for search");
65  }
66}
67
68run();

デモコードの実行 

ターミナルに戻り、次のデモコードを実行します。

1node get-dresses.js

get-dresses.js の出力は、次のようになります。

1💃 25592581M Floral Dress
2💃 25593727M V-Neck Dress
3💃 25589753M Pack-And-Go Dress

その他のサンプルコードについては、Commerce SDK リポジトリの examples ディレクトリを参照してください。

次のステップ 

このデモでは、以下の設定タスクをすでに完了しています。

  • サンプル商品を含むデモデータが入ったデモ Sandbox (サンドボックス) の作成
  • クライアント ID とクライアントシークレットの両方を含むデモ API クライアントの作成
  • デモ Sandbox (サンドボックス) およびデモ API クライアントで使用できる SLAS の構成

API と SDK を 実際の B2C Commerce インスタンスで使用するには、これらの設定タスクを各自が完了する必要があります。これらのタスクについては、ベース URL とリクエストの作成Shopper API の認可のガイドで説明しています。

設定タスクを完了したら、SDK の READMEAPI 参照資料の API 仕様を確認してください。