> For the complete documentation index, see [llms.txt](https://documentation.pushly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.pushly.com/pushly-ja/integration/implementation-steps/android/sdk-kotlin-java/e-commerce-support.md).

# コマースおよびカタログアイテムのイベント

このガイドでは、Android SDK を使用して、Commerce およびカタログ関連のユーザー操作を Pushly に送信する方法を説明します。これらのイベントは、カート放棄通知、保存アイテムのリマインダー、収益アトリビューション、カタログ駆動型レコメンデーションキャンペーンなどの機能を支えます。

以下のイベントを送信する前に、Pushly Android SDK を読み込み、初期化しておく必要があります。

{% hint style="info" %}
以下の手順では、商品カタログ/フィードを当社チームに提供していることを前提としています。このプロセスの詳細については、アカウントマネージャーにお問い合わせください。
{% endhint %}

### サポートされているインタラクション種別

Pushly は以下の Commerce およびカタログのインタラクションをサポートしています:

* **view\_item** – ユーザーが商品詳細ページを閲覧する
* **save\_item** – ユーザーが商品を保存、またはお気に入り登録する
* **unsave\_item** – ユーザーが保存済み、またはお気に入りから商品を削除する
* **complete\_item** – ユーザーがアイテムを完了する
* **uncomplete\_item** – ユーザーが完了済みアイテムを削除する
* **rate\_item** – ユーザーがアイテムを評価する
* **unrate\_item** – ユーザーがアイテムの評価を削除する
* **add\_to\_cart** – ユーザーが商品をカートに追加する
* **update\_cart** – ユーザーがカートの内容または数量を変更する
* **purchase** – ユーザーが取引を完了する

各インタラクションでは、カタログ構成に応じて、3種類の識別子タイプのいずれかを使用して商品を参照できます。

各アイテムには `id`が必要です。数量と評価は、特に記載がない限り任意です。

{% hint style="danger" %}
以下のコードスニペットはすべて実行する必要があります **の後に** SDK が初期化されたあとに。
{% endhint %}

### 商品を閲覧

ユーザーが商品詳細ページを閲覧したときに、このイベントを送信します。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.viewItem(CatalogItem(id = "ITEM_ID"))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.viewItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

### 商品を保存

ユーザーが商品を保存、お気に入り登録、またはブックマークしたときにこのイベントを使用します。これにより、保存アイテムのリマインダーキャンペーンが有効になります。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.saveItem(CatalogItem(id = "ITEM_ID"))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.saveItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

### 保存解除

ユーザーが保存リスト、お気に入り、またはブックマークから商品を削除したときにこのイベントを使用します。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.unsaveItem(CatalogItem(id = "ITEM_ID"))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.unsaveItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

### 完了済みアイテム

ユーザーは、想定された体験を完了した後、そのアイテムを完了済みとしてマークします。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.completeItem(CatalogItem(id = "ITEM_ID"))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.completeItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

### 完了を取り消す

アイテムの完了状態を取り消すには、このイベントを使用します。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.uncompleteItem(CatalogItem(id = "ITEM_ID"))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.uncompleteItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

### 商品を評価

この `rate_item` イベントには任意の `評価` プロパティが含まれます。指定する場合は、 `評価` 数値は **0～100** の範囲内で、 **小数点以下1桁まで**。整数値も有効です。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.rateItem(CatalogItem(id = "ITEM_ID", rating = 5))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.rateItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
この `評価` 値は、製品本来の尺度を反映する必要があります。ユースケースに合う範囲を自由に使用してください（例: 星評価なら 1～5、スコアなら 0～10、割合形式の評価なら 1～100）。唯一の要件は、値が 0～100 の範囲内で、かつ小数点以下 1 桁以下であることです。
{% endhint %}

### 評価を解除

ユーザーがアイテムの評価を削除したときにこのイベントを使用します。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.unrateItem(CatalogItem(id = "ITEM_ID"))
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.unrateItem(new CatalogItem("ITEM_ID"));
```

{% endtab %}
{% endtabs %}

### カートに追加

ユーザーが商品をカートに追加するたびにこのイベントを送信します。Pushly は複数回の呼び出しにわたってカート状態を集計します。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.addToCart(listOf(CatalogItem("ITEM_ID", 5)))
```

{% endtab %}

{% tab title="Java" %}

```java
List<CatalogItem> items = new ArrayList<>();
items.add(new CatalogItem("ITEM_ID", 5));
PushSDK.UserProfile.addToCart(items);
```

{% endtab %}
{% endtabs %}

必要に応じて `add_to_cart` 訪問者のカート内のすべての商品を追跡するために、何度でも呼び出せます。購入されていないカート内の商品については、カート放棄通知が送信される場合があります。

購入が行われると、訪問者のカートは空になり、購入済み商品の通知は訪問者に送信されません。

### カートを更新

ユーザーが購入を完了せずにカートを変更したとき、たとえば数量の調整や商品の削除を行ったときにこのイベントを使用します。

カートから商品を削除するには、次の `update_cart` メソッドを、現在のカート情報全体（削除する商品を除く）を指定して呼び出します:

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.updateCart(listOf(CatalogItem("ITEM_ID", 5)))
```

{% endtab %}

{% tab title="Java" %}

```java
List<CatalogItem> items = new ArrayList<>();
items.add(new CatalogItem("ITEM_ID", 5));
PushSDK.UserProfile.updateCart(items);
```

{% endtab %}
{% endtabs %}

また、カートが完全に空の場合は空の配列を指定します:

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.updateCart(emptyList())
```

{% endtab %}

{% tab title="Java" %}

```java
PushSDK.UserProfile.updateCart(new ArrayList<>());
```

{% endtab %}
{% endtabs %}

### 購入

注文が正常に完了した後にこのイベントを送信します。これにより、カート放棄状態がクリアされ、収益アトリビューションが有効になります。

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
PushSDK.UserProfile.trackPurchase(
    items = listOf(CatalogItem(id = "ITEM_ID", quantity = 5)),
    purchaseId = "ABC123",
    priceValue = "344.33"
)
```

{% endtab %}

{% tab title="Java" %}

```java
List<CatalogItem> items = new ArrayList<>();
items.add(new CatalogItem("ITEM_ID", 5));
PushSDK.UserProfile.trackPurchase(items, "ABC123", "344.33");
```

{% endtab %}
{% endtabs %}

#### 購入フィールド

* **priceValue** – ドメインに設定された通貨での購入合計金額
* **purchaseId** – 一意の注文識別子

ある `purchase` イベントが商品データなしで送信された場合でも、Pushly はユーザーのカート状態をクリアします。

#### 通貨の取り扱い

`price_value` は、プラットフォームのドメイン設定でそのドメインに構成された通貨で指定する必要があります。

ピリオド（`.`）を、ロケールに関係なくすべての通貨の小数点区切りとして使用してください。カンマは使用しないでください。

例:

* USD: `"344.33"`
* JPY: `"5000"`

### 必須フィールドの概要

* `id` はすべてのアイテムで必須です
* `quantity` はカートまたは購入数量を追跡する場合にのみ必須です
* `評価` はアイテムを評価する場合にのみ必須です

### 実装のベストプラクティス

SDK はページのライフサイクルの早い段階で初期化し、イベントの取りこぼしを防いでください。

すべてのインタラクション種別で一貫した商品 ID を使用し、Pushly が行動を正しく関連付けられるようにしてください。

トリガー `purchase` 可能な限り、信頼できる確認ステップからイベントを発火し、誤ったカート放棄通知を避けてください。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.pushly.com/pushly-ja/integration/implementation-steps/android/sdk-kotlin-java/e-commerce-support.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
