Битрикс как присылать оповещения о закончившемся товаре

Продолжаем разбирать события в bitrix api. В этот раз присылаем почтовое событие если количество товара равно нолю.

Как прислать сообщение о товаре который закончился в битриксе

В этот раз будем использовать менее популярный метод CCatalogProduct::GetByIDEx.

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

PRODUCT_ENDED — тип почтового события.
$ID_MAIL_EVENT — идентификатор почтового шаблона по которому будет отправлено письмо.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

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

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