Битрикс — даём бесплатную доставку в зависимости от суммы товаров и региона

03.11.2018  14:34

Подвернулась чуть нетривиальная задача — сделать бесплатной доставку если сумма товаров больше 15 000 рублей и город Санкт-Петербург и если больше 18 000 рублей если любой другой. На сайте определение города реализовано сторонним модулем с маркетплейса bxmaker.geoip, интернет-магазин собран на основе решение АСПРО Next. Я докостылил «летающую корзину» которая на сайте по всем страница справа, шаблон sale.basket.basket fly.

Над блоком с классом icon_error_block добавил так:
	if($_SESSION["BXMAKER.GEOIP"]["CITY"] == 'Санкт-Петербург') $limit = 15000;
	else $limit = 18000;
	if($arResult["allSum"] < $limit) {
		$arError["ERROR"] = true;
		$limit_txt = number_format($limit, 0, ',', ' ');
		$diff = $limit - $arResult["allSum"];
		$diff_txt = number_format($diff, 0, ',', ' ');
		$arError["TEXT"] = 'Бесплатная доставка от '.$limit_txt.' p.
Для бесплатной доставки добавьте ещё на '.$diff_txt.' p.'; CCatalogDiscountCoupon::ClearCoupon(); } else { if($_SESSION["BXMAKER.GEOIP"]["CITY"] == 'Санкт-Петербург') { CCatalogDiscountCoupon::SetCoupon('setspbdelivery'); } else { CCatalogDiscountCoupon::SetCoupon('setotherdelivery'); } }


В правилах по работе с корзиной добавлены два правила дающие скидки на доставку в размере 100% и к ним два купона: setspbdelivery100 и setotherdelivery100.

Для красоты можно добавить выборки этих двух правил, чтобы стоимость, от которой плясать, бралась из админки.
// выбор параметров скидки (правила корзины) по id
$discountSpb = CSaleDiscount::GetByID(5);
$discountSpbV = unserialize($discountSpb["CONDITIONS"]);
$limit = $discountSpbV["CHILDREN"][0]["DATA"]["Value"];
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670) или перепиской в ВК.
1000 р./час.



перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 48  PHP 60  web-программирование 84  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)