Настройка системы бонусов в 1C-Битрикс

Перед владельцами интернет-магазинов все чаще ставиться задачка на разработку систему скидок. Товары загружаются базовой ценой и дополнительными ценами для отдельных групп покупателей. Для примера можем рассмотреть группу лояльных клиентов. Для них применяются льготы цены, которые соответственно ниже базовой стоимости. И тут встает проблема в отображении подобных привилегий. В стандартных решениях интернет-магазинов при входе пользователем из группы лояльных клиентов посетитель видит обновленную цену на товар и принимает это как типичные снижения цен. Применяемые бонусы остаются за кулисами. Дополнительная мотивация, которую мы преследовали уходит на нет.

pr-1.png

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

Первым делом определим алгоритм наших действий:

  1. Сравним базовую и скидочную стоимость товара
  2. Если имеет место бонусных привилегий - указываем базовую стоимость как зачеркнутую старую и выделенную обновленную цену. Дополнительно выводим стикер с указанием значения применяемой скидки.

Используем CPrice::GetList  для цен товара 

Для этого необходимо каждый тип цен передать в переменную $arElement.

$db_res_dis = CPrice::GetList(array(), array("PRODUCT_ID" => $ID, "CATALOG_GROUP_ID" => <тут необходимо указать ID типа цены>,));

    if ($discountPrice = $db_res_dis->Fetch()) {

    $arElement["PRICE_RIC"] = round($discountPrice['PRICE']);

}

$disPrice = $arElement['PRICE_RIC'];

$disPrice = (int)$disPrice; 

Точно таким образом провернем все манипуляции с базовой ценой.

$db_res_base = CPrice::GetList(array(), array("PRODUCT_ID" => $ID, "CATALOG_GROUP_ID" => '7',));

if ($basePrice = $db_res_base->Fetch()) {

    $arElement["PRICE_RET"] = round($basePrice['PRICE']);

}

$bPrice = $arElement['PRICE_RET'];

$bPrice = (int)$bPrice; 

Для дальнейшего использования у нас теперь имеются следующие переменные: $disPrice и $bPrice. 

Теперь остается соответственно сам процесс сравнения:

if ($disPrice == $bPrice) { //Условия на существование скидки. Проверяет отличаются ли цены

   echo '<div class="old_price">'.$arElement['PRICE_RET'].'</div>'; //Публикуем розничную цену

} else {

echo '<div class="old_price">'.$arElement['PRICE_RET'].'</div>'; //Публикуем базовую цену с визуальным вычеркиванием

echo '<div class="old_price">'.$arElement['PRICE_RIC'].'</div>'; //Выводим актуальную цену со скидкой

}

Для усиления эффекта бонусов разницу опубликуем в виде процентов в выделенной для этого плашке.

if ($disPrice !== $bPrice) {

$Diff = 100 - $disPrice * 100 / $bPrice;

echo '<div class="discount_area">'.$LabelPercent.' %</div>'; 

}

В результате клиент увидит обновленную цену и примененные к ней бонусы. Дело сделано

У вас остались какие-то вопросы?

Задайте их в форме ниже и мы обязательно с вами свяжемся!

Другие материалы по теме:

  • 17.11.2022

    Складской учет: Как навести порядок в продажах / часть 2

    В прошлой публикации мы начали разбирать возможности ведения складского учета, представленные в Битр...

    Подробнее
  • 17.11.2022

    Складской учет: Как навести порядок в продажах / часть 1

    Битрикс24 — платформа, предлагающая своим пользователям широкие возможности для автоматизации рутинн...

    Подробнее
  • 16.10.2022

    Интеграция МойСклад с Битрикс24

    Одна из основных идей портала «Битрикс24» заключается в аккумуляции всех необходимых инструментов и ...

    Подробнее
Оперативно и совершенно бесплатно ответим на Ваши вопросы!

Нажимая кнопку "Заказать", я даю свое согласие на обработку моих персональных данных, в соответствии с Федеральным законом от 27.07.2006 года №152-Ф3 "О персональных данных", на условиях и для целей, определенных в Согласии на обработку персональных данных.