Описание 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ТОПЛ�?ВНЫЙ
- Данные принимаются и выдаются в кодировке utf-8
- Протокол работы с сервисом: https
- Метод передачи параметров: GET или POST
- Без параметров ser или json данные выдаются в XML
- Режимом работы сервиса по умолчанию является режим показа содержимого корзины
Коды ошибок:
- 1
- ошибка подключения к БД
- 2
- отсутвтуют логин и(или) пароль
- 3
- неверные логин и(или) пароль
- 4
- ошибка в указании параметров поиска
- 5
- ошибка выдачи запрошенной информации
- 6
- ошибка внесения изменений (добавления)
- 7
- у данного пользователя нет прав для работы с сервисом
- 8
- неверные значения у параметров поиска
- 9
- ошибка удаления записи
- 10
- ошибка подтверждения записи
- 11
- ошибка отправки в работу
- 12
- Повышение цены
Сервис предоставляет следующие услуги:
- Получение списка позиций в корзине Дилера или Клиента
- Добавление позиции в корзину Дилера или в корзину Клиента или в заказы Клиента
- Получение списка заказанных позиций Клиента
- Удаление и подтверждение заказанных позиций Клиента
Подробное описание работы.
В параметрах логин и пароль указываем всегда.
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:"Ошибка в указании параметров поиска.";
}
}