Иногда требуется, чтобы у сайта услуг был собственный прайс-лист. Это достаточно удобно, ведь можно править все цены услуг в одном месте и они автоматически будут изменяться во всех услугах, где указана связь.
Чтобы это сделать нужно:
- Создать инфоблок "Цены" с множественным свойством ATT_PRICE.
- В инфоблоке услуг создать свойство типа Число "Вывод цены по ID", назовем его ATT_PRICEID.
- Теперь указывая ID элемента инфоблока "Цены" мы будем говорить услугам, чтобы они брали цен из этого элемента.
В news.list шаблона каталога услуг в месте вывода цены пропишем следующий код, тем самым мы выведем минимальную цену в списке услуг (если в прайс листе у нас указано их несколько.
<?if($arItem["DISPLAY_PROPERTIES"]["ATT_PRICEID"] && $arItem["DISPLAY_PROPERTIES"]["ATT_PRICEID"]["VALUE"] != ''){?>
<div class="cl__price">
<?
$arFilter = array("IBLOCK_ID"= "ID_ИНФОБЛОКА_ЦЕН", "ID" => $arItem["DISPLAY_PROPERTIES"]["ATT_PRICEID"]["VALUE"]);
$arSelect = array("IBLOCK_ID", "ID", "NAME");
$rsResult = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $rsResult->GetNextElement()) {
$arProps = $ob->GetProperties();
echo "<span>". number_format(min($arProps["ATT_PRICE"]["VALUE"]), 0, '', ' ') . "</span> руб";
}?>
</div>
<?}?>
В news.detail шаблона каталога услуг в месте вывода цены пропишем следующий код, тем самым мы выведем все цены, которые только можно, плюс еще и описание к ним.
<?if($arResult["DISPLAY_PROPERTIES"]["ATT_PRICEID"] && $arResult["DISPLAY_PROPERTIES"]["ATT_PRICEID"]["VALUE"] != ''){?>
<div class="cd__price">
<?
$prices = array();
$arFilter = array("IBLOCK_ID"=> "ID_ИНФОБЛОКА_ЦЕН", "ID" => $arResult["DISPLAY_PROPERTIES"]["ATT_PRICEID"]["VALUE"]);
$arSelect = array("IBLOCK_ID", "ID", "NAME");
$rsResult = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $rsResult->GetNextElement()) {
$arProps = $ob->GetProperties();
$prices["VALUE"] = $arProps["ATT_PRICE"]["VALUE"];
$prices["DESCRIPTION"] = $arProps["ATT_PRICE"]["DESCRIPTION"];
}
foreach ($prices["VALUE"] as $key => $price) {?>
<div class="row no-gutters cd__price-row">
<div class="col-4">
<div class="cd__price-val">
<?=$price?> руб.
</div>
</div>
<div class="col-8 text-right">
<div class="cd__price-descr">
<?=$prices["DESCRIPTION"][$key]?>
</div>
</div>
</div>
<?}?>
</div>
<?}?>