Личный кабинет покупателей Апи для работы с личным кабинетом покупателей /api/customer/account/register Создание нового аккаунта покупателя /api/customer/account/register Для регистрации необходимо выполнить следующий запрос { "email": "test@test.com", "phone": "+798585858", "firstName": "Ivan", "lastName": "Ivanov", "middleName": "Ivanocich" } Обязательные поля:  email Также  необходимо в Header добавить domain, в котором указать нужный домен магазина. Успех возвращается сгенерированный пароль и jwt token для доступа { "success": true, "authToken": { "success": true, "access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpdmFuQHRlc3QuY29tIiwiZXhwIjoxNTk5MDU2MDA1fQ.-eEOV2NxHQAmt0habFOB18dr-P_drgS0S4YJmx15RMnTZYcGElwi7oEAgm-8qakr-aroYwyxrdwQ1NS_WVgYqA", "token_type": "bearer", "login": "ivan@test.com", "expires_in": 14400, "init_state": "completed" }, "password": "8N9y8Jqb" } Ошибка { "success": false, "errors": [ { "code": 403, "message": "Данный покупатель уже существует" } ], "authToken": null, "password": null } /api/customer/auth Авторизация /api/customer/auth Для авторизации необходимо выполнить следующий запрос { "emailLogin": "yura@test.com", "password": "123456" } Также  необходимо в Header добавить domain, в котором указать нужный домен магазина. В ответ возвращается Успех { "success": true, "access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ3b3c1NkBtYWlsLnJ1IiwiZXhwIjoxNTQ2OTc2NzQ5fQ.4Zdev5PSIk1TmsPFxjxHukYwH1wa_efn19cfLIkT8k2g9xEeVMOnYK4A4pTC6NCpsp2kq8_dvygRxAyyEKNwiQ", "token_type": "bearer", "login": "wow56@mail.ru", "expires_in": 14400 } где access_token содержит токен для доступа expires_in - количество секунд действительности выданного токена. Ошибка: { "success": false, "errors": [ { "code": 401, "message": "Unauthorized" } ] } Для последующих методов, использовать ключ токена следующим образом: в запросе должен быть header с ключем Authorization и значением вида "Bearer {access_token}" например Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ3b3c1NUBtYWlsLnJ1IiwiZXhwIjoxNTQ2ODA3MjU3fQ.1vSO5DXhewQfjKITK76W8JhEZM_Wx2YgyEbdjfg9GDs0ymtRtmRgFuZen_n8fM00H1Uda_i6M2-Y1PbjN4edZA /api/customer/account/password_reset Запрос на сброс пароля покупателя api/customer/account/password_reset Для запроса сброса необходимо отправить следующий запрос: { "email":"test@test.ru" } Также  необходимо в Header добавить domain, в котором указать нужный домен магазина. В ответ возвращается Успех: { "success": true } при этом, по указанному email отправляется письмо со ссылкой вида http://localhost:33043/customer_password_reset_confirm/?t=6aaccd91-1045-4200-b105-b4db79490fee Где адрес сервера будет взят из текущего адреса, включая домен 3 уровня. срок действия токена - 1 час Данная ссылка будет открыта пользователем в браузере GET запросом. js код должен обработать открытие подобной ссылки и вывести пользователю запрос на ввод нового пароля и подтверждение пароля. По нажатию кнопки подтверждения на данном экране создания нового пароля следует выполнить POST запрос на адрес /api/customer/password_reset_confirm с передачей токена из ссылки и нового пароля  (см следующий метод). Ошибка: { "success": false, "errors": [ { "code": 0, "message": "Текст ошибки" } ] }/api/customer/account/password_reset_confirm Сброс пароля /api/customer/account/password_reset_confirm Для сброса необходимо выполнить запрос с передачей временного токена сброса пароля и нового пароля: { "token":"6aaccd91-1045-4200-b105-b4db79490fee", "password": "abcd" } Также  необходимо в Header добавить domain, в котором указать нужный домен магазина, для этого покупателя. В ответ возвращается Успех: { "success": true } Ошибка: { "success": false, "errors": [ { "code": 0, "message": "Текст ошибки" } ] }api/customer/info Запрос данных покупателя api/customer/info Метод возвращает информацию о текущем покупателе. Параметр Тип / формат Описание id string Идентификатор пользователя emailLogin string Почта пользователя - является логином firstName string Имя lastName string Фамилия middleName string Отчество fullName string Имя в формате ФИО phone string Отформатированный телефон rawPhone string Телефон alternativeRawPhome string Дополнительный телефон alternativePhone string Дополнительный отформатированный телефон address object Адрес пользователя consentToNewsletter boolean Согласие на email рассылку Пример результата запроса: { "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" }, "consentToNewsletter": true } Ошибка: { "success": false, "errors": [ { "code": 0, "message": "Покупатель не найден" } ] } (POST) api/customer/info Редактировать информацию о покупателе api/customer/info Производит редактирование профиля текущего покупателя. пример запроса: { "rawPhone": "+7985858585", "firstName": "Oleg", "lastName": "Pushkin", "middleName": "Ivanov" "password": "123456", "rawAlternativePhone": "+85645545454", "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": true } В ответ возвращается Успех: В случае успеха вернется обновленный покупатель: { "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": "" "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": true } ошибка: { "success": false, "errors": [ { "code": 0, "message": "Покупатель не найден" } ] }api/customer/orders Запрос списка заказов api/customer/orders Метод возвращает список заказов текущего покупателя. Пейджинация Для пейджинации используются параметры page и size: size - записей на странице, page - номер страницы. Пример: api/customer/orders?page=0&size=200 Если параметры не переданы, то дефолтные значения page=0&size=10 Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть). Пример результата запроса { "success": true, "recordsTotal": 2, "orders": [ { "id": "20412212", "date": "2020-06-03 09:22:06", "updateTs": "2020-06-10 16:09:43.226", "status": "ORDER_INFO_DONE", "totalOrderSum": 1208, "insuranceSum": 1059, "insuranceSumAutoCalculation": true, "paymentStatus": "PAID", "confirmStatus": "APPROVED", "paymentMethodCode": "online", "paymentMethodType": "ONLINE", "needCustomerPayment": true, "shortUrl": "http://r.kak2c.ru/o6meazi", "delivery": { "code": "b26909d5-8424-7de9-42ca-53f668f70a8a", "type": "COURIER", "title": "BERU", "pickupPointId": null, "logoUrl": "https://storage.yandexcloud.net/lk-kak2c/delivery_beru_middle.svg", "trackingNumber": "20412212", "trackingURL": null, "desiredDeliveryDate": null, "desiredDeliveryTimeFrom": "09:00", "desiredDeliveryTimeTo": "18:00", "actualDeliveryDate": null, "pvzComment": null, "deliveryComment": null, "address": { "country": "Россия", "countryCode": "RU", "region": "Москва", "area": null, "city": "Москва", "settlement": null, "street": null, "house": null, "block": null, "building": null, "flat": null, "fullAddress": "Москва", "fullCity": null, "rawData": null, "zip": null, "regionFias": null, "areaFias": null, "cityFias": null, "settlementFias": null }, "receiver": { "name": "Покупатель на Беру", "surname": null, "patronymic": null, "phone": "+70000000000", "rawPhone": "+70000000000", "alternativePhone": "", "email": null, "post": null, "personType": "CUSTOMER", "address": { "country": "Россия", "countryCode": "RU", "region": "Москва", "area": null, "city": "Москва", "settlement": null, "street": null, "house": null, "block": null, "building": null, "flat": null, "fullAddress": "Москва", "fullCity": null, "rawData": null, "zip": null, "regionFias": null, "areaFias": null, "cityFias": null, "settlementFias": null } }, "deliveryServices": null }, "items": [ { "num": 1, "variantId": "83491", "variantExtId": "NL290-83491", "productId": "1052", "productExtId": "83490", "name": "CC крем «Абсолютное совершенство» SPF 20, 30 мл, Оттенок: Light ", "article": "NL290-83491", "quantity": 1, "vatRate": "VAT_20", "price": 1059, "skuType": "SKU", "itemDimensions": { "height": 0, "width": 0, "depth": 0 }, "itemWeight": 0, "barcode": "6412600834918" }, { "num": 2, "variantId": "delivery", "name": "Доставка", "article": "", "quantity": 1, "vatRate": "VAT_20", "price": 149, "skuType": "SERVICE", "barcode": "" } ], "customerPaymentInProcess": false, "customer": { "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" } }, "c": "f132f0d9-ced0-1134-573c-5dba550e3792" }, { "id": "19918626", "date": "2020-05-25 21:19:24", "updateTs": "2020-06-05 17:38:27.352", "status": "ORDER_INFO_DONE", "totalOrderSum": 579, "insuranceSum": 579, "insuranceSumAutoCalculation": true, "paymentStatus": "NOT_PAID", "confirmStatus": "APPROVED", "paymentMethodCode": "cod-cash", "paymentMethodType": "COD_CASH", "needCustomerPayment": false, "shortUrl": "http://r.kak2c.ru/jc2dyb2", "delivery": { "code": "b26909d5-8424-7de9-42ca-53f668f70a8a", "type": "COURIER", "title": "BERU", "pickupPointId": null, "logoUrl": "https://storage.yandexcloud.net/lk-kak2c/delivery_beru_middle.svg", "trackingNumber": "19918626", "trackingURL": null, "desiredDeliveryDate": null, "desiredDeliveryTimeFrom": "09:00", "desiredDeliveryTimeTo": "18:00", "actualDeliveryDate": null, "pvzComment": null, "deliveryComment": null, "address": { "country": "Россия", "countryCode": "RU", "region": "Москва", "area": null, "city": "Москва", "settlement": null, "street": null, "house": null, "block": null, "building": null, "flat": null, "fullAddress": "Москва", "fullCity": null, "rawData": null, "zip": null, "regionFias": null, "areaFias": null, "cityFias": null, "settlementFias": null }, "receiver": { "name": "Покупатель на Беру", "surname": null, "patronymic": null, "phone": "+70000000000", "rawPhone": "+70000000000", "alternativePhone": "", "email": null, "post": null, "personType": "CUSTOMER", "address": { "country": "Россия", "countryCode": "RU", "region": "Москва", "area": null, "city": "Москва", "settlement": null, "street": null, "house": null, "block": null, "building": null, "flat": null, "fullAddress": "Москва", "fullCity": null, "rawData": null, "zip": null, "regionFias": null, "areaFias": null, "cityFias": null, "settlementFias": null } }, "deliveryServices": null }, "items": [ { "num": 1, "variantId": "84981", "variantExtId": "NL110-84981", "productId": "1019", "productExtId": "NL110-84981", "name": "Тушь с черникой для чувствительных глаз, 9 мл, Оттенок: Черный ", "article": "NL110-84981", "quantity": 1, "vatRate": "NO_VAT", "price": 579, "img": "https://storage.yandexcloud.net/images-k2c/eef378d6-853f-4c75-a3b4-b2bdec352fe7.jpg", "skuType": "SKU", "itemDimensions": { "height": 0, "width": 0, "depth": 0 }, "itemWeight": 0, "barcode": "6412600849813" }, { "num": 2, "variantId": "delivery", "name": "Доставка", "article": "", "quantity": 1, "vatRate": "NO_VAT", "price": 0, "skuType": "SERVICE", "barcode": "" } ], "customerPaymentInProcess": false, "customer": { "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" } }, "c": "326a2701-e668-c8b2-dda6-ab259921aaee" } ], } Ошибка: { "success": false, "errors": [{"code": 0,"message": "Текст ошибки"}] } api/customer/orders/cancelled Отменить заказ покупателя api/customer/orders/cancelled Производит отмену заказа. пример тела запроса: { "orderId":"1029" } В ответ возвращается успех: { "success": true } ошибка: { "success": false, "errors": [ { "code": 0, "message": "Текст ошибки" } ] }