Формат взаимодействия с Orisun API
Orisun API - универсальное решение для работы с заказами и товарами, построенное на REST-принципах, работает с реальными объектами и обладает предсказуемым поведением. С помощью этого API вы можете отправлять запросы на получения каталога товаров, актуальной информации из прайс листа, создание, отслеживание заказов и т.д.
API в качестве основного протокола использует HTTP, а значит подходит для разработки на любом языке программирования, который умеет работать с HTTP-библиотеками (cURL и другими).
API endpoint: https://www.orisun.ru/api/
API поддерживает GET, POST, PUT и DELETE-запросы. POST, PUT - запросы используют JSON-аргументы, GET и DELETE - запросы работают со строками запросов. API всегда возвращает ответ в формате JSON, независимо от типа запроса. Кодировка только UTF-8.
Аутентификация
Данные для аутентификации запросов необходимо передавать в заголовке запроса в параметре Authorization, в качестве параметра которого выступает авторизационный токен (apiKey, это ваш секретный ключ).
Узнать авторизационный токен, а также перевыпустить его или удалить, можно в настройках API личного кабинета.
Обработка запросов
Orisun API обрабатывает полученный запрос немедленно и возвращает результат обработки («успех» или «неудача»). Ответ содержит код ответа HTTP, стандартные заголовки и при необходимости тело ответа в формате JSON.
Если с запросом что-то не так (код ответа HTTP отличается от 200), то для этих ответов причина возникновения ошибки указывается в заголовке Reason-Phrase, а также может дополняться телом ответа в формате JSON с описанием ошибки.
Модель ответа
Параметр | Тип | Описание |
---|---|---|
Header | ||
HTTP/1.1 {Code} {Reason-Phrase} | string | Code - Код ошибки в соответствии со стандартом HTTP Reason-Phrase - поясняющая фраза причины возникновения ошибки |
X-RateLimit-Resource-Until | RFC822 | Если этот заголовок возвращается, то он означает время до которого действует ограничение. Использование ресурса станет возможным после наступления указанного времени. Обращаем внимание, если к ресурсу обратиться до снятия ограничений, то данное время обнулиться и начет новый отсчет. |
Body | ||
id | string | Код ошибки по внутренней классификации (может отсутствовать) |
description | string | Описание ошибки |
Пример ответа
HTTP/1.1 420 Enhance Your Calm
Content-Type: application/json; charset=UTF-8
X-RateLimit-Resource-Until: Fri, 17 Jan 25 10:27:24 +0300
{
"id": "e65a8f85-f8b7-4f4f-9fd3-bfef99aacbbb",
"description": "Превышено ресурсное ограничение на количество в 10 запросов к ресурсу за 1 сек для одного пользователя"
}
Методы
Модель запроса
Параметр | Тип | Описание |
---|---|---|
Header | ||
Authorization | string | Авторизационный токен (apiKey) пользователя, полученный в личном кабинете пользователяОбязательный параметр |
Примеры запроса
curl 'https://www.orisun.ru/api/budget' \
-H 'Authorization: 3Iu4nCOx4zQGcd1gB2UdUwpAjept'
<?php
$api = new \APIOrisun('https://www.orisun.ru/api', '3Iu4nCOx4zQGcd1gB2UdUwpAjept');
$response = $api->sendRequest('GET', '/budget');
if ($response) echo '<pre>' . htmlspecialchars(print_r($response, true)) . '</pre>';
?>
Модель ответа
Параметр | Тип | Описание |
---|---|---|
id | int | Учетный код пользователя в системе |
budget | float | Текущий бюджет пользователя, который можно потратить на отгруженные заказы |
reserved | float | Зарезервированная сумма из текущего бюджета, туда входят оплаченные, но неотправленные заказы |
credit | float | Сумма отправленных заказов по отсрочке |
debt | float | Долг, т.е. неоплаченные, отправленные заказы |
balance | float | Доступный, оставшийся баланс ДС, который можно использовать на оплаты текущих заказов |
Пример ответа
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
{
"id": 1,
"budget": 10000,
"reserved": 4753,
"credit": 0,
"debt": 0,
"balance": 5247
}
Модель запроса
Параметр | Тип | Описание |
---|---|---|
Header | ||
Authorization | string | Авторизационный токен (apiKey) пользователя, полученный в личном кабинете пользователяОбязательный параметр |
Query parameters | ||
id | int string | Выборка по товарам. Допускается передача одного или нескольких кодов товаров разделенных запятой. |
limit | int | Количество записей которое нужно вывести. Если значение не указывать, то вернет все доступные |
offset | int | Количество записей которые необходимо пропустить сверху. По умолчанию используется значение 0, т.е. сначала списка, требует присутствие параметра limit |
Примеры запроса
curl 'https://www.orisun.ru/api/stock-balance?limit=1000&offset=1000' \
-H 'Authorization: 3Iu4nCOx4zQGcd1gB2UdUwpAjept'
<?php
$api = new \APIOrisun('https://www.orisun.ru/api', '3Iu4nCOx4zQGcd1gB2UdUwpAjept');
// $response = $api->sendRequest('GET', '/stock-balance'); - Вернет все возможные записи
// $response = $api->sendRequest('GET', '/stock-balance', ['limit' => 2]); - Вернет только первые 2 записи
// $response = $api->sendRequest('GET', '/stock-balance', ['limit' => 1000, 'offset' => 1000]); // Вернет вторую страницу с 1000 записей
$response = $api->sendRequest('GET', '/stock-balance', ['id' => '66254,33706']); - Вернуть остатки для товаров с кодами 66254 и 33706
if ($response) echo '<pre>' . htmlspecialchars(print_r($response, true)) . '</pre>';
?>
Модель ответа
Параметр | Тип | Описание | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | int | Код товара | ||||||||||||||||||||||||||||||
barcode | string | Штрихкод товара. Если у товара несколько штрихкодов, будет возвращен только один, основной | ||||||||||||||||||||||||||||||
stores | array | Товарные остатки в разрезе складов. В списке содержатся только те склады, на которых этот товар доступен к заказу | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
price | array | Прайс-листы товара | ||||||||||||||||||||||||||||||
|
Пример ответа
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
[
{
"id": 33706,
"barcode": "4640130791988",
"stores": [
{
"id": 1,
"available": 7,
"date": "2025-03-31",
"shipment": "2025-03-31"
}
],
"price": [
{
"id": "retail",
"price": 557,
"nds": 20
},
{
"id": "wholesale",
"price": 350,
"nds": 20
}
]
},
{
"id": 66254,
"barcode": "6414504296106",
"stores": [
{
"id": 1,
"available": 55,
"date": "2025-03-31",
"shipment": "2025-03-31"
},
{
"id": 7,
"available": 1776,
"date": "2025-03-31",
"shipment": "2025-04-04"
}
],
"price": [
{
"id": "retail",
"price": 580,
"nds": 20
},
{
"id": "wholesale",
"price": 400,
"nds": 20
}
]
}
]
Модель запроса
Параметр | Тип | Описание |
---|---|---|
Header | ||
Authorization | string | Авторизационный токен (apiKey) пользователя, полученный в личном кабинете пользователяОбязательный параметр |
Query parameters | ||
id | int string | Выборка по товарам. Допускается передача одного или нескольких кодов товаров разделенных запятой. |
lastUpdate | ISO8601 | Отбор товаров по дате последнего изменения, т.е. будут возвращены все товары, которые изменились с момента указанной даты |
limit | int | Количество записей которое нужно вывести. Если значение не указывать, то вернет все доступные |
offset | int | Количество записей которые необходимо пропустить сверху. По умолчанию используется значение 0, т.е. сначала списка, требует присутствие параметра limit |
Примеры запроса
curl 'https://www.orisun.ru/api/catalog?id=33706,66254' \
-H 'Authorization: 3Iu4nCOx4zQGcd1gB2UdUwpAjept'
<?php
$api = new \APIOrisun('https://www.orisun.ru/api', '3Iu4nCOx4zQGcd1gB2UdUwpAjept');
// $response = $api->sendRequest('GET', '/catalog'); - Вернет весь возможный каталог
// $response = $api->sendRequest('GET', '/catalog', ['limit' => 10]); - Вернет только первые 10 товаров из каталога
// $response = $api->sendRequest('GET', '/catalog', ['lastUpdate' => '2025-01-12']); - Вернет все измененные товары после 12 января 2025 года включительно
// $response = $api->sendRequest('GET', '/catalog', ['limit' => 100, 'offset' => 200]); - Вернет третью страницу со 100 товарами
$response = $api->sendRequest('GET', '/catalog', ['id' => '66254,33706']); // Вернет описания только для товаров с кодами 66254 и 33706
if ($response) echo '<pre>' . htmlspecialchars(print_r($response, true)) . '</pre>';
?>
Модель ответа
Параметр | Тип | Описание | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | int | Код товара | ||||||||||||||||||||||||||||||
barcode | string | Штрихкод товара. Если у товара несколько штрихкодов, будет возвращен только один, основной | ||||||||||||||||||||||||||||||
tnVed | string | ТН ВЭД ЕАЭС | ||||||||||||||||||||||||||||||
article | string | Артикул товара. Если у товара несколько артикулов, будет возвращен только один, основной | ||||||||||||||||||||||||||||||
brand | array | Бренд | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
name | string | Наименование товара | ||||||||||||||||||||||||||||||
detailText | string | Детальное описание товара | ||||||||||||||||||||||||||||||
ingredients | string | Состав | ||||||||||||||||||||||||||||||
method | string | Способ применения | ||||||||||||||||||||||||||||||
result | string | Результат | ||||||||||||||||||||||||||||||
updated | ISO8601 | Дата последнего изменения карточки товара | ||||||||||||||||||||||||||||||
picture | array | Изображения товара, состоит из списка url-ов на файлы с картинками | ||||||||||||||||||||||||||||||
width | int | Ширина товара в мм. | ||||||||||||||||||||||||||||||
height | int | Высота товара в мм. | ||||||||||||||||||||||||||||||
length | int | Длина товара в мм. | ||||||||||||||||||||||||||||||
weight | int | Вес брутто в гр. | ||||||||||||||||||||||||||||||
expiry | int | Срок годности в днях, если возвращается "0", то срок годности на товар не ограничен | ||||||||||||||||||||||||||||||
path | string | Путь (раздел) по которому расположен товар в каталоге | ||||||||||||||||||||||||||||||
price | array | Прайс-листы товара | ||||||||||||||||||||||||||||||
|
Пример ответа
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
[
{
"id": 332545,
"barcode": "4065406000036",
"article": "600003",
"brand": {
"id": 331742,
"name": "ZEENA"
},
"name": "Палетка теней Eyeconic Eyeshadow Palette, 020 Vibrant Amethyst",
"detailText": "Восхитительная палитра теней для ... бла-бла-бла",
"updated": "2024-02-14",
"picture": [
"https://www.orisun.ru/upload/iblock/dcf/nc84fkaemdvovof3j5187fz4ulsqr250/ZEENA_Eyeshadow_Amethyst_open_s_Swatch-819x1024.webp",
"https://www.orisun.ru/upload/iblock/39c/mren73rpka3mp065nlbql9ydc7lhbyca/ZEENA_Eyeshadow_Ametyhst_s-819x1024.webp"
],
"width": 12,
"height": 12,
"length": 78,
"weight": 34,
"path": "Макияж \ Тени и пигменты",
"price": [
{
"id": "retail",
"price": 259,
"nds": 20
},
{
"id": "wholesale",
"price": 132.17,
"nds": 20,
"oldPrice": 181.3,
"discount": [
{
"value": "=132.17",
"name": "АПЛ ZEENA 1016"
}
]
}
]
},
{
"id": 66254,
"barcode": "6414504296106",
"article": "92384",
"brand": {
"id": 66251,
"name": "LV"
},
"name": "Гель для душа",
"detailText": "Гель для душа приятной текстуры, бережно ... бла-бла-бла",
"updated": "2021-12-02",
"picture": [
"https://www.orisun.ru/upload/iblock/6a1/6a1b3dac8c75432c7a5ef79db5444d15.png",
"https://www.orisun.ru/upload/iblock/6ed/6edc5c44d6f9761924fdeed3a60e26b6.jpg"
],
"width": 65,
"height": 40,
"length": 170,
"weight": 286,
"path": "Тело \ Гели",
"price": [
{
"id": "retail",
"price": 580
},
{
"id": "wholesale",
"price": 400
}
]
}
]
В указанных методах, в примерах PHP используется класс APIOrisun, получить его можно по этой ссылке. Данный класс не рассчитан для использования на продакшен, и приводится здесь исключительно с ознакомительной целью!
e-mail: info@orisun.ru в теме письма обязательно должно присутствовать слово API
WhatsApp: +74959809551 укажите в диалоге, что хотите пообщаться по API