Уважаемые клиенты, представляем Вашему вниманию новый функционал сайта. Открытое API (Программный интерфейс), реализованный по протоколу SOAP.
Этот интерфейс позволит Вам передать нам заказы из Ваших программ учета, типа 1с, либо с сайтов напрямую, без участия человека.
В данный момент поддерживаются следующие методы
- запрос доступного остатка и цены позиции
- добавление\изменение\удаление товара из корзины
- просмотр содержимого корзины
- очистка корзины
- отправка заказ из корзины
Получить всю номенклатуру в формате XML(стандартный YML), Вы можете по ссылке
Где необходимо
{login} - заменить на Ваш логин в системе
{password} - заменить на Ваш пароль в системе
В данном файле содержатся все позиции номенклатуры, а атрибут id тэга offer - это уникальный код (ID) товара в нашей БД. Используя этот код, Вы сможете сделать запрос к нашему API
Спецификация и примеры реализации в среде разработки PHP
На PHP в первую очередь стоит инициализировать переменную SoapClient
$client = new SoapClient("https://kochsib.ru/cms/soap/service.php?wsdl", array("trace" => 1, "encoding"=>"ISO-8859-1"));
Запрос остатка и цены товара
метод - item
После инициализации создаем тело запроса к интерфейсу. Сначала Вам необходимо создать массив с запросом авторизации. Логин и пароль и это логин и пароль, которым Вы пользуетесь, при авторизации на сайте.
$auth = array(
"login" => "Ваш логин от ЛК",
"password" => "Ваш пароль от ЛК"
);
Спецификация массива авторизации
| Наименование | Тип | Обязат. | Описание |
| login | String | + | Ваш логин от Личного Кабинета |
| password | String | + | Ваш пароль от Личного Кабинета |
Далее создаете массив запроса остатка интересующей Вас позиции, куда в параметр auth помещаете запрос авторизации, а в параметр itemId помещаете код интересующего Вас товара
$parItem = array(
"auth" => $auth,
"itemid" => 535
);
Спецификация запроса
| Наименование | Тип | Обязат. | Описание |
| auth | Array | + | Массив данных для авторизации |
| itemid | Int | + | Код товара, см. номенклатуру в формате XML |
Ответом на такой запрос будет следующий массив данных
stdClass Object
(
[msg] => остаток позиции 535
[state] => 1
[stock] => ***
[price] => 14.85
[price_qty] => Array
(
[0] => stdClass Object
(
[qty] => 6
[price] => 45.18
)
[1] => stdClass Object
(
[qty] => 12
[price] => 15.74
)
)
)
Спецификация ответа
| Наименование | Тип | Обязат. | Описание |
| msg | String | + | Информационное сообщение |
| state | Int | + |
Статус выполнения запроса. Может принимать следующие значения
|
| stock | String | + | Текущий доступный остаток |
| price | Float | + |
Текущая цена товара в рублях за 1 шт. |
| price_qty | Array | + |
Текущие цены товара в рублях > 1 шт. |
Спецификация массива price_qty
| Наименование | Тип | Обязат. | Описание |
| qty | Int | + | Количество от включительно |
| price | Float | + | Цена |
В зависимости от результат выполнения запроса параметр state может принимать значения 0 - ошибка (см. информационное сообщение) и 1 - успех
Добавление товара в корзину (правка, удаление)
метод - cart
Для работы с корзиной необходимо отправить следующий запрос
$par = array(
"auth" => $auth,
"items" => $items
);
Где auth - это запрос авторизации, см. выше, а items массив интересующих товаров, которые Вы хотите положить в корзину
$items = array(
array(
"id" => 382,
"qty" => 2,
"cartid" => "100"
),
array(
"id" => 10,
"qty" => 10,
"cartid" => "100"
),
array(
"id" => 356,
"qty" => 1,
"cartid" => "100"
),
);
спецификация запроса
| Наименование | Тип | Обязательное | Описание |
| auth | Array | + | Массив данных для авторизации |
| items | Array | + | Массив данных для работы с корзиной |
Спецификация массива items
| Наименование | Тип | Обязательное | Описание |
| id | Int | + | Код товара |
| qty | Int | + | Количество товара |
| cartid | String | + | Идентификатор корзины в Вашей системе |
Ответом на такой запрос будет следующий массив
stdClass Object
(
[msg] => корзина пользователя --- обновлена
[state] => 1
[sum] => 11445.35
[cartitems] => Array(
[0] => stdClass Object
(
[itemId] => 10
[cid] => 100
[qty] => 10
[qtyWas] => 10
[avaiErr] => 0
[price] => 186.73
)
[1] => stdClass Object
(
[itemId] => 356
[cid] => 100
[qty] => 1
[qtyWas] => 1
[avaiErr] => 0
[price] => 790.85
)
[2] => stdClass Object
(
[itemId] => 382
[cid] => 100
[qty] => 2
[qtyWas] => 2
[avaiErr] => 0
[price] => 4393.6
)
)
)
спецификация ответа
| Наименование | Тип | Обязательное | Описание |
| msg | String | + | Информационное сообщение |
| state | Int | + |
Статус выполнения запроса. Может принимать следующие значения
|
| sum | Float | + | Сумма товара в корзине для указанных идентификаторов (cartid) |
| cartitems | Array | + | Массив данных товаров |
Спецификация массива cartItems
| Наименование | Тип | Обязательное | Описание |
| itemId | Int | + | Код товара |
| cid | String | + | Код корзины в Вашей системе |
| qty | Int | + | Текущее количество товара |
| qtyWas | Int | + | Количество товара из запроса. Если доступное количество меньше, чем количество в запросе, то значения qty и qtyWas будут отличаться |
| avaiErr | Int | + |
Ключ ошибки остатка может принимать следующие значения
|
Содержимое корзины
метод - getCart
Для просмотра содержимого корзины Вам необходимо передать следующий запрос
$cartids = array(
array("id" => "101")
);
$parGetCart = array(
"auth" => $auth,
"cartids" => $cartids
);
Спецификация запроса
| Наименование | Тип | Обязательное | Описание |
| auth | Array | + | Массив данных для авторизации |
| cartids | Array | + | Массив идентификаторов корзин в Вашей системе |
Спецификация массива cartids
| Наименование | Тип | Обязательное | Описание |
| id | String | + | Идентификатор корзины в Вашей системе |
Ответом на этот запрос будет следующий массив данных
stdClass Object
(
[msg] => содержимое корзины
[state] => 1
[sum] => 11445.35
[cartitems] => Array
(
[0] => stdClass Object
(
[itemId] => 10
[cid] => 100
[qty] => 10
[qtyWas] => 10
[avaiErr] => 0
[price] => 186.73
)
[1] => stdClass Object
(
[itemId] => 356
[cid] => 100
[qty] => 1
[qtyWas] => 1
[avaiErr] => 0
[price] => 790.85
)
[2] => stdClass Object
(
[itemId] => 382
[cid] => 100
[qty] => 2
[qtyWas] => 2
[avaiErr] => 0
[price] => 4393.6
)
)
)
Спецификация ответа
| Наименование | Тип | Обязательное | Описание |
| msg | String | + | Информационное сообщение |
| state | Int | + |
Статус выполнения запроса. Может принимать следующие значения
|
| sum | Float | + | Сумма товара в корзине для указанных идентификаторов (cartid) |
| cartitems | Array | + | Массив данных товаров |
Спецефикация массива items
| Наименование | Тип | Обязательное | Описание |
| itemId | Int | + | Код товара |
| cid | String | + | Код корзины в Вашей системе |
| qty | Int | + | Текущее количество товара |
| qtyWas | Int | + | Количество товара из запроса. Если доступное количество меньше, чем количество в запросе, то значения qty и qtyWas будут отличаться |
| avaiErr | Int | + |
Ключ ошибки остатка может принимать следующие значения
|
Очистка корзины
метод - clearCart
В этом методе запрос полность аналогичен запросу из метода Содержимое корзины (getCart)
Спецификация ответа
| Наименование | Тип | Обязательное | Описание |
| msg | String | + | Информационное сообщение |
| state | Int | + |
Статус выполнения запроса. Может принимать следующие значения
|
Отправка заказа из корзины
метод - sendCart
Для того, чтобы отправить нам заказ из корзины, Вам необходимо выполнить следующий запрос
$parOrder = array(
"auth" => $auth,
"cartid" => "100",
"cuscont" => array(
"name" => "имя",
"phone" => "телефон",
"mail" => "почта",
),
"address" => array(
"index" => "индекс",
"city" => "Город",
"street" => "Улица",
"house" => "номер дома",
"korp" => "корпус"
"pod" => "подъезд",
"etazh" => "этаж",
"domo" => "домофон",
"flat" => "квартира\офис",
),
"ordPar" => array(
"tk" => 0,
"punkt" => 0,
"delNames" => 0,
"delType" => 18,
"payType" => 7,
"self" => 1,
"timeDel" => 1,
"delDate" => "31.10.2017",
"comm" => "комментарий"
),
);
Спецификация запоса
| Наименование | Тип | Обязательное | Описание |
| auth | Array | + | Массив данных для авторизации |
| cartid | String | + | Идентификатор корзины в Вашей системе. |
| cuscont | Array | + | Массив контактных данных клиента |
| address | Array | + | Массив адреса |
| ordPar | Array | + | Массив параметров заказа |
Спецификация массива cuscont
| Наименование | Тип | Обязательное | Описание |
| name | String | + | Имя |
| phone | String | + | Номер телефона в формате +7(xxx) xxx-xxxx |
| String | + | Почта, на которую будет отправлено уведомление о заказе |
Спецификация массива address
| Наименование | Тип | Обязательное | Описание |
| index | String | + | Почтовый индекс (можно указать пустую строку) |
| city | String | + | Город |
| street | String | + | Улица |
| house | String | + | Дом |
| korp | String | + | Корпус (можно указать пустую строку) |
| pod | String | + | Подъезд (можно указать пустую строку) |
| etazh | String | + | Этаж (можно указать пустую строку) |
| domo | String | + | Домофон (можно указать пустую строку) |
| flat | String | + | Квартира (можно указать пустую строку) |
Спецификация массива ordPar
| Наименование | Тип | Обязательное | Описание |
| punkt | Int | + |
Код пункта самовывоза. Сейчас это занчение может быть
|
| delNames | Int | + |
Код траспортной компании, которой надо осуществить доставку Сейчас доступны следующие значения
|
| delType | Int | + |
Способо доставки. Сейчас доступны следующие значения
|
| payType | Int | + |
Способ оплаты. Сейчас доступны следующие способы
|
| self | Int | + |
Ключ заказа. Отправляете ли Вы этот заказ для себя, либо для своего клиента (функциона фулфилмента в разработке)
|
| timeDel | Int | + |
Желаемое время доставки
|
| delDate | String | + | Желаемая дата доставки в формате ДД.ММ.ГГГГ |
| comm | String | - | Ваш комментарий к заказу |
После того, как Вы собрали массив запроса, можете вызвать метод
try {
$response = $client->sendCart($parOrder);
print_r($response);
} catch(SoapFault $sf){ print_r($sf); }
Ответом на этот запрос будет следующий массив данных
stdClass Object
(
[msg] => заказ успешно сформирован
[state] => 1
[ordernum] => ***
)
спецификация ответа
| Наименование | Тип | Обязательное | Описание |
| msg | String | + | Информационное сообщение |
| state | Int | + |
Статус выполнения запроса. Может принимать следующие значения
|
| ordernum | Int | + | Номер заказа |
Если у Вас возникнут какие-либо вопросы и предложения по работе нашего API, просьба писать на почту info@kochsib.ru
