Описание xml-сервиса наличия.

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

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

login
Логин пользователя
password
Пароль пользователя
code
Поисковый запрос детали
sm
Тип поиска: 1 для точного поиска, 2 для поиска с начала номера, 3 поиск по шинам к примеру 2155516
ident
�?дентификационный код детали
stock
Название поставщика (для уточнения наличия)
producer
Название производителя (для уточнения наличия)
ser
Выдаётся результат, обработанный функцией php serialize()
json
Данные выдаются в формате JSON
with_cross
если with_cross=0, то результат выдается без аналогов
brands_union
brands_union=1 default Бренды отображаются по группам, brands_union=0 Бренды отображаются раздельно

Пример:
https://next-auto.pro/xmlprice.php?login=mylogin&password=mypassword&code=KL2&sm=1&ser
или
https://next-auto.pro/xmlprice.php?login=mylogin&password=mypassword&ident=123456789&with_cross=0
или
https://next-auto.pro/xmlprice.php?login=mylogin&password=mypassword&code=KL2&stock=STOCK66&producer=MAHLE&json
или
https://next-auto.pro/xmlprice.php?login=mylogin&password=mypassword&code=2155516&sm=3&ser

Коды ошибок:

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

Работа с сервисом строится в три этапа:

  1. Получение списка производителей по номеру детали
  2. Получение прайслиста по идентификационному коду детали
  3. Уточнение наличия отдельных позиций (по желанию)

Порядок работы.

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

1. Обращаемся к сервису с указанием параметров code и sm:

https://next-auto.pro/xmlprice.php?login=mylogin&password=mypassword&code=710&sm=1

В случае успеха для XML получаем документ (список производителей) вида:

<details>
<detail>
<producer>
<![CDATA[CHRYSLER]]></producer>
<article>
00710</article>
<ident>
38566709</ident>
</detail>
<detail>
<producer>
<![CDATA[CROSLAND]]></producer>
<article>
710</article>
<ident>
45162952</ident>
</detail>
<detail>
<producer>
<![CDATA[SUBARU]]></producer>
<article>
710</article>
<ident>
49256245</ident>
</detail>
<detail>
<producer>
<![CDATA[ZEN]]></producer>
<article>
710</article>
<ident>
55795457</ident>
</detail>
</details>

Для JSON получаем документ вида:

{
"details":[
  {"producer":"CHRYSLER","article":"00710","ident":38566709},
  {"producer":"CROSLAND","article":"710","ident":45162952},
  {"producer":"SUBARU","article":"710","ident":49256245},
  {"producer":"ZEN","article":"710","ident":55795457}
]
}

Для serialize() получаем документ вида:

a:1:{
s:7:"details";a:11:{
i:0;a:3:{s:8:"producer";s:8:"CHRYSLER";s:7:"article";s:5:"00710";s:5:"ident";i:38566709;}
i:1;a:3:{s:8:"producer";s:8:"CROSLAND";s:7:"article";s:3:"710";s:5:"ident";i:45162952;}
i:8;a:3:{s:8:"producer";s:6:"SUBARU";s:7:"article";s:3:"710";s:5:"ident";i:49256245;}
i:10;a:3:{s:8:"producer";s:3:"ZEN";s:7:"article";s:3:"710";s:5:"ident";i:55795457;}
}
}

В случае ошибки получаем документ для 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:"Ошибка в указании параметров поиска.";
}
}

 

2. Выбираем из полученного списка интересующего производителя и берём соответствующий ему ident. Обращаемся к сервису с указанием параметра ident:

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

В случае успеха для XML получаем документ (прайслист) вида:

<pricelist>
<detail>
<uid>
123456789123456789</uid>
<id>
12345671</id>
<dataprice></dataprice>
<code>
00710</code>
<producer>
<![CDATA[CHRYSLER]]></producer>
<caption>
<![CDATA[]]></caption>
<price>
0</price>
<rest></rest>
<deliverydays>
<![CDATA[]]></deliverydays>
<delivery>
<![CDATA[]]></delivery>
<currency>
R</currency>
<analog></analog>
<stock></stock>
<amount></amount>
<stat_otkaz></stat_otkaz>
<outputorderstime></outputorderstime>
<primposkladu></primposkladu>
<vozvrat>0</vozvrat>
<reliable>0</reliable>
<delivery_type>0</delivery_type>
<distributor>0</distributor>
</detail>
<detail>
<uid>
123456789123456789</uid>
<id>
12345672</id>
<dataprice>
2010.01.15</dataprice>
<code>
52088808AB</code>
<producer>
<![CDATA[CHRYSLER]]></producer>
<caption>
<![CDATA[ШАРОВАЯ ОПОРА ЗАДНЯЯ]]></caption>
<price>
1001</price>
<rest>
60</rest>
<deliverydays>
<![CDATA[1-3 дня]]></deliverydays>
<delivery>
<![CDATA[ цена с дост.]]></delivery>
<currency>
R</currency>
<analog>
+</analog>
<stock>
STOCK64</stock>
<amount>
10</amount>
<stat_otkaz>
13</stat_otkaz>
<outputorderstime>
12:00;16:00</outputorderstime>
<primposkladu>
�������� �� ��������!!!</primposkladu>
<vozvrat>1</vozvrat>
<reliable>1</reliable>
<delivery_type>1</delivery_type>
<distributor>1</distributor>
</detail>


