Март 22, 2018
Теги: Магазин
Работа со статусами интернет-магазина средствами классов "\Bitrix\Sale\Internals\StatusTable" и "\Bitrix\Sale\Internals\StatusLangTable".
Получение основной информации о статусах заказа (без языкозависимой информации), отсортированной по параметру "Сортировка":
\Bitrix\Main\Loader::IncludeModule("sale");
$statusResult = \Bitrix\Sale\Internals\StatusTable::getList(array(
'order' => array('SORT'=>'ASC'),
'filter' => array('TYPE'=>'O'),
));
while($status = $statusResult->fetch())
{
print_r($status);
}
/*
Пример результата:
Array
(
[ID] => N
[TYPE] => O
[SORT] => 100
[NOTIFY] => Y
)
Array
(
[ID] => C
[TYPE] => O
[SORT] => 110
[NOTIFY] => Y
)
Array
(
[ID] => D
[TYPE] => O
[SORT] => 120
[NOTIFY] => Y
)
Array
(
[ID] => P
[TYPE] => O
[SORT] => 150
[NOTIFY] => Y
)
Array
(
[ID] => F
[TYPE] => O
[SORT] => 200
[NOTIFY] => Y
)
*/
Получение языкозависимой информации о статусах заказа:
\Bitrix\Main\Loader::IncludeModule("sale");
$statusResult = \Bitrix\Sale\Internals\StatusLangTable::getList(array(
'order' => array('STATUS.SORT'=>'ASC'),
'filter' => array('STATUS.TYPE'=>'O','LID'=>LANGUAGE_ID),
'select' => array('STATUS_ID','NAME','DESCRIPTION'),
));
while($status=$statusResult->fetch())
{
print_r($status);
}
/*
Пример результата:
Array
(
[STATUS_ID] => N
[NAME] => Принят, ожидается подтверждение менеджером
[DESCRIPTION] => Заказ принят, ожидайте подтверждения наличия товара менеджером. Вы сможете оплатить заказ после подтверждения.
)
Array
(
[STATUS_ID] => C
[NAME] => Подтвержден, ожидается оплата
[DESCRIPTION] => Наличие товара подтверждено менеджером. Вы можете оплатить заказ или распечатать счет по ссылке ниже.
)
Array
(
[STATUS_ID] => D
[NAME] => Заказ отклонен
[DESCRIPTION] => Заказ отклонен из-за недостаточного количества товара на складе или по другим причинам
)
Array
(
[STATUS_ID] => P
[NAME] => Оплачен, формируется к отправке
[DESCRIPTION] => Заказ оплачен, формируется к отправке клиенту.
)
Array
(
[STATUS_ID] => F
[NAME] => Выполнен
[DESCRIPTION] => Заказ отправлен клиенту
)
*/
Получение языкозависимой информации о статусах доставки, включая флаг уведомлений:
\Bitrix\Main\Loader::IncludeModule("sale");
$statusResult = \Bitrix\Sale\Internals\StatusLangTable::getList(array(
'order' => array('STATUS.SORT'=>'ASC'),
'filter' => array('STATUS.TYPE'=>'D','LID'=>LANGUAGE_ID),
'select' => array('STATUS_ID','NAME','DESCRIPTION','NOTIFY'=>'STATUS.NOTIFY'),
));
while($status=$statusResult->fetch())
{
print_r($status);
}
/*
Пример результата:
Array
(
[STATUS_ID] => DN
[NAME] => Ожидает обработки
[DESCRIPTION] => Ожидает обработки
[NOTIFY] => Y
)
Array
(
[STATUS_ID] => DF
[NAME] => Отгружен
[DESCRIPTION] => Отгружен
[NOTIFY] => Y
)
*/