- События
- OnBuildOrderParamsArray - событие при сборке промежуточного массива параметров заказа
- OnBuildIikoOrderBody - событие при сборке окончательного массива параметров заказа
- Классы и функции
- \Grain\Iiko\Restaurants - класс для работы с ресторанами
- \Grain\Iiko\Restaurants\getRestaurantByProductId - получение массива ресторана по ID блюда
- \Grain\Iiko\Restaurants::getRestaurantByProductIblockId - получение массива ресторана по ID инфоблока блюд
- \Grain\Iiko\Restaurants::getRestaurantByOrder - получение массива ресторана из объекта заказа
- \Grain\Iiko\Restaurants::getRestaurantByBasketItem - получение массива ресторана из объекта позиции корзины
- \Grain\Iiko\Restaurants::getRestaurantList - получение списка ресторанов
- \Grain\Iiko\Restaurants::getRestaurantById - получение массива ресторана по ID
- Grain\Iiko\Restaurants::sync - синхронизация ресторанов
- \Grain\Iiko\Dishes - класс для работы с блюдами ресторана
- \Grain\Iiko\Location - класс для работы с базой адресов зоны доставки
- \Grain\Iiko\Modifier - работа с модификаторами
- \Grain\Iiko\Modifier::get - получение массива модификаторов по ID или массиву элемента
- \Grain\Iiko\Modifier::getRequired - получение массива обязательных модификаторов для элемента
- \Grain\Iiko\Modifier::getRequiredModifierProps - получение массива свойств корзины для обязательных модификаторов элемента
- \Grain\Iiko\Modifier::getRequiredModifiersPrice - получение стоимости обязательных модификаторов элемента
- \Grain\Iiko\Modifier::getPreparedForOrder - получение массива модификаторов, подготовленного для заказа, по ID или массиву элемента
- \Grain\Iiko\Modifier::setModifierQuantity - установка количества для модификатора в позиции корзины
- \Grain\Iiko\Modifier::getBasketPropertyValue - получение значения свойства позиции корзины
- \Grain\Iiko\Modifier::getBasketPropertyValues - получение значений всех свойств позиции корзины
- \Grain\Iiko\Modifier::saveBasketProperty - сохранение значения свойства позиции корзины
- \Grain\Iiko\Modifier::deleteBasketProperty - удаление свойства позиции корзины
- \Grain\Iiko\Modifier::getGroupTree - получение дерева групп модификаторов для ресторана
- \Grain\Iiko\Modifier::getTree - получение дерева модификаторов для ресторана
- \Grain\Iiko\Modifier::isModifierActive - проверка активности модификатора
- \Grain\Iiko\ModifierListTable - ORM класс для сохранения списка модификаторов
- \Grain\Iiko\ModifierListGroupTable - ORM класс для сохранения групп модификаторов
- \Grain\Iiko\Rest - класс для выполнения запросов к api iiko
OnBuildOrderParamsArray - событие при сборке промежуточного массива параметров заказа
Событие возникает при сборке массива параметров заказа. Функция может вернуть измененный массив. Это промежуточный, а не окончательный массив данных для передачи данных в iiko, окончательный массив можно изменить по событию OnBuildIikoOrderBody.
Входные параметры:
Параметр | Тип | Описание |
---|---|---|
RESTAURANT | Array | Массив с данными ресторана |
ORDER | \Bitrix\Sale\Order object | Объект заказа модуля интернет-магазина |
PARAMS | Array | Промежуточный массив параметров заказа |
CHECK | Boolean | Флаг проверки возможности создания заказа. Установлен в true, если производится проверка перед созданием заказа, а не добавление. |
Пример обработки события:
namespace Partner;
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'grain.iiko',
'OnBuildOrderParamsArray',
'\Partner\IikoOrderEvents::onBuildOrderParamsArray'
);
class IikoOrderEvents
{
function onBuildOrderParamsArray(\Bitrix\Main\Event $event)
{
$restaurant = $event->getParameter('RESTAURANT');
$order = $event->getParameter('ORDER');
$params = $event->getParameter('PARAMS');
$check = $event->getParameter('CHECK');
// изменяем массив $params
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $params);
return $result;
}
}
OnBuildIikoOrderBody - событие при сборке окончательного массива параметров заказа
Событие возникает при сборке окончательного массива данных для передачи данных в iiko. Функция может вернуть измененный массив.
Входные параметры:
Параметр | Тип | Описание |
---|---|---|
RESTAURANT | Array | Массив с данными ресторана |
ORDER | \Bitrix\Sale\Order object | Объект заказа модуля интернет-магазина |
PARAMS | Array | Промежуточный массив параметров заказа |
BODY | Array | Окончательный массив параметров заказа для передачи в iiko |
CHECK | Boolean | Флаг проверки возможности создания заказа. Установлен в true, если производится проверка перед созданием заказа, а не добавление. |
Пример обработки события:
namespace Partner;
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'grain.iiko',
'OnBuildIikoOrderBody',
'\Partner\IikoOrderEvents::onBuildIikoOrderBody'
);
class IikoOrderEvents
{
function onBuildIikoOrderBody(\Bitrix\Main\Event $event)
{
$restaurant = $event->getParameter('RESTAURANT');
$order = $event->getParameter('ORDER');
$params = $event->getParameter('PARAMS');
$body = $event->getParameter('BODY');
$check = $event->getParameter('CHECK');
// изменяем массив $body
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $body);
return $result;
}
}
\Grain\Iiko\Restaurants - класс для работы с ресторанами
Ресторан в рамках модуля является элементом инфоблока, под ID ресторана подразумевается ID элемента инфоблока. ID ресторана в системе iiko сохраняется в поле "Внешний код" (XML_ID) элемента инфоблока и по нему осуществляется синхронизация.
При синхронизации также создаются и заполняются следующие свойства ресторанов:
Название | Символьный код в системе 1С-Битрикс |
---|---|
Адрес | address |
Местоположение | location |
Телефон | phone |
Средний чек | averagecheque |
Iso идентификатор валюты | currencyisoname |
Домашняя страница | homepage |
Веб-сайт | website |
Широта | latitude |
Долгота | longitude |
Максимальный бонус | maxbonus |
Минимальный бонус | minbonus |
Сетевой идентификатор | networkid |
Тип организации | organizationtype |
Временная зона | timezone |
Режим работы | worktime |
\Grain\Iiko\Restaurants\getRestaurantByProductId - получение массива ресторана по ID блюда
Возвращает массив с основными полями ресторана (NAME, ID, XML_ID) по ID блюда.
Параметр | Описание параметра |
---|---|
$productId | ID блюда |
\Grain\Iiko\Restaurants::getRestaurantByProductIblockId - получение массива ресторана по ID инфоблока блюд
Возвращает массив с основными полями ресторана (NAME, ID, XML_ID) по ID инфоблока блюда.
Параметр | Описание параметра |
---|---|
$productIblockId | ID инфоблока блюда |
\Grain\Iiko\Restaurants::getRestaurantByOrder - получение массива ресторана из объекта заказа
Возвращает массив с основными полями ресторана (NAME, ID, XML_ID) по объекту заказа.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\Order $order | Объект заказа модуля интернет-магазина |
\Grain\Iiko\Restaurants::getRestaurantByBasketItem - получение массива ресторана из объекта позиции корзины
Возвращает массив с основными полями ресторана (NAME, ID, XML_ID) по объекту позиции корзины.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\BasketItem $item | Объект позиции корзины модуля интернет-магазина |
\Grain\Iiko\Restaurants::getRestaurantList - получение списка ресторанов
Возвращает список ресторанов в виде вложенных массивов (NAME, ID, XML_ID) по объекту позиции корзины.
Параметр | Описание параметра |
---|---|
$filter=false | Дополнительный фильтр по элементам инфоблока |
\Grain\Iiko\Restaurants::getRestaurantById - получение массива ресторана по ID
Возвращает массив с основными полями ресторана (NAME, ID, XML_ID) по ID ресторана.
Параметр | Описание параметра |
---|---|
$id | ID ресторана (ID элемента инфоблока) |
Grain\Iiko\Restaurants::sync - синхронизация ресторанов
Выполняет синхронизацию ресторанов.
Функция является функцией агента и возвращает собственное имя для следующего выполнения.
Функция не имеет параметров.
\Grain\Iiko\Dishes - класс для работы с блюдами ресторана
Блюдо в рамках модуля является элементом инфоблока, под ID блюда подразумевается ID элемента инфоблока. ID блюда в системе iiko сохраняется в поле "Внешний код" (XML_ID) элемента инфоблока и по нему осуществляется синхронизация блюд.
При синхронизации также создаются и заполняются следующие свойства блюд:
Название | Символьный код в системе 1С-Битрикс |
---|---|
Количество углеводов | carbohydrateamount |
Полное количество углеводов | carbohydratefullamount |
Не печатать в чеке | donotprintincheque |
Полное количество энергии | energyfullamount |
Количество жира | fatamount |
Количество клетчатки | fiberamount |
Полное количество клетчатки | fiberfullamount |
Единица измерения | measureunit |
Тип | type |
Вес | weight |
Включено в меню | isincludedinmenu |
Заказ | order |
Id изображения | imageid |
\Grain\Iiko\Dishes::sync - синхронизация блюд
Выполняет синхронизацию блюд.
Функция является функцией агента и возвращает собственное имя для следующего выполнения.
Функция не имеет параметров.
\Grain\Iiko\Location::sync - синхронизация зон доставки
Выполняет синхронизацию адресов зон доставки.
Функция является функцией агента и возвращает собственное имя для следующего выполнения.
Функция не имеет параметров.
\Grain\Iiko\Modifier::get - получение массива модификаторов по ID или массиву элемента
Возвращает массив модификаторов блюда.
Параметр | Описание параметра |
---|---|
$element | ID или массив со свойствами, блюда как элемента информационного блока |
\Bitrix\Sale\BasketItem $item=null | Объект позиции корзины модуля интернет-магазина. Если присутствует, то также будут возвращены значения количества для каждого модификатора для данной позиции корзины (ключ "selected"). |
Пример результата:
Array
(
[0] => Array
(
[maxAmount] => 1
[minAmount] => 0
[modifierId] => 55d3bd31-99c8-4ea1-b27c-1fdb6587d87a
[required] =>
[defaultAmount] => 0
[hideIfDefaultAmount] =>
[groupId] => de5f8326-5c2f-4662-b218-79430115ba90
[groupName] => Оливье
[groupRequired] => 1
[groupMinAmount] => 1
[groupMaxAmount] => 1
[m] => Array
(
[additionalInfo] =>
[code] => 03626
[description] =>
[id] => 55d3bd31-99c8-4ea1-b27c-1fdb6587d87a
[isDeleted] =>
[name] => Малая порция
[seoDescription] =>
[seoKeywords] =>
[seoText] =>
[seoTitle] =>
[tags] =>
[carbohydrateAmount] => 8.079
[carbohydrateFullAmount] => 80.79
[differentPricesOn] => Array
(
)
[doNotPrintInCheque] =>
[energyAmount] => 144.006
[energyFullAmount] => 1440.06
[fatAmount] => 7.863
[fatFullAmount] => 78.63
[fiberAmount] => 10.039
[fiberFullAmount] => 100.39
[groupId] => de5f8326-5c2f-4662-b218-79430115ba90
[groupModifiers] => Array
(
)
[measureUnit] => порц
[modifiers] => Array
(
)
[price] => 350
[productCategoryId] => 0e9ab194-1ef5-4854-0172-b4889f507477
[prohibitedToSaleOn] => Array
(
)
[type] => modifier
[useBalanceForSell] =>
[weight] => 1
[images] =>
[isIncludedInMenu] => 1
[order] => 0
[parentGroup] =>
[warningType] => 0
)
[selected] => 1
)
[1] => Array
(
[maxAmount] => 1
[minAmount] => 0
[modifierId] => 6de49eff-3d87-463c-b987-261a64e4a127
[required] =>
[defaultAmount] => 0
[hideIfDefaultAmount] =>
[groupId] => de5f8326-5c2f-4662-b218-79430115ba90
[groupName] => Оливье
[groupRequired] => 1
[groupMinAmount] => 1
[groupMaxAmount] => 1
[m] => Array
(
[additionalInfo] =>
[code] => 03628
[description] =>
[id] => 6de49eff-3d87-463c-b987-261a64e4a127
[isDeleted] =>
[name] => Большая порция
[seoDescription] =>
[seoKeywords] =>
[seoText] =>
[seoTitle] =>
[tags] =>
[carbohydrateAmount] => 8.079
[carbohydrateFullAmount] => 121.185
[differentPricesOn] => Array
(
)
[doNotPrintInCheque] =>
[energyAmount] => 144.006
[energyFullAmount] => 2160.09
[fatAmount] => 7.863
[fatFullAmount] => 117.945
[fiberAmount] => 10.039
[fiberFullAmount] => 150.585
[groupId] => de5f8326-5c2f-4662-b218-79430115ba90
[groupModifiers] => Array
(
)
[measureUnit] => порц
[modifiers] => Array
(
)
[price] => 990
[productCategoryId] => 0e9ab194-1ef5-4854-0172-b4889f507477
[prohibitedToSaleOn] => Array
(
)
[type] => modifier
[useBalanceForSell] =>
[weight] => 1.5
[images] =>
[isIncludedInMenu] => 1
[order] => 0
[parentGroup] =>
[warningType] => 0
)
[selected] => 0
)
)
\Grain\Iiko\Modifier::getRequired - получение массива обязательных модификаторов для элемента
Возвращает массив обязательных модификаторов с необходимым минимальным количеством для быстрого добавления в корзину. Возвращаемый результат аналогичен функции \Grain\Iiko\Modifier::get.
Параметр | Описание параметра |
---|---|
$element | ID или массив со свойствами, блюда как элемента информационного блока |
\Grain\Iiko\Modifier::getRequiredModifierProps - получение массива свойств корзины для обязательных модификаторов элемента Аналогична функции \Grain\Iiko\Modifier::getRequired, но возвращаемый результат содержит готовый массив свойств для позиции корзины.
\Grain\Iiko\Modifier::getRequiredModifiersPrice - получение стоимости обязательных модификаторов элемента
Возвращает минимальную стоимость обязательных модификаторов в виде числа с плавающей точкой (float).
Параметр | Описание параметра |
---|---|
$element | ID или массив со свойствами, блюда как элемента информационного блока |
\Grain\Iiko\Modifier::getPreparedForOrder - получение массива модификаторов, подготовленного для заказа, по ID или массиву элемента Аналогична функции \Grain\Iiko\Modifier::get, но возвращаемый массив имеет структуру, специально подготовленную для добавления заказа.
\Grain\Iiko\Modifier::setModifierQuantity - установка количества для модификатора в позиции корзины
Устанавливает количество модификатора для позиции корзины.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\BasketItem $item | Объект позиции корзины модуля интернет-магазина |
String $modifierId | Идентификатор модификатора |
$quantity | Количество модификатора для позиции корзины |
\Grain\Iiko\Modifier::getBasketPropertyValue - получение значения свойства позиции корзины
Вспомогательная функция. Позволяет получить значение свойства позиции корзины модуля интернет-магазина.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\BasketItem $item | Объект позиции корзины модуля интернет-магазина |
String $propertyCode | Символьный код свойства позиции корзины |
\Grain\Iiko\Modifier::getBasketPropertyValues - получение значений всех свойств позиции корзины
Вспомогательная функция. Позволяет получить значение всех свойств позиции корзины модуля интернет-магазина.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\BasketItem $item | Объект позиции корзины модуля интернет-магазина |
\Grain\Iiko\Modifier::saveBasketProperty - сохранение значения свойства позиции корзины
Вспомогательная функция. Позволяет сохранить значение свойства позиции корзины модуля интернет-магазина.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\BasketItem $item | Объект позиции корзины модуля интернет-магазина |
String $propertyCode | Символьный код свойства позиции корзины |
String $value | Значение свойства |
String $name | Название свойства |
String $sort | Сортировка свойства |
String $xmlId | Внешний код свойства |
\Grain\Iiko\Modifier::deleteBasketProperty - удаление свойства позиции корзины
Вспомогательная функция. Позволяет удалить свойство позиции корзины модуля интернет-магазина.
Параметр | Описание параметра |
---|---|
\Bitrix\Sale\BasketItem $item | Объект позиции корзины модуля интернет-магазина |
String $propertyCode | Символьный код свойства позиции корзины |
\Grain\Iiko\Modifier::getGroupTree - получение дерева групп модификаторов для ресторана
Возвращает список групп модификаторов ресторана в виде развернутого дерева.
Параметр | Описание параметра |
---|---|
String $organizationId | ID ресторана в системе iiko |
\Grain\Iiko\Modifier::getTree - получение дерева модификаторов для ресторана
Возвращает список модификаторов ресторана в виде развернутого дерева с учетом групп модификаторов.
Параметр | Описание параметра |
---|---|
String $organizationId | ID ресторана в системе iiko |
\Grain\Iiko\Modifier::isModifierActive - проверка активности модификатора
Проверяет, активен ли модификатор и возвращает булевое значение. Функция имеет кеширование в статической переменной для множественного обращения внутри цикла.
Параметр | Описание параметра |
---|---|
$iblockId | ID инфоблока блюд |
String $modifierId | Символьный код модификатора |
\Grain\Iiko\ModifierListTable - ORM класс для сохранения списка модификаторов
Данный класс предназначен для сохранения списка модификаторов для ресторанов. Для обращения можно использовать стандартный функции ORM getList, add, update, delete и др.
Поле | Тип | Обяз. | Умолч. | Описание |
---|---|---|---|---|
ID | Integer | Да | Авт. | |
ORGANIZATION_ID | String | Да | ID ресторана в системе iiko | |
MODIFIER_ID | String | Да | ID модификатора в системе iiko | |
NAME | String | Да | Название модификатора | |
SORT | Integer | 100 | Сортировка | |
GROUP_ID | Integer | ID группы модификаторов | ||
GROUP | \Grain\Iiko\ModifierListGroupTable | Авт. | ||
ACTIVE | Boolean | Да | Y | Активен |
DELETED | Boolean | Да | N | Удален |
\Grain\Iiko\ModifierListGroupTable - ORM класс для сохранения групп модификаторов
Данный класс предназначен для сохранения дерева групп модификаторов для ресторанов. Для обращения можно использовать стандартный функции ORM getList, add, update, delete и др.
Поле | Тип | Обяз. | Умолч. | Описание |
---|---|---|---|---|
ID | Integer | Да | Авт. | |
ORGANIZATION_ID | String | Да | ID ресторана в системе iiko | |
GROUP_ID | String | Да | ID группы модификаторов в системе iiko | |
NAME | String | Да | Название группы модификаторов | |
SORT | Integer | 100 | Сортировка | |
PARENT_GROUP_ID | Integer | ID родительской группы модификаторов | ||
PARENT_GROUP | \Grain\Iiko\ModifierListGroupTable | Авт. | ||
ACTIVE | Boolean | Да | Y | Активен |
DELETED | Boolean | Да | N | Удален |
\Grain\Iiko\Rest - класс для выполнения запросов к api iiko
Класс предназначен для выполнения запросов к api системы iiko.