Здравствуйте.

Если у вас возникла необходимость настроить оповещения из битрикс о закончившемся товаре, то вам поможет этот скрипт.

Вам необходимо создать новое почтовое событие и почтовый шаблон для него.
В шаблоне используете переменные #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);
	}
}

Не забудьте изменить ид и тип почтового события, а также имена переменных, если вы меняли их в почтовом шаблоне.

Удачи в борьбе с битриксом;)

Битрикс оповещение о закончившемся товаре
Метки:             

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

90% сайтов рунета содержат уязвимости и могут быть взломаны! Проверь свой сайт!