@saint-laurent

Как выводить разную информацию в зависимости от наличия/отсутствия типа цен у товара?

В интернет-магазине несколько типов цен, из них 2 выводятся в каталоге: розничная и оптовая. Есть группа товаров доступная для приобретения только профессионалами. У этих товаров отличительная черта, что нет розничной цены. Необходимо сделать так, чтобы информация выводилась в зависимости от наличия розничной цены. Как это сделать в битриксе?

Я пробовал делать так, но почему-то не работает:
$hasRetailPrice = !empty($arResult['PRICES']['ДЛЯ КЛИЕНТОВ']['VALUE']);
$hasProPrice = !empty($arResult['PRICES']['ДЛЯ ПРОФЕССИОНАЛОВ']['VALUE']);

<?if (!$actualItem['CAN_BUY']) {
        if (!$hasRetailPrice && $hasProPrice) {
?>
        <p class="img-link-title">Доступен только для профессионалов</p>
  <? } else { ?>
        <p class="img-link-title">Нет в наличии</p>
  <? }
} ?>


И так:
$hasRetailPrice = !empty($arItem['ДЛЯ КЛИЕНТОВ']);
$hasProPrice = !empty($arItem['ДЛЯ ПРОФЕССИОНАЛОВ']);

<?if (!$actualItem['CAN_BUY']) {
        if (!$hasRetailPrice && $hasProPrice) {
?>
        <p class="img-link-title">Доступен только для профессионалов</p>
  <? } else { ?>
        <p class="img-link-title">Нет в наличии</p>
  <? }
} ?>


Запись в arResult:
[PRICE_CODE] => ARRAY
                (
                    [0] => ДЛЯ КЛИЕНТОВ
                    [1] => ДЛЯ ПРОФЕССИОНАЛОВ
                )

 [CAT_PRICES] => ARRAY
        (
            [ДЛЯ КЛИЕНТОВ] => ARRAY
                (
                    [ID] => 3
                    [CODE] => ДЛЯ КЛИЕНТОВ
                    [SORT] => 100
                    [BASE] => Y
                    [XML_ID] => 
                    [TITLE] => ДЛЯ КЛИЕНТОВ
                    [~TITLE] => ДЛЯ КЛИЕНТОВ
                    [SELECT] => CATALOG_GROUP_3
                    [SELECT_EXTENDED] => ARRAY
                        (
                            [0] => PRICE_3
                            [1] => CURRENCY_3
                            [2] => SCALED_PRICE_3
                        )

                    [CAN_VIEW] => 1
                    [CAN_BUY] => 1
                )

            [ДЛЯ ПРОФЕССИОНАЛОВ] => ARRAY
                (
                    [ID] => 5
                    [CODE] => ДЛЯ ПРОФЕССИОНАЛОВ
                    [SORT] => 100
                    [BASE] => N
                    [XML_ID] => 
                    [TITLE] => ДЛЯ ПРОФЕССИОНАЛОВ
                    [~TITLE] => ДЛЯ ПРОФЕССИОНАЛОВ
                    [SELECT] => CATALOG_GROUP_5
                    [SELECT_EXTENDED] => ARRAY
                        (
                            [0] => PRICE_5
                            [1] => CURRENCY_5
                            [2] => SCALED_PRICE_5
                        )

                    [CAN_VIEW] => 
                    [CAN_BUY] => 
                )

        )
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@koder_1
Битрикс программист
Чтобы решать эту задачу и множество других подобных задач, есть общий подход, называется отладка.
Самый простой способ отладки - это выводить определённые переменные, которые используются у Вас в коде.
echo "Цена для клиентов =".$arResult['PRICES']['ДЛЯ КЛИЕНТОВ']['VALUE']."<br>";
echo "hasRetailPrice =".$hasRetailPrice."<br>";
echo "Цена для профессионалов =".$arResult['PRICES']['ДЛЯ ПРОФЕССИОНАЛОВ']['VALUE']."<br>";
echo "hasProPrice =".$hasProPrice."<br>";

Будет наглядно видно, что по факту в переменных, и почему выполняется та или иная ветвь в if
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы