Как вам помочь ?

Описание API

Статья актуальна для версии магазина: 13.0

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

Описание API - 4445
Рисунок 1.

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

Описание API - 3482
Рисунок 2.

После этого в поле "API ключ" появится ваш ключ. Если он был сгенерирован ранее, то его можно будет также найти в этом поле.

 

API (Server API)

Лид

POST /api/leads/add Создание лида
POST [host]/api/leads/add?apikey=[API_KEY]
Пример json-запроса:
{
                "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
            }
        ]
    }
    
Должно быть указано хотя бы 1 поле: FirstName, Email или Phone. Остальные поля не обязательные. Если передаются продукты, то ArtNo должен существовать в магазине.
В случае успеха сервер вернет status ok и номер лида:
{
        "leadId": 1,
        "status": "ok",
        "errors": "",
        "warnings": ""
    }
    
В случае неудачи - вернется ошибка:
{
        "status": "error",
        "errors": "Заполните обязательные поля"
    }
    
POST /api/leads/getlist Список лидов
POST/GET [host]/api/leads/getlist?apikey=[API_KEY]

Метод запроса может быть 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, телефон или организацию)"
        ]
    }
    
GET /api/vk Интеграция с ВКонтакте
GET [host]/api/vk?apikey=[API_KEY]

Заказ

POST /api/order/add Создание заказа
POST [host]/api/order/add?apikey=[API_KEY]

Метод запроса - 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

OrderCustomer
обяз
Объект типа OrderCustomer
Number
не обяз
Номер заказа. Если указан и в системе нет заказа с таким номером, то присвоется номер.
OrderPrefix
не обяз
Префикс для номера заказа. Если есть префикс и передается номер заказа, то заказ добавится с номером "{OrderPrefix}+{Number}". Если номер не передается или заказ с таким номером уже существует, то номер заказа будет "{OrderPrefix}+{Новый OrderId}"
OrderSource
не обяз
Название источника заказа
Currency
не обяз
Код валюты. Должен совпадать с кодом валюты в магазине.
CustomerComment
не обяз
Комментарий пользователя
AdminComment
не обяз
Комментарий администратора
ShippingName
не обяз
Название метода доставки
PaymentName
не обяз
Название метода оплаты
DeliveryTime
не обяз
string Время доставки. Например, "Как можно скорее", "08:00-20:00|3"
DeliveryDate
не обяз
DateTime? Дата доставки. Например, "2030-02-15 00:00:00.000"
ShippingCost
не обяз
Стоимость доставки
PaymentCost
не обяз
Стоимость оплаты. Наценка или скида при оплате
BonusCost
не обяз
Кол-во использованных бонусов. У покупателя должна быть бонусная карта. Если её нет, то бонусы не будут списаны. Покупатель будет искаться по CustomerId, Email или Phone.
ValidateBonusCost
не обяз
Проверять присланное кол-во бонусов для списания.
Если стоит true и прислали бонусов для списания больше чем можно, то вернется ошибка "Заказ может быть оплачен бонусами на {p}%. Для этого заказ можно списать {n} бонусов.".
По умолчанию false, автоматически посчитается и поставится в заказе сколько бонусов доступно для списания, т.е. если BonusCost = 500, а списать можно только 50, то в заказе поставится 50.
BonusCardNumber
не обяз
Номер бонусной карты. Если номер передается в запросе, то бонусная карта должна уже существовать у покупателя. Покупатель будет искаться по CustomerId, Email или Phone.
OrderDiscount
не обяз
Скидка заказа. Процент
OrderDiscountValue
не обяз
Скидка заказа. Значение
ShippingTaxName
не обяз
Налог на доставку. Название должно совпадать с названием налога в магазине.
TrackNumber
не обяз
Номер отслеживания
TotalWeight
не обяз
Вес заказа
TotalLength
не обяз
Габариты заказа: длина
TotalWidth
не обяз
Габариты заказа: ширина
TotalHeight
не обяз
Габариты заказа: высота
OrderStatusName
не обяз
Статус заказа. Название должно совпадать с названием статуса в магазине.
ManagerEmail
не обяз
Email менеджера, на которого будет назначен заказ
IsPaied
не обяз
Оплачен заказ или нет. По умолчанию заказа не оплачен.
CheckOrderItemExist
не обяз
Проверять существуют ли товары в магазине.
Если стоит true и пришел товар, с артикулом которого нет в магазине, то по вернется ошибка и заказ не будет создан.
По умолчанию true.
CheckOrderItemAvailable
не обяз
Проверять в наличии ли товары в магазине.
Если стоит true и пришел товар, с артикулом товара, который не в наличии, то по вернется ошибка и заказ не будет создан.
По умолчанию true.
SkipBusinessProcessesAfterCreatingOrder
не обяз
Пропустить ли запуск бизнес процессов после создания заказа.
Если стоит true, то заказ не будет отправлен во внешние системы, не отработают триггеры на создание заказа, не отправятся Email/Sms.
По умолчанию false, заказ может быть отправлен во внешние системы, отработают триггеры на создание закза, отправятся Email/Sms.
SkipBonusPurchase
не обяз
Пропустить ли создание продажи в бонусной карте.
Если стоит true, то продажа не будет создана и покупателю не будут начисленны бонусы после оплаты заказа.
По умолчанию false, продажа будет создана и покупателю будут начисленны бонусы после оплаты заказа.
OrderItems
"обяз"
Массив объектов OrderItem

Поля OrderCustomer

У OrderCustomer должно быть указано хотя бы одно из полей FirstName, Email, Phone или Organization. Все остальные поля не обязательны для заполнения.
CustomerId
не обяз
Идентификатор покупателя
FirstName
 
Имя покупателя
LastName
не обяз
Фамилия покупателя
Patronymic
не обяз
Отчество покупателя
Organization
 
Название организации
Email
 
Email
Phone
 
Телефон покупателя
Country
не обяз
Страна
Region
не обяз
Регион
District
не обяз
Район региона
City
не обяз
Город
Zip
не обяз
Индекс
Street
не обяз
Улица
House
не обяз
Дом
Structure
не обяз
Стр./корп.
Apartment
не обяз
Квартира
Entrance
не обяз
Подъезд
Floor
не обяз
Этаж
CustomField1
не обяз
Настраиваемое поле 1
CustomField2
не обяз
Настраиваемое поле 2
CustomField3
не обяз
Настраиваемое поле 3

Поля OrderItem

ArtNo
обяз
Артикул товара. Если CheckOrderItemAvailable стоит true, то товар должен присутствовать в магазине.
Name
не обяз
Название товара. Если товар найден по артикулу в магазине, то возьмется название из товара.
Price
не обяз
Цена товара. Если не указана, то применится цена товара.
Amount
не обяз
Колличество товара. Если не указана, то применится из товара.

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

{
      "result": true,
      "obj": {              // Описание объекта заказа
        "Id": 1,
        "Number": "1",
        ...
      }
    }
    

Пример ответа с ошибкой

{
        "result": false,
        "errors": [
          "Заполните обязательное поле (имя, email, телефон или организацию)"
        ]
    }
    
GET /api/order/get/{id} Получить заказ
GET [host]/api/order/get/{id}?apikey=[API_KEY]

Вместо {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": [ "Заказ не найден" ]
    }
    
POST /api/order/getlist Получить список заказов
POST [host]/api/order/getlist?apikey=[API_KEY]

Пример 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"
      ]
    }
    
POST /api/order/changestatus Сменить статус заказа
POST [host]/api/order/changestatus?apikey=[API_KEY]

Пример json-запроса:

{
      "OrderId": 4,       // Идентификатора заказа ( обяз.)
      "StatusId": 1       // Идентификатора статуса заказа ( обяз.)
    }
    

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

{
      "result": true
    }
    

Пример ответа с ошибкой

{
      "result": false,
      "errors": [ "Статус не найден" ]
    }
    
POST /api/order/setpaid Отметить заказ оплаченным
POST [host]/api/order/setpaid?apikey=[API_KEY]

Пример json-запроса:

{
      "OrderId": 4       // Идентификатора заказа ( обяз.)
    }
    

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

{
      "result": true
    }
    

Пример ответа с ошибкой

{
      "result": false,
      "errors": [ "Заказ не найден" ]
    }
    
POST /api/orderstatus/getlist Получить список статусов
POST [host]/api/orderstatus/getlist?apikey=[API_KEY]

Пример 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"
      ]
    }
    

Покупатели

GET /api/customers Список покупателей
GET [host]/api/customers?apikey=[API_KEY]

Получение списка клиентов, удовлетворяющих заданному фильтру. Результат возвращается постранично.

Фильтр. Все поля не обязательны.

page
int
Текущая страница в постараничном выводе
itemsPerPage
int
Колличество элементов на страницу. По умолчанию 100. Макс. 100.
sorting
string
Название поля для сортировки. Должно совпадать с полем объекта.
sortingType
enum
Сортировка: none - нет, asc - по возрастанию, desc - по убыванию
extended
bool
Позволяет выводить дополнительные поля у объекта Customer (contact, fields)
name
string
Имя, фамилия или отчество
email
string
Почта
phone
string
Телефон
city
string
Город
groupId
int
Идентификатор группы покупателей
managerId
int
Идентификатор менеджера
lastOrderNumber
string
Номер последнего заказа
ordersCountFrom
int
Колличество оплаченных заказов От
ordersCountTo
int
Колличество оплаченных заказов До
ordersSumFrom
int
Сумма оплаченных заказов От
ordersSumTo
int
Сумма оплаченных заказов До
registrationDateTimeFrom
string
Дата регистрации От. Пример: "2021-01-01T12:01"
registrationDateTimeTo
string
Дата регистрации До. Пример: "2021-01-01T12:01"
lastOrderDateTimeFrom
string
Дата последнего заказа От. Пример: "2021-01-01T12:01"
lastOrderDateTimeTo
string
Дата последнего заказа До. Пример: "2021-01-01T12:01"
averageCheckFrom
int
Средний чек по заказам От
averageCheckTo
int
Средний чек по заказам До
socialType
string
Тип в соц. сети. Возможные занчения: vk, fb, telegram, all. all - любая из перечисленных соц. сетей.
subscription
bool
Подписка на новости
hasBonusCard
bool
Есть бонусная карта
customerFields
Dictionary
Список полей покупателя. Dictionary<string, CustomerFiled> Примеры:
{
        "CustomerFields" : {
            "1": { "value": "123" },
            "2": { "dateFrom": "2021-10-11", "dateTo": "2021-11-11" },
        }
    }
1, 2 - id поля покупателя
tags
List <int>
Тэги покупателя
customerSegment
int
Идентификатор сегмента покупателей

CustomerFiled. Все поля не обязательны.

Value
string
Значение (содержится). Например, занчение "шла" будет соержатся в "шла саша"
ValueExact
string
Значение строго совпадающее
DateFrom
datetime
Дата от
DateTo
datetime
Дата до
From
int
Числовое значение от
To
int
Числовое значение до

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

{
        "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
            }
        ]
    }

Ответ

pagination
Постаричный вывод ответа
customers
Список покупателей. Пример объекта, см. Получить покупателя
Может содержать дополнительные поля в ответе (contact, fields), если в запросе передается параметр extended=true

Информация о постраничном выводе включает:

count
Количество элементов в текущем ответе
currentPage
Текущая страница
totalCount
Общее количество элементов
totalPageCount
Общее количество страниц с ответом
GET /api/customers/{id} Получить покупателя
GET [host]/api/customers/{id}?apikey=[API_KEY]
{
        "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 Создать покупателя
POST [host]/api/customers/add?apikey=[API_KEY]

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
    }
    
ignoreCustomerFieldsConstraints
Если true, то будут игнорироваться проверки (активности, редактирования) при добавлении доп. полей покупателя. Не обяз. поле. По умолчанию не передается.

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

{
        "id": "b337541c-7c41-4bd1-a3d6-360cf655601b",  // id созданного покупателя
        "status": "ok"                                 // статус
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "Пользователь с таким телефоном уже существует"
    }
    
POST /api/customers/{id} Изменить покупателя
POST [host]/api/customers/{id}?apikey=[API_KEY]

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
    }
    
ignoreCustomerFieldsConstraints
Если true, то будут игнорироваться проверки (активности, редактирования) при добавлении доп. полей покупателя. Не обяз. поле. По умолчанию не передается.

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

{
        "id": "b337541c-7c41-4bd1-a3d6-360cf655601b",  // id покупателя
        "status": "ok"                                 // статус
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "Пользователь с таким телефоном уже существует"
    }
    
POST /api/customers/smsphoneconfirmation Послать смс-код по номеру телефона
POST [host]/api/customers/smsphoneconfirmation?apikey=[API_KEY]
Посылает смс-код по номеру телефона для подтверждения. Код действителен в течении 10 мин.

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

{"phone": "79171234567"}

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

{
        "isCodeSended": true
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "Не подключен модуль sms"
    }
    
POST /api/customers/smsphoneconfirmationcode Проверка смс-кода
POST [host]/api/customers/smsphoneconfirmationcode?apikey=[API_KEY]
Проверяет введенный пользователем смс-код для подтверждения

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

{
        "phone": "79171234567",
        "code": "1234"
    }

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

{
        "confirmed": true
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "Не правильный sms-код"
    }
    
GET /api/customers/{id}/bonuses Бонусная карта покупателя
GET [host]/api/customers/{id}/bonuses?apikey=[API_KEY]

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

{
        "cardId": 961640,        // номер бонусной карты   (long)
        "amount": 200,           // кол-во бонусов         (decimal)
        "percent": 3,            // процент карты          (decimal)
        "gradeName": "Гостевой", // название грейда        (string)
        "gradeId": 1,            // id грейда              (int)
        "isBlocked": false       // заблокирована ли карта (bool)
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "У покупателя нет бонусной карты"
    }
    

Менеджер

GET /api/managers Список менеджеров
GET [host]/api/managers?apikey=[API_KEY]

Группа покупателей

GET /api/customergroups Список групп покупателей
GET [host]/api/customergroups?apikey=[API_KEY]

Бонусная система

GET /api/bonus-cards/{id} Получение бонусной карты по номеру
GET [host]/api/bonus-cards/{id}?apikey=[API_KEY]
{id} - номер карты

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

{
        "cardId": 961640,        // номер бонусной карты   (long)
        "amount": 200,           // кол-во бонусов         (decimal)
        "percent": 3,            // процент карты          (decimal)
        "gradeName": "Гостевой", // название грейда        (string)
        "gradeId": 1,            // id грейда              (int)
        "isBlocked": false       // заблокирована ли карта (bool)
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "У покупателя нет бонусной карты"
    }
    
POST /api/bonus-cards/add Создание бонусной карты для покупателя
POST [host]/api/bonus-cards/add?apikey=[API_KEY]
customerId - id покупателя, для которого надо создать бонусную карту

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

{ "customerId": "889d82df-aaa5-4d54-a870-8d123e541af9" }

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

{
        "cardId": 123,
        "amount": 0,
        "percent": 3,
        "gradeName": "Гостевой",
        "gradeId": 1,
        "isBlocked": false
    }
    

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "У покупателя уже есть бонусная карта"
    }
    
GET /api/bonus-cards/{id}/bonuses Получение бонусов
GET [host]/api/bonus-cards/{id}/bonuses?apikey=[API_KEY]
В ответ приходит список бонусов.
id
int
id бонуса
name
string
Наименование
amount
decimal
Кол-во бонусов
startDate
datetime?
Действует от (не обяз.)
endDate
datetime?
Действует включительно до (не обяз.)
description
string
Описание (не обяз.)
status
 
Статус

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

[
        {
            "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
        }
    ]
    
POST /api/bonus-cards/{id}/bonuses/accept Начисление бонусов
POST [host]/api/bonus-cards/{id}/bonuses/accept?apikey=[API_KEY]
Пример запроса
name
string
Наименование
amount
decimal
Кол-во бонусов
reason
string
Причина начисления
startDate
datetime?
Действует от (не обяз.)
endDate
datetime?
Действует включительно до (не обяз.)
sendSms
 
Уведомлять покупателя по смс

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

{
        "name": "Начислить бонусы на др",
        "amount": 100,
        "reason": "С Днем Рождения!",
        "startDate": "2021-11-15T00:00:00",
        "endDate": "2021-11-30T00:00:00",
        "sendSms": false,
    }
    

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

{
        "status": "ok"
    }
    
POST /api/bonus-cards/{id}/bonuses/substract Списание бонусов
POST [host]/api/bonus-cards/{id}/bonuses/substract?apikey=[API_KEY]
Пример запроса
bonusId
int
id бонуса
amount
decimal
Кол-во бонусов
reason
string
Причина списания
sendSms
bool
Отсылать смс покупателю

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

{
        "bonusId": 1,
        "amount": 100,
        "reason": "Списание бонусов",
        "sendSms": false,
    }
    

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

{
        "status": "ok"
    }
    
POST /api/bonus-cards/{id}/bonuses/substract-free-amount Списание бонусов на необходимое кол-во
POST [host]/api/bonus-cards/{id}/bonuses/substract-free-amount?apikey=[API_KEY]
Пример запроса
amount
decimal
Кол-во бонусов
reason
string
Причина списания
sendSms
bool
Отсылать смс покупателю

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

{
        "amount": 100,
        "reason": "Списание бонусов",
        "sendSms": false,
    }
    

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

{
        "status": "ok"
    }
    
GET /api/bonus-cards/{id}/transactions Список транзакций по карте с пагинацией
GET [host]/api/bonus-cards/{id}/transactions?apikey=[API_KEY]

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

{
        "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
        }
    }
    

Бонусная система. Настройки

GET /api/bonus-cards/settings Настройки бонусной системы
GET [host]/api/bonus-cards/settings?apikey=[API_KEY]
Ответ.
isEnabled
Активность бонусной системы
cardNumberFrom
Диапазон карт от.
Бонусные карты генерируруется случайным образом в диапазоне "Диапазон карт от" до "Диапазон карт до". Не делайте его слишком маленьким, иначе сгенерировать новую карту не получится.
cardNumberTo
Диапазон карт до
bonusGradeId
id грейда
grades
Список грейдов
maxOrderPercent
Максимальный % заказа, который можно оплатить бонусами. От 0 до 100.
bonusType
Начислять и списывать по. id типа
bonusTypes
Список типов для опции "Начислять и списывать по"
bonusTextBlock
Основной текст на странице бонусной системы
bonusRightTextBlock
Текст в правом блоке на странице бонусной системы
disallowUseWithCoupon
Запретить применение бонусов при активированном купоне
smsNotificationEnabled
Разрешить SMS уведомления
emailNotificationEnabled
Разрешить Email уведомления
pushNotificationEnabled
Разрешить Push уведомления

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

{
        "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
    }
    
POST /api/bonus-cards/settings Сохранение настроек бонусной системы
POST [host]/api/bonus-cards/settings?apikey=[API_KEY]

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

{
        "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"
    }
    

Бонусная система. Грейды

GET /api/bonus-grades Получить грейды
GET [host]/api/bonus-grades?apikey=[API_KEY]

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

[
        {
            "id": 1,              // Идентификатор
            "name": "Гостевой",   // Название
            "bonusPercent": 3,    // Процент начисления бонусов
            "sortOrder": 0,       // Сортировка
            "purchaseBarrier": 0  // Порог для перехода на след. гейд
        },
        {
            "id": 2,
            "name": "Бронзовый",
            "bonusPercent": 5,
            "sortOrder": 1,
            "purchaseBarrier": 5000
        }
    ]
    

Категория

GET /api/categories Список категорий
GET [host]/api/categories?apikey=[API_KEY]

Получение списка категорий, удовлетворяющих заданному фильтру. Результат возвращается постранично.

Фильтр. Все поля не обязательны.

page
int
Текущая страница в постараничном выводе
itemsPerPage
int
Колличество элементов на страницу. По умолчанию 100. Макс. 500.
sorting
string
Название поля для сортировки. Должно совпадать с полем объекта.
sortingType
enum
Сортировка: none - нет, asc - по возрастанию, desc - по убыванию
extended
bool
Позволяет выводить дополнительные поля у объекта Category (seoMetaInformation, pictureUrl, miniPictureUrl, menuIconPictureUrl)
name
string
Название
parentCategoryId
int
id родительской категории
enabled
bool
Активность
hidden
bool
Скрыта ли категория

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

/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
        }
    }

Ответ

pagination
Постраничный вывод ответа
categories
Список категорий. Пример объекта, см. Получить категорию
Может содержать дополнительные поля в ответе, если в запросе передается параметр extended=true

Информация о постраничном выводе включает:

count
Количество элементов в текущем ответе
currentPage
Текущая страница
totalCount
Общее количество элементов
totalPageCount
Общее количество страниц с ответом
GET /api/categories/{id} Получить категорию
GET [host]/api/categories/{id}?apikey=[API_KEY]

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

{
        "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
    }
    
id
id категории
externalId
Внешний id
parentCategoryId
id родительской категории
url
url категории
description
Описание
briefDescription
Краткое описание
enabled
Активность
hidden
Скрытая категория
sortOrder
Сортировка среди категорий
sorting
Сортировка по умолчанию для товаров. Возможные значения: NoSorting - Без сортировки, DescByPopular - Популярные, DescByAddingDate - Новинки, AscByPrice - Сначала дешевле, DescByPrice - Сначала дороже, DescByDiscount - По размеру скидки, DescByRatio - Высокий рейтинг, AscByName - Названию, по возрастанию, DescByName - Названию, по убыванию
showMode
Вид отображения подкатегорий: 0 - не показывать, 1 - плитка, 2 - список
showBrandsInMenu
Отображать производителей в меню
showSubCategoriesInMenu
Отображать в меню два уровня подкатегорий
showOnMainPage
Выводить на главной
modifiedBy
Кто менял
seoMetaInformation
SEO мета информация
pictureUrl
Url изображения
miniPictureUrl
Url мини-картинки
menuIconPictureUrl
Url иконки для меню

Пример ответа с ошибкой

{
        "status": "error",
        "errors": "Категории не существует"
    }
    
POST /api/categories/add Создать категорию
POST [host]/api/categories/add?apikey=[API_KEY]

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

{
        "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/categories/{id} Изменить категорию
POST [host]/api/categories/{id}?apikey=[API_KEY]

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": "Название обязательно для заполения"
    }
    
POST /api/categories/{id}/delete Удалить категорию
POST [host]/api/categories/{id}/delete?apikey=[API_KEY]

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

{
        "status": "ok"
    }
    

Категория. Изображение

POST /api/categories/{id}/picture/add Добавить изображение
POST [host]/api/categories/{id}/picture/add?apikey=[API_KEY]
Передается файл

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

{
        "status": "ok"
    }
    
POST /api/categories/{id}/picture/addbylink Добавить изображение по ссылке
POST [host]/api/categories/{id}/picture/addbylink?apikey=[API_KEY]

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

{
        "link": "https://link.com/img.jpg"
    }
    
POST /api/categories/{id}/picture/delete Удалить изображение
POST [host]/api/categories/{id}/picture/delete?apikey=[API_KEY]

Категория. Мини-изображение

POST /api/categories/{id}/mini-picture/add Добавить мини-изображение
POST [host]/api/categories/{id}/mini-picture/add?apikey=[API_KEY]
Передается файл

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

{
        "status": "ok"
    }
    
POST /api/categories/{id}/mini-picture/addbylink Добавить мини-изображение по ссылке
POST [host]/api/categories/{id}/mini-picture/addbylink?apikey=[API_KEY]

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

{
        "link": "https://link.com/img.jpg"
    }
    
POST /api/categories/{id}/mini-picture/delete Удалить мини-изображение
POST [host]/api/categories/{id}/mini-picture/delete?apikey=[API_KEY]

Категория. Иконка для меню

POST /api/categories/{id}/menu-icon-picture/add Добавить иконку для меню
POST [host]/api/categories/{id}/menu-icon-picture/add?apikey=[API_KEY]
Передается файл

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

{
        "status": "ok"
    }
    
POST /api/categories/{id}/menu-icon-picture/addbylink Добавить иконку для меню по ссылке
POST [host]/api/categories/{id}/menu-icon-picture/addbylink?apikey=[API_KEY]

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

{
        "link": "https://link.com/img.jpg"
    }
    
POST /api/categories/{id}/menu-icon-picture/delete Удалить иконку для меню
POST [host]/api/categories/{id}/menu-icon-picture/delete?apikey=[API_KEY]

Настройки

GET /api/settings Список настроек
GET [host]/api/settings?apikey=[API_KEY]

Получение настроек по ключам

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

/api/settings?keys=ShopURL,ShopName

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

[
        {
            "key": "ShopURL",
            "value": "http://site.ru"
        },
        {
            "key": "ShopName",
            "value": "Shop name"
        }
    ]
    

Карусель

GET /api/carousels Список слайдов в карусели
GET [host]/api/carousels?apikey=[API_KEY]

Фильтр. Все поля не обязательны.

enabled
bool
Активность слайда
displayInMobile
bool
Выводится в моб. версии
displayInTwoColumns
bool
Выводится в двух колоночном режиме
displayInOneColumn
bool
Выводится в одноколоночном режиме

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

/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": ""
            }
        },
        ...
    ]
    

Уведомления

POST /api/notifications/sendPush Послать push-уведомление
POST [host]/api/notifications/sendPush?apikey=[API_KEY]
customerId
guid
Идентификатор покупателя
title
string
Заголовок уведомления
body
string
Текст уведомления

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

/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 вернутся товары с учетом типа цены и выбранного склада.

GET /api/init Инициализация
GET [host]/api/init?apikey=[API_KEY]
Возвращается текущий покупатель, валюта, настройки, локация.

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

?settings=IsShowCity,BuyButtonText
Все поля необязательны для заполнения
settings
string
Настройки, которые нужно вернуть
device
string
Модель телефона
os
string
Версия ОС
appVersion
string
Версия моб приложения

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

{
                "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
enum
Метод получения кода подтверждения. Enum: Sms, Call
AuthCallMode
enum?
Метод получения кода подтверждения звонком. null - если AuthByCodeMethod равен Sms, Flash - цифры из номера звонка, Voice - цифры, которые услышите при звонке
AuthByCodeMethodDescription
string
Описание для метода получения кода подтверждения.
Описание по умолчанию:
если AuthByCodeMethod равен Sms, то "Вам придет смс с кодом. Введите 4 цифры."
если AuthCallMode равен Flash, то "Введите 4 последние цифры номера, с которого поступит звонок."
если AuthCallMode равен Voice, то "Введите 4 цифры кода, который вы услышите при звонке."

Покупатель

POST /api/users/signin Авторизация по эл. почте
POST [host]/api/users/signin?apikey=[API_KEY]

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

{
                "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": "Не верный логин или пароль"
            }
POST /api/users/signinbyphone Авторизация (или регистрация) по sms-коду. Отсылка sms-кода по номеру телефона.
POST [host]/api/users/signinbyphone?apikey=[API_KEY]

Авторизация по 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 не зарегистрирован"
            }
POST /api/users/signinbyphoneconfirmcode Авторизация (или регистрация) по sms-коду. Проверка введенного кода и авторизация.
POST [host]/api/users/signinbyphoneconfirmcode?apikey=[API_KEY]

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

{
                "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-код"
            }
GET /api/users/me Получить текущего покупателя
GET [host]/api/users/me?apikey=[API_KEY]

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Пользователь не авторизован"
            }
POST /api/users/me Изменить текущего покупателя
POST [host]/api/users/me?apikey=[API_KEY]

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Пользователь не авторизован"
            }
POST /api/users/me/smsphoneconfirmation Послать смс-код по номеру телефона
POST [host]/api/users/me/smsphoneconfirmation?apikey=[API_KEY]
Посылает смс-код по номеру телефона для подтверждения. Код действителен в течении 10 мин.

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

{
                "addHash": true //  не обяз. параметр. По умолчанию false. Добавляет в конец смс-кода хэш приложения.
            }
            

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

{
                "isCodeSended": true
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Не подключен модуль sms"
            }
            
POST /api/users/me/smsphoneconfirmationcode Проверка смс-кода
POST [host]/api/users/me/smsphoneconfirmationcode?apikey=[API_KEY]
Проверяет введенный пользователем смс-код для подтверждения

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

{
                "code": "1234"
            }

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

{
                "confirmed": true
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Не правильный sms-код"
            }
            
GET /api/users/me/bonuses Бонусная карта покупателя
GET [host]/api/users/me/bonuses?apikey=[API_KEY]

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

{
                "cardId": 961640,        // номер бонусной карты   (long)
                "amount": 200,           // кол-во бонусов         (decimal)
                "percent": 3,            // процент карты          (decimal)
                "gradeName": "Гостевой", // название грейда        (string)
                "gradeId": 1,            // id грейда              (int)
                "isBlocked": false       // заблокирована ли карта (bool)
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "У покупателя нет бонусной карты"
            }
            
