Возвращает продукты, которые числятся на складе (в том числе с нулевым остатком), отсортированные по названию. Архивные продукты тоже входят в список.

```
v1/products/get_list.php
```

## Параметры

| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| storage_id | int | Да | ID склада |
| limit | int | Нет | Размер страницы, от 1 до 1000 |
| offset | int | Нет | Сколько записей пропустить |

Без limit возвращается весь список. Подробнее о постраничной выдаче в статье [Общие правила](https://developers.controlata.ru/hc/api-docs/articles/rules).

## Ответ

Массив products с полями продукта и его остатка на складе storage_id (см. [Продукты](https://developers.controlata.ru/hc/api-docs/articles/products)), без поставщиков, альтернативных артикулов и состава. Их возвращает [v2/products/get_entry](https://developers.controlata.ru/hc/api-docs/articles/products-get-entry). Поле total содержит общее число продуктов на складе.

## Пример запроса

```
{
    "storage_id": 3999,
    "limit": 100,
    "offset": 0
}
```

## Пример ответа

```
{
    "success": true,
    "products": [
        {
            "id": "3120",
            "name": "Стол обеденный",
            "sku": "P100",
            "price": "45000",
            "cost": "13604.25",
            "batch_size": "10.000",
            "notes": "",
            "status": "1",
            "archived": "0",
            "stock": "12.000",
            "minimum": "3.000",
            "planned": null,
            "unit": "шт",
            "categories": [
                {
                    "id": "21",
                    "name": "Мебель"
                }
            ]
        }
    ],
    "total": 1
}
```

## Ошибки

| Ошибка | Причина |
|---|---|
| No storage_id in input | Не передан storage_id |
| Storage ID not found | Склад не найден или удален |
| Invalid limit value. Must be between 1 and 1000 | Неверный limit |
| Offset requires limit | Передан offset без limit |
