В Битрикс цена товара хранится не в свойствах, а в полях каталога. Для корректного отображения цены с учетом возможных скидок необходимо использовать динамический вывод.
Код для получения цены со скидкой
Вот готовый PHP-код, который позволяет получить оптимальную цену товара с учетом скидок:
<?
global $USER;
$productID = 7813; // ID товара
$quantity = 1; // Количество
$renewal = 'N'; // Параметр продления (не используется)
// Получаем оптимальную цену с учетом скидок
$arPrice = CCatalogProduct::GetOptimalPrice(
$productID,
$quantity,
$USER->GetUserGroupArray(),
$renewal
);
// Если цена не найдена, ищем ближайшую по количеству
if (!$arPrice || count($arPrice) <= 0) {
if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $USER->GetUserGroupArray())) {
$quantity = $nearestQuantity;
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal);
}
}
// Выводим цену со скидкой и базовую цену
if ($arPrice && isset($arPrice['RESULT_PRICE'])) {
$basePrice = $arPrice['RESULT_PRICE']['BASE_PRICE']; // Исходная цена
$discountPrice = $arPrice['RESULT_PRICE']['DISCOUNT_PRICE']; // Цена со скидкой
$discountPercent = $arPrice['RESULT_PRICE']['PERCENT']; // Процент скидки
echo "Базовая цена: " . $basePrice . "<br>";
echo "Цена со скидкой: " . $discountPrice . "<br>";
echo "Скидка: " . $discountPercent . "%";
}
?>Разбор массива с ценой и скидками
Метод CCatalogProduct::GetOptimalPrice() возвращает массив с данными:
-
RESULT_PRICE– содержит итоговую цену с учетом скидок:-
BASE_PRICE– исходная цена -
DISCOUNT_PRICE– цена со скидкой -
PERCENT– процент скидки -
CURRENCY– валюта
-
-
DISCOUNT_LIST– список примененных скидок с их параметрами.
Вывод
Используя этот метод, вы можете динамически отображать цены товаров в Битрикс, учитывая все возможные скидки. Это особенно важно для интернет-магазинов, где цены могут меняться в зависимости от условий.
Оптимизация для SEO:
-
Используйте ключевые слова: "цена со скидкой Битрикс", "динамический вывод цены", "скидки в Битрикс".
-
Код готов к использованию – просто подставьте нужный
$productID. -
Метод работает в последних версиях Битрикс (актуально с версии 12.5.0).
Теперь вы знаете, как правильно выводить цены в Битрикс с учетом скидок!