GET /api/users/me/customer-fields Получить доп. поля покупателя
GET [host]/api/users/me/customer-fields?apikey=[API_KEY]

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

api/users/customer-fields?type=LegalEntity
            
type
enum
Не обяз. поле. Если не приходит в запросе, то вернутся все доп поля покупателя. Возможные значения: all, physicalEntity, legalEntity.
POST /api/users/me/remove-account Удалить аккаунт пользователя
POST [host]/api/users/me/remove-account?apikey=[API_KEY]

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

{
                "result": true
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Пользователь не найден"
            }
            
POST /api/users/me/fcmtoken Обновить Firebase Cloud Messaging token
POST [host]/api/users/me/fcmtoken?apikey=[API_KEY]

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

{
                "token": "qwerty"
            }

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

{
                "result": true
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Пользователь не найден"
            }
            

Контакты покупателя

GET /api/users/me/contacts Получить список контактов пользователя
GET [host]/api/users/me/contacts?apikey=[API_KEY]

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

[
                {
                    "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": "Пользователь не авторизован"
            }
            
POST /api/users/me/contacts/add Добавить новый контакт для пользователя
POST [host]/api/users/me/contacts/add?apikey=[API_KEY]

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

{
                "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": "Пользователь не авторизован"
            }
            
POST /api/users/me/contacts/{contactId}/update Обновить контакт для пользователя
POST [host]/api/users/me/contacts/{contactId}/update?apikey=[API_KEY]

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

{
                "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": "Пользователь не авторизован"
            }
            
POST /api/users/me/contacts/{contactId}/delete Удалить контакт для пользователя
POST [host]/api/users/me/contacts/{contactId}/delete?apikey=[API_KEY]

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

{
                "status": "ok"
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Пользователь не авторизован"
            }
            
GET /api/users/me/statistics Статистика по пользователю
GET [host]/api/users/me/statistics?apikey=[API_KEY]

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

Пример ответа с ошибкой

{
                "ordersSum": "1 000 руб.",
                "ordersCount": 1,
                "averageCheck": "1 000 руб.",
                "durationOfWorkWithClient": "3м. 3д.",
                "addressesCount": 1,
                "wishListCount": 0,
                "activeOrdersCount": 1,
            }

Заказ

GET /api/orders/me Список заказов покупателя
GET [host]/api/orders/me?apikey=[API_KEY]

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

Фильтр. Все поля необязательны для заполнения

page
int
Текущая страница в постараничном выводе
itemsPerPage
int
Колличество элементов на страницу. По умолчанию 20.
loadItems
bool
Загружать товары заказа. (Необяз. По умолчанию false)
loadCustomer
bool
Загружать информацию о покупателе. (Необяз. По умолчанию false)
loadSource
bool
Загружать источник заказа. (Необяз. По умолчанию false)
loadReview
bool
Загружать отзыв о заказе. (Необяз. По умолчанию true)
loadBillingApiLink
bool
Загружать ссылку на оплату. (Необяз. По умолчанию true)
statusId
int
Идентификатор статуса заказа (Необяз.)
isPaid
bool
Оплачен заказ или нет (Необяз.)
isCompleted
bool
Заказ имеет статус, который завершен (Необяз.)
sumFrom
decimal
Начиная с суммы заказа (Необяз.)
sumTo
decimal
Заканчивая суммой заказа (Необяз.)
dateFrom
date
Начиная с даты заказа в формате ISO 8601 (Необяз.)
dateTo
date
Заканчивая датой заказа в формате ISO 8601 (Необяз.)
GET /api/orders/me/{id} Получить заказ покупателя
GET [host]/api/orders/me/{id}?apikey=[API_KEY]

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": "Быстро и качественно!"
                }
            }
POST /api/orders/me/{id}/review Оценить заказ
POST [host]/api/orders/me/{id}/review?apikey=[API_KEY]
ratio
int
Оценка заказа от 1 до 5. Если не приходит оценка (или 0), то комментарий обяз. поле.
text
string
Комментарий. Если не приходит или пустой комментарий, то оценка обяз. поле.

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

{
                "ratio": 5,
                "text": "Быстро и качественно!"
            }

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

{
                "status": "ok"
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Укажите текст и оценку"
            }
POST /api/orders/me/{id}/cancel Отменить заказ
POST [host]/api/orders/me/{id}/cancel?apikey=[API_KEY]

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

{
                "status": "ok"
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Заказ нельзя отменить"
            }

Каталог

POST /api/catalog Получить каталог
POST [host]/api/catalog?apikey=[API_KEY]

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 не обязательны для заполнения

categoryId
int
Id категории. Обязательно указывается сategoryId или url
page
int
Текущая страница в постараничном выводе
url
string
Url категории. Обязательно указывается сategoryId или url
brandIds
List int
Список Id производителей
colorIds
List int
Список Id цветов
sizeIds
List int
Список Id размеров
propertyLists
List of list int
Список свойств. Пример:
[
                [1,2], // массив выбранных id значений
                [3,4,5],
                [7]
            ]
propertyRanges
List of int
Список свойств диапазонов. Пример:
[
               {
                   "id": 397,  // id свойства
                   "min": 1.1, // минимальное значение диапазона
                   "max": 3    // максимальное значение диапазона
               }
            ]
priceFrom
decimal
Цена от
priceTo
decimal
Цена до
available
bool
Только в наличии
sorting
string
Сортировка товаров: NoSorting, DescByPopular, DescByAddingDate, AscByPrice, DescByPrice, DescByDiscount, DescByRatio, AscByName, DescByName
showHtmlPrice
bool
Возвращать цену товара с html-тегами. По умолчанию: false
search
string
Поисковый запрос
warehouseIds
List of int
Список складов. Пример: [1, 2]. Фильтрует товары по наличию на указанных складах.

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

{
              "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": "Категория не найдена"
            }
POST /api/catalog/all Получить одностраничный каталог
POST [host]/api/catalog/all?apikey=[API_KEY]
Возвращается список корневых категорий с товарами в них

Фильтр. Все поля необязательны для заполнения

productsLimit
int
Кол-во товаров, которые нужно получить для категории. Если значение не установлено, то берется настройка из магазина.
showHtmlPrice
bool
Возвращать цену товара с html-тегами. По умолчанию: false
search
string
Поисковый запрос
warehouseIds
List of int
Список складов. Пример: [1, 2]. Фильтрует товары по наличию на указанных складах.

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

{
              "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
                }
              ]
            }
            
POST /api/catalog/filter Получить фильтр каталога
POST [host]/api/catalog/filter?apikey=[API_KEY]

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

{
                "categoryId": 12345,
                "propertyLists": [
                    [1],
                    [2,3]
                ],
                "propertyRanges": [
                    {
                        "id": 4,
                        "min": 1,
                        "max": 100
                    }
                ]
            }
            

Фильтр

categoryId
int
Id категории. Обязательно указывается сategoryId или url
url
string
Url категории. Обязательно указывается сategoryId или url
brandIds
List int
Список Id производителей
colorIds
List int
Список Id цветов
sizeIds
List int
Список Id размеров
propertyLists
List of list int
Список свойств. Пример:
[
                [1,2], // массив выбранных id значений
                [3,4,5],
                [7]
            ]
propertyRanges
List of int
Список свойств диапазонов. Пример:
[
               {
                   "id": 397,  // id свойства
                   "min": 1.1, // минимальное значение диапазона
                   "max": 3    // максимальное значение диапазона
               }
            ]
