Авторизация

  • /auth - получение сессионного ключа доступа
  • /signup - регистрация нового пользователя

Звонки

Заказы

Магазины

  • /shops/goods - получение списка товаров магазина

Функция /auth

Функция позволяет получить пользовательский сессионный ключ доступа к API.

Входные параметры:

Параметр Назначение
email* Адрес электронной почты пользователя
password* Пароль пользователя

Пример вызова:

{
  "email": "test@test.ru",
  "password": "foobar"
}

Возвращаемые значения:

Параметр Назначение
token Сессионный ключ доступа для API v2.0
legacy Данные, использующиеся для авторизации в предыдущих версиях системы. Массив состоящий из двух полей: affid и security, где affid - идентификатор пользователя, а security - хэшированный пароль. Для корректной работы устаревших частей системы, эти два параметра должны быть сохранены в одноименных cookie.

Пример:

{
    "token": "27a6e9abc4b2bb0bab2ffadfef915ae86bc",
    "legacy": {
        "affid": 27,
        "security": "6e9abc4b2bb0bab2ffadfef915ae86bc"
    }
}

Возможные ошибки:

Код Константа Описание
1 ERROR_EMAIL_REQUIRED Необходимо указать e-mail
2 ERROR_PASSWORD_REQUIRED Необходимо указать пароль
3 ERROR_EMAIL_INVALID Неверный e-mail адрес
7 ERROR_DATABASE Ошибка базы данных
8 ERROR_ACCESS_DENIED Доступ запрещен

Функция /signup

Функция позволяет зарегистрировать в системе нового пользователя.

Входные параметры:

Параметр Назначение Примечание
name* Имя пользователя
email* Адрес электронной почты
password* Пароль пользователя
captcha* reCAPTCHA g-recaptcha-response Для защиты от спама используется reCAPTCHA
sitekey="6LcEU8ISAAAAAAhA6dWEeQMfZD4_gOmTgdDLl9q-"
ref_id Идентификатор реферала

Функция /orders/new

Функция позволяет зарегистрировать в системе новый заказ.

Передаваемые данные:

Параметр Назначение
token Ключ авторизации. При использовании сессионного ключа необходима передача параметра shop_id
order Объект, содержащий данные заказа

Аттрибуты объекта order:

Аттрибут Назначение Примечание
fname* Имя
lname* Фамилия
mname* Отчество
phone* Контактный телефон
email Адрес электронной почты
note Примечание к заказу
shop_id Идентификатор магазина Обязательный, если используется сессионный API Key
customer* Тип покупателя 1 - Физ.лицо
2 - Юр.лицо/ИП
paymethod* Способ оплаты 1 - Наличные
2 - Банковский платёж/безналичный расчёт
3 - Банковская карта (лично)
4 - Электронный платёж (Я.Деньги, Webmoney, QIWI и т.п.)
5 - Банковская карта (онлайн)
recievemethod* Способ получения 0 - Собственная курьерская служба
1 - Самовывоз с собственных пунктов выдачи
2 - Транспортная компания
address Адрес доставки Обязательно, для курьерской доставки
city Город доставки Обязательно, для доставок транспортными компаниями
emoney_details Идентификатор кошелька плательщика Обязательно, при оплате электронным платежом
individual_address Адрес прописки Обязательно, при доставке транспортной компанией на физ.лицо
transport_company_id Идентификатор транспортной компании 2 - ПЭК
3 - Деловые линии
4 - EMS Почта России
5 - СДЭК (возможна оплата при получении)
legal_name Наименование организации Обязательно, для покупателя юр.лица
legal_address Юридический адрес организации Обязательно, для покупателя юр.лица
legal_inn ИНН Обязательно, для покупателя юр.лица
legal_kpp КПП Обязательно, для покупателя юр.лица
legal_rs Расчётный счёт Обязательно, для покупателя юр.лица
legal_bank Банк, город Обязательно, для покупателя юр.лица
legal_ks Кор.счёт Обязательно, для покупателя юр.лица
legal_bik БИК Обязательно, для покупателя юр.лица
delivery_tariff_id Идентификатор индивидуального тарифа доставки Используется для функционала "Доставка за счёт партнера"
goods* Массив идентификаторов товаров заказа их количества См. примеры

Пример, самовывоз с ПВЗ, физ.лицо, оплата наличными:

