Задать вопрос
  • Как вывести цену в подробное описание?

    @PetrPo
    В детальном описании пишешь текст текст текст ... Вы можете купить этот товар по цене #PRICE_1# руб. .... текст текст текст
    #PRICE_1# - это макрос, в котором 1 - это ID нужного типа цены (тут по желанию можно и символьный код цены)

    Если на примере простых товаров, код выглядит примерно так
    if($arResult['DETAIL_TEXT']) {
    	$arPrices = $aSearch = $aReplace = array();
    
    	preg_match_all('/#PRICE_\d#/', $arResult['DETAIL_TEXT'], $matches);
    	
    	if($matches[0]) {
    		$iterator = \Bitrix\Catalog\PriceTable::getList([
    			'select' => ['CATALOG_GROUP_ID', 'PRICE', 'CURRENCY'],
    			'filter' => ['PRODUCT_ID' => $arResult['ID']]
    		]);
    
    		while($row = $iterator->fetch()) {
    			$arPrices[$row['CATALOG_GROUP_ID']] = CCurrencyLang::CurrencyFormat($row['PRICE'], $row['CURRENCY']);
    		}
    		
    		$aSearch = $matches[0];
    		
    		foreach($aSearch as $key => $str) {
    			$priceId = str_replace(['#', 'PRICE_'], '', $str);
    			$aReplace[$key] = $arPrices[$priceId];
    		}
    		
    		$arResult['DETAIL_TEXT'] = str_replace($aSearch, $aReplace, $arResult['DETAIL_TEXT']);
    	}
    }
    Ответ написан
    Комментировать