priceFrom
decimal
Цена от
priceTo
decimal
Цена до
available
bool
Только в наличии
sorting
string
Сортировка товаров: NoSorting, DescByPopular, DescByAddingDate, AscByPrice, DescByPrice, DescByDiscount, DescByRatio, AscByName, DescByName
search
string
Поисковый запрос
warehouseIds
List of int
Список складов. Пример: [1, 2]. Фильтрует товары по наличию на указанных складах.

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

[
              {
                "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": "Категория не найдена"
            }
POST /api/catalog/filtercount Получить кол-во товаров по фильтру
POST [host]/api/catalog/filtercount?apikey=[API_KEY]

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

{
                "categoryId": 12345,
                "propertyLists": [
                    [1],
                    [2,3]
                ],
                "propertyRanges": [
                    {
                        "id": 4,
                        "min": 1,
                        "max": 100
                    }
                ]
            }
            
Параметры такие же как в api/catalog/filter

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

{
                "itemsCount": 3
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Категория не найдена"
            }

Поиск

POST /api/search Поиск по товарам и категориям
POST [host]/api/search?apikey=[API_KEY]

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

{
                "query": "Красное платье",
                "propertyLists": [
                    [1],
                    [2,3]
                ],
                "propertyRanges": [
                    {
                        "id": 4,
                        "min": 1,
                        "max": 100
                    }
                ]
            }
            

Фильтр. Все поля кроме query не обязательны для заполнения

query
string
Поисковый запрос. Обязательное поле.
page
int
Текущая страница в постараничном выводе
brandIds
List int
Список Id производителей
colorIds
List int
Список Id цветов
sizeIds
List int
Список Id размеров
propertyLists
List of list int
Список свойств. Пример:
[
                [1,2], // массив выбранных id значений
                [3,4,5],
                [7]
            ]
propertyRanges
List of int
Список свойств диапазонов. Пример:
[
               {
                   "id": 397,  // id свойства
                   "min": 1.1, // минимальное значение диапазона
                   "max": 3    // максимальное значение диапазона
               }
            ]
priceFrom
decimal
Цена от
priceTo
decimal
Цена до
available
bool
Только в наличии
sorting
string
Сортировка товаров: NoSorting, DescByPopular, DescByAddingDate, AscByPrice, DescByPrice, DescByDiscount, DescByRatio, AscByName, DescByName
showHtmlPrice
bool
Возвращать цену товара с html-тегами. По умолчанию: false
warehouseIds
List of int
Список складов. Пример: [1, 2]

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

{
              "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": "Укажите поисковый запрос"
            }
POST /api/search/filter Получить фильтр для поиска
POST [host]/api/search/filter?apikey=[API_KEY]

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

{
                "query": "Красное платье",
                "propertyLists": [
                    [1],
                    [2,3]
                ],
                "propertyRanges": [
                    {
                        "id": 4,
                        "min": 1,
                        "max": 100
                    }
                ]
            }
            

Фильтр. Все поля кроме query не обязательны для заполнения

query
string
Поисковый запрос. Обязательное поле.
page
int
Текущая страница в постараничном выводе
brandIds
List int
Список Id производителей
colorIds
List int
Список Id цветов
sizeIds
List int
Список Id размеров
propertyLists
List of list int
Список свойств. Пример:
[
                [1,2], // массив выбранных id значений
                [3,4,5],
                [7]
            ]
propertyRanges
List of int
Список свойств диапазонов. Пример:
[
               {
                   "id": 397,  // id свойства
                   "min": 1.1, // минимальное значение диапазона
                   "max": 3    // максимальное значение диапазона
               }
            ]
priceFrom
decimal
Цена от
priceTo
decimal
Цена до
available
bool
Только в наличии
sorting
string
Сортировка товаров: NoSorting, DescByPopular, DescByAddingDate, AscByPrice, DescByPrice, DescByDiscount, DescByRatio, AscByName, DescByName
showHtmlPrice
bool
Возвращать цену товара с html-тегами. По умолчанию: false
warehouseIds
List of int
Список складов. Пример: [1, 2]

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

[
              {
                "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": "Укажите поисковый запрос"
            }
POST /api/search/filtercount Получить кол-во товаров по фильтру
POST [host]/api/search/filtercount?apikey=[API_KEY]

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

{
                "query": "Красное платье",
                "propertyLists": [
                    [1],
                    [2,3]
                ],
                "propertyRanges": [
                    {
                        "id": 4,
                        "min": 1,
                        "max": 100
                    }
                ]
            }
            
Параметры такие же как в api/search/filter

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

{
                "itemsCount": 3
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Категория не найдена"
            }
POST /api/search/autocomplete Поиск автозаполнение по товарам и категориям
POST [host]/api/search/autocomplete?apikey=[API_KEY]

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

{
                "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": "Укажите поисковый запрос"
            }

Товар

GET /api/products/{id} Получить товар
GET [host]/api/products/{id}?apikey=[API_KEY]

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

?colorId=1&sizeId=2

Параметры

colorId
int?
Выбранный цвет
sizeId
int?
Выбранный размер

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

{
                "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": "Товар не найден"
            }
POST /api/products/{id}/price Расчитать цену товара
POST [host]/api/products/{id}/price?apikey=[API_KEY]

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

{
                "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
                            }
                        ]
                    }
                ]
            }
offerId
int
Id модификации. Обяз. параметр.
optionItems
array
Список выбранных доп. опций. Не обяз. параметр.
amount
double
Кол-во товара. Обяз. параметр.

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

{
                "oldPrice": 3100.0,
                "preparedOldPrice": "3 100 руб.",
                "price": 3090.0,
                "preparedPrice": "3 090 руб."
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Не указано кол-во"
            }
GET /api/products/{id}/properties Получить характеристики товара
GET [host]/api/products/{id}/properties?apikey=[API_KEY]

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

/api/products/{id}/properties
/api/products/{id}/properties?type=inDetails
/api/products/{id}/properties?type=inBriefDescription
type
enum

Тип свойств. Не обяз. параметр, по умолчанию 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": "Товар не найден"
            }
GET /api/products/{id}/reviews Получить отзывы товара
GET [host]/api/products/{id}/reviews?apikey=[API_KEY]

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

[
                {
                    "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": "Товар не найден"
            }
POST /api/products/{id}/reviews/add Добавить отзыв
POST [host]/api/products/{id}/reviews/add?apikey=[API_KEY]

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

{
                "rating": 5,
                "parentId": 0,
                "name": "test",
                "email": "some@mail.com",
                "text": "comment text"
            }
            

rating - рейтинг от 1 до 5, не обяз. поле. Если пользователь уже голосовал, то оценка не зачтется.

parentId - id родительского комментария, если не указан или 0, то добавится корневой коммментарий

files - список файлов изображений, если в магазине разрешено загружать файлы в комментариях

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Заполните обязательные поля"
            }
GET /api/products/{id}/related-products Получить cross-sell, up-sell товары
GET [host]/api/products/{id}/related-products?apikey=[API_KEY]

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

?type=upsell
type
 

Возможные значения:

сrosssell - С этим товаром покупают

upsell - Похожие товары

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Товар не найден"
            }
GET /api/products/{id}/gifts Получить подарки для товара
GET [host]/api/products/{id}/gifts?apikey=[API_KEY]

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

[
                {
                    "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": "Размер"
                }
            ]
