Ответы пользователя по тегу 1С-Битрикс
  • Как отловить событие изменения цены товара в Битриксе?

    @vcherepko Автор вопроса
    Вроде разобрался!
    Пример рабочего кода
    $eventManager->addEventHandler( 'catalog', '\Bitrix\Catalog\Price::OnBeforeUpdate',
    static function (\Bitrix\Main\Event $event) {          
      $data = $event->getParameter("fields");   
      $rsPrice = \Bitrix\Catalog\Model\Price::getList(array('filter'=>array('PRODUCT_ID'=>$data['PRODUCT_ID'])))->fetch();
    } 
    );

    Как я понял событие Price::OnBeforeUpdate срабатывает всегда, вне зависимости от изменения цены.
    Поэтому, для того чтобы отследить изменение цены необходимо сначала отдельным запросом получить текущую цену, а затем сравнить ее с той что пришла в $data.

    Может я что-то не так понял, поправьте если что...
    Ответ написан
    Комментировать
  • Как настроить почту Outlock на виртуальной машине Битрикс?

    @vcherepko Автор вопроса
    Задача решилась установкой и настройкой Postfix
    Ответ написан
    Комментировать
  • Как сделать SEO данные для умного фильтра?

    @vcherepko
    В init.php
    define( 'IBLOCK_SEO', 'ID_Вашего созданного инфоблока' ); //лобо просто в $arFilter
    В section.php в конце
    $currentPageUrl = str_replace(' ','%20',$APPLICATION->GetCurPage(false)); //мне пришлось экранировать пробелы
    	$currentPageSeo = array();
    	$arSelect = Array("ID", "PROPERTY_SEO_TITLE", "PROPERTY_SEO_KEYWORDS", "PROPERTY_SEO_DESCRIPTION");
    	$arFilter = Array("IBLOCK_ID"=>IBLOCK_SEO, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", "PROPERTY_SEO_URL"=>$currentPageUrl);
    	$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
    	while($ob = $res->GetNextElement()){
    	    $arFields = $ob->GetFields();
    	    $currentPageSeo = array(
            "TITLE" => $arFields["PROPERTY_SEO_TITLE_VALUE"],
            "KEYWORDS" => $arFields["PROPERTY_SEO_KEYWORDS_VALUE"],
            "DESCRIPTION" => $arFields["PROPERTY_SEO_DESCRIPTION_VALUE"]
        	);
    	};

    //Устанавливаем полученные параметры
    	if($currentPageSeo["TITLE"]){
    	    $APPLICATION->SetPageProperty("title", $currentPageSeo["TITLE"]);
    	}
    	if($currentPageSeo["KEYWORDS"]){
    	    $APPLICATION->SetPageProperty("keywords", $currentPageSeo["KEYWORDS"]);
    	}
    	if($currentPageSeo["DESCRIPTION"]){
    	    $APPLICATION->SetPageProperty("description", strip_tags($cnt." ".$currentPageSeo["DESCRIPTION"]));
    	};
    Ответ написан