Здравствуйте.
Если у вас возникла необходимость настроить оповещения из битрикс о закончившемся товаре, то вам поможет этот скрипт.
Вам необходимо создать новое почтовое событие и почтовый шаблон для него.
В шаблоне используете переменные #PROD_NAME# и #PROD_ART# или любые другие на ваш выбор.
В этом примере используется только название и артикул товара, но вы можете использовать любые другие данные — вы можете найти их в массиве $ar_res или получить из базы.
В настройках инфоблока каталога создайте текстовое/числовое поле с символьным кодом, например, OLD_QUANT.
Откройте файл /bitrix/php_interface/init.php, если его нет создайте.
Впишите в него следующий код и сохраните изменения.
AddEventHandler("catalog", "OnProductUpdate", "notInStore"); function notInStore($ID,$Fields){ //получаем данные товара по ID $ar_res = CCatalogProduct::GetByIDEx($ID); $upd = false; $old = $ar_res['PROPERTIES']['OLD_QUANT']['VALUE']; //при необходимости обновляем количество if($Fields['QUANTITY'] != $old){ $upd = CIBlockElement::SetPropertyValuesEx( $ID, $Fields['IBLOCK_ID'], array('OLD_QUANT' => $Fields['QUANTITY']) ); }//если количество не изменилось выходим else{ return; } //если товара 0, а в прошлый раз он был //отправляем письмо //эта проверка нужна, чтобы не слать ложные письма //например, при изменении цены товара которого нет на складе if($Fields['QUANTITY'] == 0 && $old != 0){ $TYPE_MAIL_EVENT = 'PRODUCT_ENDED'; $arMail = array( # Наименование - #PROD_NAME# 'PROD_NAME' => $ar_res['NAME'], # Артикул - #PROD_ART# 'PROD_ART' => $ar_res['PROPERTIES']['ARTNUMBER']['VALUE'], ); $ID_MAIL_EVENT = 25; $ok = CEvent::Send($TYPE_MAIL_EVENT,"s1", $arMail, $ID_MAIL_EVENT); } }
Не забудьте изменить ид и тип почтового события, а также имена переменных, если вы меняли их в почтовом шаблоне.
Удачи в борьбе с битриксом;)