mainProductsCount - кол-во основного товара для активации подарка (Пример: При покупке 2 рубашек подарок носки).

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Товар не найден"
            }
GET /api/products/{id}/stocks Получить список складов с наличием
GET [host]/api/products/{id}/stocks?apikey=[API_KEY]

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

/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": "Товар не найден"
            }
GET /api/products/{id}/price-rule-amount-list Получить список тип цен в зависимости от кол-ва
GET [host]/api/products/{id}/price-rule-amount-list?apikey=[API_KEY]

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

/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": "Товар не найден"
            }

Корзина

POST /api/cart Получить корзину на основе переданных товарах
POST [host]/api/cart?apikey=[API_KEY]

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

{
                "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
            }
items
List
Список товаров корзины
index
int
Индекс позиции.
offerId
int
Id модификации. Обяз. параметр.
amount
double
Кол-во товара. Обяз. параметр.
customOptions
array
Список выбранных доп. опций. Не обяз. параметр.
addItemsToCurrentCart
bool
Добавлять товары к текущей корзине. Не обяз. параметр. Если 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
                }
            }
GET /api/cart Получить текущую корзину
GET [host]/api/cart?apikey=[API_KEY]
Ответ как в методе POST /api/cart

Купон

POST /api/coupons/me/add Применить купон
POST [host]/api/coupons/me/add?apikey=[API_KEY]

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

{
                "code": "CouponCode"
            }

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

{
                "status": "ok"
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Купон может быть применен только в мобильном приложении"
            }
POST /api/coupons/me/remove Удалить купон
POST [host]/api/coupons/me/remove?apikey=[API_KEY]

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

{
                "status": "ok"
            }

Оформление заказа

POST /api/checkout Передать данные для оформления заказа
POST [host]/api/checkout?apikey=[API_KEY]

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

{
                "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"
            }
items
 
Список товаров
index
int
Индекс позиции.
offerId
int
Id модификации. Обяз. параметр.
amount
double
Кол-во товара. Обяз. параметр.
customOptions
array
Список выбранных доп. опций. Не обяз. параметр.
address
 
Адрес для расчета доставки
country
string
Страна
region
string
Область
city
string
Город
district
string
Район
postCode
string
Почтовый индекс
shippingId
string
Id предвыбранного метода доставки. Не обяз. поле.
shippingPointId
string
Id предвыбранного пункта выдачи. Работает только вместе с shippingId. Не обяз. поле.
contactId
 
Id предвыбранного контакта (адреса). Не обяз. поле.

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

{
                "url": "https://mysite.ru/checkout/apiauth"
            }

Запросы к /api/checkout и к url, который придет в ответе, необходимо делать с заголовками X-API-USER-ID и X-API-USER-KEY

Если оформление заказа невозможно, то вернется ошибка.

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Заказ содержит недоступное количество товаров."
            }

Под заказ

GET /api/preorder/settings Получить настройки для раздела "под заказ"
GET [host]/api/preorder/settings?apikey=[API_KEY]
Пример ответа
{
                "customer": {
                    "firstName": "Администратор",
                    "lastName": "Магазина",
                    "email": "admin",
                    "phone": "+7 495 800 20 00 "
                },
                "settings": {
                    "isShowUserAgreementText": false,
                    "userAgreementText": "Я подтверждаю свою дееспособность, даю согласие на обработку своих персональных данных.",
                    "agreementDefaultChecked": false,
                    "preOrderText": "После получения Вашей заявки, наши менеджеры сообщат Вам сроки поставки и точную цену товара. В письмо также будет ссылка на оформление заказа, которая будет действовать в течение 24 часов. С ее помощью Вы сможете оплатить Заказ, тем самым завершив процедуру оформления."
                }
            }
POST /api/preorder Оформить под заказ
POST [host]/api/preorder?apikey=[API_KEY]

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

{
                "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
            }
customer
 
Покупатель
firstName
string
Имя. Обяз. параметр.
lastName
string
Фамилия. Нео бяз. параметр.
email
string
email. Обяз. параметр.
phone
string
Телефон. Обяз. параметр.
comment
string
Комментарий. Нео бяз. параметр.
offer
 
Модификация
offerId
int
Id модификации. Обяз. параметр.
amount
double
Кол-во товара. Обяз. параметр.
customOptions
array
Список выбранных доп. опций. Не обяз. параметр.
IsAgree
bool
Принимает соглашение. Обяз. параметр, если в настройках выбрано спрашивать согласие.

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

{
                "status": "ok",
                "successText": "Благодарим за Вашу заявку! После её обработки наш менеджер сразу же свяжется с Вами и сообщит о возможности и сроках поступления данной позиции в наш интернет-магазин."
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Заполните обязательные поля покупателя"
            }

Способы доставки

GET /api/deliveries/types Получить типы доставок
GET [host]/api/deliveries/types?apikey=[API_KEY]

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

api/deliveries/types?country=Россия®ion=Москва&city=Москва
            

Фильтр. Все поля необязательны для заполнения

type
string
Тип доставки
types
string array
Массив типов доставки
loadWarehouses
bool?
Загружать информацию о складе
country
string
Страна
region
string
Область
district
string
Район
city
string
Город
zipCode
string
Постовый индекс

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

[
                {
                    "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
                }
            ]
POST /api/deliveries/check-delivery-zone Проверить адрес на возможность доставки доставками с типом "Доставки по зонам"
GET [host]/api/deliveries/check-delivery-zone?apikey=[API_KEY]

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

{
                "country": "Россия",
                "region": "Москва",
                "city": "Москва",
                "district": null,
                "zip": null,
                "street": "Климентовский переулок",
                "house": "44",
                "structure": "3",
            }
            

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

{
                "hasDelivery": true
            }
            
GET /api/deliveries/delivery-zones Получить зоны доставок из доставок с типом "Доставки по зонам"
GET [host]/api/deliveries/delivery-zones?apikey=[API_KEY]

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

api/deliveries/delivery-zones?country=Россия&region=Москва&city=Москва

Фильтр. Все поля необязательны для заполнения

country
string
Страна
region
string
Область
district
string
Район
city
string
Город
zip
string
Постовый индекс

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

[
              {
                "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
                  }
                ]
              }
            ]
            
POST /api/deliveries/calculate Расчет доставки
POST [host]/api/deliveries/calculate?apikey=[API_KEY]

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

{
                "address": {
                    "country": "Россия",
                    "region": "Москва",
                    "city": "Москва"
                },
                "products": [
                    {
                        "offerId": 12537,
                        "amount": 1,
                        "options": [
                            {
                                "id": 332,
                                "options": [1971]
                            },
                            {
                                "id": 333,
                                "options": [1974]
                            }
                        ]
                    }
                ],
                "inProductDetails": true
            }

Фильтр. Все поля необязательны для заполнения

address
 
Адрес доставки
country
string
Страна
region
string
Область
district
string
Район
city
string
Город
zipCode
string
Постовый индекс
products
 
Список товаров
offerId
int
Id модификации. Обяз. параметр.
amount
double
Кол-во товара. Обяз. параметр.
options
array
Список выбранных доп. опций. Не обяз. параметр.
inProductDetails
bool
Расчет доставки в карточке товара. Не обяз. параметр.

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

[
                {
                    "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 не найден"
            }
GET /api/deliveries/point-deliveries Получить пункты выдачи
GET [host]/api/deliveries/point-deliveries?apikey=[API_KEY]

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

api/deliveries/point-deliveries?country=Россия®ion=Москва&city=Москва&inhouse=true
            

Фильтр. Все поля необязательны для заполнения

typeId
string
Id типа доставки
inhouse
bool
В зале
country
string
Страна
region
string
Область
district
string
Район
city
string
Город
zipCode
string
Постовый индекс
s

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

[
                {
                    "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
                    }
                }
            ]

Страны, регионы, города

GET /api/locations/maincities Список основных стран и городов
GET [host]/api/locations/maincities?apikey=[API_KEY]

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

{
                "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": []
                            },
                            ...
                        ]
                    }
                ]
            }
            
GET /api/locations/city Получить город по названию или индексу
GET [host]/api/locations/city?apikey=[API_KEY]
Получить город можно по индексу (zipCode) или по названию города (city) и области (region). Область не обязательный параметр, но лучше указывать потому, что встречаются одинаковые города в разных регионах (Киров).

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

?city=Самара&region=Самарская область
?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": "Укажите почтовый индекс или город и область"
            }
POST /api/locations/countries Список стран
POST [host]/api/locations/countries?apikey=[API_KEY]

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

{
                "ids": [1, 2, 3],
                "names": ["Россия"],
                "displayInPopup": true
            }
            

Фильтр. Все поля необязательны для заполнения

ids
list of int
Список id стран, которые нужно вернуть
names
list of string
Список названий стран, которые нужно вернуть
displayInPopup
bool
Отфильтровать по основной стране

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

{
                "countries": [
                    {
                        "countryId": 171,
                        "name": "Россия",
                        "iso2": "RU",
                        "iso3": "RUS",
                        "dialCode": 7,
                        "svgIcon": ""
                    }
                ]
            }
            

Бонусная система

POST /api/bonus-cards/me/add Создание бонусной карты для покупателя
POST [host]/api/bonus-cards/me/add?apikey=[API_KEY]

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

{
                "cardId": 123,
                "amount": 0,
                "percent": 3,
                "gradeName": "Гостевой",
                "gradeId": 1,
                "isBlocked": false
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "У покупателя уже есть бонусная карта"
            }
            
GET /api/bonus-cards/me/transactions Список транзакций
GET [host]/api/bonus-cards/me/transactions?apikey=[API_KEY]

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

[
                {
                    "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": "Бонусная карта не найдена"
            }
            

Избранное

GET /api/wishlist Получить товары из избранного
GET [host]/api/wishlist?apikey=[API_KEY]

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

[
                {
                    "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": "Настройка \"Избранное\" не активна"
            }
            
POST /api/wishlist/add Добавить товар в избранное
POST [host]/api/wishlist/add?apikey=[API_KEY]

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

{
                "offerId": 12345
            }
            

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

{
                "status": "ok"
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Товар не найден"
            }
            
POST /api/wishlist/remove Удалить товар из избранного
POST [host]/api/wishlist/remove?apikey=[API_KEY]

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

{
                "offerId": 12345
            }
            

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

{
                "status": "ok"
            }
            

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Товар не найден"
            }
            

Настройки

GET /api/settings/dadata Настройки Dadata
GET [host]/api/init?apikey=[API_KEY]

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

{
                "isActive": true,
                "apiKey": "xxxxxxxx"
            }

            

Статические блоки

GET /api/staticblocks Получить статические блоки
GET [host]/api/staticblocks?apikey=[API_KEY]

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

api/staticblocks?keys=key1,key2
            

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

[
                {
                    "key": "LiveCounter",
                    "value": null
                },
                {
                    "key": "OrderSuccessTop",
                    "value": "
Поздравляем!
Ваш заказ принят под номером #ORDER_ID#
" } ]
Если блок не найден по ключу или не активен, то его не будет в списке.

Статические страницы

GET /api/staticpages Получить статические страницы
GET [host]/api/staticpages?apikey=[API_KEY]

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

/api/staticpages?loadText=true&showInProfile=true

Фильтр. Все поля необязательны для заполнения

page
int
Текущая страница в постараничном выводе
loadText
bool
Возвращать текст страницы. По умолчанию: false
showInProfile
bool
Возвращать только страницы, у которых стоит Показывать в профиле
search
string
Поисковый запрос по заголовку и тексту

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

{
                "pagination": {
                    "count": 2,
                    "currentPage": 1,
                    "totalCount": 2,
                    "totalPageCount": 1
                },
                "staticPages": [
                    {
                        "id": 2,
                        "title": "Заголовок 2",
                        "icon": "",
                        "showInProfile": false
                    },
                    {
                        "id": 1,
                        "title": "Заголовок 1",
                        "icon": "",
                        "showInProfile": true
                    }
                ]
            }
GET /api/staticpages/{id} Получить статическую страницу
GET [host]/api/staticpages/{id}?apikey=[API_KEY]

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

{
                "id": 1,
                "title": "Заголовок",
                "text": "Текст",
                "icon": "",
                "showInProfile": true
            }

Пример ответа с ошибкой

{
                "status": "error",
                "errors": "Страница не найдена"
            }

Модули

GET /api/modules/{id}/block Получить блок срендеренный модулем
GET [host]/api/modules/{id}/block?apikey=[API_KEY]

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

/api/modules/bookingtables/block
Если модуль умеет обрабрабатывать такие запросы, то вернется html или текст, иначе 404 ошибка

Штрихкоды

POST /api/barcodes/search Поиск товара по штрихкоду
POST [host]/api/barcodes/search?apikey=[API_KEY]

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

{
                "barcode": "1001001"
            }
            
Если товар найден по штрихкоду, то в ответе будет объект product (как в GET /api/products/{id}), если товар не найден, то в product будет null

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

{
                "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": "Укажите штрихкод"
            }

v2

Инициализация

GET /api/v2/init Инициализация
GET [host]/api/v2/init?apikey=[API_KEY]
Возвращается текущий покупатель, валюта, настройки, локация.

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

?settings=IsShowCity,BuyButtonText

Лиды

POST /api/v2/leads/add Создание лида
POST [host]/api/v2/leads/add?apikey=[API_KEY]

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

{
                "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
                    }
                ]
            }
            
Должно быть указано хотя бы 1 поле: FirstName, Email или Phone. Остальные поля не обязательные. Если передаются продукты, то ArtNo должен существовать в магазине.
В случае успеха сервер вернет status ok и номер лида:
{
                "leadId": 1,
                "status": "ok"
            }
            
В случае неудачи - вернется ошибка:
{
                "status": "error",
                "errors": "Заполните обязательные поля"
            }
            

Способы доставки

POST /api/v2/deliveries Получить доставки
POST [host]/api/v2/deliveries?apikey=[API_KEY]

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

{
              "country": "Россия",
              "region": "Москва",
              "city": "Москва",
              "userCoordinates": {
                "latitude": 11,
                "longitude": 22
              }
            }

Фильтр. Все поля необязательны для заполнения

type
string
Тип доставки
types
string array
Массив типов доставки. Например: ["SelfDelivery", "PointDelivery"]
country
string
Страна
region
string
Область
district
string
Район
city
string
Город
zipCode
string
Постовый индекс
inHouse
bool?
В зале
userCoordinates
 
Координаты пользователя, чтобы определить ближайший пункт выдачи

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

{
              "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, http-запрос, запросы, http, триггер

Мы используем cookies. Подробнее...