Top.Mail.Ru
API сервис для клиентов интернет-магазина (v1)

API сервис для клиентов интернет-магазина (v1)

Содержание

API сервис предоставляет возможность подключать другие сайты, интернет-магазины автозапчастей к вашему сайту по средствам API.

API сервис предоставляет следующие возможности:

  • Проценка — получение актуальной информации о наличии;
  • Заказавтоматический заказ;
  • Статусы — отслеживание статусов заказа.

Доступ к АПИ осуществляется по ключу доступа (api_key) или по коду авторизации (auth_key).

Доступ к АПИ по ключу доступа​

Для включения доступа зайдите в форму редактирования карточки клиента и установите галочку Доступ к API.

После сохранения у Вас будет автоматически сгенерирован ключ доступа.

Вы можете ограничивать количество запросов к API в день, с помощью поля Лимит запросов в день.

API сервис иллюстрация №1

Получение ключа доступа

Доступ к АПИ по коду авторизации

Для настройки доступа к АПИ по коду потребуется авторизация по basic auth.

Получить код авторизации (auth_key) можно одним из способов:

1. Через клиентскую часть.
В клиентской части введите в адресной строке браузера url "/api/v1/auth_key/init".

Фото 2. Получение кода авторизации
API сервис иллюстрация №2

2. Через запрос.
​    GET /api/v1/auth_key/init

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

  {
    "result":"ok",
    "auth_key":"124b0d5b13b61174751266e41ac5aa66", # код авторизации
   "expires_in":"05.05.2020 15:54 +03:00", #срок действия кода авторизации
    "customer_id":5124, #ID авторизованного клиента
    "user_id":1 #ID менеджера клиента
  }

По умолчанию код авторизации действует 24 часа. В меню Сайт → Общие настройки можно изменить это значение.

Фото 3. Срок действия кода авторизации
API сервис иллюстрация №3

Ниже представлена техническая документация, которую необходимо передать разработчикам системы Ваших клиентов.

Для всех запросов передается параметр api_key или auth_key, который служит авторизационным ключом. api_key необходимо запросить у Вашего менеджера.

Перечень запросов:

1.   Получение списка брендов по номеру
     GET /backend/price_items/api/v1/search/get_brands_by_oem

Параметры:

  • oem – номер запрашиваемой детали

Пример результата:

result: "ok",
data: [
  {
    number: "C110",           #номер детали
    brand: "DOLZ",            #производитель
    des_text: "Водяной насос" #название
  }
]


2.   Получение предложений
     GET /backend/price_items/api/v1/search/get_offers_by_oem_and_make_name

Параметры:

  • oem – номер детали
  • make_name – производитель
  • without_cross  – показ кроссов. Значение по умолчанию "false". Укажите "true" для исключения кроссов из результатов выполнения запроса. 
    Параметр применяется только для в запросах для поиска по номеру и марке.
  • text – название детали или текстовая строка поиска

Пример запроса для поиска по номеру и марке: 

http://company-shop.name/backend/price_items/api/v1/search/get_offers_by_oem_and_make_name?api_key=api_key&oem=OP572&make_name=FILTRON&without_cross=true

Здесь company-shop.name – внешний адрес вашего интернет-магазина, api_key – ключ доступа API,  oem=OP572 –  фильтр по номеру детали "OP572", make_name=FILTRON –  фильтр по марке детали "FILTRON".

Полученный результат:

result: "ok",
data: [
  {
    oem: "OP572",                         #Номер детали
    make_name: "FILTRON",                 #Производитель
    detail_name: "Фильтр масляный OP572", #Названия в прайс листе
    cost: 164,                            #Цена продажи
    qnt: 25,                              #Доступное количество, может быть -1 если точное количестов не известно
    min_qnt: 2,                           #Кратность поставки
    min_delivery_day: 0,                  #Минимальный срок доставки
    max_delivery_day: 0,                  #Максимальный срок доставки
    sup_logo: "BERG",                     #Направление поставки
    stat_group: 0,                        #Процент поставки
    system_hash: "K29PTTF4akxGN2lkcFE0ajFmUWJzSGtyOUI3Vzk5MVRt1c1c6ced238fd8159a2fa"  #hash для заказа через api
  }
]

Пример запроса для поиска по названию:

http://company-shop.name/backend/price_items/api/v1/search/get_offers_by_oem_and_make_name?api_key=api_key&text=водяной насос

Здесь text=водяной насос –  фильтр по названию "водяной насос".

Запрос выполняется только по локальным прайс-листам, для которых настроен поиск по названию.

 Полученный результат:

{
    "data": [
        {
            "oem": "94964",                        #Номер детали
            "make_name": "HONDA",     #Марка
            "detail_name": "Насос водяной(помпа)",          #Название
            "cost": 925,                                                                   #Цена
            "qnt": -1,                                                                       #Количество, здесь неизвестно 
            "min_qnt": 1,                                                              #Кратность поставки
            "min_delivery_day": 0,                                           #Минимальный срок доставки
            "max_delivery_day": 4,                                          #Максимальный срок доставки 
            "stat_group": 0,                                                         #Процент поставки
            "system_hash": "PR|259649|ee8d0b9a-e789-42ff-b10f-b62c2223f218-ITEM0",                 #hash для заказа через api
            "sup_logo": «BERG»,                                               #Направление поставки
            "volume": 0
        }
    ],
    "result": "ok"
 }


 Получение предложений по нескольким номерам
     POST /backend/price_items/api/v1/search/get_offers_by_oem_and_make_name

Поиск по нескольким номерам выполняется только по локальным прайс-листам.

Параметры:

  • articles   – json коллекция из бренд+номер детали. Максимальная длина массива 25. Пример значение параметра^ [{"make_name": "DOLZ", "oem": "C110"},{"make_name": "DOLZ","oem": "C1101"}].
  • category_id  – ID категории.
    Есть веб-сервисы, которые поддерживают поиск по нескольким номерам (например, веб-сервис WebService::Power). В карточках этих веб-сервисов выбираются нужные категории. При открытии этих каталогов в поиск включаются соответствующие веб-сервисы.

3.   Получение списка товаров в Корзине
      GET /api/v1/baskets/

Пример результата:

{"result": "ok", "data": [
 {"id"  : 1409,                         #id позиции в корзине
  "oem" : "ADB01165",                   #номер детали в заказе
  "make_name": "ALLIED NIPPON",         #производитель
  "detail_name": "Тормозные колодки",   #название детали
  "cost": 1178.0,                       #цена
  "qnt": 1,                             #количество
  "min_delivery_day": 2,                #минимальный срок доставки
  "max_delivery_day": 2,                #максимальный срок доставки
  "comment": ""                         #комментарий
  }
]}


4.   Очистить корзину
      POST /api/v1/baskets/clear

Пример результата:

{result: 'ok'}


5.   Удалить элемент корзины
      DELETE /api/v1/baskets/:id

Параметры:

  • :id – id позиции в корзине

Результат при успешном удалении позиции:

{result: 'ok'}


6.   Отправить в заказ содержимое корзины
      POST /api/v1/baskets/order

Результат при успешном создании заказа:

{result: 'ok'}


7.   Добавить в корзину
      POST /api/v1/baskets

Параметры:

  • oem — номер заказываемой детали
  • make_name — производитель заказываемой детали
  • detail_name — название заказываемой детали
  • qnt — количество в заказ
  • comment — комментарий к позиции
  • min_delivery_day — минимальный срок доставки
  • max_delivery_day — максимальный срок доставки
  • api_hash — hash полученный из проценки

Результат при успешном добавлении позиции:

{result: 'ok'}


8.   Получение позиций заказов клиентов
      GET /api/v1/order_items

Параметры:

  • page  – номер страницы выборки. По 10 позиций на выборку
  • search[id_eq]  – поиск по id позиции
  • search[oem_eq]  – поиск по номеру 
  • search[make_name_eq] – поиск по производителю
  • search[comment_eq]   – поиск по комментарию 
  • search[status_code_eq]  – поиск по группе статуса
  • per_page  – количество позиций в выборке. Значение по умолчанию 10

Пример результата:

result: "ok",
data: [
  {
    id: 4068,                               #id позиции заказа
    oem: "6698",                            #номер детали
    make_name: "KAMOKA",                    #производитель
    detail_name: "КОМПЛЕКТ ШРУСА ВНЕШНИЙ",  #название детали
    cost: 2520,                             #цена
    qnt: 1,                                 #количество заказано
    qnt_accept: null,                       #количество подтверждено
    qnt_income: null,                       #количество пришло
    status: "Принят к обработке",           #статус - название
    status_code: "processing",              #код статуса 
    comment: "test test 2",                 #комментарий клиента
    created_at: "2012-10-28T09:11:12+03:00" #дата создания заказа
  }
]

Возможны коды статусов:

  • processing - обрабатывается менеджером 
  • commit     - подтвержден 
  • v-zakaze   - отправлен в заказ 
  • supplier-commit - подтвержден поставщиком 
  • transit         - в пути 
  • supplier-accept - ожидает приемки на склад 
  • prishlo         - пришло на склад 
  • vydano          - выдано 
  • otkaz           - отказ поставки
  • snyat           - клиентом или поставщиком
  • vozvrat - возврат

9.   Получить информацию о менеджерах
     GET /api/v1/customers/manager

Параметры:

  •   search[id_eq]  – поиск по id менеджера
  •   search[email_eq]  – поиск по email
  •   search[name_eq]  – поиск по имени
  •   search[phone]   – поиск по номеру телефона

Пример результата:

result: "ok",
data: [
 {
   "id":2466
   "email":"A.Alekseev@tpas.ru",
   "name":"Алексеев Андрей",
     "phone":"8-921-787-18-32",
     "skype":null,
     "icq":"641-506-908",
     "photo":null
  }
]


10.   Детализация по балансу
       GET /api/v1/customers/:id/balances

Параметры:

  •   id   – ID клиента
  •   page  –  номер страницы выборки.
  •   per_page  – количество записи в выборке. Значение по умолчанию 10.
  •   search[created_at_gt]  – дата создания больше, формат 06.07.2014%2011:47:45
  •   search[created_at_lt]  – дата создания меньше, формат 10.07.2014%2011:47:45
  •   search[updated_at_gt]  – дата обновления больше, формат 06.07.2014%2011:47:45
  •   search[updated_at_lt]  – дата обновления меньше, формат 10.07.2014%2011:47:45

Пример результата:

result: "ok",
data: [
  {
    "id":8414,
    "customer_id":5124,
    "customer_inn":"",
    "description":"Списание по заказу № 6938",
     "sum":-5926.0,
     "income_type":null,
     "created_at":"2020-04-04T11:02:00.266+03:00",
     "updated_at":"2020-04-04T11:02:00.266+03:00"
  }
]


11.   Общая статистика по балансу и заказам
       GET /api/v1/customers/:id/stat

Параметры:

  • id  – ID клиента

Пример результата:

{
   "result":"ok",
   "data":{

"balance":{
         "title":"Баланс",
         "result":-2874079.06
      },
      "credit_balance":{
        "title":"Баланс с кредитным лимитом",
        "result":7125920.9399999995
      },
      "delay_balance":{
         "title":"Баланс отсрочки",
         "result":-2874079.06
      },
      "check_balance":{
        "title":"На проверке",
        "result":19554645.704084
      },
      "work_balance":{
         "title":"В работе",
         "result":5634057.16
      },


      "warehouse_balance":{
         "title":"К отгрузке",
         "result":600.0
      },
      "shipped_and_return_sum":{
         "title":"Возврат + Выдано",
         "result":702783.0
      },
      "return_order_item_sum":{
         "title":"Возврат",
         "result":0.0
      },
      "return_percent":{
         "title":"Процент от суммы возврат + выдано",
         "result":0.0
      },
      "order_count":{
         "title":"Заказов за все время",
         "result":632
      },
      "order_item_count":{
         "title":"Позиций за все время",
         "result":2870
      },
      "revenue":{
         "title":"Оборот за все время",
         "result":25892085.864084
      },
      "revenue_last_month":{
         "title":"Оборот за прошлый месяц",
         "result":13540.0
      },
      "revenue_current_month":{
         "title":"Оборот за текущий месяц",
         "result":24076.0
      },
      "average_check":{
         "title":"Средний чек",
         "result":42126.441462158225
      },
      "last_request_at":{
         "title":"Последний запрос",
         "result":"2020-04-04T10:58:22.650+03:00"
      },
      "last_order_id":{
         "title":"ID последнего заказа",
         "result":6938
      },
      "last_order_at":{
         "title":"Последний заказ",
         "result":"2020-04-04T11:01:55.012+03:00"
      },
      "profit":{
         "title":"Прибыль за все время",
         "result":440866.2639
      },
      "profit_last_month":{
         "title":"Прибыль за прошлый месяц",
         "result":0.0
      },
      "profit_current_month":{
         "title":"Прибыль за текущий месяц",
         "result":0.0
      },
      "in_work_balance":{
         "title":"Баланс - заказы в работе",
         "result":-2874079.06
      }
   }
 }


