Ревизия 1.2.3 от 14.04.2025
ЧП «ШАТЕ-М Плюс»
Уважаемые клиенты, информируем Вас о том, что нами было введено лимитирование запросов проценки для предоставления более качественного сервиса, чтобы не нагружать нашу систему и обеспечить ее быструю и корректную работу.
Текущие лимиты на запросы цены артикула следующие:
За 15 минут B2B портал: 250
За 15 минут API: 1200
За день B2B портал: 2500
За день B2B API: 40000
В случае, если запросов по вышеприведенным лимитам недостаточно, мы предлагаем Вам или начать работать с нашими прайс-листами, или запросить выставление индивидуальных лимитов через Вашего менеджера.
1. Auth (Авторизация)
ВНИМАНИЕ! Прежде чем начать работу с API - уточните у Вашего менеджера о доступности функционал API Вам.
Мы используем тип авторизации Bearer
Для получения токена есть 2 способа:
● передать login и password с телом запроса типа Content-type application/x-www-form-urlencoded;
● передать ApiKey (получаете от Вашего менеджера) с телом запроса типа Content-type application/x-www-form-urlencoded.
Полученный в ответе токен необходимо добавлять в заголовок (Headers) всех запросов в параметр Authorization (Authorization: Bearer <access_token>).
1.1 POST /api/v1/auth/login (Авторизация по логину и паролю)
Авторизация через логин и пароль от личного кабинета.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
Login | Логин пользователя | Test123 | Да |
Password | Пароль | 123456789 | Да |
Ответ метода:
{
"access_token": "eyJhbGciOiJQUzI1NiIsInR5cCI6ImF0K2p3dCJ9",
"expires_in": 3600,
"token_type": "Bearer",
"refresh_token": "",
"scope": "ShateAuth"
}
Параметр | Описание |
---|---|
Access_token | Токен для работы с api |
Expires_in | Время жизни токена (сек) |
Token_type | Тип токена |
Refresh_token | Токен обновления |
scope | Название сервиса, для которых применяется токен. |
1.2 POST /api/v1/auth/loginByapiKey (Авторизация по ApiKey)
Авторизация через apikey, полученный от Вашего менеджера
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
apikey | APi ключ, полученный от менеджера | {111АА11-111А-1B11-1DA1-111111111F1E} | Да |
Ответ метода аналогичен POST /api/v1/auth/login
2. Articles (Информация по артикулу)
2.1 GET /api/v1/articles/{articleId} (Подробная информация об артикуле)
Позволяет получить информацию по идентификатору
артикула.
Поля tradeMark, contents и extendedInfo добавляются в ответ только в
случае передачи include.
Важно! Параметр include может значительно увеличивать время ответа (из-за объема данных).
Для получения внутреннего идентификатора товара воспользуйтесь методами -
GET /api/v1/articles/search/{articleSearchString} или POST /api/v1/articles/search
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
ArticleId | Внутренний идентификатор артикула | 1248291 | Да |
Include | При указании параметра Вы получите дополнительную информацию по артикулу (картинки, применяемость, ОЕ-номера,долнительные параметры, информация по бренду) | Contents, extended_info, trademark | Нет |
Ответ метода:
{
"article": {
"id": 1248288,
"code": "OC100",
"tradeMarkName": "KNECHT",
"name": "Фильтр масляный",
"description": "Замена - OC976. BX 82-93",
"unitOfMeasure": "ШТ"
},
"tradeMark": {
"name": "KNECHT",
"country": "Германия",
"description": "Торговая марка KNECHT принадлежит концерну...",
"url": "http://www.mahle.com",
"catalogUrl": "http://www.mahle.com",
"extendedWarranty": false
},
"contents": [
{
"sortOrder": 0,
"contentId": "17BD2871DF2E9294E85B12E039929D5791EE8A0303728BFA9A22B6B0E8F8DFCB",
"contentType": "ImageTwoDimensional"
}
],
"extendedInfo": {
"extendedDescription": "Описание",
"originals": [
{
"articleCodes": [
"string"
],
"tradeMarkName": "KNECHT"
}
],
"characteristics": [
{
"key": "Внутренний диаметр 2 (мм)",
"value": "62,0"
}
],
"applicability": [
{
"name": "CITROEN",
"models": [
{
"name": "JUMPER фургон (230L)",
"modifications": [
{
"name": "CITROEN JUMPER Фургон (230L) 2.0",
"mnEngineCode": "RFW (XU10J2U)",
"beginDate": "199403",
"endDate": "200204",
"kWt": "80",
"hPower": "109",
"cylinders": "4",
"vol": "1998"
}
]
}
]
}
]
}
}
Параметр | Описание |
---|---|
Id | Внутренний идентификатор артикула |
TradeMarkName | Наименование торговой марки. |
Code | Каталожный номер |
Name | Описание товара. |
Description | Дополнительное описание товара |
UnitOfMeasure | Единица измерения |
Contents: | Медиаконтент (картинки, видео). Добавляются в ответ только в случае передачи include = contents |
SortOrder | Порядок отображения картинки |
ContentId | Идентификатор картинки, для дальнейшего использования в функции POST api/v1/contents/search |
ContentType | Формат изображения – 2d, 3d картинки |
extended_info: | Расширенная информация о товаре (применяемость, аналоги, характеристики). Добавляются в ответ только в случае передачи include = extended_info. |
extendedDescription | Подробное описание |
Originals: | |
articleCode | Оригинальный каталожный номер |
trademarkname | Оригинальная торговая марка |
Characteristics: | |
key | Параметр характеристики детали |
value | Значение параметра |
Applicability: | |
name | Название марки |
models | Название модели |
Modifications: | |
name | Название модификации |
mnEngineCode | Код двигателя |
beginDate | Дата начала производства |
endDate | Дата конца производства |
kWt | кВт |
HPower | Количество лошадиных сил |
cylinders | Количество цилиндров |
vol | Объем двигателя |
Trademark: | Подробная информация по торговой марке. Добавляется в ответ только в случае передачи include = trademark |
Name | Название бренда |
Country | Страна |
Description | Информация о производителе |
url | Ссылка на сайт производителя |
catalogurl | Ссылка на каталог производителя |
extendedWarranty | Попадает ли бренд под расширенную гарантию для сети участников СТО |
2.2 GET /api/v1/articles/{articleId}/analogs (Получение аналогов)
Получение информации об аналогах товара по его идентификатору.
Если результат аналогов содержит более одного артикула, параметры contents и extended_Info не учитываются, соответствующие поля не заполняются.
Для получения внутреннего идентификатора товара воспользуйтесь методами -
GET /api/v1/articles/search/{articleSearchString} или POST /api/v1/articles/search.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
ArticleId | Внутренний идентификатор артикула | 1248291 | Да |
Include | При указании параметра Вы получите дополнительную информацию по артикулу (картинки, применяемость, ОЕ-номера,долнительные параметры, информация по бренду) | Contents, extended_info, trademark | Нет |
Ответ аналогичен предыдущему методу GET /api/v1/articles/{articleId}
2.3 GET /api/v1/articles/search (Поиск по строке поиска)
Получение информации о товаре по артикулу товара.
Если результат содержит более одного артикула, параметры contents и extended_Info не учитываются, соответствующие поля не заполняются.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
SearchString | Артикул товара Можно вводить как со спецсимволами, так и без. | OC105 | Да |
Include | При указании параметра Вы получите дополнительную информацию по артикулу (картинки, применяемость, ОЕ-номера,долнительные параметры, информация по бренду) | Contents, extended_info, trademark | Нет |
TradeMarkNames | Список торговых марок | KNECHT | Нет |
Ответ метода аналогичен GET /api/v1/articles/{articleId}.
2.4 POST /api/v1/articles/search (Поиск артикулов (по фильтру)
Получение информации о массиве артикулов, используя внутренние идентификаторы или каталожные номера.
Если результат содержит более одного артикула, параметры contents и extended_Info не учитываются, соответствующие поля не заполняются.
Для получения внутреннего идентификатора товара воспользуйтесь методами:
GET /api/v1/articles/search/{articleSearchString} или POST /api/v1/articles/search.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
Keys: | Коллекция артикулов | ||
ArticleCode | Артикул | OC105 | Да (при условии, если не заполнен Ids) |
TradeMarkName | Наименование торговой марки. | KNECHT | Да (при условии, если не заполнен Ids) |
Ids: | Коллекция внутренних идентификаторов | ||
Id | Внутренний идентификатор артикула | 1248291 | Да (при условии, если не заполнен keys) |
Include | При указании параметра Вы получите дополнительную информацию по артикулу (картинки, применяемость, ОЕ-номера,долнительные параметры, информация по бренду) | Contents, extended_info, trademark | Нет |
Ответ аналогичен предыдущему методу GET /api/v1/articles/{articleId}.
3. CartItems (Корзина)
3.1 GET /api/v1/cartitems/{cartItemId} (Получение строки корзины)
Получение информации о строке корзины
Идентификатор строки корзины Вы получаете в ответе метода POST /api/v1/cartitems.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
CartItemId | Внутренний идентификатор строки | 26151145 | Да |
DeliveryAddressCode | Код адреса доставки | Д1 | Нет |
AgreementCode | Номер договора клиента | SAGR1 | Нет |
Ответ метода:
{
"id": 1,
"locationCode": "SHATE-01",
"locationCodeReal": "SHATE-01",
"agreementCode": "SAGR1",
"article": {
"id": 1248288,
"code": "OC100",
"tradeMarkName": "KNECHT",
"name": "Фильтр масляный",
"description": "Замена - OC976. BX 82-93",
"unitOfMeasure": "ШТ"
},
"price": 8.5,
"priceWithMargin": 8.5,
"priceType": "Internal",
"priceMax": 12.32,
"importAllowance": 15,
"currencyCode": "USD",
"quantity": 1,
"quantityInfo": {
"available": 5,
"availableType": "Equal",
"multiplicity": 1,
"minimum": 1,
"maximum": 100
},
"addInfo": {
"city": "Минск",
"isSale": true,
"comment": "Царапины справа",
"isReturnAllowed": true,
"warningText": "Возврат запрещен. Нельзя заказывать масла моторные и тех. жидкости"
},
"createDateTime": "2022-12-19T08:39:15.525Z",
"comment": "Comment",
"deliveryDateTime": "2022-12-19T08:39:15.525Z",
"shippingDateTime": "2022-12-19T08:39:15.525Z",
"hash": 123456789,
"isImport": true,
"isFree": true
}
Параметр | Описание |
---|---|
ID | Идентификатор строки в корзине |
LocationCode | Код склада, с которого будет отгружен товар |
LocationCodeReal | Код склада, на котором находится товар |
AgreementCode | Номер договора клиента |
Article[]: | |
Id | Внутренний идентификатор артикула |
Code | Артикул товара |
TradeMarkName | Торговая марка |
Name | Описание |
Description | Подробная информация |
UnitOfMeasure | Единица измерения |
Price | Цена |
PriceWithMargin | Цена (продажи) с пользовательской наценкой |
PriceType | Тип прайса |
PriceMax | Максимальная цена реализации |
ImportAllowance | Надбавка импортера, % |
CurrencyCode | Код валюты |
Quantity | Количество |
QuantityInfo: | |
avavilable | Доступное количество |
avavilableType | Тип количества |
multiplicity | Кратность |
minimum | Минимальное количество к заказу |
maximum | Максимальное количество к заказу |
AddInfo: | |
city | Город, в котором расположен склад |
isSale | Распродажа |
comment | Дополнительная информация |
isReturnAllowed | Возврат разрешен |
warningText | Текст предупреждения |
CreateDateTime | Дата добавления в корзину |
Comment | Комментарий |
DeliveryDateTime | Дата доставки по указанному адресу или адресу по умолчанию |
shippingDateTime | Дата отгрузки |
Hash | Идентификатор ценового предложения |
IsImport | Импортный/не импортный товар |
IsFree | Регулируемый/нерегулируемый товар |
3.2 PATCH /api/v1/cartitems/{cartItemId} (Обновление строки корзины)
Обновление данных строки корзины (количество, цена, комментарий).
Можно изменять не все значения, а, например, только quantity.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
CartItemId | Внутренний идентификатор строки | 26151145 | Да |
Requestbody: | Да | ||
quantity | Количество | 1 | |
price | Цена | 0 | |
comment | Комментарий | Для Пети |
Ответ аналогичен предыдущему методу GET /api/v1/cartitems/{cartItemId}.
3.3 DEL /api/v1/cartitems/{cartItemId} (Удаление строки корзины)
Удаление строки корзины по ее идентификатору.
Идентификатор корзины Вы получаете в ответе метода POST /api/v1/cartitems.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
CartItemId | Внутренний идентификатор строки | 26151145 | Да |
Ответом будет код статуса http.
3.4 GET /api/v1/cartitems (Получение всех строк корзины)
Получение всех строк корзины.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
DeliveryAddressCode | Код адреса доставки | Д1 | Нет |
AgreementCode | Номер договора клиента | SAGR1 | Нет |
Ответ аналогичен предыдущему методу GET /api/v1/cartitems/{cartItemId}.
Ответ при возникновении ошибки:
{
"code" : "DefaultAgreementNotFound",
"description" : "Договор по умолчанию не найден",
"messages": [
"Внимание! Договор по умолчанию не найден. Пожалуйста, свяжитесь с вашим менеджером."
]
}
Поле | Описание |
---|---|
Code | Код ошибки |
Description | Описание ошибки |
Messages | Коллекция сообщений ошибки |
3.5 POST /api/v1/cartitems (Добавление строк в корзину)
Добавление строки в корзину.
Предварительно требуется проценка товара для получения параметра priceId (взять из ответа методов POST /api/v1/prices/search и POST /api/v1/prices/search/with_article_info параметр Id (из коллекции Prices)).
Входящие параметры:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
Requestbody: | Да | ||
quantity | Количество | 1 | |
priceId | Идентификатор цены | 58A82086838AA9FFDE305539C21 | |
BA3DF659E574C43A3058E F4D6B | |||
84A8FB364ACACFA835B359EFE5 | |||
D9E2A930A542E0C9106F909B401 | |||
DA24 0DDD8C287201AB37B05C5 | |||
AE2DC36495098494CA7118FE3B5B | |||
comment | Комментарий | Для Пети |
Ответ аналогичен предыдущему методу GET /api/v1/cartitems/{cartItemId}.
3.6 DEL /api/v1/cartitems (Удаление всех строк корзины)
Удаление всех строк из корзины.
Входящих параметров нет.
Ответом будет код статуса http.
4. Contents (Медиаконтент)
4.1 POST /api/v1/contents/search (Получение контента)
Получение ссылки на изображение товара.
Предварительно требуется получить параметр ContentId из методов информации об артикуле (см. гл. 2 – Articles).
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
Requestbody: | Да | ||
ContentId | Внутренний идентификатор картинки, получить можно из метода GET /api/v1/articles/{articleId} | 17BD2871DF2E92947C990B256EA1697EF 47C6F999378A4E19A22B6B0E8F8DFCB | |
HeightSize | Высота картинки | 1000 | |
WidthSize | Ширина картинки | 100 |
Ответ метода:
[
{
"id": "17BD2871DF2E9294E85B12E039929D5791EE8A0303728BFA9A22B6B0E8F8DFCB",
"value": "data:image/webp;base64..."
}
]
Параметр | Описание |
---|---|
Id | Внутренний идентификатор картинки |
Value | Ссылка на картинку |
5. Customer (ПОЛЬЗОВАТЕЛЬ)
5.1 GET /api/v1/customer/agreements (Получение договоров)
Получение активных договоров пользователя (кроме договоров по программе лояльности и экваирингу).
Внутренний номер договора используется при оформлении заказа.
Входных параметров нет.
Ответ метода:
[
{
"code": "SAGR1",
"agreementGroup": "НАЛ",
"description": "Физ. лицо",
"locationCode": "SHATE-01",
"currencyCode": "USD",
"isActive": true,
"isEnabledPickup": true,
"isEnabledDelivery": true
}
]
Параметр | Описание |
---|---|
Code | Внутренний номер договора |
AgreementGroup | Код группы договора |
Description | Название договора |
LocationCode | Код склада (при оформлении заказа код склада договора должен соответствовать коду склада строк корзины). |
CurrencyCode | Код валюты договора |
isActive | Активен (true/false). Если договор не активен, по нему нельзя оформить заказ. |
isEnabledPickup | Информирует пользователя о доступности договора оформления заказа на самовывоз (true/false). |
isEnabledDelivery | Информирует пользователя о доступности договора оформления заказа на доставку (true/false). |
5.2 GET /api/v1/customer/info
Получение информации о клиенте
Данная информация отображается в личном кабинете в разделе «Персональные данные».
Входящих параметров нет.
Ответ метода:
[
{
"login": "Test123",
"code": "S0001",
"name": "Тест",
"phone": "+123456789",
"email": "test@gmail.com",
"defaultDeliveryAddressCode": "Д1"
}
]
Параметр | Описание |
---|---|
login | Логин |
Code | Внутренний номер клиента |
Name | Название клиента |
Phone | Телефон клиента |
Почта клиента | |
defaultDeliveryAddressCode | Код адреса доставки по умолчанию |
6. Delivery (ДОСТАВКА)
6.1 GET /api/v1/delivery/addresses (Получение адресов доставок)
Получение доступных адресов доставок пользователя.
Входящих параметров нет.
Ответ метода:
[
{
"code": "Д1",
"city": "Минск",
"address": "ул. Мира, д. 2А",
"deliveryZoneCode": "MINSK01"
}
]
Параметр | Описание |
---|---|
Code | Код адреса доставки |
City | Город |
Address | Адрес клиента |
DeliveryZoneCode | Внутренний код зоны доставки |
6.2 GET /api/v1/delivery/availableDateTimes (Получение доступных дат для доставки)
Получение даты и времени доступных услуг по доставкам.
Предварительно требуется получить код склада или из справочника складов (GET /api/v1/locations), или из корзины (GET /api/v1/cartitems/)
Полученную дату можно использовать в параметре DeliveryDate при оформлении доставки.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
locationCode | Код склада, с которого будет отправлен товар | SHATE-S01 | Да |
DeliveryAddressCode | Внутренний код адреса доставки (взять из метода GET /api/v1/delivery/addresses | Д1 | Да |
DaysCount | Количество дней от текущей даты (по умолчанию 7) | 7 | Нет |
Ответ метода: массив дат формата 2020-12-02T22:00:00.
7. Locations (Склады)
7.1 GET /api/v1/locations (Получение списка складов)
Получение списка складов компании, на которых находится товар и с которых возможна отгрузка товара.
Нужно использовать для метода получения доступных дат доставки (GET /api/v1/delivery/availableDateTimes).
Входящих параметров у метода нет.
Ответ метода:
[
{
"code": "SHATE-S01",
"name": "Центральный склад Привольный",
"city": "Привольный"
}
]
Параметр | Описание |
---|---|
Code | Внутренний номер склада |
Name | Название склада |
city | Город, в котором расположен склад |
8. OrderItems (Строки заказа)
8.1 GET /api/v1/orderitems/{orderItemId}/statuseshistory (Получение движения по строке заказа)
Просмотр текущего статуса строки заказа.
Предварительно требуется получить идентификатор строки заказа (из метода GET /api/v1/orders).
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
OrderItemid | Идентификатор строки заказа | 87865469 | Да |
Ответ метода:
[
{
"statusCode": 30,
"dateTime": "2022-12-19T09:03:51.240Z"
}
]
Параметр | Описание |
---|---|
StatusCode | Код статуса |
dateTime | Дата и время изменения статуса |
9. OrderItemStatusCodes (Статусы заказов)
9.1 GET /api/v1/orderItemStatusCodes
Получение справочника возможных статусов заказов.
Входящих параметров нет.
Ответ метода:
[
{
"code": 30,
"name": "В работе",
"description": "Заказ успешно обработан"
"isFinal": false
}
]
Параметр | Описание |
---|---|
Code | Код статуса |
Name | Наименование статуса |
Description | Описание |
IsFinal | Флаг финальности статуса |
10. Orders (Заказы)
Заказ можно оформить 2-мя методами:
● упрощенно (без размещения в корзину) после проценки товара;
● после добавления строк в корзину
10.1 GET /api/v1/orders (Получение строк заказа)
Получение списка заказов с возможностью фильтрации по дате, артикулу, бренду, номеру заказа или статусу.
Для фильтрации по статусу нужно получить код статусов из справочника (GET /api/v1/orderItemStatusCodes).
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
Page | Страница (по умолчанию первая страница) | 1 | Да |
PageSize | Кол-во элементов на 1 странице (по умолчанию – 25) | 25 | Да |
StartDateTime | Дата начала | 2020-12-01 | Нет |
EndDateTime | Дата окончания | 2020-12-03 | Нет |
Ids | Внутренний идентификатор заказа | 20826500 | Нет |
TradeMarkName | Торговая марка | KNECHT | Нет |
ArticleCode | Артикул | OC105 | Нет |
StatusCode | Кода статусов заказа | 140 | Нет |
Ответ метода:
[
{
"id": 1,
"createDateTime": "2022-12-19T09:05:02.945Z",
"deliveryInfo": {
"deliveryAddressCode": "Д1"
},
"agreementCode": "SAGR1",
"currencyCode": "USD",
"totalSum": 8.5,
"comment": "Comment",
"note": "Note",
"orderItems": [
{
"id": 1,
"article": {
"id": 1248288,
"code": "OC100",
"tradeMarkName": "KNECHT",
"name": "Фильтр масляный",
"description": "Замена - OC976. BX 82-93",
"unitOfMeasure": "ШТ"
},
"quantity": 1,
"quantityToShip": 0,
"quantityShipped": 0,
"deliveryDateTime": "2022-12-19T09:05:02.945Z",
"price": 8.5,
"totalSum": 8.5,
"statusCode": 0,
"comment": "Comment"
"сanReturn": true
}
]
}
]
Параметр | Описание |
---|---|
Id | Внутренний идентификатор заказа |
CreateDateTime | Дата и время заказа |
DeliveryInfo: | Метод доставки |
DeliveryAddressCode | Код адреса доставки |
AgreementCode | Внутренний номер договора |
TotalSum | Суммарная стоимость заказа |
CurrencyCode | Код валюты |
Comment | Комментарий |
Note | Заметки |
OrderItems[]: | Строки заказа |
Id | Идентификатор строки заказа |
Article[]: | |
Id | Внутренний идентификатор артикула |
Code | Артикул товара |
TradeMarkName | Торговая марка |
Name | Описание |
Description | Подробная информация |
UnitOfMeasure | Единица измерения |
Quantity | Количество |
QuantityToShip | Количество на складе, которое зарезервировано для клиента |
QuantityShipped | Отгруженное количество, которое уедет клиенту |
DeliveryDateTime | Дата и время доставки |
Price | Цена за единицу |
TotalSum | Сумма |
StatusCode | Код статуса |
Comment | Комментарий |
CanReturn | Возможен ли возврат по данному товару |
10.2 POST /api/v1/orders/byPriceItems (Оформление заказа без корзины через ценовое предложение)
Быстрое оформление заказа минуя этап добавления в корзину.
Условия:
● Все строки заказа должны быть из одного locationCode, иначе заказ не будет оформлен.
● Если deliveryInfo (информация о доставке) == null или не передан, то заказ будет оформлен на самовывоз.
● Если deliveryDateTime == null, то заказ будет оформлен на ближайшую возможную доставку (в зависимости от deliveryType).
● expectedDateTimeOfArrivalAllItems - дата и время (UTC) прибытия всех строк заказа к клиенту, к которой все строки должны быть отгружены/доставлены. Все строки заказа будут валидироваться на возможность отгрузки/доставки (в зависимости от параметров заказа) к указанной дате и времени. И если хоть одна строка не будет отгружена/доставлена к данному времени (дата и время отгрузки/доставки по строке больше переданного значения),то заказ не будет создан. Не обязательно к заполнению. Если не заполнено, то дата и время доставки/отгрузки не будут валидироваться.
● Если код группы договора == "НАЛ", "ЭКВАИР" или "МАГ", то поля fio и phone обязательны к заполнению.
Метод принимает на вход параметры (идентификатор прайса, дату доставки) из ответа проценки POST /api/v1/prices/search.
В случае изменения цены в меньшую сторону в пределах допустимого отклонения появится сообщение (поле warnings) об изменении цены и значения старой и новой цены (Пример: "Произошло изменение цены в пределах допустимого отклонения. oldPrice : 3.72 ; newPrice : 3.44 ")
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
AgreementCode | Внутренний номер договора. Получить с помощью метода Get api/v1/agreements. | SAGR112470 | Да |
Comment | Комментарий для менеджера | Позвонить перед выездом | Нет |
Note | Заметки к заказу | Для Васи | Нет |
fio | ФИО | Иванов Иван Иванович | Да (если выбран договор НАЛ) |
phone | Телефон | +375 29 123 45 67 | Да (если выбран договор группы НАЛ) |
DeliveryInfo {}: | Нет | ||
DeliveryType | Тип доставки | Many Delivery – несколькими доставками по мере поступления товара One Delivery – одной доставкой (по самой поздней дате доставки в строке заказа) | Да |
DeliveryDateTime | Дата и время доставки | 2020-12-02T22:00:00 | Нет |
DeliveryAddressCode | Код адреса доставки. Взять из метода /api/v1/delivery/addresses поле Code. | Д1 | Да |
expectedDateTimeof ArrivalAllItems | Дата и время доставки | 2020-12-02T22:00:00 | Нет |
AgreeWithTerms OfDelivery | Соглашение с политикой обработки персональных данных. При несогласии заказ оформлен не будет. | True/False | Да |
AgreeWithPersonalData ProcessingPolicy AndUserAgreement | Соглашение с условиями поставок под заказ. При несогласии заказ оформлен не будет. | True/False | Да |
PriceItems[]: | Строки для заказа: | ||
PriceId | Идентификатор цены (взять из ответа методов POST /api/v1/prices/search и POST /api/v1/prices/search/with_article_info параметр Id (из коллекции Prices)). | 58A82086838AA9FFDE305539C21BA3DF659E574C43A3058E F4D6B84A8FB364ACACFA835B359EFE5D9E2A930A542E0C9106F909 B401DA240DDD8C287201AB37B05C5AE2DC36495098494CA7118FE3B5B | Да |
Quantity | Количество для заказа | 2 | Да |
Comment | Комментарий к строке заказа | Skoda Octavia | Нет |
Ответ метода:
{
"id": 1,
"createDateTime": "2022-12-19T09:10:30.131Z",
"deliveryInfo": {
"deliveryAddressCode": "Д1"
},
"agreementCode": "SAGR1",
"currencyCode": "USD",
"totalSum": 8.5,
"comment": "Comment",
"note": "Note",
"orderItems": [
{
"id": 1,
"article": {
"id": 1248288,
"code": "OC100",
"tradeMarkName": "KNECHT",
"name": "Фильтр масляный",
"description": "Замена - OC976. BX 82-93",
"unitOfMeasure": "ШТ"
},
"quantity": 1,
"quantityToShip": 0,
"quantityShipped": 0,
"deliveryDateTime": "2022-12-19T09:10:30.131Z",
"price": 8.5,
"totalSum": 8.5,
"statusCode": 0,
"comment": "Comment"
"warnings": null
}
]
}
Параметр | Описание |
---|---|
Id | Номер заказа |
CreatedDateTime | Дата и время создания заказа |
DeliveryInfo {}: | |
DeliveryAddressCode | Код адреса доставки. |
AgreementCode | Внутренний номер договора. |
TotalSum | Суммарная стоимость заказа |
CurrencyCode | Код валюты |
Comment | Комментарий |
Note | Заметки |
OrderItems[]: | |
Id | Внутренний идентификатор артикула |
Code | Артикул товара |
TradeMarkName | Торговая марка |
Name | Описание |
Description | Подробная информация |
UnitOfMeasure | Единица измерения |
Quantity | Количество |
QuantityToShip | Количество на складе, которое зарезервировано для клиента |
QuantityShipped | Отгруженное количество, которое уедет клиенту |
DeliveryDateTime | Дата и время доставки |
Price | Цена за единицу |
TotalSum | Сумма |
StatusCode | Код статуса строки заказа |
Comment | Комментарий |
Warnings[]: | Предупреждения. Массив строк |
Ответ при возникновении ошибки:
{
"errors": [
"Товар не оформлен в заказ. По договору 100% предоплата."
],
"errorDescriptions": {
"additionalProp1": "Ошибка валидации строк заказа"
},
"priceItemErrors": [
{
"priceId": 58A82086838AA9FFDE305539C21BA3DF659E574C43A3058EF4D6B84A8FB364ACACFA835B359EFE5D9E2A930A542E0C9106F909B401DA240DDD8C287201AB37B05C5AE2DC36495098494CA7118FE3B5BF,
"hash": 0,
"current": {
"price": 8.5,
"priceWithMargin": 8.5,
"quantityInfo": {
"available": 5,
"availableType": "Equal",
"multiplicity": 1,
"minimum": 1,
"maximum": null
},
"deliveryDateTime": "2022-12-19T09:13:32.262Z",
"shippingDateTime": "2022-12-19T09:13:32.262Z"
},
"errors": [
"Unknown"
]
}
]
}
Поле | Описание |
---|---|
Errors[]: | Коллекция ошибок заказа |
Message | Текст ошибки |
ErrorDescriptions{}: | Словарь с расшифровками ошибок. |
PriceItemErrors[]: | Коллекция строк, в которых произошла ошибка |
PriceId | Идентификатор цены |
Hash | Идентификатор ценового предложения |
Current | |
Price | Цена артикула из базы |
PriceWithMargin | Цена с наценкой |
QuantityInfo: | |
available | Доступное количество |
availableType | Тип количества |
multiplicity | Кратность |
minimum | Минимальное количество к заказу |
maximum | Максимальное количество к заказу |
DeliveryDateTime | Дата доставки |
ShippingDateTime | Дата отгрузки (самовывоза со склада ШМ+) |
Errors[] | Коллекция ошибок к строке заказа |
Message | Ошибка строки заказа, начинается с кода 1хх |
10.3 POST /api/v1/orders/byCartItems (оформление заказа через строки корзины)
Оформление в заказ строк, находящихся в корзине.
Условия
● Все строки заказа должны быть из одного locationCode, иначе заказ не будет оформлен.
● Если deliveryInfo (информация о доставке) == null или не передан, то заказ будет оформлен на самовывоз.
● Если deliveryDateTime == null, то заказ будет оформлен на ближайшую возможную доставку (в зависимости от deliveryType).
● expectedDateTimeOfArrivalAllItems - дата и время (UTC) прибытия всех строк заказа к клиенту,к которой все строки должны быть отгружены/доставлены.Все строки заказа будут валидироваться на возможность отгрузки/доставки(в зависимости от параметров заказа) к указанной дате и времени.И если хоть одна строка не будет отгружена/доставлена к данному времени(дата и время отгрузки/доставки по строке больше переданного значения),то заказ не будет создан. Не обязательно к заполнению. Если не заполнено, то дата и время доставки/отгрузки не будут валидироваться.
● Если код группы договора == "НАЛ" или "ЭКВАИР" или "МАГ", то поля fio и phone обязательны к заполнению.
В случае изменения цены в меньшую сторону в пределах допустимого отклонения появится сообщение (поле warnings) об изменении цены и значения старой и новой цены (Пример: "Произошло изменение цены в пределах допустимого отклонения. oldPrice : 3.72 ; newPrice : 3.44 ")
Метод принимает на вход параметры из ответа получения строк корзины GET /api/v1/cartitems.
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
AgreementCode | Внутренний номер договора. Получить с помощью метода Get api/v1/agreements. | SAGR112470 | Да |
Comment | Комментарий для менеджера | Позвонить перед выездом | Нет |
Note | Заметки к заказу | Для Васи | Нет |
fio | ФИО | Иванов Иван Иванович | Да (если выбран договор НАЛ или ЭКВАИР) |
phone | Телефон | +375 29 123 45 67 | Да (если выбран договор НАЛ или ЭКВАИР) |
DeliveryInfo {}: | Нет | ||
DeliveryType | Тип доставки | Many Delivery – несколькими доставками по мере поступления товара One Delivery – одной доставкой (по самой поздней дате доставки в строке заказа) | Да |
DeliveryDateTime | Дата и время доставки | 2020-12-02T22:00:00 | Нет |
DeliveryAddressCode | Код адреса доставки. Взять из метода /api/v1/delivery/addresses поле Code. | Д1 | Да |
expectedDateTimeofArrivalAllItems | Дата и время доставки | 2020-12-02T22:00:00 | Нет |
AgreeWithTermsOfDelivery | Соглашение с политикой обработки персональных данных. При несогласии заказ оформлен не будет. | True/False | Да |
AgreeWithPersonalDataProcessing PolicyAndUserAgreement | Соглашение с условиями поставок под заказ. При несогласии заказ оформлен не будет. | True/False | Да |
CartItems[]: | Коллекция строк корзины: | ||
Id | Идентификатор строки корзины | 87865469 | Да |
Ответ метода аналогичен предыдущему методу.
11. Prices (Проценка)
Поиск ценовых предложений (проценка)
Условия:
При превышении допустимого количества запросов к нашей базе Вы будете получать в ответе ошибку 429 (Too Many Requests). Ограничение в проценке действует до конца дня. Для уточнения лимитов обратитесь к Вашему менеджеру либо в нашу техподдержку через форму обратной связи.
Для проценки артикула предварительно требуется получить внутренний идентификатор артикула (из метода POST /api/v1/articles/search или GET /api/v1/articles/search/{articleSearchString})
Если у пользователя несколько адресов, то для получения даты доставки до конкретного адреса, нужно указать код адреса доставки (взять из метода GET /api/v1/delivery/addresses).
Если у пользователя несколько номеров договоров, то нужно указать конкретный номер (взять из метода GET /api/v1/customer/agreements). в противном случае будет выбран номер договора по умолчанию (личный кабинет – персональные данные).
У Вашего менеджера можно запросить ограничения на вывод предложений наличия и под заказ.
11.1 POST /api/v1/prices/search (Поиск ценовых предложений)
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
DeliveryAddressCode | Внутренний код адреса доставки. Можно передать несколько адресов доставки для получения дат доставки по каждому адресу. | Д1 | Нет |
AgreementCode | Номер договора клиента. При незаполненном поле цены будут указаны для договора по умолчанию (личный кабинет – персональные данные). | SAGR1 | Нет |
ArticleId | Внутренний идентификатор артикула | 1248291 | Да |
IncludeAnalogs | Включать аналоги. Если ничего не будет передано на вход, в ответе аналогов не будет | True – в ответе будут ценовые предложения вместе с аналогами; False – метод вернет ценовые предложения только по искомому номеру. | Нет |
Ответ метода (коллекция ценовых предложений):
[
{
"id": "EA0A241990CBE80CD928445ADB1146A81861AFA2B69CC0F1C59EEBCEA5B67A12608B2F0799466CC6B019C63056DDB2565D9E288D38DE21BCC5CB706019FF029E",
"articleId": 1248288,
"locationCode": "SHATE-01",
"locationCodeReal": "SHATE-01",
"agreementCode": "SAGR1",
"type": "Internal",
"price": {
"value": 8.5,
"valueWithMargin": 8.5,
"valueRecommended": null,
"currencyCode": "USD"
"priceMax": 12.32,
"importAllowance": 15,
},
"quantity": {
"available": 5,
"availableType": "Equal",
"multiplicity": 1,
"minimum": 1,
"maximum": null
},
"supplyProbability": {
"lastUpdateDateTime": "2022-12-19T09:22:08.260Z",
"rating": 99
},
"addInfo": {
"city": "Минск",
"isSale": true,
"comment": "Царапины справа",
"isReturnAllowed": true,
"warningText": "Возврат запрещен. Нельзя заказывать масла моторные и тех. жидкости"
},
"priority": 1,
"hash": 123456789,
"deliveryDateTimes": [
{
"deliveryAddressCode": "Д1",
"deliveryDateTime": "2022-12-19T09:22:08.260Z"
}
],
"shippingDateTime": "2022-12-19T09:22:08.260Z",
"isImport": true,
"isFree": true
}
]
Параметр | Описание |
---|---|
ArticleId | Внутренний идентификатор артикула |
LocationCode | Код склада, с которого будет отгружен товар |
LocationCodeReal | Код склада, на котором находится товар |
AgreementCode | Номер договора клиента |
Type | Тип предложения |
Price {}: | |
value | Цена |
valueWithMargin | Цена с пользовательской наценкой (выставляется в личном кабинете в настройках пользователя) |
valueRecommended | Рекомендованная цена компанией Шате-М+ |
currencyCode | Код валюты |
PriceMax | Максимальная цена реализации |
ImportAllowance | Надбавка импортера, % |
Quantity {}: | Информация о количестве |
available | Доступное количество |
availableType | Тип количества |
multiplicity | Кратность |
minimum | Минимальное количество к заказу |
maximum | Максимальное количество к заказу |
supplyProbability {}: | Статистика по стороннему предложению |
lastUpdateDateTime | Дата и время обновления статистики |
rating | Вероятность поставки,% |
AddInfo {}: | Дополнительная информация |
city | Город, в котором расположен склад |
isSale | Распродажа |
comment | Дополнительная информация |
isReturnAllowed | Возврат разрешен |
warningText | Текст предупреждения |
priority | Приоритет предложения (согласно расположению строк в результатах поиска в личном кабинете) |
Hash | Идентификатор ценового предложения |
deliveryAddressCodes | |
DeliveryDateTime | Дата и время доставки |
ShippingDateTIme | Дата и время отгрузки со склада |
IsImport | Импортный/не импортный товар |
IsFree | Регулируемый/нерегулируемый товар |
11.2 POST /api/v1/prices/search/with_article_info (Поиск ценовых предложений (с группировкой по артикулу и информацией об артикуле)).
Входящие параметры аналогичны предыдущему методу.
Ответ метода (коллекция ценовых предложений):
[
{
"article": {
"id": 1248288,
"code": "OC100",
"tradeMarkName": "KNECHT",
"name": "Фильтр масляный",
"description": "Замена - OC976. BX 82-93",
"unitOfMeasure": "ШТ"
},
"prices": [
{
"id": "EA0A241990CBE80CD928445ADB1146A81861AFA2B69CC0F1C59EEBCEA5B67A12608B2F0799466CC6B019C63056DDB2565D9E288D38DE21BCC5CB706019FF029E",
"articleId": 1248288,
"locationCode": "SHATE-01",
"locationCodeReal": "SHATE-01",
"agreementCode": "SAGR1",
"type": "Internal",
"price": {
"value": 8.5,
"valueWithMargin": 8.5,
"valueRecommended": null,
"currencyCode": "USD"
"priceMax": 12.32,
"importAllowance": 15,
},
"quantity": {
"available": 5,
"availableType": "Equal",
"multiplicity": 1,
"minimum": 1,
"maximum": null
},
"supplyProbability": {
"lastUpdateDateTime": "2022-12-19T09:23:41.595Z",
"rating": 99
},
"addInfo": {
"city": "Минск",
"isSale": true,
"comment": "Царапины справа",
"isReturnAllowed": true,
"warningText": "Возврат запрещен. Нельзя заказывать масла моторные и тех. жидкости"
},
"priority": 1,
"hash": 123456789,
"deliveryDateTimes": [
{
"deliveryAddressCode": "Д1",
"deliveryDateTime": "2022-12-19T09:23:41.595Z"
}
],
"shippingDateTime": "2022-12-19T09:23:41.595Z",
"isImport": true,
"isFree": true
}
]
}
]
Параметр | Описание |
---|---|
article{} | |
Id | Внутренний идентификатор артикула |
TradeMarkName | Наименование торговой марки. |
Code | Каталожный номер |
Name | Описание товара. |
Description | Дополнительное описание товара |
UnitOfMeasure | Единица измерения |
Prices{} | |
ArticleId | Внутренний идентификатор артикула |
LocationCode | Код склада, с которого будет отгружен товар |
LocationCodeReal | Код склада, на котором находится товар |
AgreementCode | Номер договора клиента |
Type | Тип предложения |
Price {}: | |
value | Цена |
valueWithMargin | Цена с пользовательской наценкой (выставляется в личном кабинете в настройках пользователя) |
valueRecommended | Рекомендованная цена компанией Шате-М+ |
currencyCode | Код валюты |
PriceMax | Максимальная цена реализации |
ImportAllowance | Надбавка импортера, % |
Quantity {}: | Информация о количестве |
available | Доступное количество |
availableType | Тип количества |
multiplicity | Кратность |
minimum | Минимальное количество к заказу |
maximum | Максимальное количество к заказу |
supplyProbability {}: | Статистика по стороннему предложению |
lastUpdateDateTime | Дата и время обновления статистики |
rating | Вероятность поставки,% |
AddInfo {}: | Дополнительная информация |
city | Город, в котором расположен склад |
isSale | Распродажа |
comment | Дополнительная информация |
isReturnAllowed | Возврат разрешен |
warningText | Текст предупреждения |
priority | Приоритет предложения (согласно расположению строк в результатах поиска в личном кабинете) |
Hash | Идентификатор ценового предложения |
deliveryAddressCodes | |
DeliveryDateTime | Дата и время доставки |
ShippingDateTIme | Дата и время отгрузки со склада |
IsImport | Импортный/не импортный товар |
IsFree | Регулируемый/нерегулируемый товар |
12. Trademarks (Торговые марки)
12.1 GET /api/v1/trademarks
Получение информации по всем брендам из портфеля компании “Шате-М Плюс”.
Входных параметров нет.
Ответ метода:
{
"name": "KNECHT",
"country": "Германия",
"description": "Торговая марка KNECHT принадлежит концерну...",
"url": "http://www.mahle.com",
"catalogUrl": "http://www.mahle.com",
"extendedWarranty": false
}
Параметр | Описание |
---|---|
Name | Название бренда |
Country | Страна |
Description | Информация о производителе |
url | Ссылка на сайт производителя |
catalogurl | Ссылка на каталог производителя |
12.2 GET /api/v1/trademarks/{tradeMarkName}
Получение информации по конкретной торговой марке
Метод принимает на вход:
Параметр | Описание | Пример | Обязательный параметр |
---|---|---|---|
TradeMarkName | Название торговой марки | Knecht | Да |
Ответ метода:
{
"name": "KNECHT",
"country": "Германия",
"description": "Торговая марка KNECHT принадлежит концерну...",
"url": "http://www.mahle.com",
"catalogUrl": "http://www.mahle.com",
"extendedWarranty": false
}
Параметр | Описание |
---|---|
Name | Название бренда |
Country | Страна |
Description | Информация о производителе |
url | Ссылка на сайт производителя |
catalogurl | Ссылка на каталог производителя |
Уважаемые клиенты!
Если у вас есть замечания или предложения к документации нашего сервиса, мы готовы рассмотреть их. Присылайте их по адресу andrey.gapanyuk@100soft.by;
По техническим проблемам интеграции или работе нашего сервиса вы можете обратиться прямо со страницы документации, заполнив форму.