> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kameleoon.API.Products: Tracking

> 製品とカテゴリの閲覧、検索、カートとウィッシュリストの変更、購入を送信する Kameleoon.API.Products メソッドのリファレンスです。

これらのメソッドを使用して、製品とカテゴリの閲覧、検索、カートの変更、ウィッシュリストへの追加、購入を Kameleoon に送信します。

> [!NOTE]
>
> このモジュールは、Product Recommendation モジュールまたは Product Targeting アドオンを購読している場合に利用できます。

## trackAddToCart

`trackAddToCart()` メソッドは、訪問者がショッピングカートに商品を追加したときにトリガーされます。

```javascript theme={null}
var buyButton = Kameleoon.API.Utils.querySelectorAll("#buyButton")[0];
Kameleoon.API.Utils.addEventListener(buyButton, "mousedown", function () {
  Kameleoon.API.Products.trackAddToCart("myProductId", 19.99, 1, {
    stock: true, 
    recommended_code: 'some-unique-code', //see the arguments table for more information
    recommended_by: 'dynamic'//see the arguments table for more information
  });
});
```

**引数**

| 名前 | 型 | 説明 |
| - | - | - |
| productID | String | 商品の一意の識別子。このフィールドは必須です。 |
| unitPrice | Number | **productID** で参照される製品の 1 単位あたりの価格。このフィールドは省略可能です。指定しない場合、Kameleoon はインポートした製品フィードの製品のデフォルト価格を使用します。 |
| amount | Number | カート更新後の商品の合計数量。インクリメンタルな値ではなく絶対値を使用してください。たとえば、カートに同じ `productID` のアイテムが 2 つあり、もう 1 つ追加する場合は 3 を指定します。20 個入っているカートから 2 個削除する場合は 18 を指定します。 |
| parameters | Object | [推奨プラットフォームのパラメータ。](#推奨プラットフォームのパラメータ) このフィールドは省略可能です。 |

### 推奨プラットフォームのパラメータ

| 名前 | 型 | 説明 |
| - | - | - |
| recommended\_by | String | SPA またはポップアップの場合、この値を "dynamic" に設定します。このフィールドは特定のシナリオで必須です。 |
| recommended\_code | String | SPA またはポップアップの場合、アカウントの "data-recommender-code" 属性にある一意のウィジェットコードを提供します。 |
| stock | Boolean | 商品の在庫状況。この値は商品フィードまたはカタログインポートからのデータを上書きします。このフィールドは省略可能です。 |

## trackAddToWishList

`trackAddToWishList()` メソッドは、訪問者がウィッシュリストやお気に入りに商品を追加または削除したときに実行されます。

```javascript theme={null}
Kameleoon.API.Products.trackAddToWishList("myProductId"); // to add to wish list

Kameleoon.API.Products.trackAddToWishList("myProductId", -1); // to remove from wish list
```

| 名前 | 型 | 説明 |
| - | - | - |
| productId | String | ウィッシュリストに追加された商品の一意の識別子。このフィールドは必須です。 |
| quantity | Number | 更新する数量。削除を示すには負の値 (例: -1) を使用します。省略された場合、このメソッドはデフォルトで **1** になります。 |

## trackCategoryView

`trackCategoryView()` メソッドは、セッション中の各カテゴリページビューに対して実行されます。

```javascript theme={null}
if (location.href.indexOf("productPage") != -1) {
  Kameleoon.API.Core.runWhenConditionTrue(function () {
    return typeof dataLayer != null;
  }, function () {
    dataLayer.forEach(function (map) {
      if (map.categoryID) {
        Kameleoon.API.Products.trackCategoryView(5);
      }
    });
  }, 200);
}
```

**引数**

| 名前 | 型 | 説明 |
| - | - | - |
| categoryID | String | 一意のカテゴリ識別子。このフィールドは必須です。 |

## trackProductView

`trackProductView()` メソッドは、セッション中の各商品ビューに対して実行されます。このメソッドにより、Kameleoon は XML フィード統合なしで自動化された商品カタログを構築でき、商品推奨プロジェクトのセットアップが簡素化されます。

```javascript theme={null}
Kameleoon.API.Products.trackProductView("myProductID", {
    "name": "productName",
    "categories": [{
        "id": "13",
        "name": "productCategory",
        "parent": null,
        "url": "website.com/category/2"
    }],
    "imageURL": "https://www.mywebsite/productImage.jpg",
    "price": 19.99,
   "oldPrice": 23.99,
    "accessories": ['productID1', 'productID2'],
    "available": true,
    "availableQuantity": 15,
    "brand": "productBrand",
    "groupId": "groupID1",
    "sku": "productSKU",
    "description": "This is a short description",
    "rating": 4,
    "model": "phone 14 128GB",
    "leftovers": "one",
    "tags": ["shirt", "red"],
    "typePrefix": "mobile phone",
    "seasonality": [1, 2, 3, 10, 11, 12],
    "priceMargin": 100,
    "isChild": false,
    "isNew": false,
    "isFashion": true,
    "auto": {
        "vds": ["BP8AN5", "HH5820"],
        "compatibility": [ 
            {
                "brand": "BMW"
            }, 
            { 
                "brand": "Mini", "model": "Cooper S" 
            } 
        ]
    },
    "fashion":  {
        "gender": "f",
        "type": "shoe",
        "sizes": ["37", "42"],
        "feature": "adult",
        "colors": [ 
            { 
                "color": "red" 
            }, 
            { 
                "color": "green", "picture": "https://example.com/items/395532-green.jpg" 
            }
        ]
    },
    "params": [
        {
            "name": "connectivity",
            "value": ["bluetooth", "wi-fi"]
        },
        {
            "name": "lengths",
            "value": ["4", "6", "8"],
            "unit": "cm"
        }
    ]
});
```

**引数**

| 名前 | 型 | 説明 |
| - | - | - |
| productID | String | 製品の識別子。この製品を特定する一意の値を使用してください。このフィールドは必須です。 |
| productData | Object | [Product オブジェクト](https://docs.kameleoon.com/ja/developer-docs/apis/activation-api-js/api-reference/objects/goal-segment-trigger-and-product.md#product)。Product Recommendation アドオンを通じて製品フィードをインポートする場合は必須です。 |

## trackSearchQuery

`trackSearchQuery()` メソッドはユーザーの検索クエリを記録します。

```javascript theme={null}
Kameleoon.API.Products.trackSearchQuery("Example search request");
```

**引数**

| 名前 | 型 | 説明 |
| - | - | - |
| search\_query | String | 検索クエリの値。このフィールドは必須です。 |

## trackTransaction

`trackTransaction()` メソッドは、取引または購入が発生したときに実行されます。

```javascript theme={null}
Kameleoon.API.Products.trackTransaction(
 [
  {
   "productID": "myProductID1",
   "quantity": 4
  },
  {
   "productID": "myProductID4564",
   "quantity": 1
  }
 ],
 {
  "order": "N318",
  "order_price": 29999
 }
);
```

**引数**

| 名前 | 型 | 説明 |
| - | - | - |
| products | Array | 取引内の各商品の `productID` と `quantity` を含むオブジェクトのリスト。このフィールドは必須です。 |
| params | Object | [推奨プラットフォーム用の追加パラメータ。](#additional-parameters-for-tracktransaction) このフィールドは省略可能です。 |

### trackTransaction の追加パラメータ

| 名前 | 型 | 説明 |
| - | - | - |
| order | string | 店舗の注文番号。これを省略すると、エンジンは内部の番号付けシステムを使用し、注文ステータスの同期ができなくなります。下記のパラメータ説明を参照してください。 |
| order\_price | Number | 割引、ボーナス、追加サービスを含む最終的な注文金額。省略すると、エンジンは商品データベースから割引やサービスを含まない金額を計算します。 |
| email | string | 顧客のメールアドレス。 |
| phone | string | 顧客の電話番号。 |
| promocode | string | 取引のプロモコード。 |
| order\_cash | number | 現金支払金額。 |
| order\_bonuses | number | ボーナス支払金額。 |
| order\_delivery | number | 配送料。 |
| order\_discount | number | 注文割引金額。 |
| delivery\_type | string | 配送方法。 |
| payment\_type | string | 支払いタイプ (例: "cash"、"card"、"wire")。 |
| tax\_free | boolean | 免税ステータス。 |
