Довольно редко возникает задача ограничения минимальной суммы заказа, редко, но бывает, хочу поделиться одним из способов ограничения. Для этого нужно поправить шаблон корзины, а также компонент оформления заказа, чтобы его не смогли вызвать напрямую, минуя корзину.
Пропустим процедуру копирования шаблона компонента корзины и компонента заказа в свое пространство имен, сразу приступим к самому интересному.
В файле шаблона корзины \.default\basket_items.php заменяем
<td align="right" width="30%"> <input type="s ubmit" value="<?echo GetMessage("SALE_ORDER")?>" name="BasketOrder" id="basketOrderButton2"><br /> <small><?echo GetMessage("SALE_ORDER_DESCR")?></small><br /> </td> |
на
<td align="right" width="30%"> <?global $USER; if (!is_object($USER)) $USER = new CUser; $disable=""; if (!$USER->IsAdmin() && doubleval($arResult["allSum"])<3000 ) { $disable="disabled"; echo "<b>"."Минимальная сумма заказа на нашем сайте 3 тысячи рублей"."</b><br/>"; } ?> <input class="my_input" type="s ubmit" value="<?echo GetMessage("SALE_ORDER")?>" name="BasketOrder" id="basketOrderButton2" <?=$disable?>><br /> <small><?echo GetMessage("SALE_ORDER_DESCR")?></small><br /> </td> |
Затем, в компоненте оформления заказа после строки:
$orderTotalSum = $arResult["ORDER_PRICE"] + $arResult["DELIVERY_PRICE"] + $arResult["TAX_PRICE"] - $arResult["DISCOUNT_PRICE"]; |
вставляем код:
if(!$USER->IsAdmin() && doubleval($orderTotalSum) < 3000){ echo "<br />"; echo "<br />"; //echo "<br />"; echo "<b>Минимальная сумма заказа на нашем сайте 3 тысячи рублей</b>"; echo "<br />"; echo "<br />"; echo "Сейчас в корзине товаров на ".SaleFormatCurrency($orderTotalSum, $arResult["BASE_LANG_CURRENCY"]); echo "<br />"; echo "<br />"; echo "<a href='/personal/cart/'>Вернуться в корзину</a>"; die();} |