* * *

<detail>
<uid>
123456789123456789</uid>
<id>
12345680</id>
<dataprice></dataprice>
<code>
K7450</code>
<producer>
<![CDATA[MOOG]]></producer>
<caption>
<![CDATA[]]></caption>
<price>
0</price>
<rest></rest>
<deliverydays>
<![CDATA[]]></deliverydays>
<delivery>
<![CDATA[]]></delivery>
<currency>
R</currency>
<analog>
+</analog>
<stock></stock>
<amount>
20</amount>
<stat_otkaz>
10</stat_otkaz>
<outputorderstime>
12:00;16:00</outputorderstime>
<primposkladu>
�������� �� ��������!!!</primposkladu>
<vozvrat>1</vozvrat>
<reliable>0</reliable>
<delivery_type>0</delivery_type>
<distributor>0</distributor>
</detail>
</pricelist>

Для serialize() получаем документ (прайслист) вида:

a:1:{
 s:9:"pricelist";a:10:{
  i:0;a:12:{
   s:3:"uid";s:18:"123456789123456789";
   s:2:"id";i:12345671;
   s:9:"dataprice";N;
   s:4:"code";s:5:"00710";
   s:8:"producer";s:8:"CHRYSLER";
   s:7:"caption";s:0:"";
   s:5:"price";d:0;
   s:12:"deliverydays";s:0:"";
   s:8:"delivery";s:0:"";
   s:8:"currency";s:1:"R";
   s:6:"analog";s:0:"";
   s:5:"stock";N;
  }
  i:1;a:13:{
   s:3:"uid";s:22:"123456789123456789";
   s:2:"id";i:12345672;
   s:9:"dataprice";s:10:"2010.01.15";
   s:4:"code";s:10:"52088808AB";
   s:8:"producer";s:8:"CHRYSLER";
   s:7:"caption";s:38:"ШАРОВАЯ ОПОРА ЗАДНЯЯ";
   s:5:"price";d:1001;
   s:4:"rest";s:2:"60";
   s:12:"deliverydays";s:10:"1-3 дня";
   s:8:"delivery";s:22:"цена с дост.";
   s:8:"currency";s:1:"R";
   s:6:"analog";s:1:"+";
   s:5:"stock";s:7:"STOCK64";
  }

* * *

  i:9;a:12:{
   s:3:"uid";s:22:"123456789123456789";
   s:2:"id";i:12345680;
   s:9:"dataprice";N;
   s:4:"code";s:5:"K7450";
   s:8:"producer";s:4:"MOOG";
   s:7:"caption";s:0:"";
   s:5:"price";d:0;
   s:12:"deliverydays";s:0:"";
   s:8:"delivery";s:0:"";
   s:8:"currency";s:1:"R";
   s:6:"analog";s:1:"+";
   s:5:"stock";N;
  }
 }
}

Для JSON получаем документ вида:

{"pricelist":[
  {
   "uid":"123456789123456789",
   "id":12345671,
   "dataprice":null,
   "code":"00710",
   "producer":"CHRYSLER",
   "caption":"",
   "price":0,
   "deliverydays":"",
   "delivery":"",
   "currency":"R",
   "analog":"",
   "stock":null
  },
  {
   "uid":"123456789123456789",
   "id":12345672,
   "dataprice":"2010.01.15",
   "code":"52088808AB",
   "producer":"CHRYSLER",
   "caption":"\u0428\u0410\u0420\u041e\u0412\u0410\u042f \u041e\u041f\u041e\u0420\u0410 \u0417\u0410\u0414\u041d\u042f\u042f",
   "price":1001,
   "rest":"60",
   "deliverydays":"1-3 \u0434\u043d\u044f",
   "delivery":" \u0446\u0435\u043d\u0430 \u0441 \u0434\u043e\u0441\u0442.",
   "currency":"R",
   "analog":"+",
   "stock":"STOCK64"
  },

* * *

  {
   "uid":"123456789123456789",
   "id":12345680,
   "dataprice":null,
   "code":"K7450",
   "producer":"MOOG",
   "caption":"",
   "price":0,
   "deliverydays":"",
   "delivery":"",
   "currency":"R",
   "analog":"+",
   "stock":null
  }
 ]
}

В случае ошибки для 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:"Ошибка в указании параметров поиска.";
}
}

Расшифровка выдачи прайс-листа

uid
уникальный идентификатор запроса, необходимый для отправки позиции в корзину
id
уникальный идентификатор позиции
dataprice
дата обновления цены вида ГГГГ.ММ.ДД или пустое значение
code
номер детали
producer
производитель детали: произвольная строка либо пустое значение
caption
название детали: произвольная строка либо пустое значение
price
цена: целое число или пустое значение
rest
количество на складе: либо целое число, либо "+", либо пустое значение
deliverydays
сроки доставки: произвольная строка. Чаще всего вида "x-y дней"
delivery
Описание доставки
currency
Валюта. R, U или E
analog
признак неоригинальной запчасти.
stock
код склада
amount
кратность количества для заказа (Количество единиц товара в упаковке) К примеру если стоит 50, заказать можно 50, 100, 150 и т.д.
stat_otkaz: процент отказов по данному стоку
outputorderstime:
primposkladu:
vozvrat
0 - возвраты принимаются с удержанием; 1 - возвраты не принимаются; 2 - возвраты принимаются без удержания
delivery_type
Центральный склад
reliable
Nadegniy
distributor
distributor

