Кастомизация письма о новом заказе на сайте в Битрикс

Довольно типичная задача, но у многих программистов вызывает недоумение: как в письмо, которое отправляется владельцу сайта, когда создаётся новый заказ, добавить дополнительные данные из свойств этого заказа?

Оказывается всё просто! Достаточно использовать этот обработчик:

OnOrderNewSendEmail

Пример реализации:

Читать далее

Как получить минимальную цену среди торговых предложений товара в Битрикс

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

/*
 * функция получения минимальной цены среди торговых предложений товара с id = $item_id
 */
function get_offer_min_price($item_id){
    $ret = 0;
    
    CModule::IncludeModule("iblock");
    CModule::IncludeModule("catalog");
    // ID инфоблока товаров
    $IBLOCK_ID = 7; 
    $ID = $item_id; 
    $arInfo = CCatalogSKU::GetInfoByProductIBlock($IBLOCK_ID);
    
    if (is_array($arInfo)) {
        $res = CIBlockElement::GetList(Array("PRICE"=>"asc"), 
                                       array('IBLOCK_ID'=>$arInfo['IBLOCK_ID'], 'ACTIVE'=>'Y', 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $ID), 
                                       false, 
                                       false, 
                                       array('ID', 'NAME'))->GetNext();
        if ($res){
            $ret = GetCatalogProductPrice($res["ID"], 1);
            if ($ret['PRICE']){
                $ret = $ret['PRICE'];
            }
        }
    }
    return $ret;
}

Второй параметр у функции:

GetCatalogProductPrice($res["ID"], 1);

это ID типа цены.

Если же мы хотим, чтобы цена была с отступами тысячей и округлённая (выглядит так симпатичнее):

price2

то можно воспользоваться округлением:

$ret = round($ret);

и реализацией отступов:

$ret = number_format($ret, 0, '', ' ' );