12.   Получить информацию о страницах
        GET /api/v1/pages

Параметры:

  • search[id_eq]    –  поиск по id страницы
  • search[title_eq]  – поиск по заголовку
  • search[active_true]  – поиск активных страниц
  • search[active_false]  – поиск не активных страниц
  • search[page_category_id_eq] – поиск по ID категории страниц

Пример результата:

"result":"ok",
  "data":[
    {
     "id":187,
     "title":"Свечи зажигания",
     "description":"",
     "body":"",
     "active":true,
     "created_at":"2014-10-28T12:47:35.142+03:00",
     "page_category_id":38,
     "position":null,
     "slug":"svechi-zazhiganiya",
     "on_main_page":false,
     "sub_url":null,
     "on_head":false,
     "in_footer":true,
     "region_id":null,
     "only_auth":false,
     "custom_url":null,
     "css_class":null,
     "meta_title":null,
     "meta_description":null,
     "meta_keywords":null,
     "seo_h1":null,
     "seo_text":null
    }
  ]


13.   Получить информацию о странице по ее ID
        GET /api/v1/pages/:id

Параметры:

  •  id  – ID страницы

Пример успешного результата:

"result":"ok",
   "data":{
      "id":187,
      "title":"Свечи зажигания",
      "description":"",
      "body":"",
      "active":true,
      "created_at":"2014-10-28T12:47:35.142+03:00",
      "page_category_id":38,
      "position":null,
      "slug":"svechi-zazhiganiya",
      "on_main_page":false,
      "sub_url":null,
      "on_head":false,
      "in_footer":true,
      "region_id":null,
      "only_auth":false,
      "custom_url":null,
      "css_class":null,
      "meta_title":null,
      "meta_description":null,
      "meta_keywords":null,
      "seo_h1":null,
      "seo_text":null
   }

Пример ответа, когда не удается найти страницу:

"result": "error"
"error": "Page with id 187 not found"


 14.   Получить список новостей
         GET /api/v1/news

Параметры:

  • search[id_eq]  – поиск по ID новости
  • search[created_at_gt]  – дата создания больше, формат 06.07.2014%2011:47:45
  • search[created_at_lt]  – дата создания меньше, формат 10.07.2014%2011:47:45
  • search[news_type_eq]  – поиск по типу новости (news, articles)
     

Пример результата:

 "result":"ok",
   "data":[
      {
        "id":81,
        "title":"Новая новость",
        "description":"вав",
        "body":"Текст",
        "created_at":"2019-06-17T09:53:57.099+03:00",
        "region_id":null,
        "position":null,
        "slug":"novaya-novost",
        "news_type":"news",
        "icon":http://private-www.parts-soft.ru/system/preview/81/news-
ic_original.png?1580802823
      }
    ]

Возможны типы новостей:

  • adt        – Анонсы
  • news     – Новости
  • action    – Акции
  • articles  – Статьи

15.   Получить новость по ID
        GET /api/v1/news/:id

Параметры:

  • id   – ID новость

Пример успешного результата:

"result":"ok",
   "data":
    {
      "id":81,
      "title":"Новая новость",
      "description":"вав",
      "body":"Текст",
      "created_at":"2019-06-17T09:53:57.099+03:00",
      "region_id":null,
      "position":null,
      "slug":"novaya-novost",
      "news_type":"news",
      "icon":http://private-www.parts-soft.ru/system/preview/81/news-
ic_original.png?1580802823
    }

Пример ответа когда не удается найти новость по ID:

 "result": "error"
 "error": "News with id 81 not found"


Связанные разделы

Начните тест-драйв платформы PARTS SOFT уже сегодня!

Нажимая кнопку «Отправить» вы соглашаетесь на обработку персональных данных

скриншот платформы