Как показать различную информацию в зависимости от того, есть ли у товара цена или нет?

Каким образом можно настроить вывод информации в интернет-магазине на основе наличия розничной цены для товаров, доступных только для профессионалов? Возможно ли корректно доработать фрагмент кода в Битриксе для достижения этой цели, учитывая предоставленную структуру данных в массиве arResult?
  • 11 августа 2024 г. 17:03
Ответы на вопрос 2
Для показа различной информации в зависимости от наличия цены у товара можно использовать условный оператор в коде. Например, можно проверить, есть ли у товара цена в массиве данных (arResult) и в зависимости от этого выводить различную информацию. 

Пример кода на PHP для этой задачи может выглядеть примерно так:

```php
<?php
// Проверяем, есть ли у товара цена
if (!empty($arResult['PRICES']['BASE']['VALUE'])) {
    echo 'Цена: ' . $arResult['PRICES']['BASE']['PRINT_VALUE'];
} else {
    echo 'Цена не указана, уточняйте у менеджера';
}
?>
```

Чтобы настроить вывод информации на основе наличия цены для товаров, доступных только для профессионалов, можно учитывать не только наличие цены, но и какие-то дополнительные условия, например, категорию товара или группу пользователя. 

Если нужно доработать фрагмент кода в Битриксе для достижения этой цели, можно добавить проверку на дополнительные условия и выводить соответствующую информацию. Например, можно проверить, что товар принадлежит определенной категории или пользователь имеет определенный статус.

Пример кода для этой задачи:

```php
<?php
// Проверяем, есть ли у товара цена
if (!empty($arResult['PRICES']['BASE']['VALUE']) && $arResult['PROPERTIES']['PROFESSIONAL']['VALUE'] == 'Y') {
    echo 'Цена для профессионалов: ' . $arResult['PRICES']['BASE']['PRINT_VALUE'];
} else {
    echo 'Цена не указана, уточняйте у менеджера';
}
?>
```

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

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