# Коллекции

# /api/lite/collections

### Получение списка коллекций

/api/lite/collections

Возвращает список всех коллекций.

Товары группируются по коллекциям для отображения в каталоге товаров в интернет-магазине.

#### **Фильтры:**

/api/lite/collections?**id=1000** – возвращает информацию только по выбранной коллекции с указанным id

Поля возвращаемого значения

<div id="bkmrk-"><table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col><col></col><col></col></colgroup><thead></thead></table>

</div><div id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF%5C%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-"><table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" role="grid" style="width: 835px;"><tbody aria-live="polite" aria-relevant="all"><tr><td style="width: 134px;">**Параметр**</td><td style="width: 106px;">**Тип\\формат**</td><td style="width: 595px;">**Описание**</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">collections</td><td class="confluenceTd" style="width: 106px;">array</td><td class="confluenceTd" style="width: 595px;">Массив коллекций</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">id</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Идентификатор коллекции</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">title</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Заголовок коллекции</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">description</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Описание коллекции (html)</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">surl</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Семантическое наименование ссылки (friendly URL) на коллекцию</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">parentId</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Идентификатор родительской коллекции</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">type</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Тип коллекции (CATALOG/PRODUCT)</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">isAllProducts

</td><td class="confluenceTd" style="width: 106px;">boolean</td><td class="confluenceTd" style="width: 595px;">Является коллекцией Все продукты</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">fillType</td><td class="confluenceTd" style="width: 106px;">enum</td><td class="confluenceTd" style="width: 595px;">"MANUAL", "AUTO". Тип заполнения коллекции продуктами</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">defaultImage</td><td class="confluenceTd" style="width: 106px;">string</td><td class="confluenceTd" style="width: 595px;">Ссылка на изображение коллекции</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">productCount</td><td class="confluenceTd" style="width: 106px;">integer</td><td class="confluenceTd" style="width: 595px;">Количество продуктов (не удаленных) в коллекции (readonly)</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">includedInCatalog</td><td class="confluenceTd" style="width: 106px;">boolean</td><td class="confluenceTd" style="width: 595px;">Входит в активный каталог-меню сайта (readonly)</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">breadcrumbs</td><td class="confluenceTd" style="width: 106px;">array</td><td class="confluenceTd" style="width: 595px;">Хлебные крошки с путем от корневой коллекции до заданной (только при фильтре по id)</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">products</td><td class="confluenceTd" style="width: 106px;">array</td><td class="confluenceTd" style="width: 595px;">Массив продуктов, входящих в коллекцию </td></tr><tr><td style="width: 134px;">filters</td><td style="width: 106px;">array</td><td style="width: 595px;">Массив фильтров коллекции</td></tr></tbody></table>

</div>#### **Пример ответа:**

```JSON
{
    "success": true,
    "collections": [
        {
            "id": "1029",
            "title": "Зерновой кофе",
            "description": "<P>Лучший <B>зерновой</B> кофе</P>",
            "surl": "zernovoy_coffee",
            "parentId": "123",
            "type": "PRODUCT",
            "defaultImage":"http://address.ru/123.jpg",
            "breadcrumbs":[
                {"id": "1", "title": "Все товары", "level":0},
                {"id": "1023", "title": "Кофе", "level":1},
                {"id": "1029", "title": "Зерновой кофе", "level":2}
            ],
            "products": [
              {
                "id": "1000",
                "extId": null,
                "shortName": "Кактус Эуфобия Триангуларис",
                "description": null,
                "available": null,
                "deleted": null,
                "brandName": null,
                "countryOfOrigin": null,
                "tnvedCode": null,
                "internationalDescription": null,
                "isBestseller": null,
                "isNovelty": null,
                "type": null,
                "vat": null,
                "options": null,
                "images": null,
                "variants": null,
                "collections": null,
                "attributes": null,
                "collectionPos": "100.000000000000000"
              }
            ]
            "fillType":"AUTO", 
            "isAllProducts": false,    
            "productCount": 15,
            "includedInCatalog": true,
            "logicMode":"AND",
            "filters":[
                {"num":1, "filterType":"BRAND_NAME", "compareOperation":"CONTAINS", "compareValue":"Samsung"}
            ]
        }
    ]
}
```

###  

### Создание/обновление коллекции

/api/lite/collections

Создает или обновляет коллекцию.

Если id указан - проводится обновление коллекции с указанным id, если не указан - создается новая коллекция.

#### **Пример обновления коллекции:**

<div id="bkmrk-%7B-%22id%22%3A%221029%22%2C-%22titl"><div><div data-hasbody="true" data-macro-name="code">```JSON
{<br></br>    "id":"1029",<br></br>    "title": "Зерновой кофе",<br></br>    "description": "<P>Лучший <B>зерновой</B> кофе</P>",<br></br>    "surl": "zernovoy_coffee",<br></br>    "parentId" : "123",<br></br>    "defaultImage":"http://address.ru/123.jpg",<br></br>    "type": "PRODUCT",<br></br>    "fillType":"MANUAL", <br></br>     "products": [<br></br>       {<br></br>       "id": "1000",<br></br>       "extId": null,<br></br>       "shortName": "Кактус Эуфобия Триангуларис",<br></br>       "description": null,<br></br>       "available": null,<br></br>       "deleted": null,<br></br>       "brandName": null,<br></br>       "countryOfOrigin": null,<br></br>       "tnvedCode": null,<br></br>       "internationalDescription": null,<br></br>       "isBestseller": null,<br></br>       "isNovelty": null,<br></br>       "type": null,<br></br>       "vat": null,<br></br>       "options": null,<br></br>       "images": null,<br></br>       "variants": null,<br></br>       "collections": null,<br></br>       "attributes": null,<br></br>       "collectionPos": "100.000000000000000"<br></br>       }<br></br>     ]<br></br>    "logicMode":"AND",<br></br>    "filters":[<br></br>        {"num":1, "filterType":"BRAND_NAME", "compareOperation":"CONTAINS", "compareValue":"Samsung"}<br></br>    ]<br></br>}
```

