# Покупатели

Апи для менеджеров магазина, позволяет создавать и редактировать покупателей

# /api/lite/customers/

### Запрос списка покупателей

api/lite/customers/

Метод возвращает список покупателей текущего аккаунта

#### **Пейджинация**

Для пейджинации используются параметры page и size: size - записей на странице, page - номер страницы.

Пример: `api/lite/customers?page=0&size=10`

Если параметры не переданы, то дефолтные значения page=0&amp;size=10

#### **Фильтрация**

<div id="bkmrk-%D0%94%D0%BB%D1%8F-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE"><div><div>Для фильтрации компонентов страницы, можно использовать параметр **text** и указать в нем имя либо email пользователя</div><div></div><div>**Пример: `api/lite/customers?page=0&size=10&text=Ivan`**</div></div></div>Также, для отображение пейджинации следует анализировать параметр totalElements и totalPages, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть) и страниц.

#### **Пример результата запроса:**

```JSON
{
"content": [
  {
    "id": "e63d94d8-258f-489a-00fe-b8b6025ce677",
    "emailLogin": "ivan@test.com",
    "firstName": "Ivan",
    "lastName": null,
    "middleName": null,
    "fullName": "Ivan",
    "phone": "",
    "rawPhone": "+79995556677",
    "alternativePhone": "",
    "consentToNewsletter": true
    },
  {
    "id": "9a5e8591-7ea7-adb6-34db-546f105fc11a",
    "emailLogin": "yura@test.com",
    "firstName": "Yura",
    "lastName": "Dan",
    "middleName": "Dan",
    "fullName": "Dan Yura Dan",
    "phone": "",
    "rawPhone": "+7985858585",
    "alternativePhone": "",
    "address": {
        "country": "Россия",
        "countryCode": "RU",
        "region": "Московская",
        "area": null,
        "city": "Красногорск",
        "settlement": "Ангелово",
        "street": "мкр МЖК Росинка",
        "house": "74/1",
        "block": "",
        "building": "",
        "flat": "1",
        "fullAddress": "Московская обл, г Красногорск, село Ангелово, мкр МЖК Росинка, д 74/1, кв. 1",
        "fullCity": null,
        "rawData": null,
        "zip": "143442",
        "regionFias": "29251dcf-00a1-4e34-98d4-5c47484a36d4",
        "areaFias": null,
        "cityFias": "63fcf18a-365e-451f-baee-8d09ac50b773",
        "settlementFias": "2b627d06-2257-4c20-83b1-5efa10ef57b4"
    },
    "consentToNewsletter": false
    }
],
"pageable": {
    "sort": {
    "sorted": false,
    "unsorted": true,
    "empty": true
    },
  "offset": 0,
  "pageNumber": 0,
  "pageSize": 10,
  "paged": true,
  "unpaged": false
},
  "last": true,
  "totalElements": 2,
  "totalPages": 1,
  "size": 10,
  "number": 0,
  "sort": {
  "sorted": false,
  "unsorted": true,
  "empty": true
},
"first": true,
"numberOfElements": 2,
"empty": false
}
```

# /api/lite/customers/{email}

### <span style="color: #000000;">Запрос данных покупателя  
</span>

<span style="color: #000000;">/api/lite/customers/{email}</span>

- <span style="color: #000000;">email - логин-почта пользователя</span>

<span style="color: #000000;">Метод возвращает информацию о текущем данном покупателе.</span>

<span style="color: #000000;">Пример: `/api/lite/customers/test@test.com`</span>

<span style="color: #000000;">Метод возвращает информацию о текущем покупателе.</span>

<table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF-%2F-%D1%84%D0%BE%D1%80%D0%BC%D0%B0" role="grid" style="width: 100.4%; height: 521px;"><tbody aria-live="polite" aria-relevant="all"><tr style="height: 29px;"><td style="width: 19.7531%; height: 29px;">**Параметр**</td><td style="width: 18.0247%; height: 29px;">**Тип / формат**</td><td style="width: 62.2222%; height: 29px;">**Описание**</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">id

</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">string

</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Идентификатор пользователя

</td></tr><tr role="row" style="height: 122px;"><td class="confluenceTd" style="width: 19.7531%; height: 56px;">emailLogin

</td><td class="confluenceTd" style="width: 18.0247%; height: 56px;">string

</td><td class="confluenceTd" style="width: 62.2222%; height: 56px;">Почта пользователя - является логином

</td></tr><tr role="row" style="height: 111px;"><td class="confluenceTd" style="width: 19.7531%; height: 45px;">firstName

