# Продажи

## Общее

Swagger: <https://api.radist.online/v2/docs#/Sales>

Необходимые права доступа (`scopes`) для работы с API: `sales`

Продукт (product) - то, что продаём: товар, услуга, что-то ещё. Имеет цены в разных валютах, описание, картинки, артикул (sku), свойства для приёма оплаты (НДС, тип).

Каталог (catalog) - набор продуктов. Имеет название, валюту.

Магазин (shop) - сущность, соединяющая бота в Telegram с каталогом ([телегомагазин](https://docs.radist.online/radist.online-docs/nashi-produkty/radist-web/modul-prodazhi/magaziny/kak-rabotaet-telegomagazin)).

## Продукты

### Типы продуктов (payment\_object\_type)

* `commodity` - Товар
* `excise` - Акциз
* `job` - Работа
* `service` - Услуга
* `gambling_bet` - Ставка азартной игры
* `gambling_prize` - Выигрыш азартной игры
* `lottery` - Лотерейный билет
* `lottery_prize` - Выигрыш лотереи
* `intellectual_activity` - Предоставление результатов интеллектуальной деятельности
* `payment` - Платеж
* `agent_commission` - Агентское вознаграждение
* `composite` - Составной предмет расчета
* `another` - Иной предмет расчета

### Типы НДС (vat):

* `none` - Без НДС
* `vat0` - НДС 0%
* `vat5` - НДС 5%
* `vat7` - НДС 7%
* `vat10` - НДС 10%
* `vat20` - НДС 20%
* `vat22` - НДС 22%
* `vat25` - НДС 25%
* `vat105` - НДС 5/105
* `vat107` - НДС 7/107
* `vat110` - НДС 10/110
* `vat120` - НДС 20/120
* `vat122` - НДС 22/122

### Примеры

<details>

<summary>Создать продукт с картинками</summary>

1. Сначала нужно загрузить картинки к нам: <https://api.radist.online/v2/docs#/Files/FilesUploadProductImage>

```json
{"url":"https://radist2.cdn.radist.online/products/images/8521fa96b73649469cb664e77adb71ae.jpg"}
```

2. Потом создать продукт: <https://api.radist.online/v2/docs#/Sales/SalesCreateProduct>

```json
POST /companies/{company_id}/sales/products/
{
  "name": "Radist.Online",
  "description": "Radist.Online: https://radist.online/",
  "payment_object_type": "service",
  "vat": "vat20",
  "images": [
    "https://radist2.cdn.radist.online/products/images/8521fa96b73649469cb664e77adb71ae.jpg"
  ],
  "prices": [
    {
      "price": 100,
      "currency": "RUB"
    }
  ]
}


Response
{
  "id": 1186,
  "name": "Radist.Online",
  "description": "Radist.Online: https://radist.online/",
  "payment_object_type": "service",
  "category": null,
  "vat": "vat20",
  "sku": null,
  "images": [
    "https://radist2.cdn.radist.online/products/images/8521fa96b73649469cb664e77adb71ae.jpg"
  ],
  "prices": [
    {
      "currency": "RUB",
      "price": 100
    }
  ],
  "catalog_ids": [],
  "created_at": "2024-07-05T15:29:31.485300Z",
  "updated_at": "2024-07-05T15:29:31.485300Z"
}
```

</details>

## Каталоги

У каталога есть название и валюта.

### Примеры

<details>

<summary>Создать каталог</summary>

```json
POST /companies/{company_id}/sales/catalogs/
{"name":"Demo", "currency":"RUB"}


Response
{
  "id": 554,
  "name": "Demo",
  "currency": "RUB",
  "products_count": 0
}
```

</details>

<details>

<summary>Добавить продукты в каталог</summary>

```json
POST /companies/{company_id}/sales/catalogs/{catalog_id}/add_products

{"product_ids":[1,9,175,177,178,183,184,185]}


Response
{
  "id": 554,
  "name": "Demo",
  "currency": "RUB",
  "products_count": 8
}
```

</details>

<details>

<summary>Удалить продукты из каталога</summary>

```json
POST /companies/{company_id}/sales/catalogs/{catalog_id}/delete_products

{"product_ids":[9,177,183,184]}


Response
{
  "id": 554,
  "name": "Demo",
  "currency": "RUB",
  "products_count": 4
}
```

</details>

## Магазины

Ссылку, полученную при создании магазина (в поле `link`), можно использовать:

1. В кнопке Меню бота (в BotFather выбрать бота -> Bot Settings -> Menu Button)
2. В веб-приложении бота (в BotFather `/newapp` и следовать инструкциям)

Ссылка работает только с тем подключением (`connection_id`), с которым связан магазин.

### Примеры

<details>

<summary>Создать магазин</summary>

```json
POST /companies/{company_id}/sales/shops/
{
  "name": "Demo shop",
  "catalog_id": 554,
  "connection_id": 29228,
  "use_device_color_scheme": true
}


Response
{
  "id": 363,
  "name": "Demo shop",
  "link": "https://tgbot.radist.me/5ab70f57-b244-45c1-8b2c-a4d26215796a",
  "use_device_color_scheme": true,
  "company_id": 5,
  "catalog_id": 554,
  "connection_id": 29228
}
```

</details>
