Меню
Битрикс из коробки позволяет управлять скидкой и выводить старую и новую цену, но механизм достаточно сложный.
На сайте старая цена хранится в свойстве. Как можно реализовать вывод старой цены в битрикс из свойств.
К примеру: если цена товара меньше чем (свойство старая цена) но выводить.
Дело в том что если просто вывести свойство старая цена, то данные старой цена не попадут в яндекс маркет, так как решение для экспорта в яндекс маркет работает со стандартным функционалом битрикс.
Как-то так, если правильно понял суть вопроса
Код
//Получили цену товара и превратили ее в число
$db_res_ric = CPrice::GetList(array(), 
array(
   "PRODUCT_ID" => $ID, 
   "CATALOG_GROUP_ID" => '11', //ID Типа цены
));
    if ($Price = $db_res_ric->Fetch()) {
    $arElement["PRICE"] = round($Price['PRICE']);
}
$Price = (int)$arElement['PRICE']; //Приводим в число


//Получили старую цену из свойства и превратили ее в число
$OldPrice = (int)$arElement['DISPLAY_PROPERTIES']['OLD_PRICE']['~VALUE'];


if ($OldPrice > $Price) { 
   //Если старая больше цены- выводим ее зачеркнутой
   echo '<s>' . $OldPrice . '</s>' . $Price . '₽';
} else { //Иначе
   echo $Price . '₽';
}
Спасибо за развернутый ответ, но проблема не выводе. А как сделать чтобы старая цена была записана в товар и "PRICE_OLD" и в дальнейшем во всех стандартных компонентах использовалась. Ведь из коробки битрикс уже содержит верстку позволяющую выводить старую цену.
Код
<?
                  if ($arParams['SHOW_OLD_PRICE'] === 'Y')
                  {
                     ?>
                     <span class="product-item-price-old" id="<?=$itemIds['PRICE_OLD']?>"
                        <?=($price['RATIO_PRICE'] >= $price['RATIO_BASE_PRICE'] ? 'style="display: none;"' : '')?>>
                        <?=$price['PRINT_RATIO_BASE_PRICE']?>
                     </span> 
                     <?
                  }
                  ?>
                  <span class="product-item-price-current" id="<?=$itemIds['PRICE']?>">
                     <?
                     if (!empty($price))
                     {
                        if ($arParams['PRODUCT_DISPLAY_MODE'] === 'N' && $haveOffers)
                        {
                           echo Loc::getMessage(
                              'CT_BCI_TPL_MESS_PRICE_SIMPLE_MODE',
                              array(
                                 '#PRICE#' => $price['PRINT_RATIO_PRICE'],
                                 '#VALUE#' => $measureRatio,
                                 '#UNIT#' => $minOffer['ITEM_MEASURE']['TITLE']
                              )
                           );
                        }
                        else
                        {
                           echo $price['PRINT_RATIO_PRICE'];
                        }
                     }
                     ?>
                  </span>
Вот тут вы описали метод замены стоимости, может так можно и записать старую цену?
https://camouf.ru/blog-note/6554/
Цитата
Александр Сигида написал:
Вот тут вы описали метод замены стоимости, может так можно и записать старую цену?
https://camouf.ru/blog-note/6554/
В малом бизнесе это не получится. Там только одно поле для цены.
Попробуйте записывает ее в "Закупочная цена"

Немножко "финт ушами"- но если переход на бизнес, не входит в бюджет, не вижу как иначе.
Видеоуроки по
1С-Битрикс
на моем Boosty канале Видео
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки
 

Блог-note: заметки разработчика

Кастомизация поля input type file, свой внешний вид

Задача: Поле input type="file" предоставляет возможность загрузки файлов на веб-странице. Однако стандартный в...

Выбор основного раздела для элемента инфоблока в 1С-Битрикс

Проблема: при привязке элемента инфоблока к нескольким разделам возникают дубли его детальной страницы, в зависимости от...

Показать доступный остаток каждого товара в корзине 1С-Битрикс

Задача: показать остаток каждого товара в корзине 1С-Битрикс, что бы покупатель сразу знал предельное колличество товара...

Вывести разделы инфоблока по первым буквам не меняя структуру каталога. Алфавитный указатель

Например: у нас есть инфоблок с большим количеством разделов. И мы хотим, на сайте разбить разделы по буквам. Самый прос...

Установка счетчика Яндекс.Метрики на сайт с Content Security Policy (CSP)

Если на вашем сайте не отображаются данные о кликах и скроллинге в Яндекс.Метрике, вероятнее всего, это связано с настро...

Уникальный URL для торговых предложений (SKU) с возможностью автоматического выбора предложения при переходе по ссылке.

Задача: на странице товара необходимо реализовать функцию автоматического изменения URL при выборе определенной товарной...

Добавление своих полей в почтовые шаблоны Битрикс

Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номер телефона заказчика в почтовый ш...

Следующая/предыдущая новость/статья при просмотре подробной в Битрикс

Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей типа: "Следующая/...

Вывести минимальную цену самого дешевого торгового предложения

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