</td><td class="confluenceTd" style="width: 18.0247%; height: 45px;">string</td><td class="confluenceTd" style="width: 62.2222%; height: 45px;">Имя

</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">lastName</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">string</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Фамилия</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">middleName</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">string</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Отчество</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">fullName</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">string</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Имя в формате ФИО</td></tr><tr style="height: 29px;"><td style="width: 19.7531%; height: 29px;">phone</td><td style="width: 18.0247%; height: 29px;">string</td><td style="width: 62.2222%; height: 29px;">Отформатированный телефон</td></tr><tr style="height: 29px;"><td style="width: 19.7531%; height: 29px;">rawPhone</td><td style="width: 18.0247%; height: 29px;">string</td><td style="width: 62.2222%; height: 29px;">Телефон</td></tr><tr style="height: 29px;"><td style="width: 19.7531%; height: 29px;">alternativeRawPhome</td><td style="width: 18.0247%; height: 29px;">string</td><td style="width: 62.2222%; height: 29px;">Дополнительный телефон</td></tr><tr style="height: 29px;"><td style="width: 19.7531%; height: 29px;">alternativePhone</td><td style="width: 18.0247%; height: 29px;">string</td><td style="width: 62.2222%; height: 29px;">Дополнительный отформатированный телефон</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">address

</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">object

</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Адрес пользователя

</td></tr></tbody></table>

#### **Пример результата запроса:**

```JSON
{
"id": "9a5e8591-7ea7-adb6-34db-546f105fc11a",
"emailLogin": "ivan@test.com",
"firstName": "Ivan",
"lastName": "Ivanov",
"middleName": "Ivanovich",
"fullName": "Ivanov Ivan Ivanovich",
"phone": "",
"rawPhone": "+7985858585",
"alternativePhone": ""
"address": {
    "country": "Россия",
    "countryCode": "RU",
    "region": "Московская",
    "area": null,
    "city": "Красногорск",
    "settlement": "Ангелово",
    "street": "мкр МЖК Росинка",
    "house": "74/1",
    "block": "",
    "building": "",
    "flat": "1",
    "fullAddress": "Московская обл, г Красногорск, село Ангелово, мкр МЖК Росинка, д 74/1, кв. 1",
    "fullCity": null,
    "rawData": null,
    "zip": "143442",
    "regionFias": "29251dcf-00a1-4e34-98d4-5c47484a36d4",
    "areaFias": null,
    "cityFias": "63fcf18a-365e-451f-baee-8d09ac50b773",
    "settlementFias": "2b627d06-2257-4c20-83b1-5efa10ef57b4"
	}
}
```

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

```JSON
{
"success": false,
"errors": [
   {
   "code": 0,
   "message": "Не найден покупатель с указанным email test@test.com"
   }
]
}
```

# POST /api/lite/customers/

### Редактировать информацию о покупателе

/api/lite/customers/

Производит редактирование выбранного покупателя или **добавление нового,** если покупатель не найден**.**

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

```JSON
{
  "emailLogin": "test@test.com",
  "firstName": "Oleg",
  "lastName": "Pushkin",
  "middleName": "Ivanov"
  "rawPhone": "+792556123456",
  "rawAlternativePhone": "+85645545454"
}
```

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

В случае успеха вернется обновленный покупатель:

```JSON
{
  "id": "9a5e8591-7ea7-adb6-34db-546f105fc11a",
  "emailLogin": "ivan@test.com",
  "rawPhone": "+7985858585",
  "firstName": "Oleg",
  "lastName": "Pushkin",
  "middleName": "Ivanov"
  "rawAlternativePhone": "+85645545454",
  "fullName": "Pushkin Oleg Ivanov",
  "phone": "",
  "alternativePhone": ""
}
```

# DELETE /api/lite/customers/

### Удаление покупателя

/api/lite/customers/

**Параметры:**

- **email**

Метод удаляет выбранного покупателя

Пример: /api/lite/customers?email=test@test.com

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

Вернет id удаленного покупателя

```JSON
{
  "success": true,
  "id":"9a5e8591-7ea7-adb6-34db-546f105fc11a"
}
```

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

```JSON
{
"success": false,
"errors": [
   {
   "code": 0,
   "message": "Не найден покупатель с указанным email test@test.com"
   }
]
}
```

# customers.enable=true

Данный параметр приложения отвечает за включение или отключение автоматического добавление(создание нового покупателя) при заказе.

- customers.enable=true
- customers.enable=false