Как вам помочь ?
Описание API
Для начала работы с API, необходимо сгенерировать API ключи для вашего магазина. Для этого перейдите в админ панель вашего магазина, в раздел "Настройки - API" (рис. 1).

Рисунок 1.
Затем на вкладках "API" и "API с авторизацией", нажмите на кнопку "Сгенерировать новый api ключ" (рис. 2).

Рисунок 2.
После этого в поле "API ключ" появится ваш ключ. Если он был сгенерирован ранее, то его можно будет также найти в этом поле.
API (Server API)
{
"FirstName": "Иван", // имя
"LastName": "Иванов", // фамилия
"Patronymic": "Иванович", // отчество
"Phone": "790000000", // телефон
"Email": "ivan@gmail.com", // email
"CustomerId": "", // id пользователя
"DiscountValue": "100", // Скидка числом
"DiscountPercent": "0", // скидка процентом
"Description": "lead from api", // описание
"Source": "", // источник лида
"FunnelId": 1, // id списка лидов
"Sum": "0", // сумма товаров
"Products": [ // массив товаров: ArtNo - артикул товара в магазине.
{ // Если товар будет найден по артикулу, то подставится актуальная цена, название, цвет и тд.
"ArtNo": "977",
"Name": "Туфли",
"Amount": 1,
"Price": 1500
}
]
}
{
"leadId": 1,
"status": "ok",
"errors": "",
"warnings": ""
}
{
"status": "error",
"errors": "Заполните обязательные поля"
}
Метод запроса может быть POST или GET. Если GET - то параметры в url, если POST, то передается json. Все параметры не обязательны.
Пример json-запроса:
{
"customerId": "74593297-36eb-4ace-ae8e-5e8084f13c19",
"sumFrom": 0,
"sumTo": 100000,
"dateFrom": "1970-08-29T12:29:59.577",
"dateTo": "2024-08-29T12:29:59.577",
"loadItems": true, // по умолчанию false
"loadCustomerFields": true, // по умолчанию false
"dealStatusId": 4,
"salesFunnelId": 1,
"search": "",
"description": "Описание",
"name": "Имя",
"managerId": 6,
"sourceId": 12,
"city": "city",
"customerFields": [{"1": {"Value": "value"}}],
"leadFields": [{"1": {"Value": "value"}}],
"itemsPerPage": 100, // по умолчанию 100
"page": 1 // по умолчанию 1
}
Пример ответа
{
"dataItems": [
{
"id": 5,
"title": "Лид №5",
"description": "Описание",
"createdDate": "2020-08-29T12:29:59.577",
"createdDateFormatted": "29.08.2020 12:29",
"sum": 500.0,
"sumFormatted": "500 руб.",
"customerComment": "",
"adminComment": null,
"dealStatusId": 4,
"dealStatusName": "Ожидание решения клиента",
"salesFunnelId": 1,
"salesFunnelName": "Лиды",
"sourceId": 12,
"customerId": "0000000000-0000-0000-0000-000000000",
"firstName": "Имя",
"lastName": "Фамилия",
"patronymic": "",
"phone": "+3(333)333-33-31",
"email": "",
"customerType": 1,
"customerFields": [
{
"id": 1,
"name": "Название организации",
"fieldType": "Text",
"value": "ООО \"Аааа\""
},
{
"id": 2,
"name": "Юридический адрес",
"fieldType": "Text",
"value": ""
},
{
"id": 3,
"name": "ИНН",
"fieldType": "Number",
"value": "111111111111"
},
{
"id": 4,
"name": "КПП",
"fieldType": "Number",
"value": "222222222222222"
},
{
"id": 5,
"name": "ОГРН",
"fieldType": "Number",
"value": "33333333333333333"
},
{
"id": 6,
"name": "ОКПО",
"fieldType": "Number",
"value": "44444444444444"
},
{
"id": 7,
"name": "БИК",
"fieldType": "Number",
"value": ""
},
{
"id": 8,
"name": "Название банка",
"fieldType": "Text",
"value": ""
},
{
"id": 9,
"name": "Корреспондентский счёт",
"fieldType": "Number",
"value": ""
},
{
"id": 10,
"name": "Расчётный счёт",
"fieldType": "Number",
"value": ""
}
],
"managerId": 6,
"managerName": "Администратор Магазина",
"productsSum": 0.0,
"productsCount": 0.0,
"country": null,
"region": null,
"district": null,
"city": null,
"zip": null,
"leadItems": []
}
],
"totalPageCount": 2,
"totalItemsCount": 4,
"pageIndex": 1,
"itemsPerPage": 2
}
Пример ответа с ошибкой
{
"result": false,
"errors": [
"Заполните обязательное поле (имя, email, телефон или организацию)"
]
}
Метод запроса - POST
Пример json-запроса:
{
"OrderCustomer": {
"CustomerId": "b4807dc9-a832-4284-b5c7-de203d8e81aa",
"FirstName": "Иван",
"LastName": "Иванов",
"Patronymic": "Иванович",
"Organization": "ООО Организация",
"Email": "ivan@gmail.com",
"Phone": "790000000",
"Country": "Россия",
"Region": "Москва",
"City": "Москва",
"Zip": "101000",
"CustomField1": "Значение настраиваемого поля 1",
"CustomField2": "Значение настраиваемого поля 2",
"CustomField3": "Значение настраиваемого поля 3",
"Street": "Тверская",
"House": "1",
"Apartment": "1",
"Structure": "",
"Entrance": ""
},
"Number": "123",
"OrderPrefix": "prefix-",
"OrderSource": "CRM system",
"Currency": "RUB",
"CustomerComment": "Комментарий пользователя",
"AdminComment": "Комментарий администратора",
"ShippingName": "Название доставки",
"PaymentName": "Название оплаты",
"DeliveryTime": "Как можно скорее",
"DeliveryDate": "2030-02-15 00:00:00.000",
"ShippingCost": 100,
"PaymentCost": 0,
"BonusCost": 0,
"BonusCardNumber": null,
"OrderDiscount": 0,
"OrderDiscountValue": 100,
"ShippingTaxName": "Название налога для доставки 20%",
"TrackNumber": "123456",
"TotalWeight": 1,
"TotalLength": 100,
"TotalWidth": 100,
"TotalHeight": 100,
"OrderStatusName": "Статус заказа",
"ManagerEmail": "manager@gmail.com",
"IsPaied": true,
"CheckOrderItemExist": true,
"CheckOrderItemAvailable": true,
"ValidateBonusCost": false,
"SkipBusinessProcessesAfterCreatingOrder": false,
"SkipBonusPurchase": false,
"OrderItems": [{
"ArtNo": "Артикул 1",
"Name": "Название товара 1",
"Price": 100,
"Amount": 1
},{
"ArtNo": "Артикул 2",
"Name": "Название товара 2",
"Price": 200,
"Amount": 1
}]
}
Поля Order
Если стоит true и прислали бонусов для списания больше чем можно, то вернется ошибка "Заказ может быть оплачен бонусами на {p}%. Для этого заказ можно списать {n} бонусов.".
По умолчанию false, автоматически посчитается и поставится в заказе сколько бонусов доступно для списания, т.е. если BonusCost = 500, а списать можно только 50, то в заказе поставится 50.
Если стоит true и пришел товар, с артикулом которого нет в магазине, то по вернется ошибка и заказ не будет создан.
По умолчанию true.
Если стоит true и пришел товар, с артикулом товара, который не в наличии, то по вернется ошибка и заказ не будет создан.
По умолчанию true.
Если стоит true, то заказ не будет отправлен во внешние системы, не отработают триггеры на создание заказа, не отправятся Email/Sms.
По умолчанию false, заказ может быть отправлен во внешние системы, отработают триггеры на создание закза, отправятся Email/Sms.
Если стоит true, то продажа не будет создана и покупателю не будут начисленны бонусы после оплаты заказа.
По умолчанию false, продажа будет создана и покупателю будут начисленны бонусы после оплаты заказа.
Поля OrderCustomer
Поля OrderItem
Пример ответа
{
"result": true,
"obj": { // Описание объекта заказа
"Id": 1,
"Number": "1",
...
}
}
Пример ответа с ошибкой
{
"result": false,
"errors": [
"Заполните обязательное поле (имя, email, телефон или организацию)"
]
}
Вместо {id} подставляется идентификатор заказа
{
"result": true,
"obj": { // Объект заказа
"Id": 1, // Идентификатора заказа
"Number": "1", // Номер заказа
"Currency": "RUB", // Код валюты
"Sum": 990.0, // Сумма заказа
"Date": "2017-04-10T09:45:17.7", // Дата заказа в формате ISO 8601
"CustomerComment": "", // Комментарий пользователя
"AdminComment": "Тестовый заказ", // Комментарий администратора
"PaymentName": "Оплата наличными", // Название метода оплаты
"PaymentCost": 0.0, // Стоимость оплаты. Наценка или скида при оплате
"ShippingName": "Самовывоз", // Название метода доставки
"ShippingCost": 0.0, // Стоимость доставки
"ShippingTaxName": "НДС по ставке 20%", // НДС доставки
"TrackNumber": "", // Номер отслеживания заказа
"DeliveryDate": "2020-12-08T00:00:00", // Дата доставки в формате ISO 8601
"DeliveryTime": "с 8 до 10 утра", // Время доставки
"OrderDiscount": 0.0, // Скидка заказа. Процент (Либо процент, либо сумма)
"OrderDiscountValue": 0.0, // Скидка заказа. Сумма (Либо процент, либо сумма)
"BonusCardNumber": 777271, // Номер бонусной карты (long)
"BonusCost": 0.0, // Кол-во использованных бонусов
"LpId": null, // Идентификатора воронки продаж
"IsPaid": true, // Оплачен заказ или нет
"ModifiedDate": "2017-04-10T09:45:17.7", // Дата модификации заказа в формате ISO 8601
"Customer": { // Данные покупателя
"CustomerId": "f1688306-fa99-4193-a102-a0e6d9977ef2", // Идентификатор покупателя
"FirstName": "Александр", // Имя покупателя
"LastName": "Сидоров (тест)", // Фамилия покупателя
"Patronymic": "Иванович", // Отчество покупателя
"Organization": null, // Название организации
"Email": "alex-test@sidorov.ru", // Email
"Phone": "+7900123456", // Телефон покупателя
"Country": "Россия", // Страна
"Region": "Самарская область", // Регион
"District": null, // Район региона
"City": "Самара", // Город
"Zip": "112233", // Индекс
"CustomField1": "", // Настраиваемое поле 1
"CustomField2": "", // Настраиваемое поле 2
"CustomField3": "", // Настраиваемое поле 3
"Street": "Ленина", // Улица
"House": "1", // Дом
"Structure": "3", // Стр./корп.
"Apartment": "2", // Квартира
"Entrance": "4", // Подъезд
"Floor": "5" // Этаж
},
"Status": { // Данные статуса заказа (Описание объекта статуса заказа)
"Id": 5,
"Name": "Доставлен",
"IsCanceled": false,
"IsCompleted": true,
"Hidden": false
},
"Source": { // Данные источника заказа
"Id": 1, // Идентификатор
"Name": "Корзина интернет магазина", // Название
"Main": true, // Основной в группе
"Type": "ShoppingCart" // Группа (тип)
},
"Items": [ // Позиции заказа
{
"ArtNo": "1649", // Артикул
"Name": "Ваш товар", // Название
"Color": null, // Цвет
"Size": null, // Размер
"Price": 990.0, // Цена
"Amount": 1.0, // Кол-во
"PhotoSrc": "http:/mysite.com/small.jpg"// Картинка
}
]
}
}
Пример ответа с ошибкой
{
"result": false,
"errors": [ "Заказ не найден" ]
}
Пример json-запроса:
{
"Page": 1, // Запрашиваемая страница (Не обяз. Если меньше 1, примет значение 1)
"ItemsPerPage": 2 // Кол-во заказов на страницу (Не обяз. Поумолчанию 100/максимум 100.
// При LoadItems = true поумолчанию 50/максимум 50.
// Если значение больше максимального, то принимает значение поумолчанию)
"LoadItems": false, // Загружать позиции заказа (Не обяз. Поумолчанию false)
// Фильтры
"CustomerId": "f1688306-fa99-4193-a102-a0e6d9977ef2", // Идентификатор покупателя (Не обяз.)
"StatusId": 1, // Идентификатор статуса заказа (Не обяз.)
"IsPaid": true, // Оплачен заказ или нет (Не обяз.)
"SumFrom": 50.0, // Начиная с суммы заказа (Не обяз.)
"SumTo": 990.0, // Заканчивая суммой заказа (Не обяз.)
"DateFrom": "2020-12-08T00:00:00", // Начиная с даты заказа в формате ISO 8601 (Не обяз.)
"DateTo": "2020-12-09T00:00:00" // Заканчивая датой заказа в формате ISO 8601 (Не обяз.)
"ModifiedDateFrom": "2020-12-08T00:00:00", // Начиная с даты модификации заказа в формате ISO 8601 (Не обяз.)
"ModifiedDateTo": "2020-12-09T00:00:00" // Заканчивая датой модификации заказа в формате ISO 8601 (Не обяз.)
}
Пример ответа
{
"result": true,
"obj": {
"DataItems": [
{ // Описание объекта заказа
"Id": 1,
"Number": "2020-1",
...
},
{
"Id": 4,
"Number": "4",
...
}
],
"TotalPageCount": 17, // Кол-во страниц
"TotalItemsCount": 34, // Общее кол-во заказов по запросу
"PageIndex": 1, // Текущая страница
"ItemsPerPage": 2 // Кол-во заказов на страницу
}
}
Пример ответа с ошибкой
{
"result": false,
"errors": [
"Неудалось преобразовать дату параметра DateFrom"
]
}
Пример json-запроса:
{
"OrderId": 4, // Идентификатора заказа ( обяз.)
"StatusId": 1 // Идентификатора статуса заказа ( обяз.)
}
Пример ответа
{
"result": true
}
Пример ответа с ошибкой
{
"result": false,
"errors": [ "Статус не найден" ]
}
Пример json-запроса:
{
"OrderId": 4 // Идентификатора заказа ( обяз.)
}
Пример ответа
{
"result": true
}
Пример ответа с ошибкой
{
"result": false,
"errors": [ "Заказ не найден" ]
}
Пример json-запроса:
{
"Page": 1, // Запрашиваемая страница (Не обяз. Если меньше 1, примет значение 1)
"ItemsPerPage": 2 // Кол-во статусов на страницу (Не обяз. Поумолчанию 100/максимум 100.)
// Фильтры
"IsCanceled": true, // Статусы отменяющие заказ (Не обяз.)
"IsCompleted": true, // Статусы завершающие заказ (Не обяз.)
"Hidden": true // Статусы скрытые для клиента (Не обяз.)
}
{
"result": true,
"obj": {
"DataItems": [
{ // Объект статуса
"Id": 5, // Идентификатор статуса
"Name": "Доставлен", // Название
"IsCanceled": false, // Заказ отменен
"IsCompleted": true, // Заказ завершен
"Hidden": false // Скрыт для клиента
},
{
"Id": 4,
"Name": "Новый",
...
}
],
"TotalPageCount": 17, // Кол-во страниц
"TotalItemsCount": 34, // Общее кол-во статусов по запросу
"PageIndex": 1, // Текущая страница
"ItemsPerPage": 2 // Кол-во статусов на страницу
}
}
Пример ответа с ошибкой
{
"result": false,
"errors": [
"Неудалось преобразовать дату параметра DateFrom"
]
}
Получение списка клиентов, удовлетворяющих заданному фильтру. Результат возвращается постранично.
Фильтр. Все поля не обязательны.
{
"CustomerFields" : {
"1": { "value": "123" },
"2": { "dateFrom": "2021-10-11", "dateTo": "2021-11-11" },
}
}
1, 2 - id поля покупателяCustomerFiled. Все поля не обязательны.
Пример ответа
{
"pagination": {
"count": 3,
"currentPage": 1,
"totalCount": 3,
"totalPageCount": 1
},
"customers": [
{
"id": "8ec48a6c-06ec-4704-bf76-8ee6c893108a",
"email": "test@email.com",
"phone": 79123456789,
"firstName": "Ivan",
"lastName": "Ivanov",
"patronymic": "Ivanovich",
"organization": "OOO Umbrella",
"subscribedForNews": false,
"birthday": null,
"adminComment": null,
"managerId": null,
"groupId": 1
}
]
}
Ответ
Может содержать дополнительные поля в ответе (contact, fields), если в запросе передается параметр extended=true
Информация о постраничном выводе включает:
{
"id": "b337541c-7c41-4bd1-a3d6-360cf655601b", // Id покупателя
"email": "myemail@email.com", // Email обяз. и уникален
"phone": 79171234567, // Телефон не обяз., если указан, то должен быть уникален (Тип long)
"firstName": "Ivan",
"lastName": "Ivanov",
"patronymic": "Ivanovich",
"organization": "OOO Umbrella",
"subscribedForNews": false,
"birthday": "2022-01-01T00:00:00", // не обяз.
"adminComment": "Our best client!", // не обяз.
"managerId": null, // Id менеджера покупателя (не обяз.)
"groupId": 1, // Id группы покупателя (не обяз.)
"contact": {
"contactId": "e56ae1a2-b5f5-49e4-a2be-bb219a44ea54",
"name": "Ivan Ivanov",
"country": "Россия",
"city": "Москва",
"district": "",
"region": "Москва",
"zip": "432000",
"street": "Ленина",
"house": "1",
"apartment": "2",
"structure": "",
"entrance": "",
"floor": ""
},
"fields": [ // Поля покупателя (не обяз.)
{
"id": 1,
"name": "Text field",
"value": "some text"
},
{
"id": 2,
"name": "Select field",
"value": "some value"
},
{
"id": 3,
"name": "Data field",
"value": "2021-10-01"
}
]
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не найден"
}
POST api/customers/add
{
"email": "myemail@email.com",
"phone": 79171234567,
"firstName": "Ivan",
"lastName": "Ivanov",
"patronymic": "Ivanovich",
"organization": "OOO Umbrella",
"subscribedForNews": false,
"birthday": "2022-01-01T00:00:00",
"adminComment": "Our best client!",
"managerId": null,
"groupId": 1,
"contact": {
"country": "Россия",
"city": "Москва",
"district": "",
"region": "Москва",
"zip": "432000",
"street": "Ленина",
"house": "1",
"apartment": "2",
"structure": "",
"entrance": "",
"floor": ""
},
"fields": [
{
"id": 1,
"name": "Text field",
"value": "some text"
},
{
"id": 2,
"name": "Select field",
"value": "some value"
},
{
"id": 3,
"name": "Data field",
"value": "2021-10-01"
}
],
"ignoreCustomerFieldsConstraints": null|true|false
}
Пример ответа
{
"id": "b337541c-7c41-4bd1-a3d6-360cf655601b", // id созданного покупателя
"status": "ok" // статус
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь с таким телефоном уже существует"
}
POST api/customers/{id}
{
"id": "b337541c-7c41-4bd1-a3d6-360cf655601b",
"email": "myemail@email.com",
"phone": 79171234567,
"firstName": "Ivan",
"lastName": "Ivanov",
"patronymic": "Ivanovich",
"organization": "OOO Umbrella",
"subscribedForNews": false,
"birthday": "2022-01-01T00:00:00",
"adminComment": "Our best client!",
"managerId": null,
"groupId": 1,
"contact": {
"contactId": "e56ae1a2-b5f5-49e4-a2be-bb219a44ea54",
"name": "Ivan Ivanov",
"country": "Россия",
"city": "Москва",
"district": "",
"region": "Москва",
"zip": "432000",
"street": "Ленина",
"house": "1",
"apartment": "2",
"structure": "",
"entrance": "",
"floor": ""
},
"fields": [ // Поля покупателя (не обяз.)
{
"id": 1,
"name": "Text field",
"value": "some text"
},
{
"id": 2,
"name": "Select field",
"value": "some value"
},
{
"id": 3,
"name": "Data field",
"value": "2021-10-01"
}
],
"ignoreCustomerFieldsConstraints": null|true|false
}
Пример ответа
{
"id": "b337541c-7c41-4bd1-a3d6-360cf655601b", // id покупателя
"status": "ok" // статус
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь с таким телефоном уже существует"
}
Пример запроса
{"phone": "79171234567"}
Пример ответа
{
"isCodeSended": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не подключен модуль sms"
}
Пример запроса
{
"phone": "79171234567",
"code": "1234"
}
Пример ответа
{
"confirmed": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не правильный sms-код"
}
Пример ответа
{
"cardId": 961640, // номер бонусной карты (long)
"amount": 200, // кол-во бонусов (decimal)
"percent": 3, // процент карты (decimal)
"gradeName": "Гостевой", // название грейда (string)
"gradeId": 1, // id грейда (int)
"isBlocked": false // заблокирована ли карта (bool)
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "У покупателя нет бонусной карты"
}
Пример ответа
{
"cardId": 961640, // номер бонусной карты (long)
"amount": 200, // кол-во бонусов (decimal)
"percent": 3, // процент карты (decimal)
"gradeName": "Гостевой", // название грейда (string)
"gradeId": 1, // id грейда (int)
"isBlocked": false // заблокирована ли карта (bool)
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "У покупателя нет бонусной карты"
}
Пример запроса
{ "customerId": "889d82df-aaa5-4d54-a870-8d123e541af9" }
Пример ответа
{
"cardId": 123,
"amount": 0,
"percent": 3,
"gradeName": "Гостевой",
"gradeId": 1,
"isBlocked": false
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "У покупателя уже есть бонусная карта"
}
Пример ответа
[
{
"id": 1,
"name": "Начислить бонусы",
"amount": 100,
"startDate": "2021-11-15T00:00:00",
"endDate": "2021-11-30T00:00:00",
"description": "Описание",
"status": 0
},
{
"id": 2,
"name": "Начислить бонусы 2",
"amount": 500,
"startDate": null,
"endDate": null,
"description": null,
"status": 0
}
]
Пример запроса
{
"name": "Начислить бонусы на др",
"amount": 100,
"reason": "С Днем Рождения!",
"startDate": "2021-11-15T00:00:00",
"endDate": "2021-11-30T00:00:00",
"sendSms": false,
}
Пример ответа
{
"status": "ok"
}
Пример запроса
{
"bonusId": 1,
"amount": 100,
"reason": "Списание бонусов",
"sendSms": false,
}
Пример ответа
{
"status": "ok"
}
Пример запроса
{
"amount": 100,
"reason": "Списание бонусов",
"sendSms": false,
}
Пример ответа
{
"status": "ok"
}
Пример ответа
{
"transactions": [
{
"balance": 111.0000,
"createOn": "2021-11-16T16:44:43.253",
"amount": 111.0000,
"basis": "Основание",
"operationType": "AddAdditionBonus",
"purchaseId": null
},
{
"balance": 123456.0000,
"createOn": "2021-11-16T16:44:10.39",
"amount": 123456.0000,
"basis": "Основание",
"operationType": "AddMainBonus",
"purchaseId": null
}
],
"pagination": {
"count": 2,
"currentPage": 1,
"totalCount": 2,
"totalPageCount": 1
}
}
Бонусные карты генерируруется случайным образом в диапазоне "Диапазон карт от" до "Диапазон карт до". Не делайте его слишком маленьким, иначе сгенерировать новую карту не получится.
Пример ответа
{
"cardNumberFrom": 100000,
"cardNumberTo": 999999,
"bonusGradeId": 1,
"grades": [
{
"label": "Гостевой",
"value": "1",
"selected": true
},
{
"label": "Бронзовый",
"value": "2",
"selected": false
},
{
"label": "Серебряный",
"value": "3",
"selected": false
},
{
"label": "Золотой",
"value": "4",
"selected": false
},
{
"label": "Платиновый",
"value": "5",
"selected": false
}
],
"isEnabled": true,
"maxOrderPercent": 100.0,
"bonusType": 1,
"bonusTypes": [
{
"label": "Стоимость товаров и доставки",
"value": "0",
"selected": false
},
{
"label": "Стоимость товаров",
"value": "1",
"selected": false
}
],
"bonusTextBlock": "",
"bonusRightTextBlock": "",
"disallowUseWithCoupon": false,
"smsNotificationEnabled": false,
"emailNotificationEnabled": false,
"pushNotificationEnabled": false
}
Пример запроса
{
"cardNumberFrom": 100000,
"cardNumberTo": 999999,
"bonusGradeId": 1,
"grades": [
{
"label": "Гостевой",
"value": "1",
"selected": true
},
{
"label": "Бронзовый",
"value": "2",
"selected": false
},
{
"label": "Серебряный",
"value": "3",
"selected": false
},
{
"label": "Золотой",
"value": "4",
"selected": false
},
{
"label": "Платиновый",
"value": "5",
"selected": false
}
],
"isEnabled": true,
"maxOrderPercent": 100.0,
"bonusType": 1,
"bonusTypes": [
{
"label": "Стоимость товаров и доставки",
"value": "0",
"selected": false
},
{
"label": "Стоимость товаров",
"value": "1",
"selected": false
}
],
"bonusTextBlock": "",
"bonusRightTextBlock": "",
"disallowUseWithCoupon": false,
"smsNotificationEnabled": false,
"emailNotificationEnabled": false,
"pushNotificationEnabled": false
}
Пример ответа
{
"status": "ok"
}
Пример ответа
[
{
"id": 1, // Идентификатор
"name": "Гостевой", // Название
"bonusPercent": 3, // Процент начисления бонусов
"sortOrder": 0, // Сортировка
"purchaseBarrier": 0 // Порог для перехода на след. гейд
},
{
"id": 2,
"name": "Бронзовый",
"bonusPercent": 5,
"sortOrder": 1,
"purchaseBarrier": 5000
}
]
Получение списка категорий, удовлетворяющих заданному фильтру. Результат возвращается постранично.
Фильтр. Все поля не обязательны.
Пример запроса
/api/categories?parentCategoryId=0&extended=true
Пример ответа
{
"categories": [
{
"id": 5701,
"externalId": "5701",
"parentCategoryId": 0,
"name": "Категория 1",
"url": "kategoriya-1",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "nosorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": true,
"modifiedBy": "csv",
"seoMetaInformation": {
"isDefault": true,
"title": "#STORE_NAME# - #CATEGORY_NAME#",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
},
"pictureUrl": null,
"miniPictureUrl": null,
"menuIconPictureUrl": null,
"level": 2,
"childCategoriesCount": 0,
"productsCount": 3,
"productsCountInCategory": 3
},
{
"id": 5702,
"externalId": "5702",
"parentCategoryId": 0,
"name": "Категория 2",
"url": "kategoriya-2",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "nosorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": true,
"modifiedBy": "csv",
"seoMetaInformation": {
"isDefault": true,
"title": "#STORE_NAME# - #CATEGORY_NAME#",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
},
"pictureUrl": null,
"miniPictureUrl": null,
"menuIconPictureUrl": null,
"level": 2,
"childCategoriesCount": 0,
"productsCount": 3,
"productsCountInCategory": 3
},
...
],
"pagination": {
"count": 12,
"currentPage": 1,
"totalCount": 12,
"totalPageCount": 1
}
}
Ответ
Может содержать дополнительные поля в ответе, если в запросе передается параметр extended=true
Информация о постраничном выводе включает:
Пример ответа
{
"id": 5701,
"externalId": "5701",
"parentCategoryId": 0,
"name": "Категория 1",
"url": "kategoriya-1",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "nosorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": true,
"modifiedBy": "csv",
"seoMetaInformation": {
"isDefault": true,
"title": "#STORE_NAME# - #CATEGORY_NAME#",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
},
"pictureUrl": null,
"miniPictureUrl": null,
"menuIconPictureUrl": null
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Категории не существует"
}
Пример запроса
{
"parentCategoryId": 0,
"name": "Категория",
"url": "new-category",
"description": "description",
"briefDescription": "brief description",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "nosorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": true,
"modifiedBy": "api"
}
Пример ответа
{
"id": 123, // id созданной категории
"status": "ok" // статус
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Название обязательно для заполения"
}
POST api/customers/{id}
{
"id": 1234567,
"externalId": "1234567",
"parentCategoryId": 0,
"name": "Категория 123456789",
"url": "kategoriya-1",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "nosorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": true,
"modifiedBy": "835d82df-aaa6-4d54-a870-8d353e541af9",
"seoMetaInformation": {
"isDefault": false,
"title": "#STORE_NAME# - #CATEGORY_NAME# 123456789",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
}
}
Пример ответа
{
"id": 1234567, // id категории
"status": "ok" // статус
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Название обязательно для заполения"
}
Пример ответа
{
"status": "ok"
}
Пример ответа
{
"status": "ok"
}
Пример запроса
{
"link": "https://link.com/img.jpg"
}
Пример ответа
{
"status": "ok"
}
Пример запроса
{
"link": "https://link.com/img.jpg"
}
Пример ответа
{
"status": "ok"
}
Пример запроса
{
"link": "https://link.com/img.jpg"
}
Получение настроек по ключам
Пример запроса
/api/settings?keys=ShopURL,ShopName
Пример ответа
[
{
"key": "ShopURL",
"value": "http://site.ru"
},
{
"key": "ShopName",
"value": "Shop name"
}
]
Фильтр. Все поля не обязательны.
Пример запроса
/api/carousels?enabled=true&displayInMobile=true
Пример ответа
[
{
"carouselId": 1,
"sortOrder": 10,
"url": "",
"enabled": true,
"displayInOneColumn": false,
"displayInTwoColumns": true,
"displayInMobile": false,
"blank": false,
"picture": {
"src": "https://sitedomain.ru/carousel/slide1.jpg",
"alt": ""
}
},
{
"carouselId": 2,
"sortOrder": 20,
"url": "",
"enabled": true,
"displayInOneColumn": true,
"displayInTwoColumns": false,
"displayInMobile": true,
"blank": false,
"picture": {
"src": "https://sitedomain.ru/carousel/slide2.jpg",
"alt": ""
}
},
...
]
Пример запроса
/api/notifications/sendpush
{
"customerId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"title": "Заголовок",
"body": "Сообщение"
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите заголовок и сообщение уведомления"
}
API с авторизацией (Client API)
Когда пользователь не авторизован, при использовании методов API в ответе в HTTP-заголовке будет возвращаться X-API-USER-ID. Его нужно использовать в последующих запросах к API. Это необходимо чтобы понимать для какого покупателя выполняются методы.
После авторизации (users/signin) в ответе приходит id (userId) и ключ (userKey) для пользователя. Данные ключи следует использовать в HTTP-заголовках X-API-USER-ID и X-API-USER-KEY при использовании методов API.
Если используются типы цен со складами, то в url-адресе можно использовать параметр warehouseIds или передавать заголовок X-API-WAREHOUSES. Например: https://mydomain.ru/api/catalog/all?warehouseIds=1,2 или X-API-WAREHOUSES: 1,2 Тогда по API вернутся товары с учетом типа цены и выбранного склада.
Пример запроса
?settings=IsShowCity,BuyButtonText
Пример ответа
{
"customer": {
"id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"email": null,
"phone": null,
"firstName": "Ivan",
"lastName": "Ivanov",
"patronymic": "",
"organization": "",
"subscribedForNews": false,
"birthday": null,
"adminComment": "",
"managerId": null,
"groupId": 1,
"group": {
"id": 1,
"name": "Обычный покупатель",
"discountPercent": 0.0
},
"customerType": "PhysicalEntity",
"contacts": [
{
"contactId": "00000000-0000-0000-0000-000000000000",
"name": "Ivanov Ivan",
"country": "Россия",
"city": "Москва",
"district": "",
"region": "",
"zip": "",
"street": "Ленина",
"house": "1",
"apartment": "1",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain": true
},
{
"contactId": "00000000-0000-0000-0000-000000000001",
"name": "Ivanov2 Ivan2",
"country": "Россия",
"city": "Казань",
"district": "",
"region": "",
"zip": "",
"street": "Лениная",
"house": "5",
"apartment": "234",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain": true
},
],
"fields": [
{
"id": 1,
"name": "Test",
"value": null,
"fieldType": "text",
"valueItems": null,
"customerType": "All",
"fieldAssignment": "None",
"required": false,
"showInRegistration": true,
"showInCheckout": true,
"disableEditing": false
},
{
"id": 2,
"name": "Test 2",
"value": null,
"fieldType": "select",
"valueItems": [
{
"text": "be?",
"value": "be",
"selected": false
},
{
"text": "or not to be?",
"value": "not be",
"selected": false
}
],
"customerType": "PhysicalEntity",
"fieldAssignment": "None",
"required": false,
"showInRegistration": true,
"showInCheckout": true,
"disableEditing": false
}
],
"fcmToken": null
},
"currency": {
"name": "Рубли",
"symbol": " руб.",
"rate": 1,
"iso3": "RUB",
"isCodeBefore": false,
"roundNumbers": 1,
"enablePriceRounding": true
},
"settings": [
{
"key": "ShopName",
"value": "Super store"
},
{
"key": "ShopURL",
"value": "https://mysite.ru"
},
{
"key": "ColorScheme",
"value": "blue"
},
{
"key": "ProductsPerPage",
"value": "48"
},
{
"key": "SizesHeader",
"value": "Размер"
},
{
"key": "ColorsHeader",
"value": "Цвет"
},
{
"key": "BuyButtonText",
"value": "Добавить"
},
{
"key": "Phone",
"value": "+7(900)000-00-00"
},
{
"key": "MobilePhone",
"value": "+79000000000"
},
{
"key": "Logo",
"value": "https://mysite.ru/pictures/logo.png"
},
{
"key": "ColorSchemesColor",
"value": "0662c1"
},
{
"key": "ModerateReviews",
"value": false
},
{
"key": "MobileAppTheme",
"value": "dark" // dark, light
},
{
"key": "MobileAppUseStoreColorScheme",
"value": true
},
{
"key": "MobileAppMainColor",
"value": "0088cc"
},
{
"key": "MobileAppButtonTextColor",
"value": "fff"
},
{
"key": "ChangeBackgroundColor",
"value": false
},
{
"key": "BackgroundColor",
"value": null
},
{
"key": "ChangeHeaderBackgroundColor",
"value": false
},
{
"key": "HeaderBackgroundColor",
"value": null
},
{
"key": "HeaderTextColor",
"value": null
},
{
"key": "ChangeBottomMenuBackgroundColor",
"value": false
},
{
"key": "BottomMenuBackgroundColor",
"value": null
},
{
"key": "BottomMenuTextColor",
"value": null
},
{
"key": "BottomMenuActiveItemColor",
"value": null
},
{
"key": "ChangeTileBackgroundColor",
"value": false
},
{
"key": "TileBackgroundColor",
"value": null
},
{
"key": "ShowBonusCardQrCode",
"value": true
},
{
"key": "BonusCardQrCodeMode",
"value": "bonusCardNumber" // null (ShowBonusCardQrCode = false), bonusCardNumber, phone
},
{
"key": "HideShoppingCart",
"value": false
},
{
"key": "ColorSchemesButtonTextColor",
"value": "fff"
},
{
"key": "MobileAppSignInPicture",
"value": "https://mysite.ru/pictures/mobileapp/signin.png"
},
{
"key": "MobileAppCartPicture",
"value": "https://mysite.ru/pictures/mobileapp/cart.png"
},
{
"key": "MobileAppLogo",
"value": null
},
{
"key": "ShowRating",
"value": false
},
{
"key": "ShowSku",
"value": true
},
{
"key": "ShowCatalogFilter",
"value": false
},
{
"key": "MobileAppMainPageMode",
"value": "mainCategories" // mainCategories, allCategoriesWithProducts
},
{
"key": "CategoryViewModeOnMainPage",
"value": "tile" // tile, listWithPhoto, listWithoutPhoto
},
{
"key": "ShowCatalogPanel",
"value": true
},
{
"key": "ShowAvailability",
"value": true
},
{
"key": "ShowReviews",
"value": false
},
{
"key": "ShowCitySelection",
"value": true
},
{
"key": "ForceCitySelection",
"value": false
},
{
"key": "ProhibitSelectingCitiesNotFromPresetList",
"value": false
},
{
"key": "ShowAuthScreenOnStart",
"value": false
},
{
"key": "MobileAppProductViewMode",
"value": "tile" // tile, list, detail
},
{
"key": "ShowProductBriefDescriptionInCatalog",
"value": true
},
{
"key": "ProductsCountByCategoryForAllCategories",
"value": 8
},
{
"key": "ShowAmountSpinBoxInsteadOfAddToCart",
"value": false
},
{
"key": "ShowPriceOnAddToCart",
"value": false
},
{
"key": "ProductPhotosWithRoundedCorners",
"value": false
},
{
"key": "ShowPostCode",
"value": false
},
{
"key": "ShowLogoInCenter",
"value": false
},
{
"key": "ShowBlockTitlesInProductDetails",
"value": false`
},
{
"key": "OfficeAddressesBlockName",
"value": "Магазины"
},
{
"key": "ShowSearch",
"value": true
},
{
"key": "ShowSearchByBarcode",
"value": false
},
{
"key": "ShowActiveOrdersOnMainPage",
"value": false
},
{
"key": "ShowYouOrderedBlockOnMainPage",
"value": false
},
{
"key": "ShowWishList",
"value": false
},
{
"key": "ShowDeliveriesInProductDetails",
"value": false
},
{
"key": "CheckOccurrenceOfAddressInDeliveryArea",
"value": false
},
{
"key": "DisplayReviewsImage",
"value": false
},
{
"key": "AllowReviewsImageUploading",
"value": false
},
{
"key": "ReviewImageWidth",
"value": 100
},
{
"key": "ReviewImageHeight",
"value": 100
},
{
"key": "TextOnMainTitle",
"value": "title here"
},
{
"key": "TextOnMainText",
"value": "text here"
},
{
"key": "CarouselShowSectionInBottomNavigationMenu",
"value": true
},
{
"key": "IsPhysicalEntityEnabled",
"value": true
},
{
"key": "IsLegalEntityEnabled",
"value": true
},
{
"key": "AppMetricaEnabled",
"value": false
},
{
"key": "AppMetricaApiKey",
"value": null
},
{
"key": "ShowDeliveryInDeliveryWidgetOnMain",
"value": false
},
{
"key": "ShowSelfDeliveryInDeliveryWidgetOnMain",
"value": false
},
{
"key": "ShowInHouseInDeliveryWidgetOnMain",
"value": false
},
{
"key": "InHouseMethodName",
"value": "В зале"
},
{
"key": "InHouseMethodText",
"value": "Выберите стол"
},
{
"key": "DefaultSelfDeliveryId",
"value": null
},
{
"key": "DefaultSelfDeliveryPointStringId",
"value": null
},
{
"key": "ShowChoosingDeliveryWhenOpeningApplication",
"value": false
},
{
"key": "TryGetNearestPickPoint",
"value": false
},
{
"key": "AllowOrderCheckout",
"value": false
},
{
"key": "OrderCheckoutDisabledMessage",
"value": "Извините, сейчас мы не работаем."
},
{
"key": "ShowAvailableInWarehouseInProduct",
"value": false
},
{
"key": "SellerCountryId",
"value": 171
},
{
"key": "SellerCountryName",
"value": "Россия"
},
{
"key": "SellerCountryDialCode",
"value": 7
},
{
"key": "SellerCountryIso2",
"value": "RU"
},
{
"key": "SellerCountryIso3",
"value": "RUS"
},
{
"key": "ShowFeedback",
"value": false
},
{
"key": "FeedbackLeadFunnelId",
"value": null
},
{
"key": "FeedbackHintText",
"value": null
},
{
"key": "UserAddressRequired",
"value": true
},
{
"key": "ShowAddressInProfile",
"value": true
},
{
"key": "ActiveWarehouseCount",
"value": 1
},
{
"key": "DefineCityBasedOnGeodata",
"value": false
},
{
"key": "CityIdIfNotAutodetect",
"value": null
},
{
"key": "CityNameIfNotAutodetect",
"value": null
},
{
"key": "RegionIdIfNotAutodetect",
"value": null
},
{
"key": "RegionNameIfNotAutodetect",
"value": null
},
{
"key": "CountryIdIfNotAutodetect",
"value": null
},
{
"key": "CountryNameIfNotAutodetect",
"value": null
},
{
"key": "ColorsViewMode",
"value": "icon"
},
{
"key": "ShowPriceRuleAmountTableInProduct",
"value": false
},
{
"key": "AuthByCodeMethod",
"value": "Sms" // Sms, Call
},
{
"key": "AuthCallMode",
"value": null // null (AuthByCodeMethod == Sms), Flash, Voice
},
{
"key": "AuthByCodeMethodDescription",
"value": "Вам придет смс с кодом. Введите 4 цифры."
}
],
"optionalSettings": [
{
"key": "some_key",
"value": "value object: null|string|int|.."
}
],
"location": {
"countryId": 171,
"countryName": "Россия",
"regionId": 41,
"region": "Москва",
"cityId": 0,
"city": "Москва",
"district": "",
"dialCode": 7,
"zip": null
},
"dadata": {
"isActive": false,
"apiKey": null
},
"contact": {
"address": "г. Москва, Пресненская набережная, 8с1, офис 123",
"addressMap": "https://yandex.ru/maps/-/CCUJAFCn-B",
"phone": "8 (800) 350-50-50",
"email": null,
"workSchedule": "Пн-Пт 08:00 - 18:00, Сб-Вс Выходные",
"aboutCompany": "О компании"
},
"carousel": [
{
"imageSrc": "https://mysite.ru/pictures/carouselapi/123.jpg",
"title": "Заголовок",
"shortDescription": "Краткое описание",
"fullDescription": "Подробное описание",
"showOnMain": true,
"couponCode": null,
"expirationDate": null,
"product": null,
"category": null,
"urlLink": null
},
{
"imageSrc": "https://mysite.ru/pictures/carouselapi/456.jpg",
"title": "Заголовок",
"shortDescription": "Краткое описание",
"fullDescription": "Подробное описание",
"showOnMain": true,
"couponCode": "Код купона",
"expirationDate": "2024-12-04T00:00:00",
"product": {
"productId": 20244,
"artNo": "20244",
"name": "Шорты",
"urlPath": "shorty",
"briefDescription": null,
"discount": {
"percent": 10,
"amount": 0,
"type": "Percent"
},
"oldPrice": 1000,
"price": 900,
"preparedOldPrice": "1 000 руб.",
"preparedPrice": "900 руб.",
"photo": {
"smallSrc": "https://mysite.ru/pictures/product/small/1_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/1_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/1_big.jpg",
"colorId": null,
"main": true
}
},
"category": {
"id": 1,
"name": "Категория",
"url": "category-1",
"description": "Описание",
"briefDescription": "Краткое описание",
"pictureUrl": null,
"miniPictureUrl": null
},
"urlLink": "https://mysite.ru/something"
}
]
}
Описание по умолчанию:
если AuthByCodeMethod равен Sms, то "Вам придет смс с кодом. Введите 4 цифры."
если AuthCallMode равен Flash, то "Введите 4 последние цифры номера, с которого поступит звонок."
если AuthCallMode равен Voice, то "Введите 4 цифры кода, который вы услышите при звонке."
Пример запроса
{
"email": "my@email.com",
"password": "password"
}
Пример ответа
{
"userKey": "userkey",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"customer": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"email": "admin",
"phone": 74958002000,
"firstName": "Имя",
"lastName": "Фамилия",
"patronymic": "",
"organization": "",
"subscribedForNews": false,
"birthday": null,
"adminComment": "",
"managerId": null,
"groupId": 1,
"group": {
"id": 1,
"name": "Обычный покупатель",
"discountPercent": 0.0
},
"customerType": "PhysicalEntity",
"contacts": [
{
"contactId": "00000000-0000-0000-0000-000000000000",
"name": "Ivanov Ivan",
"country": "Россия",
"city": "Москва",
"district": "",
"region": "Москва",
"zip":"",
"street": "Ленина",
"house": "1",
"apartment": "1",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain": true
},
{
"contactId": "00000000-0000-0000-0000-000000000001",
"name": "Ivanov2 Ivan2",
"country": "Россия",
"city": "Казань",
"district": "",
"region": "",
"zip": "",
"street": "Лениная",
"house": "5",
"apartment": "234",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain": false
},
],
"fields": [
{
"id": 1,
"name": "Test",
"value": null,
"customerType": "All",
"fieldAssignment": "None",
"required": false,
"showInRegistration": true,
"showInCheckout": true,
"disableEditing": false
},
{
"id": 2,
"name": "Test 2",
"value": null,
"value": null,
"customerType": "PhysicalEntity",
"fieldAssignment": "None",
"required": false,
"showInRegistration": true,
"showInCheckout": true,
"disableEditing": false
}
],
"fcmToken": null
}
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не верный логин или пароль"
}
Авторизация по sms-коду делается двумя запросами:
1) /api/users/signInByPhone - пользователю отсылается sms-код по номеру телефона. Его нужно ввести в течении 10 мин.
2) /api/users/signInByPhoneConfirmCode - проверяется введенный пользователем код, если верен, то возвращается авторизованный покупатель, userKey, userId
Пример запроса
{
"phone": "7(912)3456789", // обяз., телефон
"signUp": true // не обяз. параметр, передается, если нужно зарегистрировать покупателя. По умолчанию false
"addHash": true // не обяз. параметр, добавляет хеш приложения для автоматического подтверждения смс-кода. По умолчанию false
}
Пример ответа
{
"isCodeSended": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь с телефоном 7(912)3456789 не зарегистрирован"
}
Пример запроса
{
"phone": "7(912)3456789", // обяз., телефон
"code": "1234", // обяз., проверочный код
"signUp": true // не обяз. параметр, передается, если нужно зарегистрировать покупателя. По умолчанию false
}
Пример ответа
{
"userKey": "userkey",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"customer": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"email": "admin",
"phone": 79123456789,
"firstName": "Имя",
"lastName": "Фамилия",
"patronymic": "",
"organization": "",
"subscribedForNews": false,
"birthday": null,
"adminComment": "",
"managerId": null,
"groupId": 1,
"group": {
"id": 1,
"name": "Обычный покупатель",
"discountPercent": 0.0
},
"customerType": "PhysicalEntity",
"contacts": [
{
"contactId": "00000000-0000-0000-0000-000000000000",
"name": "Ivanov Ivan",
"country": "Россия",
"city": "Москва",
"district": "",
"region": "Москва",
"zip":"",
"street": "Ленина",
"house": "1",
"apartment": "1",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain": true
},
{
"contactId": "00000000-0000-0000-0000-000000000001",
"name": "Ivanov2 Ivan2",
"country": "Россия",
"city": "Казань",
"district": "",
"region": "",
"zip": "",
"street": "Лениная",
"house": "5",
"apartment": "234",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain" : false
},
],
"fields": [
{
"id": 1,
"name": "Test",
"value": null,
"customerType": "All",
"fieldAssignment": "None",
"required": false,
"showInRegistration": true,
"showInCheckout": true,
"disableEditing": false
},
{
"id": 2,
"name": "Test 2",
"value": null,
"value": null,
"customerType": "PhysicalEntity",
"fieldAssignment": "None",
"required": false,
"showInRegistration": true,
"showInCheckout": true,
"disableEditing": false
}
],
"fcmToken": null
}
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не правильный sms-код"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не авторизован"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не авторизован"
}
Пример запроса
{
"addHash": true // не обяз. параметр. По умолчанию false. Добавляет в конец смс-кода хэш приложения.
}
Пример ответа
{
"isCodeSended": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не подключен модуль sms"
}
Пример запроса
{
"code": "1234"
}
Пример ответа
{
"confirmed": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не правильный sms-код"
}
Пример ответа
{
"cardId": 961640, // номер бонусной карты (long)
"amount": 200, // кол-во бонусов (decimal)
"percent": 3, // процент карты (decimal)
"gradeName": "Гостевой", // название грейда (string)
"gradeId": 1, // id грейда (int)
"isBlocked": false // заблокирована ли карта (bool)
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "У покупателя нет бонусной карты"
}
Пример запроса
api/users/customer-fields?type=LegalEntity
Пример ответа
{
"result": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не найден"
}
Пример запроса
{
"token": "qwerty"
}
Пример ответа
{
"result": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не найден"
}
Пример ответа
[
{
"contactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"name": "Ivanov Ivan",
"country": "Россия",
"city": "Москва",
"district": "",
"region": "Москва",
"zip": "101000",
"street": "Ленина",
"house": "1",
"apartment": "",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain" : true
},
{
"contactId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy",
"name": "Surname Firstname",
"country": "",
"city": "",
"district": "",
"region": "",
"zip": "",
"street": "",
"house": "",
"apartment": "",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain" : false
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не авторизован"
}
Пример запроса
{
"name": "Ivanov2 Ivan",
"country": "Россия",
"city": "Казань",
"district": "",
"region": "",
"zip": "",
"street": "",
"house": "",
"apartment": "",
"structure": "",
"entrance": "",
"floor": "",
"dadataJson": null,
"isMain" : true
}
Пример ответа
{
"contactId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyy"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не авторизован"
}
Пример запроса
{
"name": "Ivanov2 Ivan",
"country": "Россия",
"city": "Самара",
"district": "",
"region": "",
"zip": "",
"street": "Ленина",
"house": "2",
"apartment": "123",
"structure": "",
"entrance": "9",
"floor": "3",
"dadataJson": null,
"isMain" : true
}
Пример ответа
{
"contactId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyy"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не авторизован"
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Пользователь не авторизован"
}
Пример ответа
Пример ответа с ошибкой
{
"ordersSum": "1 000 руб.",
"ordersCount": 1,
"averageCheck": "1 000 руб.",
"durationOfWorkWithClient": "3м. 3д.",
"addressesCount": 1,
"wishListCount": 0,
"activeOrdersCount": 1,
}
headers:
X-API-KEY: [API_KEY]
X-API-USER-ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
X-API-USER-KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-API-USER-ID и X-API-USER-KEY получены после авторизации (users/signin)
Если пользователь не авторизован, то вернется пустой список заказов
Пример запроса
?loadItems=true&loadCustomer=true&loadSource=true&itemsPerPage=10
Фильтр. Все поля необязательны для заполнения
Admin.SettingsApiAuth.Index.OrdersMe.ReceiveOrder.TextOne
headers:
X-API-KEY: [API_KEY]
X-API-USER-ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
X-API-USER-KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Admin.SettingsApiAuth.Index.OrdersMe.ReceiveOrder.TextTwo
Пример ответа
{
"id": 1,
"number": "1",
"currency": "RUB",
"sum": 400.0,
"preparedSum": "400 руб.",
"date": "2015-10-21T12:22:14",
"customerComment": "",
"adminComment": "",
"paymentName": "При получении (наличными или банковской картой)",
"paymentCost": 0.0,
"preparedPaymentCost": "0 руб.",
"shippingName": "Самовывоз",
"shippingCost": 0.0,
"preparedShippingCost": "0 руб.",
"shippingTaxName": "Без НДС",
"trackNumber": "",
"deliveryDate": null,
"deliveryTime": "",
"shippingAddress": "Россия, Москва, Москва, 101000, Ленина 1",
"orderDiscount": 0.0,
"orderDiscountValue": 0.0,
"discountPrice": 0.0,
"preparedDiscountCost": "0 руб.",
"bonusCardNumber": 123,
"bonusCost": 0.0,
"preparedBonusCost": "0 руб.",
"preparedNewBonusesForOrder": "12 бонусов",
"productsCost": 400.0,
"preparedProductsCost": "400 руб.",
"couponPrice": 0.0,
"preparedCouponPrice": "0 руб.",
"lpId": null,
"isPaid": false,
"billingApiLink": "https://mysite.ru/checkout/apiauth?type=billing&code=xxxxx-xxxx-xxxx-xxxx&hash=xxxxxxxxxx",
"paymentDate": null,
"customer": {
"customerId": "xxxxxxx-xxxxxx-xxxx-xxxx-xxxxxxx",
"firstName": "Администратор",
"lastName": "Магазина",
"patronymic": "",
"organization": "",
"email": "admin",
"phone": "74958000000",
"country": "Россия",
"region": "Москва",
"district": "",
"city": "Москва",
"zip": "101000",
"customField1": "",
"customField2": "",
"customField3": "",
"street": "Ленина 1",
"house": "",
"apartment": "",
"structure": "",
"entrance": "",
"floor": ""
},
"status": {
"id": 2,
"name": "Новый",
"color": "ffc73e",
"isCanceled": false,
"isCompleted": false,
"hidden": false
},
"source": {
"id": 1,
"name": "Корзина интернет магазина",
"main": true,
"type": "ShoppingCart"
},
"items": [
{
"offerId": 12345,
"artNo": "12345",
"name": "Товар",
"color": "Красный",
"size": null,
"price": 400.0,
"preparedPrice": "400 руб.",
"amount": 1.0,
"photoSrc": "https://mysite.ru/pictures/product/small/123_small.jpg",
"unit": "",
"selectedCustomOptions": [
{
"id": 1,
"optionId": 1,
"optionText": null,
"title": "Доп опция",
"value": "упаковка + 100 руб."
}
],
"canAddToCard": true,
"multiplicity": 1.0
}
],
"taxes": [
{
"key": "В том числе Без НДС",
"value": "Без НДС"
}
],
"review": {
"ratio": 5.0,
"text": "Быстро и качественно!"
}
}
Пример запроса
{
"ratio": 5,
"text": "Быстро и качественно!"
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите текст и оценку"
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Заказ нельзя отменить"
}
headers:
X-API-KEY: [API_KEY]
X-API-USER-ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
X-API-USER-KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-API-USER-ID и X-API-USER-KEY получены после авторизации (users/signin), если пользователь не авторизован, то присылать X-API-USER-KEY не обязательно
X-API-USER-ID и X-API-USER-KEY получены после авторизации (users/signin), если пользователь не авторизован, то присылать X-API-USER-KEY не обязательно
{
"categoryId": 12345,
"propertyLists": [
[1],
[2,3]
],
"propertyRanges": [
{
"id": 4,
"min": 1,
"max": 100
}
]
}
Фильтр. Все поля кроме categoryId не обязательны для заполнения
[
[1,2], // массив выбранных id значений
[3,4,5],
[7]
]
[
{
"id": 397, // id свойства
"min": 1.1, // минимальное значение диапазона
"max": 3 // максимальное значение диапазона
}
]
Пример ответа
{
"category": {
"id": 5701,
"externalId": "5701",
"parentCategoryId": 0,
"name": "Категория 1",
"url": "kategoriya-1",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "NoSorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": false,
"modifiedBy": "",
"seoMetaInformation": {
"isDefault": true,
"title": "#STORE_NAME# - #CATEGORY_NAME#",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
},
"pictureUrl": "https://mysite.ru/pictures/category/4492.jpg",
"miniPictureUrl": null,
"menuIconPictureUrl": null
},
"subCategories": [
{
"id": 5774,
"name": "Категория 1",
"url": "url-cat-1",
"briefDescription": "описание",
"pictureUrl": null,
"miniPictureUrl": null,
"sortOrder": 10,
"productsCount": 0,
"productsCountWithSubCategories": 10,
"hasSubCategories": true
}
],
"pager": {
"count": 3,
"currentPage": 1,
"totalCount": 3,
"totalPageCount": 1
},
"products": [
{
"productId": 1647,
"offerId": 12460,
"offerArtNo": "1647",
"amountOffer": 1,
"urlPath": "vash-tovar",
"name": "Рубашка 1234",
"briefDescription": "",
"artNo": "1647",
"multiplicity": 0,
"amount": 1,
"minAmount": 0,
"maxAmount": 0,
"allowPreorder": false,
"recomended": false,
"sales": false,
"bestseller": false,
"newProduct": false,
"favorite": false,
"gifts": false,
"enabled": true,
"colors": [
{
"id": 7,
"name": "Белый",
"code": "#ffffff",
"photoSrc": null
},
{
"id": 5,
"name": "Голубой",
"code": "#04b9dd",
"photoSrc": null
},
{
"id": 6,
"name": "Желтый",
"code": "#fff200",
"photoSrc": null
},
{
"id": 3,
"name": "Зеленый",
"code": "#00FF00",
"photoSrc": null
}
],
"colorId": 7,
"sizeId": 0,
"ratio": 0,
"manualRatio": null,
"commentsCount": 0,
"price": 354,
"priceWithDiscount": 319,
"discount": {
"percent": 10,
"amount": 0,
"type": 0
},
"currencyValue": 1,
"preparedPrice": "319 руб.",
"preparedOldPrice": "354 руб.",
"addToCartFromList": false,
"photoSmall": "https://mysite.ru/pictures/product/small/13484_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/13484_middle.jpg",
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/product/small/4473_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/4473_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/4473_big.jpg",
"colorId": null,
"main": true
}
],
"markers": [
{
"title": "black friday",
"colorBackground": "#010101",
"colorText": "#ffffff",
"url": "https://mysite.ru/",
"openInNewTab": true,
"description": "Описание",
"sortOrder": 10
},
{
"title": "Название маркера",
"colorBackground": "#ff0000",
"colorText": "#ffffff",
"url": null,
"openInNewTab": true,
"description": null,
"sortOrder": 20
}
],
"priceRuleAmountList": [
{
"amount": "2 - 5",
"price": "99 руб."
},
{
"amount": "6 - 9",
"price": "55 руб."
}
]
}
]
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Категория не найдена"
}
Фильтр. Все поля необязательны для заполнения
Пример ответа
{
"categories": [
{
"id": 5719,
"name": "Test 123",
"url": "test-123",
"briefDescription": null,
"pictureUrl": null,
"miniPictureUrl": "https://mysite.ru/pictures/category/small/4537.jpg",
"sortOrder": 10,
"hasSubCategories": false,
"products": [
{
"productId": 1699,
"offerId": 12534,
"offerArtNo": "13657-2",
"amountOffer": 1,
"urlPath": "new-good-test",
"name": "New good test",
"briefDescription": "Краткое описание",
"artNo": "1699",
"multiplicity": 1,
"amount": 1,
"minAmount": 0,
"maxAmount": null,
"allowPreorder": false,
"recomended": false,
"sales": false,
"bestseller": false,
"newProduct": false,
"favorite": false,
"gifts": false,
"enabled": true,
"colors": [
{
"id": 7,
"name": "Белый",
"code": "#ffffff",
"photoSrc": null
},
{
"id": 5,
"name": "Голубой",
"code": "#04b9dd",
"photoSrc": null
}
],
"colorId": 5,
"sizeId": null,
"ratio": null,
"manualRatio": null,
"commentsCount": 0,
"price": 100,
"priceWithDiscount": 100,
"discount": {
"percent": 0,
"amount": 0,
"type": "Amount"
},
"currencyValue": 1,
"preparedPrice": "от 100 руб.",
"preparedOldPrice": "100 руб.",
"addToCartFromList": true,
"photoSmall": "https://mysite.ru/pictures/product/small/4538_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/4538_middle.jpg",
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/product/small/4538_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/4538_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/4538_big.jpg",
"colorId": 5,
"main": true
},
{
"smallSrc": "https://mysite.ru/pictures/product/small/4542_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/4542_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/4542_big.jpg",
"colorId": 7,
"main": false
}
],
"markers": null,
"priceRuleAmountList": null
}
],
"productsTotalCount": 10,
"productsTotalPageCount": 2
}
]
}
Пример запроса
{
"categoryId": 12345,
"propertyLists": [
[1],
[2,3]
],
"propertyRanges": [
{
"id": 4,
"min": 1,
"max": 100
}
]
}
Фильтр
[
[1,2], // массив выбранных id значений
[3,4,5],
[7]
]
[
{
"id": 397, // id свойства
"min": 1.1, // минимальное значение диапазона
"max": 3 // максимальное значение диапазона
}
]
Пример ответа
[
{
"expanded": true,
"type": "price",
"title": "Цена",
"subtitle": " руб.",
"control": "range",
"description": null,
"values": [
{
"min": 1,
"max": 1000,
"currentMin": 90,
"currentMax": 430,
"step": 10,
"decimalPlaces": 3
}
]
},
{
"expanded": true,
"type": "color",
"title": "Цвет",
"subtitle": "",
"control": "color",
"description": null,
"values": [
{
"colorName": "Белый",
"colorCode": "#ffffff",
"selected": false,
"text": "Белый",
"id": 7,
"available": true,
"imageHeight": 18,
"imageWidth": 18,
"photoName": "",
"imageSrc": ""
},
{
"colorName": "Зеленый",
"colorCode": " ",
"selected": false,
"text": "Зеленый",
"id": 3,
"available": true,
"imageHeight": 18,
"imageWidth": 18,
"photoName": "123.jpg",
"imageSrc": "https://mysite.ru/pictures/color/catalog/123.jpg"
}
]
},
{
"expanded": true,
"type": "size",
"title": "Размер",
"subtitle": "",
"control": "checkbox",
"description": null,
"values": [
{
"id": "1",
"text": "S",
"selected": false,
"available": true
},
{
"id": "2",
"text": "M",
"selected": false,
"available": true
}
]
},
{
"expanded": true,
"type": "prop",
"title": "Вид",
"subtitle": "",
"control": "checkbox",
"description": "",
"values": [
{
"id": "5565",
"text": "Брошь",
"selected": true,
"available": true
},
{
"id": "5641",
"text": "Зажим",
"selected": true,
"available": true
}
]
},
{
"expanded": true,
"type": "prop",
"title": "Материал",
"subtitle": "",
"control": "checkbox",
"description": "",
"values": [
{
"id": "5720",
"text": "Картон",
"selected": true,
"available": true
}
]
},
{
"expanded": true,
"type": "prop",
"title": "Номер шара",
"subtitle": "",
"control": "range",
"description": "",
"values": [
{
"min": 1,
"max": 100,
"currentMin": 1.1,
"currentMax": 3,
"step": 0.1,
"decimalPlaces": 1,
"id": 397
}
]
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Категория не найдена"
}
Пример запроса
{
"categoryId": 12345,
"propertyLists": [
[1],
[2,3]
],
"propertyRanges": [
{
"id": 4,
"min": 1,
"max": 100
}
]
}
Пример ответа
{
"itemsCount": 3
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Категория не найдена"
}
Пример запроса
{
"query": "Красное платье",
"propertyLists": [
[1],
[2,3]
],
"propertyRanges": [
{
"id": 4,
"min": 1,
"max": 100
}
]
}
Фильтр. Все поля кроме query не обязательны для заполнения
[
[1,2], // массив выбранных id значений
[3,4,5],
[7]
]
[
{
"id": 397, // id свойства
"min": 1.1, // минимальное значение диапазона
"max": 3 // максимальное значение диапазона
}
]
Пример ответа
{
"pager": {
"count": 3,
"currentPage": 1,
"totalCount": 3,
"totalPageCount": 1
},
"products": [
{
"productId": 1647,
"offerId": 12460,
"offerArtNo": "1647",
"amountOffer": 1,
"urlPath": "red-dress",
"name": "Красное платье",
"briefDescription": "",
"artNo": "1647",
"multiplicity": 0,
"amount": 1,
"minAmount": 0,
"maxAmount": 0,
"allowPreorder": false,
"recomended": false,
"sales": false,
"bestseller": false,
"newProduct": false,
"favorite": false,
"gifts": false,
"enabled": true,
"colors": [
{
"id": 7,
"name": "Красный",
"code": "#ffffff",
"photoSrc": null
},
{
"id": 5,
"name": "Голубой",
"code": "#04b9dd",
"photoSrc": null
},
{
"id": 6,
"name": "Желтый",
"code": "#fff200",
"photoSrc": null
},
{
"id": 3,
"name": "Зеленый",
"code": "#00FF00",
"photoSrc": null
}
],
"colorId": 7,
"sizeId": 0,
"ratio": 0,
"manualRatio": null,
"commentsCount": 0,
"price": 354,
"priceWithDiscount": 319,
"discount": {
"percent": 10,
"amount": 0,
"type": 0
},
"currencyValue": 1,
"preparedPrice": "319 руб.",
"preparedOldPrice": "354 руб.",
"addToCartFromList": false,
"photoSmall": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/12345_big.jpg",
"colorId": null,
"main": true
}
],
"markers": [
{
"title": "black friday",
"colorBackground": "#010101",
"colorText": "#ffffff",
"url": "https://mysite.ru/",
"openInNewTab": true,
"description": "Описание",
"sortOrder": 10
},
{
"title": "Название маркера",
"colorBackground": "#ff0000",
"colorText": "#ffffff",
"url": null,
"openInNewTab": true,
"description": null,
"sortOrder": 20
}
]
}
],
"categories": [
{
"id": 1,
"externalId": "1",
"parentCategoryId": 0,
"name": "Платья",
"url": "dresses",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 40,
"sorting": "NoSorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": false,
"modifiedBy": null,
"seoMetaInformation": {
"isDefault": true,
"title": "#STORE_NAME# - #CATEGORY_NAME#",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
},
"pictureUrl": null,
"miniPictureUrl": null,
"menuIconPictureUrl": null
}
]
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите поисковый запрос"
}
Пример запроса
{
"query": "Красное платье",
"propertyLists": [
[1],
[2,3]
],
"propertyRanges": [
{
"id": 4,
"min": 1,
"max": 100
}
]
}
Фильтр. Все поля кроме query не обязательны для заполнения
[
[1,2], // массив выбранных id значений
[3,4,5],
[7]
]
[
{
"id": 397, // id свойства
"min": 1.1, // минимальное значение диапазона
"max": 3 // максимальное значение диапазона
}
]
Пример ответа
[
{
"expanded": true,
"type": "searchQuery",
"title": "Поисковый запрос",
"subtitle": "",
"control": "input",
"description": null,
"values": [
{
"id": "searchInputFilter",
"text": "Красное платье",
"selected": false,
"available": false
}
]
},
{
"expanded": true,
"type": "categoryId",
"title": "Выберите категорию",
"subtitle": null,
"control": "selectSearch",
"description": null,
"values": [
{
"id": "1",
"text": "Категория 1",
"selected": false,
"available": false
},
{
"id": "2",
"text": "Категория 2",
"selected": false,
"available": false
}
]
},
{
"expanded": true,
"type": "price",
"title": "Цена",
"subtitle": " руб.",
"control": "range",
"description": null,
"values": [
{
"min": 1,
"max": 1000,
"currentMin": 90,
"currentMax": 430,
"step": 10,
"decimalPlaces": 3
}
]
},
{
"expanded": true,
"type": "color",
"title": "Цвет",
"subtitle": "",
"control": "color",
"description": null,
"values": [
{
"colorName": "Белый",
"colorCode": "#ffffff",
"selected": false,
"text": "Белый",
"id": 7,
"available": true,
"imageHeight": 18,
"imageWidth": 18,
"photoName": "",
"imageSrc": ""
},
{
"colorName": "Зеленый",
"colorCode": " ",
"selected": false,
"text": "Зеленый",
"id": 3,
"available": true,
"imageHeight": 18,
"imageWidth": 18,
"photoName": "123.jpg",
"imageSrc": "https://mysite.ru/pictures/color/catalog/123.jpg"
}
]
},
{
"expanded": true,
"type": "size",
"title": "Размер",
"subtitle": "",
"control": "checkbox",
"description": null,
"values": [
{
"id": "1",
"text": "S",
"selected": false,
"available": true
},
{
"id": "2",
"text": "M",
"selected": false,
"available": true
}
]
},
{
"expanded": true,
"type": "prop",
"title": "Вид",
"subtitle": "",
"control": "checkbox",
"description": "",
"values": [
{
"id": "5565",
"text": "Брошь",
"selected": true,
"available": true
},
{
"id": "5641",
"text": "Зажим",
"selected": true,
"available": true
}
]
},
{
"expanded": true,
"type": "prop",
"title": "Материал",
"subtitle": "",
"control": "checkbox",
"description": "",
"values": [
{
"id": "5720",
"text": "Картон",
"selected": true,
"available": true
}
]
},
{
"expanded": true,
"type": "prop",
"title": "Номер шара",
"subtitle": "",
"control": "range",
"description": "",
"values": [
{
"min": 1,
"max": 100,
"currentMin": 1.1,
"currentMax": 3,
"step": 0.1,
"decimalPlaces": 1,
"id": 397
}
]
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите поисковый запрос"
}
Пример запроса
{
"query": "Красное платье",
"propertyLists": [
[1],
[2,3]
],
"propertyRanges": [
{
"id": 4,
"min": 1,
"max": 100
}
]
}
Пример ответа
{
"itemsCount": 3
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Категория не найдена"
}
Пример запроса
{
"query": "Красное платье",
"warehouseIds": [1, 2] // список складов. не обяз. параметр
}
Пример ответа
{
"products": [
{
"productId": 1647,
"offerId": 12460,
"offerArtNo": "1647",
"amountOffer": 1,
"urlPath": "red-dress",
"name": "Красное платье",
"briefDescription": "",
"artNo": "1647",
"multiplicity": 0,
"amount": 1,
"minAmount": 0,
"maxAmount": 0,
"allowPreorder": false,
"recomended": false,
"sales": false,
"bestseller": false,
"new": false,
"gifts": false,
"enabled": true,
"colors": [
{
"id": 7,
"name": "Красный",
"code": "#ffffff",
"photoSrc": null
},
{
"id": 5,
"name": "Голубой",
"code": "#04b9dd",
"photoSrc": null
},
{
"id": 6,
"name": "Желтый",
"code": "#fff200",
"photoSrc": null
},
{
"id": 3,
"name": "Зеленый",
"code": "#00FF00",
"photoSrc": null
}
],
"colorId": 7,
"sizeId": 0,
"ratio": 0,
"manualRatio": null,
"commentsCount": 0,
"price": 354,
"priceWithDiscount": 319,
"discount": {
"percent": 10,
"amount": 0,
"type": 0
},
"currencyValue": 1,
"preparedPrice": "319 руб.",
"preparedOldPrice": "354 руб.",
"addToCartFromList": false,
"photoSmall": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/12345_big.jpg",
"colorId": null,
"main": true
}
],
"markers": [
{
"title": "black friday",
"colorBackground": "#010101",
"colorText": "#ffffff",
"url": "https://mysite.ru/",
"openInNewTab": true,
"description": "Описание",
"sortOrder": 10
},
{
"title": "Название маркера",
"colorBackground": "#ff0000",
"colorText": "#ffffff",
"url": null,
"openInNewTab": true,
"description": null,
"sortOrder": 20
}
]
}
],
"categories": [
{
"id": 1,
"externalId": "1",
"parentCategoryId": 5702,
"name": "Платья",
"url": "dresses",
"description": "",
"briefDescription": "",
"enabled": true,
"hidden": false,
"sortOrder": 0,
"sorting": "NoSorting",
"showMode": 1,
"showBrandsInMenu": false,
"showSubCategoriesInMenu": false,
"showOnMainPage": false,
"modifiedBy": null,
"seoMetaInformation": {
"isDefault": true,
"title": "#STORE_NAME# - #CATEGORY_NAME#",
"metaKeywords": "#STORE_NAME# - #CATEGORY_NAME#",
"metaDescription": "#STORE_NAME# - #CATEGORY_NAME#",
"h1": "#CATEGORY_NAME#"
},
"pictureUrl": null,
"miniPictureUrl": null,
"menuIconPictureUrl": null
}
]
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите поисковый запрос"
}
Пример запроса
?colorId=1&sizeId=2
Параметры
Пример ответа
{
"productId": 13653,
"artNo": "13653",
"name": "Новый товар",
"urlPath": "novyi-tovar",
"briefDescription": "Краткое описание",
"description": "Описание",
"enabled": true,
"categoryEnabled": true,
"hidden": false,
"ratio": null,
"isAdult": false,
"recomended": false,
"newProduct": false,
"bestseller": false,
"sales": false,
"favorite": false,
"gifts": false,
"giftProducts": null,
"allowPreOrder": false,
"minAmount": 1,
"maxAmount": 2147483650,
"multiplicity": 1,
"unit": "",
"commentsCount": 0,
"sizeColorPicker": {
"sizes": [
{
"id": 1,
"name": "S"
},
{
"id": 2,
"name": "M"
}
],
"selectedSizeId": null,
"colors": [
{
"id": 7,
"name": "Белый",
"code": "#ffffff",
"photoSrc": null
},
{
"id": 5,
"name": "Голубой",
"code": "#04b9dd",
"photoSrc": null
},
{
"id": 3,
"name": "Зеленый",
"code": null,
"photoSrc": "https://mysite.ru/pictures/color/details/12345.jpg"
},
{
"id": 2,
"name": "Красный",
"code": "#FF0000",
"photoSrc": null
}
],
"selectedColorId": null,
"colorIconHeight": 18,
"colorIconWidth": 18,
"sizesHeader": "Размер",
"colorsHeader": "Цвет"
},
"discount": {
"percent": 0,
"amount": 10,
"type": "Amount"
},
"offers": [
{
"offerId": 24473,
"artNo": "13653",
"isMain": true,
"colorId": 7,
"sizeId": 1,
"oldPrice": 1100,
"preparedOldPrice": "1 100 руб.",
"bonuses": "+30 бонусов на бонусную карту",
"amount": 1,
"price": 1090,
"preparedPrice": "1 090 руб.",
"isAvailable": true,
"availableText": "Есть в наличии",
"weight": 0,
"height": 0,
"length": 0,
"width": 0,
"addToCart": true
},
{
"offerId": 24474,
"artNo": "13653-2",
"isMain": false,
"colorId": 5,
"sizeId": 1,
"oldPrice": 1100,
"preparedOldPrice": "1 100 руб.",
"price": 1090,
"preparedPrice": "1 090 руб.",
"bonuses": "+30 бонусов на бонусную карту",
"amount": 1,
"isAvailable": true,
"availableText": "Есть в наличии",
"weight": 0,
"height": 0,
"length": 0,
"width": 0,
"addToCart": true
},
{
"offerId": 24475,
"artNo": "13653-3",
"isMain": false,
"colorId": 2,
"sizeId": 1,
"oldPrice": 1100,
"preparedOldPrice": "1 100 руб.",
"price": 1090,
"preparedPrice": "1 090 руб.",
"bonuses": "+30 бонусов на бонусную карту",
"amount": 1,
"isAvailable": true,
"availableText": "Есть в наличии",
"weight": 0,
"height": 0,
"length": 0,
"width": 0,
"addToCart": true
},
{
"offerId": 24476,
"artNo": "13653-4",
"isMain": false,
"colorId": 5,
"sizeId": 2,
"oldPrice": 1100,
"preparedOldPrice": "1 100 руб.",
"price": 1090,
"preparedPrice": "1 090 руб.",
"bonuses": "+30 бонусов на бонусную карту",
"amount": 1,
"isAvailable": true,
"availableText": "Есть в наличии",
"weight": 0,
"height": 0,
"length": 0,
"width": 0,
"addToCart": true
}
],
"customOptions": [
{
"id": 275,
"title": "Доп опция 1",
"isRequired": true,
"type": "DropDownList",
"sortOrder": 0,
"options": [
{
"id": 1798,
"name": "Список 1",
"title": "Список 1 +1 000 руб."
},
{
"id": 1799,
"name": "Список 2",
"title": "Список 2 +2 000 руб."
},
{
"id": 1800,
"name": "Список 3",
"title": "Список 3 +3 000 руб."
}
],
"selectedOptionId": 1798
},
{
"id": 276,
"title": "Доп опция 2",
"isRequired": false,
"type": "DropDownList",
"sortOrder": 0,
"options": [
{
"id": 1801,
"name": "Процент 10",
"title": "Процент 10 +10%"
},
{
"id": 1802,
"name": "Процент 20",
"title": "Процент 20 +20%"
}
],
"selectedOptionId": 0
},
{
"id": 277,
"title": "Доп опция 3",
"isRequired": false,
"type": "RadioButton",
"sortOrder": 0,
"options": [
{
"id": 1803,
"name": "Галочка 1",
"title": "Галочка 1 +10 руб."
},
{
"id": 1804,
"name": "Галочка 2",
"title": "Галочка 2 +20 руб."
}
],
"selectedOptionId": 0
},
{
"id": 278,
"title": "Доп опция 4",
"isRequired": false,
"type": "CheckBox",
"sortOrder": 0,
"options": [
{
"id": 1805,
"name": "",
"title": " +111 руб."
}
],
"selectedOptionId": 0
},
{
"id": 279,
"title": "Text field",
"isRequired": false,
"type": "TextBoxSingleLine",
"sortOrder": 0,
"options": [
{
"id": 1806,
"name": " ",
"title": ""
}
],
"selectedOptionId": 0
},
{
"id": 280,
"title": "Multiple text field",
"isRequired": false,
"type": "TextBoxMultiLine",
"sortOrder": 0,
"options": [
{
"id": 1807,
"name": " ",
"title": ""
}
],
"selectedOptionId": 0
}
],
"brand": null,
"currency": {
"name": "Рубли",
"symbol": " руб.",
"rate": 1,
"iso3": "RUB",
"isCodeBefore": false,
"roundNumbers": 1,
"enablePriceRounding": true
},
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/12345_big.jpg",
"colorId": null,
"main": true
},
{
"smallSrc": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/12345_big.jpg",
"colorId": null,
"main": false
}
],
"showPhotos360": false,
"photos360": null,
"videos": [],
"markers": [
{
"title": "black friday",
"colorBackground": "#010101",
"colorText": "#ffffff",
"url": "https://mysite.ru/",
"openInNewTab": true,
"description": "Описание",
"sortOrder": 10
},
{
"title": "Название маркера",
"colorBackground": "#ff0000",
"colorText": "#ffffff",
"url": null,
"openInNewTab": true,
"description": null,
"sortOrder": 20
}
],
"sizeChart": {
"id": 1,
"linkText": "Таблица размеров",
"modalHeader": "Заголовок окна",
"type": "Text", // Text, Link
"text": "html or link"
}
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример запроса
{
"offerId": 12833,
"amount": 1,
"options": [
{
"id": 341,
"optionItems": [
{
"optionId": 2001,
"amount": 1
}
]
},
{
"id": 347,
"optionItems": [
{
"optionId": 2003
}
]
},
{
"id": 349,
"optionItems": [
{
"optionId": 2007,
"amount": 1
},
{
"optionId": 2008,
"amount": 1
}
]
},
{
"id": 351,
"optionItems": [
{
"optionId": 2011,
"optionText": "hello!"
}
]
},
{
"id": 352,
"optionItems": [
{
"optionId": 2012
},
{
"optionId": 2013
}
]
}
]
}
Пример ответа
{
"oldPrice": 3100.0,
"preparedOldPrice": "3 100 руб.",
"price": 3090.0,
"preparedPrice": "3 090 руб."
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Не указано кол-во"
}
Пример запроса
/api/products/{id}/properties
/api/products/{id}/properties?type=inDetails
/api/products/{id}/properties?type=inBriefDescription
Тип свойств. Не обяз. параметр, по умолчанию inDetails.
Значения: inDetails - свойства в карточке товара. inBriefDescription - свойства в брифе.
Пример запроса
/api/products/{id}/properties
/api/products/{id}/properties?type=inDetails
Пример ответа
[
{
"groupName": "", // название группы свойств
"properties": [ // список свойств
{
"name": "Вид",
"value": "Брошь, Зажим"
},
{
"name": "Материал",
"value": "Картон"
}
]
}
]
Пример запроса
/api/products/{id}/properties?type=inBriefDescription
Пример ответа
[
{
"name": "Св-во 2 в кратком описании",
"value": "Тест 123, Тест 321"
},
{
"name": "Свойство в кратком описании",
"value": "Значение 1, Значение 2, Значение 3"
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример ответа
[
{
"reviewId": 269,
"parentId": 0,
"customerName": "Оксана",
"text": "Отличный костюм.",
"preparedDate": "17 июня 2022",
"childrenCount": 0,
"hasChildren": false,
"likesCount": 0,
"dislikesCount": 0,
"ratioByLikes": 0,
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/review/12345.jpg",
"bigSrc": "https://mysite.ru/pictures/review/big/12345.jpg"
}
]
},
{
"reviewId": 268,
"parentId": 0,
"customerName": "Иван",
"text": "Лучший товар!",
"preparedDate": "17 июня 2022",
"childrenCount": 0,
"hasChildren": false,
"likesCount": 0,
"dislikesCount": 0,
"ratioByLikes": 0,
"photos": []
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример запроса
{
"rating": 5,
"parentId": 0,
"name": "test",
"email": "some@mail.com",
"text": "comment text"
}
rating - рейтинг от 1 до 5, не обяз. поле. Если пользователь уже голосовал, то оценка не зачтется.
parentId - id родительского комментария, если не указан или 0, то добавится корневой коммментарий
files - список файлов изображений, если в магазине разрешено загружать файлы в комментариях
Пример ответа с ошибкой
{
"status": "error",
"errors": "Заполните обязательные поля"
}
Пример запроса
?type=upsell
Возможные значения:
сrosssell - С этим товаром покупают
upsell - Похожие товары
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример ответа
[
{
"name": "Товар",
"mainProductsCount": 2,
"photoSmall": "https://mysite.ru/pictures/product/small/12345_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/12345_middle.jpg",
"color": "Голубой",
"size": "M",
"colorHeader": "Цвет",
"sizeHeader": "Размер"
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример запроса
/api/products/{id}/stocks
/api/products/{id}/stocks?offerId={offerId}
Пример ответа
[
{
"offerId": 1234,
"stocks": [
{
"name": "Основной",
"type": "Склады",
"address": "Москва, ул. Барклая, 8, Москва, 121087",
"timeOfWorkList": [
"Пн, Вт, Ср, Чт, Пт: 08:00 - 20:00",
"Сб, Вс: 10:00 - 18:00"
],
"longitude": 37.50236,
"latitude": 55.7419434,
"addressComment": "",
"stock": 10,
"stockColor": null
},
{
"name": "Склад 2",
"type": "Склады",
"address": "Казань, ул. Ленина, 1, кв 2",
"timeOfWorkList": [
"Пн, Вт, Ср, Чт, Пт: 09:00 - 18:00",
"Сб, Вс: 09:00 - 18:00"
],
"longitude": null,
"latitude": null,
"addressComment": "",
"stock": 5,
"stockColor": null
}
]
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример запроса
/api/products/{id}/price-rule-amount-list
/api/products/{id}/price-rule-amount-list?offerId={offerId}
Пример ответа
{
"items": [
{
"amount": "2 - 4",
"price": "500 руб."
},
{
"amount": "5 - 9",
"price": "300 руб."
},
{
"amount": "10 и более",
"price": "100 руб."
},
]
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример запроса
{
"items": [
{
"index": 1,
"offerId": 24473,
"amount": 1,
"customOptions": [
{
"id": 275,
"optionId": 1808,
"optionAmount": 1
},
{
"id": 276,
"optionId": 1811,
"optionAmount": 1
},
{
"id": 276,
"optionId": 1814,
"optionAmount": 1
},
{
"id": 277,
"optionId": 1815
},
{
"id": 278,
"optionId": 1816,
"optionText": "Some text"
},
{
"id": 279,
"optionId": 1817,
"optionText": "Some multiple text"
}
]
},
{
"index": 2,
"offerId": 1234,
"amount": 1
}
],
"addItemsToCurrentCart": false
}
Пример ответа
{
"validationError": null,
"items": [
{
"index": 1,
"validationError": null,
"offerId": 24473,
"name": "Новый товар 2",
"artNo": "13653",
"link": "https://mysite.ru/products/novyi-tovar",
"photoSmall": "https://mysite.ru/pictures/product/small/13489_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/13489_middle.jpg",
"color": "Белый",
"size": "S",
"selectedCustomOptions": [
{
"title": "Доп опция 1",
"value": "Список 1 + 1 000 руб."
},
{
"title": "Доп опция 2",
"value": "Процент 10 10 %"
},
{
"title": "Доп опция 3",
"value": "Галочка 2 + 20 руб."
},
{
"title": "Доп опция 4",
"value": "+ 111 руб."
},
{
"title": "Text field",
"value": "Some text "
},
{
"title": "Multiple text field",
"value": "Some multiple text "
}
],
"preparedOldPrice": "1 241 руб.",
"preparedPrice": "1 231 руб.",
"discount": {
"percent": 0.0,
"amount": 10.0,
"type": "Amount"
},
"preparedDiscount": "10 руб.",
"amount": 1.0,
"preparedCost": "1 231 руб.",
"availableAmount": 1.0,
"minAmount": 1.0,
"maxAmount": 2.14748365E+09,
"canChangeAmount": true,
"multiplicity": 1.0,
"isGift": false,
"unit": null
},
{
"index": 2,
"validationError": null,
"offerId": 24464,
"name": "Рубашка",
"artNo": "1647-2",
"link": "https://mysite.ru/products/vash-tovar",
"photoSmall": "https://mysite.ru/pictures/product/small/13488_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/13488_middle.jpg",
"color": "Желтый",
"size": null,
"selectedCustomOptions": null,
"preparedOldPrice": "354 руб.",
"preparedPrice": "319 руб.",
"discount": {
"percent": 10.0,
"amount": 0.0,
"type": "Percent"
},
"preparedDiscount": "10%",
"amount": 1.0,
"preparedCost": "319 руб.",
"availableAmount": 1.0,
"minAmount": 1.0,
"maxAmount": 2.14748365E+09,
"canChangeAmount": true,
"multiplicity": 1.0,
"isGift": false,
"unit": null
}
],
"count": "2 товара",
"preparedTotalProductsPrice": "1 550 руб.",
"preparedTotalPrice": "1 550 руб.",
"preparedDiscountPrice": null,
"bonuses": "46 бонусов",
"coupon": {
"code": "aqhhVuyE",
"price": "0 руб.",
"percent": null,
"applied": false
},
"showCoupon": false,
"colorHeader": "Цвет",
"sizeHeader": "Размер",
"blocks": {
"beforeBlock": "some html",
"afterBlock": null,
"rightBlock": null
}
}
Если товар не будет найден в магазине, то он не вернется в ответе по API.
Если корзина не валидна и оформление заказ невозможно в ответе в validationError будет возвращена ошибка для корзины и для кажого item.
Пример ответа с ошибкой
{
"validationError": "Заказ содержит недоступное количество товаров.",
"items": [
{
"validationError": "доступно 1",
"offerId": 24473,
"name": "Новый товар 2",
"artNo": "13653",
"link": "https://mysite.ru/products/novyi-tovar",
"photoSmall": "https://mysite.ru/pictures/product/small/13489_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/13489_middle.jpg",
"color": "Белый",
"size": "S",
"selectedCustomOptions": [
{
"title": "Доп опция 1",
"value": "Список 1 + 1 000 руб."
},
{
"title": "Доп опция 2",
"value": "Процент 10 10 %"
},
{
"title": "Доп опция 3",
"value": "Галочка 2 + 20 руб."
},
{
"title": "Доп опция 4",
"value": "+ 111 руб."
},
{
"title": "Text field",
"value": "Some text "
},
{
"title": "Multiple text field",
"value": "Some multiple text "
}
],
"preparedOldPrice": "1 241 руб.",
"preparedPrice": "1 231 руб.",
"discount": {
"percent": 0.0,
"amount": 10.0,
"type": "Amount"
},
"preparedDiscount": "10 руб.",
"amount": 100.0,
"preparedCost": "123 100 руб.",
"availableAmount": 1.0,
"minAmount": 1.0,
"maxAmount": 2.14748365E+09,
"canChangeAmount": true,
"multiplicity": 1.0,
"isGift": false,
"unit": null
},
{
"validationError": "доступно 1",
"offerId": 24464,
"name": "Рубашка",
"artNo": "1647-2",
"link": "https://mysite.ru/products/vash-tovar",
"photoSmall": "https://mysite.ru/pictures/product/small/13488_small.jpg",
"photoMiddle": "https://mysite.ru/pictures/product/middle/13488_middle.jpg",
"color": "Желтый",
"size": null,
"selectedCustomOptions": null,
"preparedOldPrice": "354 руб.",
"preparedPrice": "319 руб.",
"discount": {
"percent": 10.0,
"amount": 0.0,
"type": "Percent"
},
"preparedDiscount": "10%",
"amount": 100.0,
"preparedCost": "31 900 руб.",
"availableAmount": 1.0,
"minAmount": 1.0,
"maxAmount": 2.14748365E+09,
"canChangeAmount": true,
"multiplicity": 1.0,
"isGift": false,
"unit": null
}
],
"count": "200 товаров",
"preparedTotalProductsPrice": "155 000 руб.",
"preparedTotalPrice": "147 250 руб.",
"preparedDiscountPrice": "-7 750 руб. (5%)",
"bonuses": "4 418 бонусов",
"coupon": null,
"showCoupon": true,
"colorHeader": "Цвет",
"sizeHeader": "Размер",
"blocks": {
"beforeBlock": "some html",
"afterBlock": null,
"rightBlock": null
}
}
Пример запроса
{
"code": "CouponCode"
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Купон может быть применен только в мобильном приложении"
}
Пример ответа
{
"status": "ok"
}
Пример запроса
{
"items": [
{
"index": 1,
"offerId": 24473,
"amount": 1,
"customOptions": [
{
"id": 275,
"optionId": 1808
},
{
"id": 276,
"optionId": 1811
},
{
"id": 277,
"optionId": 1814
},
{
"id": 278,
"optionId": 1815
},
{
"id": 279,
"optionId": 1816,
"optionText": "Some text"
},
{
"id": 280,
"optionId": 1817,
"optionText": "Some multiple text"
}
]
},
{
"index": 2,
"offerId": 1234,
"amount": 1
}
],
"address": {
"country": "Россия",
"region": "Москва",
"city": "Москва"
},
"shippingId": "12345",
"shippingPointId": 123,
"contactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
}
Пример ответа
{
"url": "https://mysite.ru/checkout/apiauth"
}
Запросы к /api/checkout и к url, который придет в ответе, необходимо делать с заголовками X-API-USER-ID и X-API-USER-KEY
Если оформление заказа невозможно, то вернется ошибка.
Пример ответа с ошибкой
{
"status": "error",
"errors": "Заказ содержит недоступное количество товаров."
}
{
"customer": {
"firstName": "Администратор",
"lastName": "Магазина",
"email": "admin",
"phone": "+7 495 800 20 00 "
},
"settings": {
"isShowUserAgreementText": false,
"userAgreementText": "Я подтверждаю свою дееспособность, даю согласие на обработку своих персональных данных.",
"agreementDefaultChecked": false,
"preOrderText": "После получения Вашей заявки, наши менеджеры сообщат Вам сроки поставки и точную цену товара. В письмо также будет ссылка на оформление заказа, которая будет действовать в течение 24 часов. С ее помощью Вы сможете оплатить Заказ, тем самым завершив процедуру оформления."
}
}
Пример запроса
{
"customer": {
"firstName": "Ivan",
"lastName": "Ivanov",
"email": "ivan@mail.com",
"phone": "7 (912) 345 67 89",
"comment": "comment"
},
"offer": {
"offerId": 1234,
"amount": 5,
"customOptions": [
{
"id": 1,
"optionId": 2
}
]
},
"IsAgree": true
}
Пример ответа
{
"status": "ok",
"successText": "Благодарим за Вашу заявку! После её обработки наш менеджер сразу же свяжется с Вами и сообщит о возможности и сроках поступления данной позиции в наш интернет-магазин."
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Заполните обязательные поля покупателя"
}
Пример запроса
api/deliveries/types?country=Россия®ion=Москва&city=Москва
Фильтр. Все поля необязательны для заполнения
Пример ответа
[
{
"id": 1,
"type": "SelfDelivery",
"name": "Самовывоз",
"description": "Самовывоз м. Чеховская",
"zeroCostText": "Бесплатно",
"icon": "https://mysite.ru/pictures/shipping/selfdelivery.svg",
"warehouseIds": [1],
"address": null
},
{
"id": 2,
"type": "DeliveryByZones",
"name": "Доставка по зонам",
"description": null,
"zeroCostText": "Бесплатно",
"icon": "https://mysite.ru/pictures/shipping/default.svg",
"warehouseIds": [],
"address": "Город Цветочный"
},
{
"id": 3,
"type": "FixedRate",
"name": "Курьером",
"description": "Курьером по Москве и области",
"zeroCostText": "Бесплатно",
"icon": "https://mysite.ru/pictures/shipping/default.svg",
"warehouseIds": [1, 2],
"address": null
}
]
Пример запроса
{
"country": "Россия",
"region": "Москва",
"city": "Москва",
"district": null,
"zip": null,
"street": "Климентовский переулок",
"house": "44",
"structure": "3",
}
Пример ответа
{
"hasDelivery": true
}
Пример запроса
api/deliveries/delivery-zones?country=Россия®ion=Москва&city=Москва
Фильтр. Все поля необязательны для заполнения
Пример ответа
[
{
"id": 123,
"zones": [
{
"id": 1,
"name": "Московский район",
"description": "Доставка с 12:00 до 23:00",
"coordinates": [
[
[
51.88443001697882,
55.170027409759214
],
[
51.88103052763162,
55.126082097259236
],
[
51.865304528083364,
55.09586969491543
],
[
51.84702142095905,
55.07939020272796
],
[
51.8180933578397,
55.062910710540486
],
[
51.79936524571241,
55.05879083749362
],
[
51.76832960269783,
55.06668726083341
],
[
51.76416237891102,
55.0677601444393
],
[
51.760420867770364,
55.071064625945645
],
[
51.752670554507596,
55.07887521859702
],
[
51.745248511660876,
55.09431638160809
],
[
51.74270770728502,
55.150286351409605
],
[
51.74177524225291,
55.179597531524365
],
[
51.74659720992191,
55.204617177215255
],
[
51.76018118739361,
55.21671930429049
],
[
51.78318467212576,
55.23869196054045
],
[
51.801919539763446,
55.24830499764986
],
[
51.828305395208886,
55.25517145272798
],
[
51.84191782578625,
55.2565447437436
],
[
51.86147844910374,
55.23869196054045
],
[
51.87593080911186,
55.21809259530611
],
[
51.88443001697882,
55.19474664804047
],
[
51.88443001697882,
55.170027409759214
]
]
],
"fillColor": "#1bad03",
"fillOpacity": 0.6,
"strokeColor": "#1bad03",
"strokeWidth": "3",
"strokeOpacity": 0.9
}
]
}
]
Пример запроса
{
"address": {
"country": "Россия",
"region": "Москва",
"city": "Москва"
},
"products": [
{
"offerId": 12537,
"amount": 1,
"options": [
{
"id": 332,
"options": [1971]
},
{
"id": 333,
"options": [1974]
}
]
}
],
"inProductDetails": true
}
Фильтр. Все поля необязательны для заполнения
Пример ответа
[
{
"id": "1_-123",
"name": "Самовывоз",
"description": "Самовывоз м. Смоленская",
"deliveryTime": null,
"preparedPrice": "Бесплатно"
},
{
"id": "2_-456",
"name": "Доставка по зонам",
"description": null,
"deliveryTime": "1-2 часа",
"preparedPrice": "Бесплатно"
},
{
"id": "3-789",
"name": "Курьером",
"description": null,
"deliveryTime": "в течении дня",
"preparedPrice": "300 руб."
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар 123456 не найден"
}
Пример запроса
api/deliveries/point-deliveries?country=Россия®ion=Москва&city=Москва&inhouse=true
Фильтр. Все поля необязательны для заполнения
Пример ответа
[
{
"id": "123_45",
"pointStringId": "123-ТЦ Самолет",
"inHouse": true,
"name": "м. Смоленская",
"description": null,
"zeroCostText": "Бесплатно",
"price": 100.0,
"preparedPrice": "100 руб.",
"deliveryTime": "1-10 дней",
"icon": "https://mysite.ru/images/shipping/selfdelivery.svg",
"warehouseId": null,
"coordinates": {
"latitude": 10.0,
"longitude": 20.0
}
},
{
"id": "124_67",
"pointStringId": "123-ТЦ Аквамолл",
"inHouse": false,
"name": "м. Китай-город",
"description": "Описание пункта выдачи",
"zeroCostText": "Бесплатно",
"price": 100.0,
"preparedPrice": "100 руб.",
"deliveryTime": "1-10 дней",
"icon": "https://mysite.ru/images/shipping/selfdelivery.svg",
"warehouseId": 1,
"coordinates": {
"latitude": 11.0,
"longitude": 22.0
}
}
]
Пример ответа
{
"countries": [
{
"countryId": 171,
"name": "Россия",
"iso2": "RU",
"cities": [
{
"cityId": 490,
"name": "Москва",
"regionId": 41,
"regionName": "Москва",
"district": "",
"zip": "101000",
"warehouseIds": [1, 2, 3]
},
{
"cityId": 781,
"name": "Санкт-Петербург",
"regionId": 58,
"regionName": "Санкт-Петербург",
"district": "",
"zip": "190000",
"warehouseIds": [5]
},
{
"cityId": 38,
"name": "Астрахань",
"regionId": 6,
"regionName": "Астраханская область",
"district": "",
"zip": "414000",
"warehouseIds": []
},
...
]
},
{
"countryId": 217,
"name": "Украина",
"iso2": "UA",
"cities": [
{
"cityId": 1118,
"name": "Киев",
"regionId": 85,
"regionName": "Киев",
"district": "",
"zip": "",
"warehouseIds": []
},
...
]
},
{
"countryId": 21,
"name": "Беларусь",
"iso2": "BY",
"cities": [
{
"cityId": 1273,
"name": "Минск",
"regionId": 164,
"regionName": "Минская область",
"district": "",
"zip": "",
"warehouseIds": []
},
...
]
},
{
"countryId": 83,
"name": "Казахстан",
"iso2": "KZ",
"cities": [
{
"cityId": 1321,
"name": "Алматы",
"regionId": 170,
"regionName": "Алматинская область",
"district": "",
"zip": "",
"warehouseIds": []
},
...
]
}
]
}
Пример запроса
?city=Самара®ion=Самарская область
?zipCode=443000
Ответ
{
"id": 769,
"name": "Самара",
"regionId": 57,
"district": "",
"zip": "443000",
"phone": "",
"mobilePhone": "",
"shippingZones": null,
"shippingZonesIframe": "",
"cityAddressPoints": null,
"cityAddressPointsIframe": "",
"warehouseIds": [1, 2]
}
Пример ответа
{
"status": "error",
"errors": "Город не найден"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите почтовый индекс или город и область"
}
Пример запроса
{
"ids": [1, 2, 3],
"names": ["Россия"],
"displayInPopup": true
}
Фильтр. Все поля необязательны для заполнения
Пример ответа
{
"countries": [
{
"countryId": 171,
"name": "Россия",
"iso2": "RU",
"iso3": "RUS",
"dialCode": 7,
"svgIcon": ""
}
]
}
Пример ответа
{
"cardId": 123,
"amount": 0,
"percent": 3,
"gradeName": "Гостевой",
"gradeId": 1,
"isBlocked": false
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "У покупателя уже есть бонусная карта"
}
Пример ответа
[
{
"type": "Subtraction",
"amount": -50,
"basis": "Заказ № 48 в магазине",
"dateTime": "16.08.2024 16:06"
},
{
"type": "Adding",
"amount": 1000,
"basis": null,
"dateTime": "16.08.2024 14:48"
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Бонусная карта не найдена"
}
Пример ответа
[
{
"productId": 1648,
"offerId": 12461,
"artNo": "1648",
"name": "Товар",
"urlPath": "tovar",
"briefDescription": null,
"colorId": 1,
"sizeId": 1,
"discount": {
"percent": 10.0,
"amount": 0.0,
"type": "Percent"
},
"oldPrice": 1000.0,
"price": 900.0,
"preparedOldPrice": "1 000 руб.",
"preparedPrice": "900 руб.",
"addToCart": true,
"photo": {
"smallSrc": "https://mysite.ru/pictures/product/small/123_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/123_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/123_big.jpg",
"colorId": 1,
"main": true
},
"photos": [
{
"smallSrc": "https://mysite.ru/pictures/product/small/123_small.jpg",
"middleSrc": "https://mysite.ru/pictures/product/middle/123_middle.jpg",
"bigSrc": "https://mysite.ru/pictures/product/big/123_big.jpg",
"colorId": 1,
"main": true
}
],
"size": {
"id": 1,
"name": "M"
},
"color": {
"id": 1,
"name": "Белый",
"code": "#ffffff",
"photoSrc": null
}
}
]
Пример ответа с ошибкой
{
"status": "error",
"errors": "Настройка \"Избранное\" не активна"
}
Пример запроса
{
"offerId": 12345
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример запроса
{
"offerId": 12345
}
Пример ответа
{
"status": "ok"
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Товар не найден"
}
Пример ответа
{
"isActive": true,
"apiKey": "xxxxxxxx"
}
Пример запроса
api/staticblocks?keys=key1,key2
Пример ответа
[
{
"key": "LiveCounter",
"value": null
},
{
"key": "OrderSuccessTop",
"value": "
Пример запроса
/api/staticpages?loadText=true&showInProfile=true
Фильтр. Все поля необязательны для заполнения
Пример ответа
{
"pagination": {
"count": 2,
"currentPage": 1,
"totalCount": 2,
"totalPageCount": 1
},
"staticPages": [
{
"id": 2,
"title": "Заголовок 2",
"icon": "",
"showInProfile": false
},
{
"id": 1,
"title": "Заголовок 1",
"icon": "",
"showInProfile": true
}
]
}
Пример ответа
{
"id": 1,
"title": "Заголовок",
"text": "Текст",
"icon": "",
"showInProfile": true
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Страница не найдена"
}
Пример запроса
/api/modules/bookingtables/block
Пример запроса
{
"barcode": "1001001"
}
Пример ответа
{
"product": {
"productId": 1,
"artNo": "123",
"name": "Product name",
"urlPath": "product-url-path",
"briefDescription": "Краткое описание",
"description": "Подробное описание",
"enabled": true,
"categoryEnabled": true,
"hidden": false,
"ratio": null,
"isAdult": false,
"recomended": false,
"newProduct": false,
"bestseller": false,
"sales": false,
"favorite": false,
"gifts": false,
"giftProducts": null,
"allowPreorder": true,
"minAmount": 1.0,
"maxAmount": 2.14748365E+09,
"multiplicity": 1.0,
"unit": null,
"commentsCount": 0,
"sizeColorPicker": {
"sizes": [],
"selectedSizeId": null,
"colors": [
{
"id": 1,
"name": "Бежевый цвет",
"code": "#000000",
"photoSrc": null
},
{
"id": 2,
"name": "Зеленый цвет",
"code": "#000000",
"photoSrc": null
},
{
"id": 3,
"name": "Красный",
"code": "#000000",
"photoSrc": null
}
],
"selectedColorId": 1,
"colorIconHeight": 18,
"colorIconWidth": 18,
"sizesHeader": "Размер",
"colorsHeader": "Цвет"
},
"discount": {
"percent": 0.0,
"amount": 0.0,
"type": "Percent"
},
"offers": [
{
"offerId": 1,
"artNo": "1702",
"isMain": true,
"colorId": 1,
"sizeId": null,
"oldPrice": 0.0,
"preparedOldPrice": "0 руб.",
"price": 811.0,
"preparedPrice": "811 руб.",
"bonuses": "+24 бонуса на бонусную карту",
"amount": 205.0,
"isAvailable": true,
"availableText": "Есть в наличии",
"weight": 1.0,
"height": 0.0,
"length": 0.0,
"width": 0.0,
"addToCart": false
},
{
"offerId": 2,
"artNo": "1702-2",
"isMain": false,
"colorId": 2,
"sizeId": null,
"oldPrice": 0.0,
"preparedOldPrice": "0 руб.",
"price": 800.0,
"preparedPrice": "800 руб.",
"bonuses": "+24 бонуса на бонусную карту",
"amount": 0.0,
"isAvailable": false,
"availableText": "Нет в наличии",
"weight": 1.0,
"height": 0.0,
"length": 0.0,
"width": 0.0,
"addToCart": false
},
{
"offerId": 3,
"artNo": "1702-3",
"isMain": false,
"colorId": 3,
"sizeId": null,
"oldPrice": 0.0,
"preparedOldPrice": "0 руб.",
"price": 500.0,
"preparedPrice": "500 руб.",
"bonuses": "+15 бонусов на бонусную карту",
"amount": 0.0,
"isAvailable": false,
"availableText": "Нет в наличии",
"weight": 1.0,
"height": 0.0,
"length": 0.0,
"width": 0.0,
"addToCart": false
}
],
"offerSelectedId": 1,
"customOptions": [],
"brand": null,
"currency": {
"name": "Рубли",
"symbol": " руб.",
"rate": 1.0,
"iso3": "RUB",
"isCodeBefore": false,
"roundNumbers": 1.0,
"enablePriceRounding": true
},
"photoSmall": "https://site.ru/pictures/product/small/9953_small.jpg",
"photoMiddle": "https://site.ru/pictures/product/middle/9953_middle.jpg",
"photoBig": "https://site.ru/pictures/product/big/9953_big.jpg",
"photos": [
{
"smallSrc": "https://site.ru/pictures/product/small/9953_small.jpg",
"middleSrc": "https://site.ru/pictures/product/middle/9953_middle.jpg",
"bigSrc": "https://site.ru/pictures/product/big/9953_big.jpg",
"colorId": null,
"main": true
}
],
"showPhotos360": false,
"photos360": null,
"videos": [],
"markers": null,
"sizeChart": null
}
}
Пример ответа, если товар по штрихкоду не найден
{
"product": null
}
Пример ответа с ошибкой
{
"status": "error",
"errors": "Укажите штрихкод"
}
Пример запроса
?settings=IsShowCity,BuyButtonText
Пример запроса
{
"firstName": "Иван", // имя
"lastName": "Иванов", // фамилия
"patronymic": "Иванович", // отчество
"phone": "790000000", // телефон
"email": "ivan@gmail.com", // email
"customerId": "", // id пользователя
"discountValue": "100", // Скидка числом
"discountPercent": "0", // скидка процентом
"description": "lead from api", // описание
"source": "", // источник лида
"funnelId": 1, // id списка лидов
"sum": "0", // сумма товаров
"products": [ // массив товаров: ArtNo - артикул товара в магазине.
{ // Если товар будет найден по артикулу, то подставится актуальная цена, название, цвет и тд.
"artNo": "977",
"name": "Туфли",
"amount": 1,
"price": 1500
}
]
}
{
"leadId": 1,
"status": "ok"
}
{
"status": "error",
"errors": "Заполните обязательные поля"
}
Пример запроса
{
"country": "Россия",
"region": "Москва",
"city": "Москва",
"userCoordinates": {
"latitude": 11,
"longitude": 22
}
}
Фильтр. Все поля необязательны для заполнения
Пример ответа
{
"deliveries": [
{
"id": 1,
"type": "SelfDelivery",
"name": "Самовывоз",
"description": null,
"zeroCostText": "Бесплатно",
"icon": "https://mysite.ru/images/shipping/selfdelivery.svg",
"coordinates": {
"latitude": 1,
"longitude": 2
},
"warehouseIds": [],
"points": null
},
{
"id": 2,
"type": "DeliveryByZones",
"name": "доставка по зонам",
"description": null,
"zeroCostText": "Бесплатно",
"icon": "https://mysite.ru/images/shipping/default.svg",
"coordinates": {
"latitude": 3,
"longitude": 4
},
"warehouseIds": [],
"points": null
},
{
"id": 3,
"type": "PointDelivery",
"name": "Пункты выдачи",
"description": "Описание",
"zeroCostText": "Бесплатно",
"icon": "https://mysite.ru/images/shipping/selfdelivery.svg",
"coordinates": {
"latitude": 5,
"longitude": 6
},
"warehouseIds": [],
"points": [
{
"id": "3_123",
"pointStringId": "3-ТЦ-Фили",
"inHouse": false,
"name": "ТЦ Фили",
"description": null,
"zeroCostText": "Бесплатно",
"price": 100,
"preparedPrice": "100 руб.",
"deliveryTime": "1-10 дней",
"icon": "https://mysite.ru/images/shipping/selfdelivery.svg",
"warehouseId": null,
"coordinates": {
"latitude": 10,
"longitude": 20
}
}
]
}
],
"nearest": {
"id": "3_123",
"pointId": "3-ТЦ-Фили"
}
}
Другие статьи по теме
- Интеграция платежной системы в Адвантшоп по API
- Подключение мобильного приложения Адвантшоп к внешним системам
- Как работать с API
Тэги: апи, api, http-запрос, запросы, http, триггер