- Платформа PARTS SOFT /
- Возможности /
- API сервис для клиентов интернет-магазина (v1)
API сервис для клиентов интернет-магазина (v1)
API сервис предоставляет возможность подключать другие сайты, интернет-магазины автозапчастей к вашему сайту по средствам API.
API сервис предоставляет следующие возможности:
- Проценка — получение актуальной информации о наличии;
- Заказ — автоматический заказ;
- Статусы — отслеживание статусов заказа.
Доступ к АПИ осуществляется по ключу доступа (api_key) или по коду авторизации (auth_key).
Доступ к АПИ по ключу доступа
Для включения доступа зайдите в форму редактирования карточки клиента и установите галочку Доступ к API.
После сохранения у Вас будет автоматически сгенерирован ключ доступа.
Вы можете ограничивать количество запросов к API в день, с помощью поля Лимит запросов в день.
Доступ к АПИ по коду авторизации
Для настройки доступа к АПИ по коду потребуется авторизация по basic auth.
Получить код авторизации (auth_key) можно одним из способов:
1. Через клиентскую часть.
В клиентской части введите в адресной строке браузера url "/api/v1/auth_key/init".
Фото 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_key или auth_key, который служит авторизационным ключом. api_key необходимо запросить у Вашего менеджера.
Перечень запросов:
- Получение списка брендов по номеру
- Получение предложений
- Поиск предложений по номеру и марке детали
- Поиск предложений по названию детали
- Получение предложений по нескольким номерам
- Получение списка товаров в Корзине
- Очистить корзину
- Удалить элемент корзины
- Отправить в заказ содержимое корзины
- Добавить в корзину
- Получение позиций заказов клиентов
- Получить информацию о менеджерах
- Детализация по балансу
- Общая статистика по балансу и заказам
- Получить информацию о страницах
- Получить информацию о странице по ее ID
- Получить список новостей
- Получить новость по ID
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"
Связанные разделы