3. Выбираем из прайслиста интересующую позицию и берём соответствующие ей поля code, stock и producer. Обращаемся к сервису с указанием параметров code, stock и producer:

https:// next-auto.pro /xmlprice.php?login=mylogin&password=mypassword&code=52088808AB&stock=STOCK242&producer=CHRYSLER

В случае успеха для XML получаем документ (данные по детали) вида:

<detail>
<dataprice>2011.02.04</dataprice>
<code>
52088808AB</code>
<producer>
<![CDATA[CHRYSLER]]></producer>
<caption>
<![CDATA[BALLJOINT]]></caption>
<price>
100</price>
<rest>
+</rest>
<deliverydays>
<![CDATA[1-3 дня]]></deliverydays>
<delivery>
<![CDATA[ цена с дост.]]></delivery>
<currency>
R</currency>
<analog></analog>
<stock>
STOCK242</stock>
<amount></amount>
<stat_otkaz></stat_otkaz>
<outputorderstime></outputorderstime>
<primposkladu></primposkladu>
<vozvrat>0</vozvrat>
<reliable>0</reliable>
<delivery_type>0</delivery_type>
<distributor>0</distributor>
<exists>
1</exists>
</detail>

Для serialize() получаем документ (прайслист) вида:

a:1:{
 s:6:"detail";a:12:{
   s:9:"dataprice";s:10:"2010.01.15";
   s:4:"code";s:10:"52088808AB";
   s:8:"producer";s:8:"CHRYSLER";
   s:7:"caption";s:9:"BALLJOINT";
   s:5:"price";d:100;
   s:4:"rest";s:1:"+";
   s:12:"deliverydays";s:10:"1-3 дня";
   s:8:"delivery";s:22:" цена с дост. ";
   s:8:"currency";s:1:"R";
   s:6:"analog";s:0:"";
   s:5:"stock";s:8:"STOCK242";
   s:6:"amount";N;
   s:6:"stat_otkaz";N;
   s:6:"outputorderstime";N;
   s:6:"primposkladu";N;
   s:6:"vozvrat";N;
   s:6:"reliable";N;
   s:6:"delivery_type";N;
   s:6:"distributor";N;
   s:6:"exists";s:1:"1";
  }
}

Для JSON получаем документ вида:

{"pricelist":[
{"detail":{
   "dataprice":"2011.02.04",
   "code":"52088808AB",
   "producer":"CHRYSLER",
   "caption":"BALLJOINT",
   "price":100,
   "rest":"+",
   "deliverydays":"1-3 \u0434\u043d\u044f",
   "delivery":" \u0446\u0435\u043d\u0430 \u0441 \u0434\u043e\u0441\u0442.",
   "currency":"R",
   "analog":"",
   "stock":"STOCK242",
   "amount":null
   "stat_otkaz":null
   "outputorderstime":null
   "primposkladu":null
   "vozvrat":0
   "reliable":0
   "delivery_type":0
   "distributor":0
   "exists":"1"
}
}

В случае ошибки для XML получаем документ вида:

<error>
<code>9</code>
<descr><![CDATA[Ошибка ввыдачи наличия и цены.]]</descr>
</error>

Для JSON получаем документ вида:

{
"error":{
  "code":9,
  "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:9;
  s:5:"descr";s:67:"Ошибка выдачи наличия и цены.";
}
}

Расшифровка выдачи наличия

dataprice
дата обновления цены вида ГГГГ.ММ.ДД или пустое значение
code
номер детали
producer
производитель детали: произвольная строка либо пустое значение
caption
название детали: произвольная строка либо пустое значение
price
цена: целое число или пустое значение
rest
количество на складе: либо целое число, либо "+", либо пустое значение
deliverydays
сроки доставки: произвольная строка. Чаще всего вида "x-y дней"
delivery
Описание доставки
currency
Валюта. R, U или E
analog
признак неоригинальной запчасти.
stock
код склада
amount
кратность количества для заказа (количество единиц товара в упаковке) К примеру если стоит 50, заказать можно 50, 100, 150 и т.д.
stat_otkaz - процент отказов по данной поставке
Количество единиц товара в упаковке
outputorderstime -
primposkladu -
vozvrat
0 - возвраты принимаются с удержанием; 1 - возвраты не принимаются; 2 - возвраты принимаются без удержания
reliable
Nadegniy
delivery_type
Центральный склад
distributor
Официальный дистрибьютор
exists
Признак наличия

 

Примечания

В выдаче прайс-листа и наличия в тегах <caption></caption> выводится название детали, отфильтрованное по регулярному выражению /[^\w\s\dА-Яа-я]/.