31 Октября 2012

API ПОРТАЛа Москворечье Трейдинг

Наш ПОРТАЛ позволяет Вам использовать его функционал в Ваших собственных сервисах посредством API. Интерфейс позволяет получать: название бренда, артикул, название товара, остаток на складе, минимальное кол-во для заказа, цены другие параметры. Так же инструмент позволяет добавлять выбранный товар в корзину ПОРТАЛа.


API ПОРТАЛа предполагает обмен данными в формате JSON (При необходимости возможно использование SOAP/XML).  

API (application programming interface, в переводе с буржуйского – интерфейс программирования приложений) используется в том случае, если необходимо предоставить сторонним разработчикам часть низкоуровневого функционала некоторой системы

API ПОРТАЛа предполагает обмен данными в формате JSON. Преимущество JSON в большей компактности по сравнению с SOAP/XML. (При необходимости возможно добавление механизма обмена данными в других форматах)

Во многих языках программирования существуют встроенные модули и подключаемые библиотеки для работы с JSON. Они формируют массивы JSON из структур, свойственных языку, например из словарей и ассоциативных массивов. Ниже перечислены рекомендуемые модули и библиотеки:

  • Perl: модуль JSON::Syck.
  • PHP: встроенная поддержка JSON началась в версии 5.2.0. В предыдущих версиях можно использовать библиотеку Services_JSON.
  • Python: модуль json.

Запросы в формате JSON

Данные в формате JSON передаются методом HTTP POST или HTTP GET. Запросы отправляют на адрес API ПОРТАЛа: http://portal.moskvorechie.ru/api.lmz

Для доступа к API через криптографический протокол SSL, который защищает данные от несанкционированного доступа при передаче по открытым каналам связи, запросы надо отправлять на адрес: https://portal.moskvorechie.ru/api.lmz

API доступен ТОЛЬКО авторизованным пользователям ПОРТАЛа.

Пользователи идентифицируют себя следующим способом:

передаваемый запрос на сервер всегда должен содержать ключ "l" со значением логина, для доступа на ПОРТАЛ. А также должен содержать ключ "p" с набором 64 символов, которые отображаются у Вас в настройках при включении доступа к API ПОРТАЛа.

API ПОРТАЛа поддерживает несколько различных режимов кодировки. По умолчанию наш ПОРТАЛ работает с кодировкой CP-1251, но также может получать/выдавать результаты в кодировках: UTF-8 и KOI8-R. Для того, чтобы на ПОРТАЛе использовать кодировку отличную от CP-1251, необходимо указать дополнительный входной параметр "cs=utf8" для использования кодировки UTF-8 или же "cs=koi8r" для работы с кодировкой KOI8-R.

Также передаваемый массив при запросе всегда включает ключ act с именем вызываемого метода, доступные методы перечислены ниже.
Например, при использовании метода HTTP GET, запрос будет выглядеть следующим образом:

https://portal.moskvorechie.ru/api.lmz?l=username&p=keyphrase&act=brand_by_nr&nr=kl2&alt

На данный момент доступны следующие функции:

Получение списка производителей по номеру производителя. - "brand_by_nr" 
Функция возвращает список названия брендов производителей, а также названия автозапчастей при запросе по номеру запчасти. Поддерживается возможность задавать как сам номер производителя, так и оригинальные номера, а также кроссовые (альтернативные) номера.

"act=brand_by_nr"
Функция возвращает список названия брендов производителей, а также названия автозапчастей при запросе по номеру запчасти. Поддерживается возможность задавать как сам номер производителя, так и оригинальные номера, а также кроссовые (альтернативные) номера.
Для обращения к данной функции необходимо передать следующие значения:
"l=username" - Имя пользователя, логин
"p=keyphrase" - Ключ доступа (64 символа)
"act=brand_by_nr" - Название функции
"nr=search number" - Номер производителя

А также дополнительные параметры:
"name" - Добавляет к результатам запроса дополнительное поле "name" в котором содержится название автозапчастей для каждого названия производителя.
"oe" - По умолчанию поиск производителей производится только по номеру самого производителя, но если добавить данный параметр, тогда можно также передавать оригинальные номера, и позиции будут искаться через кросс таблицы на оригинальные номера.
"alt" - При использовании данного параметра, в результатах данной процедуру будут также выводиться бренды, на которые есть аналоги на нашем складе.

Функция возвращает следующие значения:
"nr" - Номер производителя
"brand" - Название производителя
"name" - Название товара, выводится при использовании при запросе параметра "name"

Пример использования:
Запрос методом GET
http://portal.moskvorechie.ru/api.lmz?l=username&p=keyphrase&act=brand_by_nr&nr=32-D88-F&alt&name

Данный запрос получает список названий производителей, названий автозапчастей и их номеров, у которых в качестве номера производителя или в качестве кросс-номеров (аналогов) указан номер "32-D88-F"
Результатом данного запроса будет:
{'result': [
{'nr':'A-3045GR','brand':'Optimal','name':'Амортизатор BMW E46 -04/01 пер.прав.газ.SPORT'},
{'nr':'32-D88-F','brand':'Boge','name':'Амортизатор BMW E46 -04/01 пер.прав.газ.SPORT'},
{'nr':'A-3105GR','brand':'Optimal','name':'Амортизатор BMW E46 -04/01 пер.прав.газ.SPORT'}
]}

