8 (800) 775-23-10
пн-пт 09:00 до 17:00

Формат взаимодействия с 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}stringCode - Код ошибки в соответствии со стандартом HTTP
Reason-Phrase - поясняющая фраза причины возникновения ошибки
X-RateLimit-Resource-UntilRFC822Если этот заголовок возвращается, то он означает время до которого действует ограничение. Использование ресурса станет возможным после наступления указанного времени. Обращаем внимание, если к ресурсу обратиться до снятия ограничений, то данное время обнулиться и начет новый отсчет.
Body
idstringКод ошибки по внутренней классификации (может отсутствовать)
descriptionstringОписание ошибки

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

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 сек для одного пользователя"
}


Методы

/budgetПолучить текущую информацию о бюджете пользователя
Запрос позволяет получить информацию о бюджете пользователя. Отправьте GET-запрос с авторизационным токеном доступа пользователя в параметре Authorization заголовка.

Модель запроса

ПараметрТипОписание
Header
AuthorizationstringАвторизационный токен (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>';
?>

Модель ответа

ПараметрТипОписание
idintУчетный код пользователя в системе
budgetfloatТекущий бюджет пользователя, который можно потратить на отгруженные заказы
reservedfloatЗарезервированная сумма из текущего бюджета, туда входят оплаченные, но неотправленные заказы
creditfloatСумма отправленных заказов по отсрочке
debtfloatДолг, т.е. неоплаченные, отправленные заказы
balancefloatДоступный, оставшийся баланс ДС, который можно использовать на оплаты текущих заказов

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

HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
{
    "id": 1,
    "budget": 10000,
    "reserved": 4753,
    "credit": 0,
    "debt": 0,
    "balance": 5247
}
/stock-balanceПолучить информацию о текущих остатках товаров
Запрос позволяет получить актуальную информацию о текущих остатках товаров и их цене. Отправьте GET-запрос с авторизационным токеном доступа пользователя в параметре Authorization заголовка. В запросе можно передавать параметры, для отбора необходимых данных

Модель запроса

ПараметрТипОписание
Header
AuthorizationstringАвторизационный токен (apiKey) пользователя, полученный в личном кабинете пользователяОбязательный параметр
Query parameters
idint
string
Выборка по товарам. Допускается передача одного или нескольких кодов товаров разделенных запятой.
limitintКоличество записей которое нужно вывести. Если значение не указывать, то вернет все доступные
offsetintКоличество записей которые необходимо пропустить сверху. По умолчанию используется значение 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>';
?>

Модель ответа

ПараметрТипОписание
idintКод товара
barcodestringШтрихкод товара. Если у товара несколько штрихкодов, будет возвращен только один, основной
storesarrayТоварные остатки в разрезе складов. В списке содержатся только те склады, на которых этот товар доступен к заказу
ПараметрТипОписание
idintКод склада
availableintДоступное к заказу количество товара с данного склада
dateISO8601Дата на которую были полученные текущие остатки
shipmentISO8601Ближайшая доступная дата отгрузки с данного склада на текущий момент времени
pricearrayПрайс-листы товара
ПараметрТипОписание
idstringКод прайс-листа. retail - розничный прайс, wholesale - оптовый
pricefloatЦена товара
ndsintНДС (включен в цену)
oldPricefloatСтарая цена, до применения скидок, акции и т.д.
discountarrayОписание примененных скидок, если они есть
ПараметрТипОписание
valuestringЗначение примененной скидки
namestringНаименование скидки

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

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
            }
        ]
    }
]
/catalogПолучить описание товаров
Запрос позволяет получить информацию о товарах. Отправьте GET-запрос с авторизационным токеном доступа пользователя в параметре Authorization заголовка. В запросе можно передавать параметры, для отбора необходимых данных

Модель запроса

ПараметрТипОписание
Header
AuthorizationstringАвторизационный токен (apiKey) пользователя, полученный в личном кабинете пользователяОбязательный параметр
Query parameters
idint
string
Выборка по товарам. Допускается передача одного или нескольких кодов товаров разделенных запятой.
lastUpdateISO8601Отбор товаров по дате последнего изменения, т.е. будут возвращены все товары, которые изменились с момента указанной даты
limitintКоличество записей которое нужно вывести. Если значение не указывать, то вернет все доступные
offsetintКоличество записей которые необходимо пропустить сверху. По умолчанию используется значение 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>';
?>

Модель ответа

ПараметрТипОписание
idintКод товара
barcodestringШтрихкод товара. Если у товара несколько штрихкодов, будет возвращен только один, основной
tnVedstringТН ВЭД ЕАЭС
articlestringАртикул товара. Если у товара несколько артикулов, будет возвращен только один, основной
brandarrayБренд
ПараметрТипОписание
idintКод бренда
namestringНазвание бренда
namestringНаименование товара
detailTextstringДетальное описание товара
ingredientsstringСостав
methodstringСпособ применения
resultstringРезультат
updatedISO8601Дата последнего изменения карточки товара
picturearrayИзображения товара, состоит из списка url-ов на файлы с картинками
widthintШирина товара в мм.
heightintВысота товара в мм.
lengthintДлина товара в мм.
weightintВес брутто в гр.
expiryintСрок годности в днях, если возвращается "0", то срок годности на товар не ограничен
pathstringПуть (раздел) по которому расположен товар в каталоге
pricearrayПрайс-листы товара
ПараметрТипОписание
idstringКод прайс-листа. retail - розничный прайс, wholesale - оптовый
pricefloatЦена товара
ndsintНДС (включен в цену)
oldPricefloatСтарая цена, до применения скидок, акции и т.д.
discountarrayОписание примененных скидок, если они есть
ПараметрТипОписание
valuestringЗначение примененной скидки
namestringНаименование скидки

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

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
            }
        ]
    }
]
/orderСоздать заказ
/orderИзменить уже созданный заказ
/orderПолучить информацию по заказу
/orderУдалить заказ

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

Если у вас есть вопросы или что-то не получается, а возможно есть предложения по расширению функционала, то просьба писать на:
e-mail: info@orisun.ru в теме письма обязательно должно присутствовать слово API
WhatsApp: +74959809551 укажите в диалоге, что хотите пообщаться по API
Обновлено 08 апреля 2025