Описание xml-сервиса корзины.

Сервис расположен по адресу https://next-auto.pro/xmlcart.php. Для получения результата сервис необходимо запускать с параметрами.

Перечень параметров:

login
Логин пользователя
password
Пароль пользователя
add
Режим добавления детали в корзину
user
ID целевого клиента
producer
Название производителя
code
Номер детали
stock
Код склада
quantity
Количество деталей в заказе
price
Цена детали для дилера
comment
Комментарий дилера
order_num
Номер заказа дилера
name
Название детали
client_price
Цена детали для клиента
client_comment
Комментарий клиента
client_order_num
Номер заказа клиента
quantityunit
Количество в упаковке
forward
Опция для размещения заказа клиента без использования его корзины
inwork
Опция для отправки корзины в работу
json
Данные выдаются в формате JSON
ser
Выдаётся результат, обработанный функцией php serialize()

Пример:
https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&user=56&ser
или
https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&json
или
https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&add&producer=KNECHT&code=KL2&stock=STOCK24&quantity=2&price=100&comment=Комментарий&order_num=56&name=Ф�?ЛЬТР%20ТОПЛ�?ВНЫЙ

Коды ошибок:

1
ошибка подключения к БД
2
отсутвтуют логин и(или) пароль
3
неверные логин и(или) пароль
4
ошибка в указании параметров поиска
5
ошибка выдачи запрошенной информации
6
ошибка внесения изменений (добавления)
7
у данного пользователя нет прав для работы с сервисом
8
неверные значения у параметров поиска
9
ошибка удаления записи
10
ошибка подтверждения записи
11
ошибка отправки в работу
12
Повышение цены

Сервис предоставляет следующие услуги:

  1. Получение списка позиций в корзине Дилера или Клиента
  2. Добавление позиции в корзину Дилера или в корзину Клиента или в заказы Клиента
  3. Получение списка заказанных позиций Клиента
  4. Удаление и подтверждение заказанных позиций Клиента

Подробное описание работы.

В параметрах логин и пароль указываем всегда.

1. Получаем содержимое корзины.

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword

Для получения содержимого корзины Дилера кроме логина и пароля дополнительных параметров не требуется.

https:// next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&user=56

Для получения содержимого корзины Клиента необходимо указать ID клиента: user=56

В случае успеха получаем следующее.

Для XML:

<cart>
<detail>
<id>
2327632</id>
<active>
1</active>
<producer>
FILTRON</producer>
<article>
PP836</article>
<stock>
STOCK25</stock>
<quantity>
1</quantity>
<name>
</name>
<only_this_quantity>
0</only_this_quantity>
<quantity_ok>
1</quantity_ok>
<only_this_warehouse>
0</only_this_warehouse>
<name_ok>
0</name_ok>
<price>
184</price>
<cost>
184</cost>
<comment>
Примечание дилера</comment>
<order_num>
600</order_num>
<client_price>203</client_price>
<client_cost>
203</client_cost>
<client_comment>
Примечание клиента</client_comment>
<client_order_num>
555</client_order_num>
</detail>
<detail>
<id>
2327628</id>
<active>
1</active>
<producer>
BOSCH</producer>
<article>
0450905030</article>
<stock>
STOCK23</stock>
<quantity>
1</quantity>
<name>
ТОПЛ�?ВНЫЙ Ф�?ЛЬТР BOSCH</name>
<only_this_quantity>
0</only_this_quantity>
<quantity_ok>
1</quantity_ok>
<only_this_warehouse>
0</only_this_warehouse>
<name_ok>
1</name_ok>
<price>
206</price>
<cost>
206</cost>
<comment></comment>
<order_num>
601</order_num>
<client_price>
227</client_price>
<client_cost>
227</client_cost>
<client_comment>
Ещё примечание</client_comment>
<client_order_num>
556</client_order_num>
</detail>

* * *

