Published using Google Docs
Интеграция с OrderAdmin (API)
Updated automatically every 5 minutes

Интеграция с OrderAdmin 
API v0.5

Справочник методов

Создаем ключи доступа

Методы

Авторизация

Фильтрация

Включенный заказ по типу

Загрузка в базу OrderAdmin заявки на доставку

Получение трек-номеров и/или тарифов

Получение подробного трекинга заказа

Получение всех начислений по заказу
(включая информацию о получении наложенного платежа).

Калькулятор расчета тарифов

Получение списка городов

Получение вариантов доставок

Размещение калькулятора в виде JS

Работа с товаром

Получение списка товаров

Загрузка новой номенклатуры в систему

Получение текущих остатков

Работа с заказами

Остальные методы API

Справочник методов

Полная инструкция по API находится по адресу:

https://panel.orderadmin.ru/apigility/swagger 


ВНИМАНИЕ: требуется предварительная авторизация!

Попасть в справочник функций API можно из меню:

ЛЮБОЙ функционал в OrderAdmin имеет соответствующий метод в API.

Создаем ключи доступа

Для работы с системой через API потребуется создать ключи доступа.

Для этого выберите в меню, находящимся в правом верхнем углу экрана раздел “API доступ”:

Перейдя на страницу можно получить данные для подключения по API:

Чтобы получить секретный ключ, щелкните по 3-м точкам:

Если данных еще нет, то нажмите кнопку “Сгенерировать ключи доступа” и ключи будут сгенерированы.

Методы

В API есть несколько методов для работы с данными:

  • Метод позволяет сформировать запрос на получение данных

  • Метод позволяет добавить информацию в систему

PATCH

  • Метод позволяет изменить информацию в системе

  • Метод позволяет удалить информацию из системы

Авторизация

Для того чтобы начать работать с системой OrderAdmin необходимо авторизоваться. Сделать это нужно с помощью полученных выше ключей.

Подробное описание авторизации находится здесь:
https://orderadmin.freshdesk.com/a/solutions/articles/35000099409

Сделать это нужно отправив в заголовке запроса полученные вами ключи:

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
       
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
           
'Content-Type: application/json',
           
'Accept: application/json',
       
));
       
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);
       
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->getRequest());
       
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
       
curl_setopt($ch, CURLOPT_USERPWD, $this->user . ":" . $this->secret);

Готовую библиотеку на PHP, для работы с OrderAdmin можно скачать по ссылке:

https://www.reworker.ru/download/oa_lib_php.zip 

Пример авторизации на языке PHP (с помощью указанной выше библиотеки):

<?php

        $publicKey = '{Ключ из ЛК}';

        $secret = '{Секретный ключ из ЛК}';

        

        $orderadmin = new OrderadminAPI('https://panel.orderadmin.ru/', $publicKey, $secret);

           

        ...

?>

Фильтрация

Механизм фильтрации является универсальным и работает одинаково во всех методах API OrderAdmin.

Подробное описание процесса фильтрации можно найти по ссылке:

https://orderadmin.freshdesk.com/a/solutions/articles/35000097975

Пример на PHP:

Получаем конкретную заявку на доставку по ее трек-номеру:

<?php                   

 

    $criteria = array(

            'filter' => array ( 

                    array (

                                    'type' => 'eq',

                                    'field' => 'trackingNumber',

                                    'value' => $trackingNumber,                                   

            ),

        ),

    );

 

   $res_json = $orderadmin->setRequest()->request('GET', '/api/delivery-services/requests?' . http_build_query($criteria))->getResult();

 

   $oa_order_id = $res_json['_embedded']['delivery_requests'][0]['id'];

?>

Загрузка в базу OrderAdmin заявки на доставку

Загрузка заказа в систему OrderAdmin происходит с помощью метода /delivery-services/requests:

http://panel.orderadmin.ru/apigility/swagger/Orderadmin%5CDeliveryServices%5CApi-v1

Наиболее актуальная информация по созданию заявки на доставку находится по адресу:
https://orderadmin.freshdesk.com/a/solutions/articles/35000104366

При выгрузке нужно передать данные для отправки заказа (адрес, ID службы доставки, ID тарифа, стоимость и т.д.).

Данные передаются в формате JSON. Полный список данных можно получить в инструкции:

Подробнее о полях:

extId - внешний ID заказа (клиента), должен быть уникальным в рамках одного отправителя;

outExtId - ID заказа в системе клиента.

deliveryService - ID курьерской службы, доступные курьерские службы можно получить методом: http://panel.orderadmin.ru/api/swagger#!/delivery-services/findDeliveryServices

payment - сумма, которую необходимо взять с получателя

estimatedCost - оценочная стоимость

weight - если есть, ориентировочный вес отправления

Секция rate

id - ID тарифа (если конкретный тариф не указан, отправка будет произведена по тарифу по умолчанию для службы или по наиболее выгодному тарифу).

Поле rate задает службу доставки и тариф по которому будет производиться отправка заказа. Вот неполный список значений rate:

Служба доставки

Тариф

Значение rate

Почта России

посылка онлайн

(если указан этот тариф, но посылка не проходит по параметрам или адресу, то тариф автоматически изменится на 17).

2

Почта России

ценная посылка

17

Почта России

1-й класс

141

Boxberry

Доставка курьером до двери

62

Boxberry

Доставка в ПВЗ

61

PickPoint

Оптимальный

65

Максипост

Доставка курьером до двери

63

СДЭК

Посылка склад-склад

48

СДЭК

Посылка склад-дверь

49

DPD

DPD CLASSIC Parcel

12

Курьерист

Курьерская доставка Курьерист

67

Курьерист

Курьерская доставка Курьерист (на следующий день)

68

ВНИМАНИЕ:

  1. Указание поля rate обязательно для каждого заказа!
  2. Список служб постоянно обновляется и доступен для загрузки через API.

Секция from

sender - идентификатор отправителя, заведенный в личном кабинете в разделе “Отправители”: http://panel.orderadmin.ru/delivery-services/requests/senders/

country - страна доставки (для России 28).

senderProfile - профиль отправителя. Именно в настройках в sender и profile  хранятся все настройки вашего аккаунта, включая и данные для интеграции со службами доставок.
Посмотреть все свои профили вы можете по ссылке:
http://panel.orderadmin.ru/clients/profiles/ 

Секция to

servicePoint - в данной переменной можно указать идентификатор ПВЗ (в случае доставки до ПВЗ), список ПВЗ можно получить методом:

http://panel.orderadmin.ru/api/swagger#!/delivery-services/findDeliveryServicesPoints

recipientName - имя получателя

recipientPhone - телефон получателя

Секция to,

подсекция recipient,

extId - идентификатор в вашей базе данных (если завести с идентификатором, можно не передавать каждый раз остальные параметры)

name - имя получателя

middlename - отчество получателя

surname - фамилия получателя

type - физическое или юридическое лицо

phone - телефон получателя

email - электронная почта получателя

подсекция address

postcode - почтовый индекс

locality -> country -> id - идентификатор страны (28 - для России), страны можно получить методом: http://panel.orderadmin.ru/api/swagger#!/locations/findCountries

streetPrefix - префикс улицы

street - название улицы

house - дом

block - корпус

apartment - номер квартиры

notFormal - можно передать неформализованный адрес (если он так хранится в вашей БД)

Загрузка мест и товаров:

Секция places - с помощью данной секции передается количество мест в заказе и список товаров.

        extId - номер места (если место одно то параметр можно не указывать)

подсекция items - список товаров

        extId - ID товара в системе клиента

        name - Название товара

        count - количество товара

        estimatedCost - оценочная стоимость товара

        payment - сумма наложенного платежа товара

        weight - вес

В качестве ответа будет получен JSON с информацией о добавленном заказе.

Минимальный запрос для создания заявки на доставку:

{

}

Пример загрузки заказа в базу OrderAdmin: 

<?php

        …

        $publicKey = '{Ключ из ЛК}';

        $secret = '{Секретный ключ из ЛК}';

        

        $orderadmin = new OrderadminAPI('https://panel.orderadmin.ru/', $publicKey, $secret);

        $res = $orderadmin->setRequest(array(

               "deliveryService" => array(

                        "id"         => 9,         // ID службы доставки, которой отправится данный заказ

               ),

               "rate" => array(

                       "id"         => 2,         // ID тарифа (если конкретный тариф не указан, отправка

// будет произведена по тарифу по умолчанию для службы или

// по наиболее выгодному тарифу).

               ),

               "places"         => array(

                    "extId"         => 1,         // Место, в случае если вы передаете несколько мест

                    "items" => array (

                                "extId"         => 1234,         // ID товара

                                "name"                 => "Товар номер 1", // Название товара

                                "count"         => 2,        // Кол-во товаров

                                "estimatedCost" => 500,  // Оценочная стоимость

                                "payment"         => 500,   // Наложенный платеж

                                "weight"         => 230,   // Вес (в граммах)

                     ),

                ),

                "estimatedCost" => 500,         // Оценочная стоимость

                "payment" => 0,                 // Наложка

                "price" => 149,                 // Стоимость доставки (рассчитана)

                "pickupDate" => "2015-12-11", // Дата отправки

               "from"        => array(

                        "sender" => 1,         // идентификатор отправителя, заведенный в личном

// кабинете в разделе "Отправители"

                       "country" => 28,

               ),

                "deliveryDate" => "2015-12-11",         // Дата доставки

               "to"         => array(

                    "recipient" => array (

                                "name"                 => "",                                 // Имя

                                "surname"         => "",                                 // Фамилия

                                "type"                 => "physical",        // Физическое / юридическое лицо

                                "phone"         => "+7 (999) 000-00-00",         // Телефон

                                "email"         => "",                                 // e-mail

                                     "locality"         => array (

                                            "postcode"         => "",                 // индекс

                                     ),

                                      "address"         => array (

                                               "postcode"         => '',                 // индекс

                                        "country"         => array (

                                                "id"         => 28,                 // ID страны

                                       ),

                                             "streetPrefix" => "пр.",                 // Префикс улицы

                                             "street"         => "Гражданский",         // Улица

                                             "house"         => "",                         // Дом

                                             "block"         => "",                         // строение

                                             "apartment"         => "",                         // Квартира

                                             "notFormal"         => "",                         // Полный адрес

                                 ),

            ),

             "comment" => "",                        // Комментарий к заказу

            ),

"weight" => 0, // Вес

        "width" => 0,  // Ширина

        "height" => 0, // Глубина

        "length" => 0, // Длина

    ))->request('POST', '/api/delivery-services/requests')->getResult();

        …

?>

Пример загрузки заказа в базу OrderAdmin в 1С:

//Преобразование числа в 16ричную систему счисления

&НаСервере

Функция DecToHex(Знач _Число)

 База = 16;

 Результат = "";

 Если _Число = 0 Тогда

  Результат = "0";

 КонецЕсли;

 Пока _Число <> 0 Цикл

  Поз =_Число % База;

  Результат = Сред("0123456789ABCDEF", Поз + 1, 1) + Результат;

  _Число = Цел(_Число / База);

 КонецЦикла;

 Возврат Результат;

КонецФункции // DecToHex()

&НаСервере

