Если у вас несколько интернет-магазинов работают под управлением БУС на многосайтовости, то возникает вопрос как разметить номера заказов для менеджеров. Для этого добавим в файл /bitrix/modules/sale/init.php код:
<?
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandlerCompatible('sale', 'OnBeforeOrderAccountNumberSet',
function ($orderId, $type){
if($type == 'siteid_orderid' && $orderId > 0){
$arOrder = CSaleOrder::GetByID($orderId);
$num = $arOrder['ID']; // получаем номер заказа
if($arOrder['LID'] == "s1") {
$vdOrder = $num."- Рога и копыта";
} elseif ($arOrder['LID'] == "s2") {
$vdOrder = $num."- Попкорн и печеньки";
} else {
$vdOrder = $num."- Мемы и кеки"; // сайт по умолчанию, если вдруг мы не получили идентификатор
}
return $vdOrder;
}
return false;
});
//ФОРМИРУЕМ САМ ФОРМАТ ВЫВОДА НОМЕРА ЗАКАЗ
$eventManager->addEventHandlerCompatible('sale', 'OnBuildAccountNumberTemplateList',
function (){
return array(
'CODE' => 'siteid_orderid',
'NAME' => 'SITE_ID: ORDER_ID/DATE'); //формат вывода
});
?>
Теперь представим ситуацию: у вас есть 3 сайта на мультисайтовости Битрикс (едина админка). Допустим сайты называются так:
- Рога и копыта (ID = s1);
- Попкорн и печеньки (ID=s2);
- Мемы и кеки (ID=s3).
Допустим заказ №1000 приходит от сайта "Рога и копыта", заказ №1001 от "Попкорн и печеньки", заказ №1002 от "Мемы и кеки".
При стандартных настройках Битрикса вы бы никак не смогли понять откуда же пришел заказ, так как нельзя указать в номере заказа ID сайта.
При наших настройках Номера заказов, попадаемые на почту будут выглядеть так: "Поступил новый заказ №1000-Рога и копыта", "Поступил новый заказ №1001-Попкорн и печеньки", "Поступил новый заказ №1001-Мемы и кеки".
В нашем случае мы использовали только 'NAME' => 'SITE_ID: ORDER_ID/DATE'
. Вот несколько полезных свойств, которые вы можете использовать для массива в eventManager:
[ID]
- уникальный идентификатор заказа[LID]
- идентификатор сайта с которого был заказ[DATE_INSERT]
=> 2021-05-22 12:34:42[PERSON_TYPE_ID]
=> 1 (физ лицо)[USER_ID]
- идентификатор покупателя[DATE_INSERT_FORMAT]
в формате 05/22/2021
Устанавливается новый формат в настройках модуля Настройки - Модули - "Интернет-магазин". При этом кастомный формат нельзя комбинировать с другими базовыми. Он просто не будет работать
Небольшая ремарка: для Битрикс-24 (допустим в случае модели Заказ+Сделка на лицензии Интернет-магазин+CRM) эта настройка работать не будет, там будет просто прилетать обычный номер заказа.