<detail>
<id>
2327619</id>
<active>
1</active>
<producer>
KNECHT</producer>
<article>
KL2</article>
<stock>
STOCK276</stock>
<quantity>
1</quantity>
<name>
Ф�?ЛЬТР ТОПЛ�?ВНЫЙ</name>
<only_this_quantity>
0</only_this_quantity>
<quantity_ok>
1</quantity_ok>
<only_this_warehouse>
0</only_this_warehouse>
<name_ok>
1</name_ok>
<price>
287</price>
<cost>
287</cost>
<comment></comment>
<order_num>
665</order_num>
<client_price>
316</client_price>
<client_cost>
316</client_cost>
<client_comment>
Для �?вана</client_comment>
<client_order_num>
557</client_order_num>
</detail>
</cart>

Для JSON:

{"cart":[
  {
    "id":2327632,
    "active":1,
    "producer":"FILTRON",
    "article":"PP836",
    "stock":"STOCK25",
    "quantity":1,
    "name":" ",
    "only_this_quantity":"0",
    "quantity_ok":1,
    "only_this_warehouse":0,
    "name_ok":0,
    "price":184,
    "cost":184,
    "comment":"\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u0434\u0438\u043b\u0435\u0440\u0430",
    "order_num":"600",
    "client_price":203,
    "client_cost":203,
    "client_comment":"\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430",
    "client_order_num":"555"
  },
  {
    "id":2327628,
    "active":1,
    "producer":"BOSCH",
    "article":"0450905030",
    "stock":"STOCK23",
    "quantity":1,
    "name":"\u0422\u041e\u041f\u041b\u0418\u0412\u041d\u042b\u0419 \u0424\u0418\u041b\u042c\u0422\u0420 BOSCH",
    "only_this_quantity":"0",
    "quantity_ok":1,
    "only_this_warehouse":0,
    "name_ok":1,
    "price":206,
    "cost":206,
    "comment":"",
    "order_num":"601",
    "client_price":227,
    "client_cost":227,
    "client_comment":"\u0415\u0449\u0451 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435",
    "client_order_num":"556"
  },

* * *

  {
    "id":2327619,
    "active":1,
    "producer":"KNECHT",
    "article":"KL2",
    "stock":"STOCK276",
    "quantity":1,
    "name":"\u0424\u0418\u041b\u042c\u0422\u0420 \u0422\u041e\u041f\u041b\u0418\u0412\u041d\u042b\u0419",
    "only_this_quantity":"0",
    "quantity_ok":1,
    "only_this_warehouse":0,
    "name_ok":1,
    "price":287,
    "cost":287,
    "comment":"",
    "order_num":"665",
    "client_price":316,
    "client_cost":316,
    "client_comment":"\u0414\u043b\u044f \u0418\u0432\u0430\u043d\u0430",
    "client_order_num":"557"
  }
]}

Для serialize():

