Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Сравнение двух типов цен для иммитации системы скидок, в Битрикс

Просмотров: 10067 Встала задачка, иммититровать систему скидок в интернет магазине на Битрикс. Из 1С-УТ, на сайт, выгружается два типа цен: "РИЦ сайт"" и "Старт розница"
Внимание! Заметка написана давно, она работоспособна, но рекомендую посмотреть более свежую, обновленную версию заметки Все цены товара в 1С-Битрикс

РИЦ сайт - это цена со скидкой, а Старт розница - цена без скидки. Но, бывают ситуации когда обе эти цены одинаковые.

Задача, выводить эти цены в шаблон каталога, таким образом, что бы имитировалась система скидок.

Алгоритм простой:
- Если "РИЦ сайт" меньше "Старт розница" - выводим зачеркнутую "Старт розница" и подсвеченную "РИЦ сайт".
- Для красоты, выводим и процент скидки, вычесляя его пропорцией.
- Иначе просто выводим "Старт розница".

Передать цену товара в $arElement- CPrice::GetList

Для дальнейших манипуляций, работы с математическими функциями, нам нужно передать каждый тип цены в переменнуи $arElement и привести к числовому виду, так как они будут строкой.

Загоняем цену, как число в переменную, при помощи оператора приведения int. Для "РИЦ сайт"- ее ID = 11 (скрин выше):

$db_res_ric = CPrice::GetList(array(), array("PRODUCT_ID" => $ID, "CATALOG_GROUP_ID" => '11',));
    if ($ricPrice = $db_res_ric->Fetch()) {
    $arElement["PRICE_RIC"] = round($ricPrice['PRICE']);
}

$Ric = $arElement['PRICE_RIC'];
$Ric = (int)$Ric; //Приводим в число

Тоже самое делаем с "Старт розница"- ее ID = 7

$db_res_ret = CPrice::GetList(array(), array("PRODUCT_ID" => $ID, "CATALOG_GROUP_ID" => '7',));
if ($retPrice = $db_res_ret->Fetch()) {
    $arElement["PRICE_RET"] = round($retPrice['PRICE']);
}
$Ret = $arElement['PRICE_RET'];
$Ret = (int)$Ret; //Приводим в число

Таким образом, наши типы цен теперь в переменных $Ric и $Ret и они числовые. Дальше, простое сравнение и немножко математики

Реализуем алгоритм

Все подсказки в комментариях к коду, дабы было нагляднее и понятнее

if ($Ric == $Ret) { //Если РИЦ равна Розница
   echo $arElement['PRICE_RET']; //Выводим Розницу
} else {
	echo $arElement['PRICE_RET']; //Зачеркнутая Розница
	echo $arElement['PRICE_RIC']; //Выводим РИЦ
}  

Высчитываем процент разницы, что бы вывести в лейбл

Для полной иммитации скидки, и эстетики. Навешиваем лейбл с процентом скидки. Тут немножко математики:

if ($Ric !== $Ret) {
	$DifsPercent = $Ric * 100 / $Ret; //Высчитали пропорцию
	$LabelPercent = 100 - $DifsPercent; //Высчитали разницу
	echo $LabelPercent; //Вывели цифру процента
}

Можно было, сделать и одной строкой, просто по правилам математики- но разложил для понимания

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

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

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс