XML-Каталог продукции
Получение списка продукции
Сведения о продукции
Получение таблицы стандартных размеров
Сведения о таблицах нестандартных размеров
Получение таблицы нестандартных размеров
Получение каналов продаж
Создание заказа
Получение сведений о заказе

XML-Каталог продукции

https://www.alkraft.ru/catalog.xml

 

XML-файл продукции компании АЛКРАФТ позволяет облегчить загрузку данных в Вашу систему.

Содержит описание продукции, свойства и характеристики, картинки, цены

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

Тип: GET или POST запрос

URL: https://www.alkraft.ru/api/products

Формат ответа: JSON

 

Возвращает массив объектов продукции

 

Структура ответа:

[ {

typeCode: код вида изделия

typeName: наименование вида изделия

widthName: Наименование для ширины

heightName: Наименование для высоты

leftSectionName: Наименование левой секции (для 2-дверных изделий)

rightSectionName: Наименование правой секции (для 2-дверных изделий)

} ]

Сведения о продукции

Тип: GET или POST запрос

URL: https://www.alkraft.ru/api/products/{typeCode}

 

Параметры запроса:

typeCode: Код вида изделия

 

Формат ответа: JSON

 

Пример: https://www.alkraft.ru/api/products/master

 

 

Возвращает базовые данные о продукции

 

Структура ответа:

{

actualDate: Дата актуальности данных (YYYY-MM-DD)

typeCode: Код вида изделия

typeName: Наименование вида изделия

widthName: Наименование для ширины

heightName: Наименование для высоты

leftSectionName: Наименование левой секции (для 2-дверных изделий)

rightSectionName: Наименование правой секции (для 2-дверных изделий)

standartSizes[ ]: Массив стандартной продукции (незаполненный, см. получение таблицы стандартных размеров)

customTables[ ]: Массив таблиц заказной продукции

{

tableCode: Код таблицы размеров

tableName: Описание таблицы размеров (в потолок, в стену, 1-дверные, 2-дверные и т.п.)

}

}

Получение таблицы стандартных размеров

Тип: GET или POST запрос

URL: https://www.alkraft.ru/api/products/{typeCode}/standartSizes

 

Параметры запроса:

typeCode: Код вида изделия

 

Формат ответа: JSON

 

Пример: https://www.alkraft.ru/api/products/master/standartSizes

 

 

Возвращает массив стандартных размеров продукции

 

Структура ответа:

[ {

model: Наименование модели

barcode: Штрихкод модели

width: Ширина, мм

height: Высота, мм

baseprice: Рекоммендованная розничная цена стандартного изделия

price: Действующая розничная цена стандартного изделия

weight: Вес, кг

outsideSizes: Габариты изделия, мм

insideSizes: Внутренний проем, мм

doorSizes: Габариты дверцы, мм

} ]

Сведения о таблицах нестандартных размеров

Тип: GET или POST запрос

URL: https://www.alkraft.ru/api/products/{typeCode}/customTables

 

Параметры запроса:

typeCode: Код вида изделия

 

Формат ответа: JSON

 

Пример: https://www.alkraft.ru/api/products/master/customTables

 

 

Возвращает массив описаний таблиц нестандартных размеров продукции

 

Структура ответа:

[ {

tableCode: Код таблицы размеров

tableName: Описание таблицы размеров (в потолок, в стену, 1-дверные, 2-дверные и т.п.)

} ]

Получение таблицы нестандартных размеров

Тип: GET или POST запрос

URL: https://www.alkraft.ru/api/products/{typeCode}/customTables/{tableCode}

 

Параметры запроса:

typeCode: Код вида изделия

tableCode: Код таблицы размеров

 

Формат ответа: JSON

 

Пример: https://www.alkraft.ru/api/products/master/customTables/master-ceiling-1

Пример: https://www.alkraft.ru/api/products/brigadir/customTables/brigadir-2

 

 

Возвращает данные таблицы нестандартных размеров продукции

 

Структура ответа:

{

tableCode: Код таблицы размеров

tableName: Описание таблицы размеров (в потолок, в стену, 1-дверные, 2-дверные и т.п.)

sectionsExtras[ ]: Массив дополнений секции

{

code: Код дополнения

name: Наименование дополнения

price: Розничная стоимость дополнения

notice: Важная информация о дополнении

incompatibles[ ]: Массив кодов дополнений несовместимых с этим дополнением.

Нельзя на одну секцию изделия установить дополнение в сочетании с любым дополнением из массива incompatibles.

necessaries[ ]: Массив кодов необходимых дополнений.

Хотя бы одно дополнение из этого массива должно быть установлено на секцию, в противном случае дополнение установить нельзя.

}

extrasCombinations[ ]: Массив возможных комбинаций дополнений секции

{

code: Код комбинации

Cтрока, содержащая коды дополнения, разделенные символом "+"

name: Наименование комбинации

price: Розничная стоимость комбинации

}

legends[ ]: Массив описаний ячеек таблицы

{

description: Описание ячейки (кол-во замков, усиления и т.п.)

cellClass: CSS-класс легенды для вывода на сайте

}

cells[ ]: Массив ячеек таблицы

{

width: Ширина, мм

height: Высота, мм

sections: Количество секций изделия

price: Розничная цена заказного изделия

outsideSizes: Габариты изделия, мм

insideSizes: Внутренний проем, мм

doorSizes: Габариты дверцы, мм

cellClass: CSS-класс легенды ячейки для вывода на сайте

}

}

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

Список каналов продаж также можно посмотреть в личном кабинете пользователя.

Идентификатор канала продаж потребуется при отправке запроса на создание Заказа.

 

Тип: POST-запрос с авторизацией

URL: https://www.alkraft.ru/api/channels

 

Пример:

curl https://www.alkraft.ru/api/channels
-X POST
-H "Authorization: authToken"

 

Параметры запроса:

authToken: Авторизационный токен, устанавливается в личном кабинете пользователя.

 

Формат ответа: JSON

 

Возвращает массив каналов продаж партнера

 

Структура ответа:

{

status: Статус обработки запроса ( true | false )

errors[ ]: Массив ошибок, если status = false

data[ ]: Массив каналов продаж

{

id: Идентификатор канала продаж

name: Наименование канала продаж

}

}

Создание заказа

Тип: POST-запрос с авторизацией

URL: https://www.alkraft.ru/api/orders/create

 

Пример:

curl https://www.alkraft.ru/api/orders/create
-X POST
-H "Authorization: authToken"
-H 'Content-Type: application/json'
-d 'JSONdata'

 

Параметры запроса:

authToken: Авторизационный токен, устанавливается в личном кабинете пользователя.

JSONdata: данные в формате JSON

 

Структура данных запроса:

{

orderHash: Идентификатор заказа в системе Партнера. Повторная загрузка игнорируется.

orderNumber: Номер заказа в системе Партнера, необязательный

orderDate: Дата заказа в системе Партнера, необязательный (YYYY-MM-DD)

wishDate: Желаемая дата отгрузки всего заказа, необязательный (YYYY-MM-DD)

channel: Идентификатор канала продаж. Если канал продаж один, можно не указывать.

shipmentRule: Код правила определения календаря отгрузок стандартной продукции:

--для дистрибьюторов--
preorder - заявка на месяц, отгрузка партиями в течение месяца.

extraorder - дополнительная заявка, отгрузка по нормативам заказной продукции.

--кроме дистрибьюторов--
quick - срочная отгрузка на следующий рабочий день.
standart - страндартная отгрузка в течение 3 рабочих дней.
wait - отгрузка в течение 7 рабочих дней.

 

details[ ]: Массив строк заказа

{

rowId: Идентификатор строки заказа в системе Партнера (необязательный)

Возвращается при получении сведений о заказе

typeCode: Код вида изделия

width: Ширина

height: Высота

quantity: Количество

price: Контрольная розничная стоимость изделия с дополнениями. (необязательный)

Сопоставляется с действительной розничной ценой и в случае несоответствия заказ не сформируется, будет возращена соответствующая ошибка. Значение "0" не анализируется.

--далее параметры для нестандартных размеров--

tableCode: Код таблицы размеров

extrasLКод комбинации дополнений левой секции (необязательный)

extrasR: Код комбинации дополнений правой секции (необязательный)

extrasL и extrasR - это строки, содержащие коды дополнений разделенных сиволом "+"

Важно! Для 1-дверных люков, когда есть условие в какую сторону будет открываться дверца, необходимо заполнять:
extrasL - когда ось открывания люка находится слева
extrasR - когда ось открывания люка находится справа
Это не имеет значения для большинства дополнений, т.к. люк можно перевернуть.
Но для некоторых дополнений это принципиально.
Например, скрытая ручка-перевертыш будет работать только в определенном положении.

 

L1: Ширина левой секции 2-дверных люков, если не указано или 0, секции считаются равными

comment: Комментарий к строке заказа (необязательный)

}

}

 

Формат ответа: JSON

 

Структура ответа:

{

status: Статус обработки запроса ( true | false )

errors[ ]: Массив ошибок, если status = false

data: Данные созданного заказа

{

orderId: Уникальный идентификатор заказа

number: Номер заказа

name: Наименование канала продаж

}

}

 

