---
title: "产品与产品优惠命令"
description: "Adapty CLI 命令，用于列出、读取、创建和更新产品，将其映射到 App Store 和 Google Play 产品 ID，并将商店优惠与之关联。"
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skills: `npx adapty skills install --yes`

这些 Adapty CLI 命令用于管理[产品](product)，将其映射到对应的 App Store 和 Google Play 产品 ID，并将商店优惠与之关联。

## 产品 \{#products\}

### adapty products list

列出某个应用的所有[产品](product)。

```bash
adapty products list --app <app-id>
```

| 参数 | 是否必填 | 描述 |
|---|---|---|
| `--app` | 是 | 应用 ID（UUID） |

支持[分页参数](developer-cli-reference#global-flags)。

### adapty products get

获取特定[产品](product)的详细信息。

```bash
adapty products get --app <app-id> <product-id>
```

| 参数 | 说明 |
|---|---|
| `product-id` | 产品 ID（UUID） |

| 标志 | 是否必填 | 说明 |
|---|---|---|
| `--app` | 是 | 应用 ID（UUID） |

### adapty products create

创建一个新[产品](product)。

:::important
商店产品和价格 ID 在创建后无法更改。如需使用不同的商店 ID，请创建新产品。
:::

```bash
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
```

| 参数 | 是否必填 | 说明 |
|---|---|---|
| `--app` | 是 | 应用 ID（UUID） |
| `--title` | 是 | 产品标题 |
| `--access-level-id` | 是 | 该产品解锁的[访问等级](access-level) ID（UUID） |
| `--period` | 是 | 订阅周期：`weekly`、`monthly`、`two_months`、`trimonthly`、`semiannual`、`annual`、`lifetime` |
| `--ios-product-id` | 至少需要填写一个渠道 | App Store Connect 中的产品 ID |
| `--android-product-id` | 至少需要填写一个渠道 | Google Play Console 中的产品 ID |
| `--android-base-plan-id` | 与 `--android-product-id` 同时使用时必填，除非 `--period lifetime` | Google Play Console 中的基础方案 ID |
| `--stripe-product-id` | 至少需要填写一个渠道 | Stripe 中的产品 ID |
| `--stripe-price-id` | 与 `--stripe-product-id` 同时使用时必填 | Stripe 中的价格 ID |
| `--paddle-product-id` | 至少需要填写一个渠道 | Paddle 中的产品 ID |
| `--paddle-price-id` | 与 `--paddle-product-id` 同时使用时必填 | Paddle 中的价格 ID |

每个产品至少需要绑定一个商店：`--ios-product-id`、`--android-product-id`、`--stripe-product-id` 或 `--paddle-product-id`。一个产品可以同时携带多个商店的 ID。

如需通过 Stripe 或 Paddle 在网页端销售产品，请先将支付提供商连接到 Adapty：参见 [Stripe](stripe) 和 [Paddle](paddle)。对于这些商店，需要同时传入产品 ID 和价格 ID，缺少任意一项命令都会失败。

```bash
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx
```

仅限 Web 端的产品也是有效的：你可以创建只有 Stripe 或 Paddle ID、没有 App Store 或 Google Play ID 的产品。

### adapty products update

更新现有[产品](product)。

创建后，商店产品和价格 ID 无法更改，且此命令中不可用。如需使用不同的商店 ID，请创建新产品。

```bash
adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
```

| 参数 | 描述 |
|---|---|
| `product-id` | 产品 ID（UUID） |

| 标志 | 是否必填 | 说明 |
|---|---|---|
| `--app` | 是 | 应用 ID（UUID） |
| `--title` | 否 | 产品标题 |
| `--access-level-id` | 否 | 该产品解锁的[访问等级](access-level) ID（UUID） |

## 产品优惠 \{#product-offers\}

将您在 App Store Connect 或 Google Play Console 中创建的优惠与 Adapty 产品关联，以便 Adapty 能够应用这些优惠。有关每种优惠类型的作用以及如何在应用商店中创建优惠，请参阅[向 Adapty 添加优惠](create-offer)。

添加以下优惠：

- App Store 促销活动和赢回优惠。
- 所有 Google Play 优惠，包括免费试用。Google Play 没有新用户优惠类型，因此试用是基础方案上的一种优惠，只有在您于 Adapty 中关联后才会生效。

无需添加 App Store 新用户优惠：这些优惠会自动应用于符合条件的用户。

关联的优惠仍需在流程或付费墙中为对应产品选择后，用户才能看到。要在付费墙中选择优惠，请使用 Adapty 看板：请参阅[展示优惠](create-offer#2-display-offer)。

`adapty products list` 和 `adapty products get` 会在 `offers_count` 字段中显示每个产品关联的优惠数量。该数量仅统计在 Adapty 中关联的优惠，不包括应用商店中已存在的优惠。

### adapty product-offers list

列出链接到某个[产品](product)的所有优惠。

```bash
adapty product-offers list --app <app-id> --product <product-id>
```

| Flag | Required | Description |
|---|---|---|
| `--app` | Yes | App ID (UUID) |
| `--product` | Yes | Product ID (UUID) |

一次性返回所有优惠，不支持[分页标志](developer-cli-reference#global-flags)。

### adapty product-offers get

获取特定优惠的详细信息。

```bash
adapty product-offers get --app <app-id> <offer-id>
```

| 参数 | 描述 |
|---|---|
| `offer-id` | 优惠 ID（UUID） |

| 标志 | 必填 | 描述 |
|---|---|---|
| `--app` | 是 | 应用 ID（UUID） |

### adapty product-offers create

将商店优惠关联到[产品](product)。

```bash
adapty product-offers create --app <app-id> --product <product-id> --title "Spring" --type promotional --ios-offer-id spring_ios --android-offer-id spring-android
```

| 参数 | 是否必填 | 说明 |
|---|---|---|
| `--app` | 是 | App ID（UUID） |
| `--product` | 是 | 产品 ID（UUID） |
| `--title` | 是 | 优惠名称，仅在 Adapty 看板中显示 |
| `--type` | 是 | 优惠类型：`promotional` 或 `win_back` |
| `--ios-offer-id` | 至少需要填写一个平台 | App Store Connect 中的优惠 ID |
| `--android-offer-id` | 至少需要填写一个平台 | Google Play Console 中的优惠 ID |

赢回优惠仅适用于 App Store，因此 `--type win_back` 只能使用 `--ios-offer-id`。Google Play 上的所有优惠（包括免费试用）均使用 `--type promotional`。

```bash
adapty product-offers create --app <app-id> --product <product-id> --title "Come back" --type win_back --ios-offer-id winback_ios
```

### adapty product-offers update

更新现有优惠。

```bash
adapty product-offers update --app <app-id> <offer-id> --title "Spring 2"
```

| 参数 | 描述 |
|---|---|
| `offer-id` | 优惠 ID（UUID） |

| 标志 | 是否必填 | 描述 |
|---|---|---|
| `--app` | 是 | 应用 ID（UUID） |
| `--title` | 否 | 优惠名称 |
| `--type` | 否 | 优惠类型：`promotional` 或 `win_back`。若要将优惠改为 `win_back`，还需使用 `--clear-android-offer-id` 移除其 Google Play 端配置 |
| `--ios-offer-id` | 否 | 新的 App Store 优惠 ID |
| `--android-offer-id` | 否 | 新的 Google Play 优惠 ID |
| `--clear-ios-offer-id` | 否 | 移除该优惠的 App Store 端配置 |
| `--clear-android-offer-id` | 否 | 移除该优惠的 Google Play 端配置 |

除 `--app` 之外，至少需要一个标志。未填写的字段保留当前值。每个促销活动至少保留一个商店优惠 ID，因此如果操作会删除最后一个 ID，命令将执行失败。

:::warning
该命令会读取促销活动并整体保存。如果在读取和保存之间，有人在 Adapty 看板中编辑了同一促销活动，其修改将被覆盖。
:::

新用户优惠无法更新。渠道不属于 App Store 或 Google Play 的促销活动也无法通过 CLI 更新：请在 Adapty 看板中进行编辑。

要删除优惠，请使用 Adapty 看板。CLI 不支持删除命令。

## 接下来做什么 \{#whats-next\}

- [命令参考](developer-cli-reference) — 所有 CLI 主题、全局标志及分页标志。