API программный интерфейс

Уважаемые клиенты, представляем Вашему вниманию новый функционал сайта. Открытое API (Программный интерфейс), реализованный по протоколу SOAP.
Этот интерфейс позволит Вам передать нам заказы из Ваших программ учета, типа 1с, либо с сайтов напрямую, без участия человека.
В данный момент поддерживаются следующие методы

  • запрос доступного остатка и цены позиции
  • добавление\изменение\удаление товара из корзины
  • просмотр содержимого корзины
  • очистка корзины
  • отправка заказ из корзины

Получить всю номенклатуру в формате XML(стандартный YML), Вы можете по ссылке

https://kochsib.ru/cms/yml.php?api=jhyt87_HG6tRfcc_hd_sdw8&opt=1&login={login}&password=MD5({password})

Где необходимо
{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 +

Статус выполнения запроса. Может принимать следующие значения

  • 1 - успех
  • 2 - ошибка (см. информационное сообщение)
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 +

Статус выполнения запроса. Может принимать следующие значения

  • 0 - ошибка (см. информационное сообщение)
  • 1 - успех
  • 2 - есть товары, у которых количество было уменьшено до актуального
sum Float + Сумма товара в корзине для указанных идентификаторов (cartid)
cartitems Array + Массив данных товаров

Спецификация массива cartItems

Наименование Тип Обязательное Описание
itemId Int + Код товара
cid String + Код корзины в Вашей системе
qty Int + Текущее количество товара
qtyWas Int + Количество товара из запроса. Если доступное количество меньше, чем количество в запросе, то значения qty и qtyWas будут отличаться
avaiErr Int +

Ключ ошибки остатка может принимать следующие значения

  • 1 - ошибка остатка (количество было изменено, см qty и qtyWas)
  • 0 - все в порядке количество из запроса добавлено в корзину

Содержимое корзины

метод - 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 +

Статус выполнения запроса. Может принимать следующие значения

  • 0 - ошибка (см. информационное сообщение)
  • 1 - успех
  • 2 - есть товары, у которых количество было уменьшено до актуального
sum Float + Сумма товара в корзине для указанных идентификаторов (cartid)
cartitems Array + Массив данных товаров

Спецефикация массива items

Наименование Тип Обязательное Описание
itemId Int + Код товара
cid String + Код корзины в Вашей системе
qty Int + Текущее количество товара
qtyWas Int + Количество товара из запроса. Если доступное количество меньше, чем количество в запросе, то значения qty и qtyWas будут отличаться
avaiErr Int +

Ключ ошибки остатка может принимать следующие значения

  • 1 - ошибка остатка (количество было изменено, см qty и qtyWas)
  • 0 - все в порядке количество из запроса добавлено в корзину

Очистка корзины

метод - clearCart

В этом методе запрос полность аналогичен запросу из метода Содержимое корзины (getCart)

Спецификация ответа

Наименование Тип Обязательное Описание
msg String + Информационное сообщение
state Int +

Статус выполнения запроса. Может принимать следующие значения

  • 0 - ошибка (см. информационное сообщение)
  • 1 - успех

Отправка заказа из корзины

метод - 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
mail String + Почта, на которую будет отправлено уведомление о заказе

Спецификация массива address

Наименование Тип Обязательное Описание
index String + Почтовый индекс (можно указать пустую строку)
city String + Город
street String + Улица
house String + Дом
korp String + Корпус  (можно указать пустую строку)
pod String + Подъезд  (можно указать пустую строку)
etazh String + Этаж  (можно указать пустую строку)
domo String + Домофон  (можно указать пустую строку)
flat String + Квартира  (можно указать пустую строку)

Спецификация массива ordPar

Наименование Тип Обязательное Описание
punkt Int +

Код пункта самовывоза. Сейчас это занчение может быть 

  • 0 - в случае доставки по адресу
  • 5584 -  центральный ПВЗ 127410, г. Москва, Алтуфьевское шоссе дом 37
delNames Int +

Код траспортной компании, которой надо осуществить доставку Сейчас доступны следующие значения

  • 8 - Деловые линии
  • 9 - ПЭК
  • 10 - СДЭК
delType Int +

Способо доставки. Сейчас доступны следующие значения

  • 16 - самовывоз
  • 22 - до ТК
payType Int +

Способ оплаты. Сейчас доступны следующие способы

  • 2 - наличные
  • 7 - безналичная оплата
self Int +

Ключ заказа. Отправляете ли Вы этот заказ для себя, либо для своего клиента (функциона фулфилмента в разработке)

  • 1 - заказ для себя
  • 0 - заказ для Вашего клиента (в разработке)
timeDel Int +

Желаемое время доставки

  • 1 - с 10 до 19
  • 2 - с 10 до 15
  • 3 - с 15 до 19
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 +

Статус выполнения запроса. Может принимать следующие значения

  • 0 - ошибка (см. информационное сообщение)
  • 1 - успех
ordernum Int + Номер заказа

Если у Вас возникнут какие-либо вопросы и предложения по работе нашего API, просьба писать на почту info@kochsib.ru

Загрузка