---
title: "Команды для продуктов и офферов"
description: "Команды Adapty CLI для просмотра, чтения, создания и обновления продуктов, их привязки к идентификаторам продуктов App Store и Google Play, а также связывания офферов стора с ними."
---

> **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, а также связывают офферы стора с ними.

## Продукты \{#products\}

### adapty products list

Список всех [продуктов](product) приложения.

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

| Flag | Required | Description |
|---|---|---|
| `--app` | Yes | 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
Идентификаторы продукта и цены в сторе нельзя изменить после создания. Чтобы использовать другие идентификаторы стора, создайте новый продукт.
:::

```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` | Да | ID [уровня доступа](access-level) (UUID), который открывает этот продукт |
| `--period` | Да | Период подписки: `weekly`, `monthly`, `two_months`, `trimonthly`, `semiannual`, `annual`, `lifetime` |
| `--ios-product-id` | Требуется хотя бы один стор | ID продукта из App Store Connect |
| `--android-product-id` | Требуется хотя бы один стор | ID продукта из Google Play Console |
| `--android-base-plan-id` | Обязателен с `--android-product-id`, если не указан `--period lifetime` | ID базового плана из Google Play Console |
| `--stripe-product-id` | Требуется хотя бы один стор | ID продукта из Stripe |
| `--stripe-price-id` | Обязателен с `--stripe-product-id` | ID цены из Stripe |
| `--paddle-product-id` | Требуется хотя бы один стор | ID продукта из Paddle |
| `--paddle-price-id` | Обязателен с `--paddle-product-id` | ID цены из Paddle |

Каждому продукту нужен хотя бы один стор: `--ios-product-id`, `--android-product-id`, `--stripe-product-id` или `--paddle-product-id`. Один продукт может содержать идентификаторы сразу для нескольких сторов.

Чтобы продавать продукт через веб с помощью Stripe или Paddle, сначала подключите платёжного провайдера к Adapty: см. [Stripe](stripe) и [Paddle](paddle). Для каждого из этих сторов передавайте идентификатор продукта и идентификатор цены вместе. Если передать только один из них, команда завершится с ошибкой.

```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
```

Продукт только для веб-платформ допустим: можно создать продукт с идентификаторами Stripe или Paddle без идентификаторов App Store или Google Play.

### adapty products update

Обновление существующего [продукта](product).

Идентификаторы продукта в сторе и цены нельзя изменить после создания — они недоступны в этой команде. Чтобы использовать другие идентификаторы стора, создайте новый продукт.

```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` | Нет | ID (UUID) [уровня доступа](access-level), который открывает этот продукт |

## Предложения для продукта \{#product-offers\}

Свяжите предложения, созданные в App Store Connect или Google Play Console, с продуктом Adapty, чтобы Adapty мог их применять. О том, что делает каждый тип предложения и как создать его в сторе, читайте в разделе [Добавление предложений в Adapty](create-offer).

Добавьте следующие предложения:

- Promotional offer и win-back offer из App Store.
- Все предложения Google Play, включая бесплатные пробные периоды. В Google Play нет отдельного типа introductory offer: пробный период — это предложение в рамках базового плана, и оно применяется только после того, как вы свяжете его в Adapty.

Introductory offer из App Store добавлять не нужно: они применяются автоматически для подходящих пользователей.

Связанный offer всё равно нужно выбрать для продукта во флоу или на пейволе, прежде чем пользователи его увидят. Чтобы выбрать его на пейволе, используйте дашборд Adapty: см. [Показ offer](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>
```

| Флаг | Обязательный | Описание |
|---|---|---|
| `--app` | Да | ID приложения (UUID) |
| `--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` | Да | ID приложения (UUID) |
| `--product` | Да | ID продукта (UUID) |
| `--title` | Да | Название оффера, отображается только в дашборде Adapty |
| `--type` | Да | Тип оффера: `promotional` или `win_back` |
| `--ios-offer-id` | Требуется хотя бы один стор | ID оффера из App Store Connect |
| `--android-offer-id` | Требуется хотя бы один стор | ID оффера из Google Play Console |

Win-back офферы доступны только в 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`, также удалите его Google Play-сторону с помощью `--clear-android-offer-id` |
| `--ios-offer-id` | Нет | Новый ID оффера в App Store |
| `--android-offer-id` | Нет | Новый ID оффера в Google Play |
| `--clear-ios-offer-id` | Нет | Удалить App Store-сторону оффера |
| `--clear-android-offer-id` | Нет | Удалить Google Play-сторону оффера |

Требуется хотя бы один флаг помимо `--app`. Поля, которые вы не указываете, сохраняют текущие значения. У каждого оффера должен оставаться хотя бы один идентификатор оффера в сторе, поэтому команда завершится ошибкой, если попытается удалить последний.

:::warning
Команда считывает оффер и сохраняет его целиком. Если кто-то отредактирует этот же оффер в дашборде Adapty между считыванием и сохранением, его изменения будут перезаписаны.
:::

Introductory offers нельзя обновить. Оффер, привязанный к стору, отличному от App Store или Google Play, также нельзя обновить через CLI — редактируйте его в дашборде Adapty.

Чтобы удалить оффер, используйте дашборд Adapty. В CLI команды удаления нет.

## Что дальше \{#whats-next\}

- [Справочник команд](developer-cli-reference) — все CLI-команды, глобальные флаги и флаги пагинации.