2. Получение списка автозапчастей по номеру и названию производителя. - "price_by_nr_firm" 
Функция возвращает список позиций(автозапчастей) при запросе по номеру запчасти и названии производителя. Поддерживается возможность задавать как сам номер производителя, так и оригинальные номера, а также кроссовые(альтернативные) номера.

"act=price_by_nr_firm"
Для обращения к данной функции необходимо передать следующие значения:
"l=username" - Имя пользователя, логин
"p=keyphrase" - Ключ доступа (64 символа)
"act=price_by_nr_firm" - Название функции
"nr=search number" - Номер производителя

А также дополнительные параметры:
"f=brand name" - Название производителя, при необходимости мы сможете отфильтровать по определенному производителю.
"oe" - По умолчанию поиск производителей производится только по номеру самого производителя, но если добавить данный параметр, тогда можно также передавать оригинальные номера, и позиции будут искаться через кросс таблицы на оригинальные номера.
"alt" - При использовании данного параметра, в результатах данной процедуру будут также выводиться бренды, на которые есть аналоги на нашем складе.
"avail" - Отображать только позиции, которые есть в наличии на складе.
"gid" - Выводить дополнительное поле, идентифицирующее позицию в прайс-листе. Необходимо для выполнения операций с данной позицией, напр. "добавление в корзину".

Функция возвращает следующие значения:
"nr" - Номер производителя
"brand" - Название производителя
"name" - Название автозапчасти
"stock" - Кол-во позиций на складе
"delivery" - Средний срок поставки
"minq" - Минимальное кол-во для заказа
"upd" - Дата, время на которое актуальны данные
"price" - Цена для данного клиента
"currency" – Валюта, в которой представлена цена
"gid" - Если указан доп. параметр "gid", ID товара в прайс-листе.

Пример использования:
Запрос методом GET
http://portal.moskvorechie.ru/api.lmz?l=username&p=keyphrase&act=price_by_nr_firm&nr=32-D88-F&f=Boge&alt

Данный запрос получает список позиций, названий, их номеров, цен и т.д. у которых в качестве номера производителя или в качестве кросс-номеров (аналогов) указан номер "32-D88-F" и производитель "Boge"
Результатом данного запроса будет:
{'result': [
{'nr':'32-D88-F', 'brand':'Boge', 'name':'Амортизатор пер прав BMW E46 SPORT', 'stock':'2', 'delivery':'10 дней', 'minq':'1', 'upd':'11.03.12 02:30', 'price':'3629.50', 'currency':'руб.'},
{'nr':'A-3105GR', 'brand':'Optimal', 'name':'Амортизатор газ. F. R BMW 3 E46 98-01 (32-D88-F)', 'stock':'1', 'delivery':'10 дней', 'minq':'1', 'upd':'11.03.12 02:45', 'price':'2039.09', 'currency':'руб.'}
]}
3. Добавление позиции из прайс-листа в корзину пользователя. - "to_basket"
Функция позволяет добавить позиции(автозапчасти) из прайс-листа в корзину пользователя ПОРТАЛа. Для добавления в корзину товара необходимо передать функции внутренний ID позиции.

"act=to_basket"
Функция позволяет добавить позиции (автозапчасти) из прайс-листа в корзину пользователя ПОРТАЛа. Для добавления в корзину товара необходимо передать функции внутренний ID позиции, который можно получить из других функций применяя дополнительный входной параметр "gid".
Для обращения к данной функции необходимо передать следующие значения:
"l=username" - Имя пользователя, логин
"p=keyphrase" - Ключ доступа (64 символа)
"act=to_basket" - Название функции
"gid=ID" - ID позиции в прайс-листе.

А также дополнительные параметры:
"q=integer" - Название производителя, при необходимости мы сможете отфильтровать по определенному производителю.
"c=comment" - По умолчанию поиск производителей производится только по номеру самого производителя, но если добавить данный параметр, тогда можно также передавать оригинальные номера, и позиции будут искаться через кросс таблицы на оригинальные номера.

Функция возвращает следующие значения:
"status" - Статус добавления товара в корзину, 0 - товар успешно добавлен, 1 - произошла ошибка (см поле "msg").
"msg" - Если произошла ошибка при добавлении товара в корзину, в данном поле будет указано, почему позиция не была добавлена в корзину.

Пример использования:
Запрос методом GET
http://portal.moskvorechie.ru/api.lmz?l=username&p=keyphrase&act=to_basket&gid=100185696&q=3
Данный запрос добавляет позицию с ID 100185696 в корзину пользователя username в количестве 3-х штук.
Результатом данного запроса будет:
{'result': {
'status':'0',
'msg':''
  }}

Если Вам необходимо получать какую-либо информацию с нашего портала, и этот функционал все еще не создан, Вам надо просто отправить Ваш запрос разработчикам портала через панель технической поддержки в ПОРТАЛе или же отправить письмо на адрес: support@onwheels.ru
pquot;msg