Дата последнего изменения: 07.11.2023
Рассмотрим кастомизацию шаблонов компонентов
Корзина
Одностраничный компонент отображает список товаров, отправленных пользователем в корзину.
Описание компонента «Корзина» в пользовательской документации.
и
Оформление заказа
Компонент служит для оформления заказа на одной странице с использованием технологии AJAX. Компонент является стандартным и входит в дистрибутив модуля.
Описание компонента «Оформление заказа» в пользовательской документации.
на примере ограничения минимальной стоимости заказа.
Посмотрите в видеоролике, как можно кастомиризовать шаблон компонента Корзина:
Описание решения:
Копируем шаблон компонента sale.basket.basket средствами интерфейса системы с помощью команды Копировать шаблон компонента, как описано в уроке Теория.Кастомизация шаблона.
В шаблоне компонента Корзина в файле mutator.php находим такой код:
$totalData = array( 'DISABLE_CHECKOUT' => (int)$result['ORDERABLE_BASKET_ITEMS_COUNT'] === 0, 'PRICE' => $result['allSum'], 'PRICE_FORMATED' => $result['allSum_FORMATED'], 'PRICE_WITHOUT_DISCOUNT_FORMATED' => $result['PRICE_WITHOUT_DISCOUNT'], 'CURRENCY' => $result['CURRENCY'] );
Вставляем сразу за этим фрагментом код:
if ($result['allSum'] < 1500) { $totalData['DISABLE_CHECKOUT'] = true; echo "<h3>Оформление заказа возможно после наполнения корзины на сумму более 1500 рублей.</h3>"; }
Посмотрите в видеоролике, как можно кастомиризовать шаблон компонента Оформление заказа:
Описание решения:
Копируем шаблон компонента sale.order.ajax средствами интерфейса системы с помощью команды Копировать шаблон компонента, как описано в уроке Теория.Кастомизация шаблона.
В шаблоне компонента Оформление заказа в файле template.php находим следующий код:
if ($request->get('ORDER_ID') <> '') { include(Main\Application::getDocumentRoot().$templateFolder.'/confirm.php'); } elseif ($arParams['DISABLE_BASKET_REDIRECT'] === 'Y' && $arResult['SHOW_EMPTY_BASKET']) { include(Main\Application::getDocumentRoot().$templateFolder.'/empty.php'); } else {
Добавляем код:
if ($arResult['ORDER_PRICE'] < 1500) { echo "<h3>Оформление заказа возможно после наполнения корзины на сумму более 1500 рублей.</h3>"; return; }
Задача решена.