Функция ХэшированиеСтроки(Строка, СекретныйКлюч) Экспорт

        Текст = Новый COMОбъект("System.Text.UTF8Encoding");

        Криптография = Новый COMОбъект("System.Security.Cryptography.HMACSHA1");

        Криптография.Key = Текст.GetBytes_4(СекретныйКлюч);

        ХешБайт = Криптография.ComputeHash_2(Текст.GetBytes_4(Строка)).Выгрузить();

        Хеш = "";

 Для Каждого Байт Из ХешБайт Цикл

  Нех = DecToHex(Байт);

  Хеш = Хеш + ?(СтрДлина(Нех)=1,"0","")+Нех;

 КонецЦикла;

        Возврат НРег(Хеш);

КонецФункции

&НаСервере

Процедура ВыгрузитьЗаказНаСервере(ДокументСсылка) Экспорт

   

    Соединение = Неопределено;

   

    ПараметрыПодключения = Новый Структура;

    ПараметрыПодключения.Вставить("Сервер", "panel.orderadmin.ru");

    ПараметрыПодключения.Вставить("Порт", 80);

    ПараметрыПодключения.Вставить("Пользователь", ""); //Не надо ничего указывать

    ПараметрыПодключения.Вставить("Пароль", "");

    ПараметрыПодключения.Вставить("Прокси", Неопределено);

    ПараметрыПодключения.Вставить("ЗащищенноеСоединение", Ложь);

    ПараметрыПодключения.Вставить("АдресСкрипта", "http://panel.orderadmin.ru");

   

    ТелоЗапроса_JSON = ПолучитьДанныеЗаказаДляСайта(ДокументСсылка);

    ВыгрузкаДокумента(Соединение, ПараметрыПодключения, ТелоЗапроса_JSON);

   

КонецПроцедуры

&НаСервере

Функция ПолучитьСоединениеССервером(ПараметрыПодключения) Экспорт

   

    Соединение = НеОпределено;

   

    Попытка

           

            СисИнфо = Новый СистемнаяИнформация;

           

            Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СисИнфо.ВерсияПриложения, "8.3.3.721") < 0  тогда //функция БСП    

                    Выполнить("Соединение = Новый HTTPСоединение(ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, ПараметрыПодключения.ЗащищенноеСоединение)");

            Иначе

                    Выполнить("Если НЕ ПараметрыПодключения.ЗащищенноеСоединение тогда

                    |    ssl = Неопределено;

                    |Иначе

                    |    

                    |    ssl = Новый ЗащищенноеСоединениеOpenSSL(

                    |    Неопределено,

                    |    Неопределено);

                    |КонецЕсли;

                    |Соединение = Новый HTTPСоединение(ПараметрыПодключения.Сервер, ПараметрыПодключения.Порт, ПараметрыПодключения.Пользователь, ПараметрыПодключения.Пароль, ПараметрыПодключения.Прокси, ,ssl)");    

            КонецЕсли;    

           

    Исключение

           

            Сообщить(" Не удалось установить соединение с сервером. Проверьте правильность адреса сервера, порт, имя пользователя и пароль.");

            Соединение = Неопределено;

           

    Конецпопытки;

   

    Возврат Соединение;

   

КонецФункции

&НаСервере

Функция ВыгрузкаДокументаНаСайт(Соединение, ПараметрыПодключения, ТелоЗапроса_JSON)

    Перем secret:

    Перем publicKey;

    Соединение = ПолучитьСоединениеССервером(ПараметрыПодключения);

    ПараметрыПодключения

    secret_key = ХэшированиеСтроки(Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd"), secret); //хэширование sha1

 

    Заголовки = Новый Соответствие;

    Заголовки.Вставить("Authorization", "OAD "+publicKey+":"+secret_key);

    Заголовки.Вставить("Accept", "application/json");        

    Заголовки.Вставить("Content-Type", "application/json");

    АдресЗапроса = "/delivery-services/request";

    ОтветСервера = ПолучитьДанныеССервера(Соединение, "/api/rest/latest"+АдресЗапроса, Заголовки, Истина, ТелоЗапроса_JSON);

   

    Если ОтветСервера = Неопределено Тогда    

            Сообщить("Авторизация не выполнена. Ответ с сервера не пришел.");

            Возврат Ложь;

    КонецЕсли;

    Возврат Истина;

КонецФункции

&НаСервере

Функция ПолучитьДанныеССервера(Соединение, АдресРесурса, Заголовки = "", ЗапросPost = Ложь, ТелоЗапроса = "") Экспорт

   

    ОтветСервера = НеОпределено;

    Попытка

           

            ЗапросHTTP = Новый HTTPЗапрос;

            ЗапросHTTP.АдресРесурса = АдресРесурса; // например: "/api/rest/latest/delivery-services/request"

           

            Для Каждого ТекЗаголовокHTTP Из Заголовки Цикл

                    ЗапросHTTP.Заголовки.Вставить(ТекЗаголовокHTTP.Ключ, ТекЗаголовокHTTP.Значение);

            КонецЦикла;

                   

            Если ЗапросPost Тогда

                    ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапроса, "UTF-8");

                    HTTPОтвет = Соединение.ОтправитьДляОбработки(ЗапросHTTP);

            Иначе

                    HTTPОтвет = Соединение.Получить(ЗапросHTTP);

            КонецЕсли;

           

            ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку();

           

    Исключение

           

            Сообщить("Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль," + Символы.ПС + "а также настройки подключения к Интернет.");

           

    КонецПопытки;

   

    Возврат ОтветСервера;

   

КонецФункции 

Получение трек-номеров и/или тарифов

Получить данные о заказе (трек-номер, тариф службы доставки и т.д.) можно с помощью метода /delivery-services/request/{id}:

http://panel.orderadmin.ru/api/swagger#!/delivery-services/findDeliveryServiceRequests_0

Где {id} - это либо ID заказа в системе OrderAdmin, либо ID заказа в системе клиента.

Выглядит запрос следующим образом:

  $criteria = array(
                            
'filter' => array ( 
                                    
array (
                                    
'type' => 'eq',
                                    
'field' => 'extId',
                                    
'value' => $order_id,                                   
                            
),
                            
),
                    
);


 
$ar_tarif = $orderadmin->setRequest(array())->request('GET', '/api/delivery-services/requests?'. http_build_query($criteria))->getResult();

В качестве результата получаем, либо ошибку:

{

  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",

  "title": "Forbidden",

  "status": 403,

  "detail": "Authorization header missing"

}

Либо информацию о заказе:

{

}

В данном случае нас интересуют поля trackingNumber и price.

Получение подробного трекинга заказа

Получить данные о заказе (трек-номер, тариф службы доставки и т.д.) можно с помощью метода /delivery-services/request/{id}/tracking:

http://panel.orderadmin.ru/api/swagger#!/delivery-services/findDeliveryServiceRequestTracking 

Где {id} - это либо ID заказа в системе OrderAdmin, либо ID заказа в системе клиента.

Выглядит запрос следующим образом:

$res = $orderadmin->setRequest(array())->request('GET', '/delivery-services/requests/'.$order_id.'/tracking')->getResult();

В качестве результата получаем, либо ошибку:

{

  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",

  "title": "Forbidden",

  "status": 403,

  "detail": "Authorization header missing"

}

Либо информацию о заказе:

{

}

Содержащая полную информацию по трекингу данного заказа.

Пример кода:

<?php

        

       

$res = $orderadmin->setRequest(array())->request('GET', '/delivery-services/request/'.$order_id.'/tracking')->getResult();

                                

$ar_tarif = json_decode($res);

        if ((@$ar_tarif->status != 404)&&(@$ar_tarif->result->trackingNumber != '')) {        

                echo 'Трек-номер заказа  '.$order_id.': '.$ar_tarif->result->trackingNumber;

        }

        

?>

Получение всех начислений по заказу
(включая информацию о получении наложенного платежа).

Получить данные о заказе (трек-номер, тариф службы доставки и т.д.) можно с помощью метода /accounts/transactions?entityType=delivery_request&entity={ID}:

http://panel.orderadmin.ru/api/swagger#!/accounts/findAccountTransactions 

Где {id} - это ID заказа в системе OrderAdmin.

Выглядит запрос следующим образом:

$res = $orderadmin->setRequest(array())->request('GET', '/accounts//transactions?entityType=Orderadmin\DeliveryServices\Entity\DeliveryRequest&entity='.$order_id)->getResult();

В качестве результата получаем, либо ошибку:

{

  "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",

  "title": "Forbidden",

  "status": 403,

  "detail": "Authorization header missing"

}

или

{

}

Либо информацию о заказе:

{
 "query": {
   "account":
null,
   "rateModifier":
null,
   "entityType":
"delivery_request",
   "entity":
"78329",
   "offset":
0,
   "limit":
10
 },
 "result": [
   {
     "id":
264487,
     "state":
"confirmed",
     "rateModifier": {
       "id":
2,
       "code":
null
     },
     "entityType":
"delivery_request",
     "entity":
"78329",
     "value":
"-18.00",
     "tax":
null,
     "comment":
"Приемка заявки 78329.",
     "created": {
       "date":
"2016-08-31 18:46:40.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     },
     "updated": {
       "date":
"2016-08-31 18:46:40.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     }
   },
   {
     "id":
291901,
     "state":
"confirmed",
     "rateModifier": {
       "id":
23,
       "code":
"payment"
     },
     "entityType":
"delivery_request",
     "entity":
"78329",
     "value":
"3150.00",
     "tax":
null,
     "comment":
"Обработка наложенного платежа.",
     "created": {
       "date":
"2016-09-13 09:58:48.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     },
     "updated": {
       "date":
"2016-09-13 09:58:48.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     }
   },
   {
     "id":
268057,
     "state":
"confirmed",
     "rateModifier": {
       "id":
7,
       "code":
"rate"
     },
     "entityType":
"delivery_request",
     "entity":
"78329",
     "value":
"-288.51",
     "tax":
null,
     "comment":
"Russian Post, тариф \"Бандероль\".",
     "created": {
       "date":
"2016-09-01 22:30:36.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     },
     "updated": {
       "date":
"2016-09-01 22:30:36.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     }
   },
   {
     "id":
291902,
     "state":
"confirmed",
     "rateModifier": {
       "id":
24,
       "code":
"fee"
     },
     "entityType":
"delivery_request",
     "entity":
"78329",
     "value":
"-31.50",
     "tax":
null,
     "comment":
"Комиссия за наложенный платеж.",
     "created": {
       "date":
"2016-09-13 09:58:48.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     },
     "updated": {
       "date":
"2016-09-13 09:58:48.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     }
   },
   {
     "id":
291903,
     "state":
"confirmed",
     "rateModifier": {
       "id":
25,
       "code":
"russianPostFee"
     },
     "entityType":
"delivery_request",
     "entity":
"78329",
     "value":
"-53.55",
     "tax":
null,
     "comment":
"Комиссия за наложенный платеж.",
     "created": {
       "date":
"2016-09-13 09:58:48.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     },
     "updated": {
       "date":
"2016-09-13 09:58:48.000000",
       "timezone_type":
3,
       "timezone":
"Europe/Moscow"
     }
   }
 ]
}

Калькулятор расчета тарифов

Получение списка городов

Получение списка городов, по которым осуществляется доставка:

http://panel.orderadmin.ru/api/locations/localities (все города)

Города по фильтру:

http://panel.orderadmin.ru/api/locations/localities?name=Новокуз%&page=1

В ответ, будет получен JSON вида:

{

}

Ответ будет содержать список всех городов. Их индексы, координаты, уникальный ID в в системе и остальную информацию.

Получение вариантов доставок

Для того, чтобы получить список вариантов доставок в заданный город, нужно отправить запрос по адресу:

http://panel.orderadmin.ru/api/delivery-services/calculator

Методом POST, следующие данные:

Размещение калькулятора в виде JS

Размещение JavaScritp’а:

<link rel="stylesheet" href="//panel.orderadmin.ru/frontend/node_modules/bootstrap/dist/css/bootstrap.css">

    <link rel="stylesheet" href="//panel.orderadmin.ru/frontend/node_modules/font-awesome/css/font-awesome.min.css">

    <link rel="stylesheet" href="//panel.orderadmin.ru/frontend/node_modules/leaflet/dist/leaflet.css">

    <link rel="stylesheet" href="//panel.orderadmin.ru/frontend/node_modules/leaflet.markercluster/dist/MarkerCluster.css">

    <link rel="stylesheet" href="//panel.orderadmin.ru/frontend/node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css">

    <link rel="stylesheet" href="//panel.orderadmin.ru/frontend/dev/jquery-calculator/styles.css">

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/node_modules/jquery/dist/jquery.min.js"></script>

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/node_modules/handlebars/dist/handlebars.js"></script>

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/node_modules/handlebars/dist/handlebars.js"></script>

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/node_modules/leaflet/dist/leaflet.js"></script>

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/node_modules/leaflet.markercluster/dist/leaflet.markercluster.js"></script>

    <script type="text/javascript" src="//panel.orderadmin.ru/frontend/dev/jquery-calculator/jquery.calculator.js"></script>

<div id="oaDeliveryCalc">

    <i class="fa fa-spinner fa-3x fa-spin" aria-hidden="true"></i>

</div>

<script type="text/javascript">

    $("#oaDeliveryCalc").oaDeliveryCalc({"settings":{"sender":139}, "server": {"api": "//panel.orderadmin.ru", "static": "//panel.orderadmin.ru"}});

</script>

Работа с товаром

Загрузка товаров в систему происходить с помощью стандартного YML фида:

https://yandex.ru/support/partnermarket/yml/about-yml.xml

Получение списка товаров

Метод GET: /api/products/offer

В ответ получаем JSON выдачу со списком товара, формата:

{

}

Обращение к данному методу по умолчанию выводит всю номенклатуру аккаунта. Для того чтобы получить конкретные позиции используйте фильтр. Работа с фильтрами описана в разделе Фильтрация.

Загрузка новой номенклатуры в систему

Метод POST: /api/products/offer

Наиболее актуальная информация по добавлению товаров в систему находится здесь:

https://orderadmin.freshdesk.com/a/solutions/articles/35000107342

Формат загружаемого JSON такой-же, как и при получении номенклатуры:

{

}

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

Пример:

<?php

 

        $res_payload = array(

                "id" => "76686",

                "article" => "ecom-008",

                "name" => "Головоломка из дерева (в ассортименте)",

                "type" => "simple",

                "image" => "http://www.toyall.ru/upload/catalog_big/captured_big.jpg",

                "barcodes" => [

                        "123456789"

                ],

                "sku" => "ecom-008",

                "weight" => null,

                "purchasingPrice" => null,

                "price" => null,

                "extId" => "8",

                "parent" => null,

                "currency" => null

        );

 

        $resj = $orderadmin->setRequest($res_payload)->request('POST', '/api/products/offer')->getResult();

 

?>

Получение текущих остатков

Метод получения текущих остатков описан здесь:

https://orderadmin.freshdesk.com/a/solutions/articles/35000129147

Работа с заказами

Метод создания заказа описан здесь:

https://orderadmin.freshdesk.com/a/solutions/articles/35000107311

Остальные методы API

Полное описание всех методов работы с  API OrderAdmin можно найти по адресу:

http://panel.orderadmin.ru/api/swagger#/

или в нашей базе знаний:

https://orderadmin.freshdesk.com/a/solutions

Там же можно сделать тестовые запросы и посмотреть ответы системы.