<div></div></div></div></div>### Удаление коллекции

/api/lite/collections

Для удаления коллекции, выполняется следующий DELETE запрос с указанием идентификатора коллекции в параметре id.

В ответ возвращается результат операции и id удаленной коллекции.

Продукты, входившие в удаляемую коллекцию - более не будут входить в нее.

Дочерние коллекции у удаляемой - тоже удаляются, как и привязки их к товарам.

####   
**Пример успешного ответа**

```JSON
{
  "success": true,
  "id": "6F9619FF-8B86-D011-B42D-00CF4FC964FF"
}
```

####  

#### **В случае ошибки:**

```JSON
{
  "success": false,
  "errors": [
    {
      "code": 0,
      "message": "Картинки с указанным id не существует"
    }
  ]
}
```

# /api/lite/collections/image

### Создание картинки к коллекции

/api/lite/collections/image

Загружает на сервер картинку и привязывает изображение к коллекции.

Используется заголовок запроса **Content-type: multipart/form-data.**

В качестве параметров запроса передается:

- id - код коллекции
- upfile - картинка

На стороне сервера:

- Сохраняется оригинал картинки (но с ограничением в максимальное количество пикселей) - original

В ответ возвращается информация о загруженной картинке:

####  

#### **Успех:**

```JSON
{
    "success": true,
    "url": "https://img.kak2c.ru/i/H/E/Y8x2a2Zj.jpg",
    "id": "42737a4a-8f76-4aa6-a3d1-ae553f2409cb",
    "pos": "10000.000000000000000"
}
```

Параметры:

<div data-hasbody="true" data-macro-name="code" id="bkmrk-url--%D0%BF%D1%80%D1%8F%D0%BC%D0%B0%D1%8F-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0-%D0%BD"><div data-hasbody="true" data-macro-name="code"><div>- url- прямая ссылка на оригинал картинки
- id - идентификатор картинки (для последующего обновления или удаления)
- pos - автоматически присвоенное значение для сортировки

</div></div></div>####  

#### **Ошибка:**

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

### Удаление картинки к коллекции

/api/lite/collections/image

- id - код коллекции

#### **Успех:**

```JSON
{
    "success": true,   
    "id": "1234" - id коллекции    
}
```

####  

#### **Ошибка:**

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/pub/collections

### Получение списка коллекций

/api/lite/pub/collections

(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))

Возвращает список всех коллекций.

Товары группируются по коллекциям для отображения в каталоге товаров в интернет-магазине.

#### **Фильтры:**

- /api/lite/pub/collections?**id=1000** – возвращает информацию только по выбранной коллекции с указанным id

Поля возвращаемого значения

<div id="bkmrk-"><table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" role="grid"><colgroup><col></col><col></col><col></col></colgroup><thead></thead></table>

</div><div id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF%5C%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-"><table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" role="grid"><tbody aria-live="polite" aria-relevant="all"><tr><td>**Параметр**</td><td>**Тип\\формат**</td><td>**Описание**</td></tr><tr role="row"><td class="confluenceTd">collections</td><td class="confluenceTd">array</td><td class="confluenceTd">Массив коллекций</td></tr><tr role="row"><td class="confluenceTd">id</td><td class="confluenceTd">string</td><td class="confluenceTd">Идентификатор коллекции</td></tr><tr role="row"><td class="confluenceTd">title</td><td class="confluenceTd">string</td><td class="confluenceTd">Заголовок коллекции</td></tr><tr role="row"><td class="confluenceTd">description</td><td class="confluenceTd">string</td><td class="confluenceTd">Описание коллекции (html)</td></tr><tr role="row"><td class="confluenceTd">surl</td><td class="confluenceTd">string</td><td class="confluenceTd">Семантическое наименование ссылки (friendly URL) на коллекцию</td></tr><tr role="row"><td class="confluenceTd">parentId</td><td class="confluenceTd">string</td><td class="confluenceTd">Идентификатор родительской коллекции</td></tr><tr role="row"><td class="confluenceTd">type</td><td class="confluenceTd">string</td><td class="confluenceTd">Тип коллекции (CATALOG/PRODUCT)</td></tr><tr role="row"><td class="confluenceTd">breadcrumbs</td><td class="confluenceTd">array</td><td class="confluenceTd">Хлебные крошки с путем от корневой коллекции до заданной (только при фильтре по id)</td></tr></tbody></table>

</div>#### **Пример ответа:**

```JSON
{
    "success": true,
    "collections": [
        {
            "id": "1029",
            "title": "Зерновой кофе",
            "description": "<P>Лучший <B>зерновой</B> кофе</P>",
            "surl": "zernovoy_coffee",
            "parentId": "123",
            "type": "PRODUCT",
            "defaultImage":"http://address.ru/123.jpg",
            "breadcrumbs":[
                {"id": "1", "title": "Все товары", "level":0},
                {"id": "1023", "title": "Кофе", "level":1},
                {"id": "1029", "title": "Зерновой кофе", "level":2}
            ]
        }
    ]
}
```

<div id="bkmrk--0"></div>