Программные интерфейсы (API)
Коды партнерской программы
Код | Описание |
1 | обычный пользователь |
2 |
партнер, размещающий ссылки на своем сайте только на www.books.ru |
3 |
партнер, размещающий ссылки на своем сайте не только на www.books.ru |
4 | поисковая система (доступен обычный каталог) |
5 | интернет-магазин (доступен обычный каталог) |
6 | издательство/производитель (доступен обычный каталог) |
7 | бронзовый партнер (доступны: обычный каталог, каталог с расширенными описаниями) |
8 | серебряный партнер (доступны: обычный каталог, каталог с категориями) |
9 | золотой партнер (доступны: обычный каталог, каталог с категориями и с расширенными описаниями) |
Доступные API-интерфейсы
Коды программы |
Интерфейс | Описание |
любой | search | Получение данных о товаре. |
4-9 |
cart |
Загрузка корзины позволяет передать сразу несколько товаров в корзину books.ru. |
5,7,8,9 |
regions |
Получение списка регионов. |
5,7,8,9 | region_delivery | Получение списка доступных способов доставки для региона. |
5,7,8,9 | order_interface |
Создание заказа. Сначала необходимо получить список регионов и при создании заказа запросить список доступных способов доставки для конкретного региона. |
5,7,8,9 | order_interface_nal | Создание заказа с оплатой наличными. |
5,7,8,9 | order_status | Проверка статуса заказа. |
5,7,8,9 | order_cancel | Отмена заказа. |
Описание интерфейсов
search (интерфейс для получения данных о товарах по запросу)
Назначение: после того, как данные о товарах получены в каталоге XML, данный запрос можно использовать для получения обновленной информации о конкретных товарах (аннотация, цена и т.п.)
Расположение: https://www.books.ru/interface/search/search.php
Для получения необходимых данных о товаре или товарах, необходимо отправить на интерфейс запрос в определенном виде. В качестве ответа предоставляется список книг, соответствующий этому запросу в XML виде. Запросы могут быть как общими (в качестве ответа партнер получает список книг), так и персонализированными, в которых поиск производится по идентификатору, и в качестве ответа на такой запрос будет выдаваться лишь одна книга.
Скрипт принимает от пользователя запрос со следующими параметрами:
username – имя пользователя
password – пароль
query – текст запроса
start – номер записи, с которой будет начинаться вывод итогов поиска. Т.е. есть, если в этом поле стоит например 2, то вывод начнется с 3 записи, поскольку отсчет начинается с 0.
count – количество выводимых записей.
type – поле выполняет фильтрацию по типу товара(книги, файлы, электроника и т.д.)
category – фильтрация по категориям. Если задать только категорию без текста запроса, то будет выборка полной категории.
sort - тип сортировки, цифра (1 - по торговому рейтингу, 2 - по оценке посетителей, 3 - по цене от дешевых к дорогим, 4 - по цене от дорогих к дешевым, 5 - по дате выхода, сначала новинки, 7 - по доступности, 8 - по названию а-я, 9 - по названию я-а, 10 - по автору а-я, 11 - по автору я-а)
id – данное поле позволяет найти 1 товар по его идентификатору. Выдается расширенная информация о товаре, включая полную аннотацию
Пример формы для отправки поискового запроса:
<form action="https://www.books.ru/interface/search/search.php" method="post">
<input name="username" type="text" value="[email protected]"/>
<input name="password" type="text" value="123"/>
<p><b>Запрос :</b></p>
<input name="query" type="text"/><br/>
<input name="start" type="text"/><br/>
<input name="count" type="text"/><br/>
<input name="type" type="text"/><br/>
<input name="category" type="text"/><br/>
<p><b>или</b></p>
<input name="id" type="text"/><br/>
<p>
<input type="submit" value="Отправить">
</p>
</form>
Входные данные для запроса query = «php», start = 0 (отсчет элементов начинается с 0), count = 3.
<data>
<main>
<matching>66</matching>
<start>0</start>
<returned>3</returned>
</main>
<items>
<item>
<id>566746</id>
<name>Изучаем PHP и MySQL, 2-е издание</name>
<released>2008</released>
<info>
Совместное применение PHP и MySQL становится стандартом разработки динамических веб-сайтов на основе баз данных. Для начинающих пр
</info>
<price>189</price>
<authors>Дэвис М., Филлипс Д.</authors>
<type>books</type>
<maker>Символ-Плюс</maker>
</item>
<item>
<id>377120</id>
<name>PHP 5. Профессиональное программирование</name>
<released>2006</released>
<info>
Каким бы большим и сложным ни был ваш программный проект, вы сможете сделать его более мощным и совершенным, прочитав это подробно
</info>
<price>90</price>
<authors>Гутманс Э., Баккен С., Ретанс Д.</authors>
<type>books</type>
<maker>Символ-Плюс</maker>
</item>
<item>
<id>429052</id>
<name>AJAX и PHP. Разработка динамических веб-приложений</name>
<released>2006</released>
<info>
Книга "AJAX и PHP: разработка динамических веб-приложений" - самый удобный и полезный ресурс, который поможет вам войти в захватыв
</info>
<price>350</price>
<authors>Дари К., Бринзаре Б., Черчез-Тоза Ф., Бусика М.</authors>
<type>books</type>
<maker>Символ-Плюс</maker>
</item>
</items>
</data>
cart (интерфейс передачи данных для заполнения корзины)
Назначение: Передача заполненной корзины
Расположение: https://www.books.ru/interface/cart/fill_cart.php
Интерфейс представляет собой скрипт, получающий в качестве параметров массив идентификаторов (item[0], item[1], item[2] и т.д.) товаров и партнерский идентификатор (поле partner) посредством POST или GET запросов. После получения этих данных, скрипт должен будет заполнить корзину товарами, и перенаправить пользователя на страницу с содержимым корзины.
Пример формы отправки данных (массив элементов):
<form action="https://www.books.ru /interface/cart/fill_cart.php" method="post">
<input name="item[88888]" type="text" value="1"/><br/>
<input name="item[557232]" type="text" value="3"/><br/>
<input name="partner" type="text"/><br/>
<p><input type="submit" value="Отправить"></p>
</form>
Пример GET-запроса:
https://www.books.ru/interface/cart/fill_cart.php?item[613852]=2&item[816603]=2&partner=1
regions (интерфейс для получение списка доступных регионов)
Назначение: Получение списка доступных регионов доставки для вывода их на своем сайте.
Расположение: https://www.books.ru/interface/regions/regions.php
Скрипт принимает в качестве параметров данные партнера.
Пример формы отправки данных(массив элементов):
<form action="https://www.books.ru/interface/regions/regions.php" method="post">
<input name="username" type="text" value="[email protected]"/><br/>
<input name="password" type="text" value="123"/><br/>
<p><input type="submit" value="Отправить"></p>
</form>
Пример GET-запроса:
https://www.books.ru/interface/regions/[email protected]&password=123
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<data>
<region id='271'>Москва (внутри МКАД)</region>
<region id='1003'>Москва (за МКАД)</region>
</data>
region_delivery (интерфейс для получение списка доступных способов доставки для регионов)
Назначение: Получение списка доступных способов доставки регионов доставки для вывода их на своем сайте.
Расположение: https://www.books.ru/interface/region_delivery/region_delivery.php
Скрипт принимает в качестве параметров данные партнера и ID необходимого региона.
Пример формы отправки данных(массив элементов):
<form action="https://www.books.ru/interface/region_delivery/region_delivery.php" method="post">
<input name="username" type="text" value="[email protected]"/><br/>
<input name="password" type="text" value="123"/><br/>
<input name="id_region" type="text" value="304"/><br/>
<p><input type="submit" value="Отправить"></p>
</form>
Пример GET-запроса:
https://www.books.ru/interface/region_delivery/[email protected]&password=123&id_region=304
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<data>
<delivery id='19'>самовывоз (м.Василеостровская)</delivery>
<delivery id='14'>самовывоз (м.Садовая/Сенная)</delivery>
<delivery id='11'>доставка курьером по Петербургу</delivery>
<delivery id='15'>доставка курьером за КАД</delivery>
<delivery id='3'>почта (Россия)</delivery>
</data>
order_interface (интерфейс создания заказа)
Назначение: Создание заказа от имени партнера, но с адресом доставки, указанным клиентом партнера.
Расположение: https://www.books.ru/interface/order/order_dep.php
Скрипт принимает в качестве параметра xml-документ в кодировке UTF-8, пример документа приведен ниже. Поля login и password должны содержать логин и пароль партнера
zip – почтовый индекс получателя
city, address, name, middlename, family – город, адрес, ФИО
email – электронная почта получателя
region – номер региона (нужно получить через API для получения регионов)
delivery – номер способа доставки (нужно получить через API для получения способов доставки)
cart – узел, содержащий список заказаных элементов(тег item, свойство count указывает на количество экземпляров элемента)
Данные отправляются посредством POST или GET запросов в виде xml-структуры в параметре "query", исходя из полученных данных формируется заказ. В качестве способа оплаты будет автоматически указываться оплата из свободных средств, которые партнер заблаговременно внес на личный счет. Как результат, в случае успешного формирования заказа, партнер получает номер созданного заказа. Если в ходе заказа произошли какие-либо ошибки, в качестве ответа партнеру передается код и описание ошибки.
Пример xml документа, передаваемого скрипту, создающему заказ:
<data>
<login>ivan@mail.ru</login>
<password>1</password>
<zip>123453</zip>
<city>СПб</city>
<address>Ул. Ленина Дом ильича</address>
<name>Name</name>
<middlename>Mid</middlename>
<family>Family</family>
<email>[email protected]</email>
<region>45</region>
<delivery>1</delivery>
<cart>
<item count="1">565791</item>
</cart>
</data>
order_interface_nal (интерфейс создания заказа с оплатой наличными)
Назначение: Создание заказа от имени партнера, но с адресом доставки, указанным клиентом партнера, с оплатой наличными при получении заказа.
Расположение: https://www.books.ru/interface/order/order.php
Скрипт принимает в качестве параметра xml документ в кодировке UTF-8, пример документа приведен ниже. Поля login и password должны содержать логин и пароль партнера
zip – почтовый индекс получателя
city, address, name, middlename, family – город, адрес, ФИО
email – электронная почта получателя
phone – телефон получателя
region – номер региона (нужно получить через API для получения регионов)
delivery – номер способа доставки (нужно получить через API для получения способов доставки)
payment – номер способа оплаты наличными (таблицу соответствий смотрите ниже).
cart – узел, содержащий список заказаных элементов (тег item, свойство count указывает на количество экземпляров элемента)
Данные отправляются посредством POST или GET запросов в виде xml-структуры в параметре "query", исходя из полученных данных формируется заказ. Как результат, в случае успешного формирования заказа, партнер будет получать номер созданного заказа. Если в ходе заказа произошли какие-либо ошибки, в качестве ответа партнеру будет отправлен код и описание ошибки.
Таблица соответствий способов оплат наличными и способов доставки
Способ доставки |
Способ оплаты наличными |
2 - доставка курьером по Москве |
4 - наличными курьеру |
3 - почта (Россия) |
6 - наложенный платеж |
8 - доставка курьером за МКАД |
4 - наличными курьеру |
9 - самовывоз (м.Динамо/Беговая) |
5 - наличными |
11 - доставка курьером по Петербургу |
4 - наличными курьеру |
12 - самовывоз (м.Арбатская) |
5 - наличными |
14 - самовывоз (м.Садовая/Сенная) |
5 - наличными |
15 - доставка курьером за КАД |
4 - наличными курьеру |
19 - самовывоз (м.Василеостровская) |
5 - наличными |
Пример xml документа, передаваемого скрипту, создающему заказ.
<data>
<login>ivan@mail.ru</login>
<password>1</password>
<zip>123453</zip>
<city>СПб</city>
<address>Ул. Ленина Дом ильича</address>
<name>Name</name>
<middlename>Mid</middlename>
<family>Family</family>
<email>[email protected]</email>
<region>304</region>
<delivery>3</delivery>
<payment>6</ payment >
<cart>
<item count="1">565791</item>
</cart>
</data>
order_status (интерфейс для проверки статуса заказа)
Назначение: Проверка текущего статуса заказа, созданного от имени партнера.
Расположение: https://www.books.ru/interface/order/status.php
Скрипт принимает в качестве параметра xml документ в кодировке UTF-8, пример документа приведен ниже. Поля login и password должны содержать логин и пароль партнера
id – номер заказа
Пример xml документа, передаваемого скрипту:
<data>
<login>ivan@mail.ru</login>
<password>1</password>
<id>123453</id>
</data>
Пример ответа:
<data>
<orderid>123453</orderid>
<status>принят к исполнению</status>
</data>
order_cancel (интерфейс для отмены заказа)
Назначение: Отмена заказа, созданного от имени партнера.
Расположение: https://www.books.ru/interface/order/cancel.php
Скрипт принимает в качестве параметра xml документ в кодировке UTF-8, пример документа приведен ниже. Поля login и password должны содержать логин и пароль партнера
id – номер заказа
Заказ можно отменить, если он ещё не отправлен!
Пример xml документа, передаваемого скрипту:
<data>
<login>ivan@mail.ru</login>
<password>1</password>
<id>123453</id>
</data>
Пример ответа:
<data>
<orderid>123453</orderid>
<status>заказ отменен</status>
</data>