{
  "token": "27a6e9abc4b2bb0bab2ffadfef915ae86bc",
  "order": {
    "fname": "Иван",
    "lname": "Иванов",
    "mname": "Иванович",
    "phone": "+79123456789",
    "note": "Подъедет на личном а/м, заказать заранее пропуск",
    "customer": 1,
    "paymethod": 1,
    "recievemethod": 1,
    "goods": [
      {
         "code": "hybrid-500",
         "quantity": 2,
      },
    ]
  }
}

Пример, физ.лицо, оплата картой на сайте, доставка транспортной компанией ПЭК:

{
  "token": "27a6e9abc4b2bb0bab2ffadfef915ae86bc",
  "order": {
    "fname": "Пётр",
    "lname": "Петров",
    "mname": "Петрович",
    "phone": "+79876543219",
    "customer": 1,
    "paymethod": 2,
    "recievemethod": 2,
    "transport_company_id": 2,
    "city": "Воронеж",
    "individual_address": "Воронеж, ул.Стачек, д.15, кв.234",
    "goods": [
      {
         "code": "ibp-pro-500",
         "quantity": 1,
      },
      {
         "code": "akb-12-100",
         "quantity": 1,
      },
    ]
  }
}

Пример, юр.лицо, курьерская доставка:

{
  "token": "27a6e9abc4b2bb0bab2ffadfef915ae86bc",
  "order": {
    "fname": "Сидор",
    "lname": "Сидоров",
    "mname": "Сидорович",
    "phone": "+79876543219",
    "customer": 2,
    "paymethod": 5,
    "recievemethod": 0,
    "address": "Санкт-Петербург, ул.Воронежская, д.31, офис 15",
    "legal_name": "ООО \"Рога и Копыта\"",
    "legal_address": "630108, Ленинградская обл., пос.Вешки, ул.Кленовая, д.11, офис 31",
    "legal_inn": "5428946287",
    "legal_kpp": "540505008",
    "legal_rs": "40702610807000001386",
    "legal_bank": "Банк Филиал №7701 БАНКА ВТБ (ПАО) г.Москва",
    "legal_ks": "30102810148270000795",
    "legal_bik": "044535745",
    "goods": [
      {
         "code": "ibp-pro-500",
         "quantity": 1,
      },
      {
         "code": "akb-12-100",
         "quantity": 1,
      },
    ]
  }
}

Возвращаемые значения:

Параметр Назначение
order Объект, содержащий принятый заказ

Следует отметить, что возвращаемый объект orders не является копией одноименного передаваемого объекта. Возвращаемый объект содержит обработанные и нормализованные данные (например ФИО, адрес доставки и т.п.), а так же дополнен некоторыми аттрибутами:

Аттрибут Назначение
id Идентификатор присвоенный заказу
price Общая стоимость товаров в заказе (без учета доставки)
status Статус заказа (код статуса)
status_str Описание статуса заказа

Возможные ошибки:

Код Константа Описание
8 ERROR_ACCESS_DENIED Недействительный API Key
15 ERROR_INSUFFICIENT_DATA Не переданы необходимые данные
17 ERROR_INSUFFICIENT_DATA_SHOP Использован сессионный API Key, но не передано поле shop_id
16 ERROR_INSUFFICIENT_DATA_NAME Не указано имя покупателя

Функция /shops/goods

В API v2.x для каждого магазина может быть настроен индивидуальный ассортимент товаров. Данная функция позволяет получить список товаров конкретного магазина с привязкой их к категориям.

Входные параметры:

Параметр Назначение Примечание
token* Ключ доступа Для авторизации в этой функции может быть использован как сессионный ключ (token), так и постоянный (API Key). При использовании постоянного ключа, список товаров будет определяться настройками магазина, для которого этот ключ сформирован. При использовании сессионного ключа, будет получен полный список товаров партнерской программы.

Возвращаемые значения:

Параметр Назначение
categories Массив, содержащий описание категорий
goods Массив, содержащий описание товаров

Каждый элемент массива categories имеет следующие аттрибуты:

Аттрибут Тип Описание
id int Идентификатор категории
name string Название категории
description string Текстовое описание категории
parent_id int Идентификатор родительской категории. Задается только для дочерних категорий. В корневых категориях отсутствует
sort_order int порядковый номер для сортировки категорий

Каждый элемент массива goods имеет следующие аттрибуты:

Аттрибут Тип Описание
code string Код товара (идентификатор)
model string Полное название модели (включая название торговой марки)
trademark string Название торговой марки
type string Тип товара (префикс названия)
categories array of int Массив с идентификаторами категорий товара (включая все родительские категории)
price float Цена (в руб.)
special_price float Специальная цена: акция или цена, установленная партнером (для товаров, допускающих произвольную установку цены)
weight float Вес брутто (кг)
length float Длина упаковки (мм)
width float Ширина упаковки (мм)
height float Высота упаковки (мм)
quantity int Товарный остаток (шт.) Включая товары, находящиеся в резерве
article string Артикул, присвоенный производителем
description_short string Краткое описание товара
description string Полное описание товара
attributes array of object Массив характеристик товара. Каждая характеристика обладает аттрибутами name и value
images array of object Массив картинок товара. Каждая картинка описывается объектом с аттрибутами url и md5_checksum
certificate object Сертификат товара. Описывается объектом с аттрибутами url и md5_checksum
manual object Инструкция по эксплуатации/технический паспорт. Описывается объектом с аттрибутами url и md5_checksum

Пример ответа:

{
  "categories": [
    {
      "id": 1,
      "name": "Однофазные стабилизаторы",
      "description": "Однофазные стабилизаторы напряжения на 220В",
      "sort_order": 1
    },
    {
      "id": 2,
      "name": "Rucelf SDF\/SDV\/SDW",
      "description": "Стабилизаторы напряжения с плавной регулировкой и многоступенчатой защитой",
      "parent_id": 1,
      "sort_order": 2
    },
    ...
  ],
  "goods": [
    {
      "code": "ach-500",
      "model": "Энергия АСН-500",
      "trademark": "Энергия",
      "type": "Стабилизатор напряжения",
      "categories": [ 1, 7 ],
      "price": 2100,
      "special_price": 2100,
      "weight": 2.3,
      "length": 230,
      "width": 125,
      "height": 155,
      "quantity": 20,
      "article": "Е0101-0112",
      "description_short": "Однофазный стабилизатор напряжения с повышенной скоростью срабатывания. Используется для защиты оборудования небольшой мощности",
      "description": "Автоматический стабилизатор напряжения Энергия АСН-500 используется для защиты  маломощного оборудования от избыточного или недостаточного напряжения электросети,  а так же от частых колебаний напряжения в диапазоне от 120 до 280В. Благодаря своим  компактным габаритам, малому весу и возможности работать при отрицательных температурах  стабилизатор может быть использован для защиты кассовых аппаратов, газовых котлов или   другого маломощного оборудования в неотапливаемых помещениях или передвижных торговых точках.\nАвтоматические однофазные стабилизаторы напряжения АСН-500 произведятся на  современном заводе и соответствуют высоким международным стандартам (ISO9001). Прибор  оснащен микропроцессором, обеспечивающим скорость переключения реле в 2-4 раза быстрее  других стабилизаторов релейного типа. Блок самотестирования и интеллектуальная программируемая  защита значительно повышает надёжность и продлевает срок службы стабилизатора.\nПрименение новейших разработок при проектировании и создании стабилизаторов наряду с их  невысокой ценой и высоким качеством изготовления позволило стабилизаторам марки АСН быстро  занять большой сегмент рынка бытовых стабилизаторов.",
      "attributes": [
        {
          "name": "Мощность стабилизатора",
          "value": "500 ВA (350..500 Вт)"
        },
        {
          "name": "Количество фаз",
          "value": 1
        },
        ...
      ],
      "images": [
        {
          "url": "http:\/\/cdn.powerpartners.ru\/goods\/img\/ach-500_big.jpg",
          "md5_checksum": "e87598faa158b6333efd297e061f4866"
        },
        {
          "url": "http:\/\/cdn.powerpartners.ru\/goods\/img\/ach-500_big_2.jpg",
          "md5_checksum": "da9705d0ab826f32be8fbea12a3ced6d"
        },
        ...
      ],
      "certificate": {
        "url": "http:\/\/cdn.powerpartners.ru\/goods\/doc\/energy-cert.jpg",
        "md5_checksum": "d40336e57362afeca850effc84a9109b"
      },
      "manual": {
        "url": "http:\/\/cdn.powerpartners.ru\/goods\/doc\/energy_ach_passport.pdf",
        "md5_checksum": "960d0436ac1bb15f69ebb55c6ce57487"
      }
    },
    ...
  ]
}

Следует обратить особое внимание, что любая ссылка на внешний файл (изображения, pdf и т.п.) описывается 2 аттрибутами: url и md5_checksum это позволяет существенно ускорить и оптимизировать процесс синхронизации, поскольку загрузку следует производить лишь при изменении хэша файла (md5_checksum). А так же, позволяет отследить изменение файла, даже если его имя осталось прежним.