Уважаемые клиенты, представляем Вашему вниманию новый функционал сайта. Открытое API (Программный интерфейс), реализованный по протоколу SOAP.
Этот интерфейс позволит Вам передать нам заказы из Ваших программ учета, типа 1с, либо с сайтов напрямую, без участия человека.
В данный момент поддерживаются следующие методы
Получить всю номенклатуру в формате XML(стандартный YML), Вы можете по ссылке
Где необходимо
{login} - заменить на Ваш логин в системе
{password} - заменить на Ваш пароль в системе
В данном файле содержатся все позиции номенклатуры, а атрибут id тэга offer - это уникальный код (ID) товара в нашей БД. Используя этот код, Вы сможете сделать запрос к нашему API
На 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