Работа со статусами заказов и доставки

Март 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
)
*/

← Переход к списку