a:1:{
  s:4:"cart";a:4:{
   i:0;a:15:{
    s:2:"id";i:2327632;
    s:6:"active";i:1;
    s:8:"producer";s:7:"FILTRON";
    s:7:"article";s:5:"PP836";
    s:5:"stock";s:7:"STOCK25";
    s:8:"quantity";d:1;
    s:4:"name";s:1:" ";
    s:18:"only_this_quantity";s:1:"0";
    s:11:"quantity_ok";i:1;
    s:19:"only_this_warehouse";i:0;
    s:7:"name_ok";i:0;
    s:5:"price";d:184;
    s:4:"cost";d:184;
    s:7:"comment";s:33:"Примечание дилера";
    s:9:"order_num";s:3:"600";
    s:12:"client_price";d:203;
    s:11:"client_cost";d:203;
    s:14:"client_comment";s:35:"Примечание клиента";
    s:16:"client_order_num";s:3:"555";
   }
   i:1;a:15:{
    s:2:"id";i:2327628;
    s:6:"active";i:1;
    s:8:"producer";s:5:"BOSCH";
    s:7:"article";s:10:"0450905030";
    s:5:"stock";s:7:"STOCK23";
    s:8:"quantity";d:1;
    s:4:"name";s:37:"ТОПЛ�?ВНЫЙ Ф�?ЛЬТР BOSCH";
    s:18:"only_this_quantity";s:1:"0";
    s:11:"quantity_ok";i:1;
    s:19:"only_this_warehouse";i:0;
    s:7:"name_ok";i:1;
    s:5:"price";d:206;
    s:4:"cost";d:206;
    s:7:"comment";s:0:"";
    s:9:"order_num";s:3:"601";
    s:12:"client_price";d:227;
    s:11:"client_cost";d:227;
    s:14:"client_comment";s:27:"Ещё примечание";
    s:16:"client_order_num";s:3:"556";
   }

* * *

   i:3;a:15:{
    s:2:"id";i:2327619;
    s:6:"active";i:1;
    s:8:"producer";s:6:"KNECHT";
    s:7:"article";s:3:"KL2";
    s:5:"stock";s:8:"STOCK276";
    s:8:"quantity";d:1;
    s:4:"name";s:31:"Ф�?ЛЬТР ТОПЛ�?ВНЫЙ";
    s:18:"only_this_quantity";s:1:"0";
    s:11:"quantity_ok";i:1;
    s:19:"only_this_warehouse";i:0;
    s:7:"name_ok";i:1;
    s:5:"price";d:287;
    s:4:"cost";d:287;
    s:7:"comment";s:0:"";
    s:9:"order_num";s:3:"665";
    s:12:"client_price";d:316;
    s:11:"client_cost";d:316;
    s:14:"client_comment";s:17:"Для �?вана";
    s:16:"client_order_num";s:3:"557";
   }
}}
Расшифровка выдачи содержимого корзины
id
�?дентификатор записи.
active
Признак "незамороженности" позиции. Позиция может быть отправлена в работу, если active=1.
producer
Название производителя
article
Номер детали
stock
Код поставщика
quantity
Количество деталей в заказе
name
Название детали
only_this_quantity
Затребовано только указанное количество деталей. Кроме 1 или 0 может принимать значение "-" - означаеет, что для данного поставщика эта опция недоступна.
quantity_ok
Признак корректности заполнения поля quantity. Для случаев, когда количество может быть только кратным какому-либо числу. Например: 5 или 10 или 15 и т. д.
only_this_warehouse
Затребован только указанный поставщик, без перезаказа у другого поставщика.
name_ok
Признак корректности заполнения поля name. Поле name должно обязательно заполняться русскими буквами.
price
Цена одной детали
cost
Стоимость всех деталей в заказе для дилера (price * quantity)
comment
Комментарий дилера
order_num
Номер заказа дилера
client_price
Клиентская цена одной детали. Появляется только в выдаче корзины клиента.
client_cost
Стоимость всех деталей в заказе для клиента (client_price * quantity). Появляется только в выдаче корзины клиента.
client_comment
Комментарий клиента. Появляется только в выдаче корзины клиента.
client_order_num
Номер заказа клиента. Появляется только в выдаче корзины клиента.
quantityunit
Кратность заказываемого количества.

2. Добавляем заказ в корзину

В корзину дилеру:

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&add&producer=KNECHT&code=KL2&stock=STOCK24&quantity=2&price=100&comment=Комментарий&order_num=56&name=Ф�?ЛЬТР%20ТОПЛ�?ВНЫЙ&quantityunit=1

В корзину клиенту:

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&add&producer=KNECHT&code=KL2&stock=STOCK24&quantity=2&price=100&comment=Комментарий&order_num=56&name=Ф�?ЛЬТР%20ТОПЛ�?ВНЫЙ&user=1234&client_price=120&client_comment=Коммент&client_order_num=678&quantityunit=1

При отправке позиции в корзину клиенту указание параметров client_price, client_comment, client_order_num, quantityunit и order_num является обязательным (пустые значения принимаются).

При отправке позиции в корзину клиенту и сразу в работу необходимо добавить параметр &forward.

3. Получаем список заказанных пользователем позиций

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&user=56&orders

Получаем для XML:

<orders>
<detail>
<id>
2327632</id>
<active>
1</active>
<producer>
FILTRON</producer>
<article>
PP836</article>
<stock>
STOCK25</stock>
<quantity>
1</quantity>
<name>
</name>
<only_this_quantity>
0</only_this_quantity>
<quantity_ok>
1</quantity_ok>
<only_this_warehouse>
0</only_this_warehouse>
<name_ok>
0</name_ok>
<price>
184</price>
<cost>
184</cost>
<comment>
Примечание дилера</comment>
<order_num>
600</order_num>
<client_price>203</client_price>
<client_cost>
203</client_cost>
<client_comment>
Примечание клиента</client_comment>
<client_order_num>
555</client_order_num>
<price_change>
up</price_change>
</detail>
<detail>
<id>
2327628</id>
<active>
1</active>
<producer>
BOSCH</producer>
<article>
0450905030</article>
<stock>
STOCK23</stock>
<quantity>
1</quantity>
<name>
ТОПЛ�?ВНЫЙ Ф�?ЛЬТР BOSCH</name>
<only_this_quantity>
0</only_this_quantity>
<quantity_ok>
1</quantity_ok>
<only_this_warehouse>
0</only_this_warehouse>
<name_ok>
1</name_ok>
<price>
206</price>
<cost>
206</cost>
<comment></comment>
<order_num>
601</order_num>
<client_price>
227</client_price>
<client_cost>
227</client_cost>
<client_comment>
Ещё примечание</client_comment>
<client_order_num>
556</client_order_num>
<price_change>
up</price_change>
</detail>

* * *

<detail>
<id>
2327619</id>
<active>
1</active>
<producer>
KNECHT</producer>
<article>
KL2</article>
<stock>
STOCK276</stock>
<quantity>
1</quantity>
<name>
Ф�?ЛЬТР ТОПЛ�?ВНЫЙ</name>
<only_this_quantity>
0</only_this_quantity>
<quantity_ok>
1</quantity_ok>
<only_this_warehouse>
0</only_this_warehouse>
<name_ok>
1</name_ok>
<price>
287</price>
<cost>
287</cost>
<comment></comment>
<order_num>
665</order_num>
<client_price>
316</client_price>
<client_cost>
316</client_cost>
<client_comment>
Для �?вана</client_comment>
<client_order_num>
557</client_order_num>
<price_change>up</price_change>
</detail>
</orders>

Расшифровка:

id
�?дентификатор записи.
active
Признак "незамороженности" позиции. Позиция может быть отправлена в работу, если active=1.
producer
Название производителя
article
Номер детали
stock
Код поставщика
quantity
Количество деталей в заказе
name
Название детали
only_this_quantity
Затребовано только указанное количество деталей. Кроме 1 или 0 может принимать значение "-" - означаеет, что для данного поставщика эта опция недоступна.
quantity_ok
Признак корректности заполнения поля quantity. Для случаев, когда количество может быть только кратным какому-либо числу. Например: 5 или 10 или 15 и т. д.
only_this_warehouse
Затребован только указанный поставщик, без перезаказа у другого поставщика.
name_ok
Признак корректности заполнения поля name. Поле name должно обязательно заполняться русскими буквами.
price
Цена одной детали обновленная (с повышением или понижением)
cost
Стоимость всех деталей в заказе для дилера (price * quantity)
comment
Комментарий дилера
order_num
Номер заказа дилера
client_price
Цена, по которой деталь заказывал клиент.
client_cost
Стоимость всех деталей в заказе для клиента (client_price * quantity).
client_comment
Комментарий клиента.
client_order_num
Номер заказа клиента.
price_change
Отметка изменения цены: "up" - цена возросла, "down" - цена понизилась, "none" - цена не менялась.

4. Удаляем позицию

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&del=56

где 56 - идентификатор записи в БД (<id>)

5. Подтверждаем заказ пользователя

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&accept=56

где 56 - идентификатор записи в БД (<id>)

6. Отправка корзины в работу

https://next-auto.pro/xmlcart.php?login=mylogin&password=mypassword&inwork

Внимание: функция отправки корзины в работу требует дополнительных прав доступа.

 

Для всех режимов в случае ошибки получаем:

Для XML:

<error>
<code>4</code>
<descr><![CDATA[Ошибка в указании параметров поиска.]]</descr>
</error>

Для JSON:

{
"error":{
  "code":4,
  "descr":"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430.",
}
}

Для serialize():

a:1:{
s:5:"error";a:3:{
  s:4:"code";i:4;
  s:5:"descr";s:67:"Ошибка в указании параметров поиска.";
}
}