Пример формирования и отправки данных на PHP:

$data['orderHash'] = '3101202112345';
$data['orderNumber'] = '12345';
$data['orderDate'] = '2021-01-31';
$data['wishDate'] = '2021-02-15';
$data['channel'] = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee';
$data['shipmentRule'] = 'extraorder';
$data['details'][0]['typeCode'] = 'brigadir';
$data['details'][0]['width'] = 1300;
$data['details'][0]['height'] = 900;
$data['details'][0]['quantity'] = 1;
$data['details'][0]['price'] = 0;
$data['details'][0]['tableCode'] = 'brigadir-2';
$data['details'][0]['extrasL'] = 'ТРЗ+ШАР';
$data['details'][0]['extrasR'] = 'ШПГ';
$data['details'][0]['L1'] = 0; 

$JSONdata = json_encode($data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://www.alkraft.ru/api/orders/create");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, 
     array(
           "Content-type: application/json", 
           "Autorization: aaaabbbbccccddddeeeeffffgggghhhh",
           "Connection: close"
     )
);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $JSONdata);

$curlResponse = curl_exec($curl);

if (!$curlResponse) {
    die("curl_error:" . curl_error($curl)); //Ошибка выполнения
}

curl_close($curl);

if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 200) {
    die("Status: $status"); //Ошибка подключения к сервису
}

$answer = json_decode($curlResponse); //Полученный ответ от сервиса

if ($answer->status == "false")) {
    print_r($answer->errors); //Ошибки при создания заказа
    die();
}

print_r($answer->data); //Данные созданного заказа

Получение сведений о заказе

Тип: POST-запрос с авторизацией

URL: https://www.alkraft.ru/api/orders/getOrder

 

Пример:

curl https://www.alkraft.ru/api/orders/getOrder
-X POST
-H "Authorization: authToken"
-H 'Content-Type: application/json'
-d 'JSONdata'

 

Параметры запроса:

authToken: Авторизационный токен, устанавливается в личном кабинете пользователя.

JSONdata: данные в формате JSON

 

Структура данных запроса:

{

--требуется передача хотя бы одного идентификатора--

orderId: Уникальный идентификатор заказа, полученный в результате создания заказа

orderHash: Идентификатор заказа в системе партнера, передаваемый при создании заказа

}

 

Формат ответа: JSON

 

Структура ответа:

{

status: Статус обработки запроса ( true | false )

errors[ ]: Массив ошибок, если status = false

data: Данные заказа

{

orderId: Уникальный идентификатор заказа

orderHash: Идентификатор заказа в системе Партнера

number: Номер заказа

date: Дата и время заказа (YYYY-MM-DD hh:mm)

clientNumber: Номер заказа в системе Партнера

channel: Канал продажи

{

id: Идентификатор канала продажи

name: Наименование канала продажи

}

comment: Комментарий
manager: ФИО менеджера заказа
details[ ]: Массив строк заказа

{

rowId: Идентификатор строки заказа в системе Партнера

index: Номер строки

fullname: Наименование номенклатуры

shipDate: Дата отгрузки (YYYY-MM-DD)

quantity: Количество

price: Цена

discount: Сумма скидки

sum: Сумма со скидкой

typeCode: Код вида изделия

width: Ширина изделия

height: Высота изделия

--далее данные нестандартного изделия--

tableCode: Код таблицы размеров

extrasL[ ]: Массив кодов дополнений левой секции

extrasR[ ]: Массив кодов дополнений правой секции

L1: Размер левой секции

comment: Комментарий к строке заказа

}  

sum: Сумма заказа
sum_payed: Сумма оплат
sum_shipped: Сумма отгрузок

}

}

 

Пример получения данных заказа на PHP:

$data['orderHash'] = '3101202112345';
$data['orderId'] = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee';

$JSONdata = json_encode($data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://www.alkraft.ru/api/orders/getOrder");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, 
     array(
           "Content-type: application/json", 
           "Autorization: aaaabbbbccccddddeeeeffffgggghhhh",
           "Connection: close"
     )
);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $JSONdata);

$curlResponse = curl_exec($curl);

if (!$curlResponse) {
    die("curl_error:" . curl_error($curl)); //Ошибка выполнения
}

curl_close($curl);

if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 200) {
    die("Status: $status"); //Ошибка подключения к сервису
}

$answer = json_decode($curlResponse); //Полученный ответ от сервиса

if ($answer->status == "false")) {
    print_r($answer->errors); //Ошибки
    die();
}

print_r($answer->data); //Данные заказа