Перейти к содержанию

Пример. Редактирование шаблонов "Корзина" и "Оформление заказа"

Постановка задачи

Рассмотрим кастомизацию шаблонов компонентов Корзина

Одностраничный компонент отображает список товаров, отправленных пользователем в корзину.

Описание компонента «Корзина» в пользовательской документации. и Оформление заказа

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

Описание компонента «Оформление заказа» в пользовательской документации. на примере ограничения минимальной стоимости заказа.

Задача:

  1. В корзине:
  2. Деактивировать кнопку "Оформить заказ", если сумма заказа меньше установленной.
  3. Выдать сообщение о возможности оформления заказа при достижении суммы.
  4. При изменении суммы заказа выше минимальной кнопку активировать, предупреждение убрать.

  5. При оформлении заказа:

  6. Добавить проверку итоговой стоимости товаров для избежания возможности оформления заказа по прямой ссылке.
  7. Вывести предупреждение, если сумма заказа меньше установленной.

Компонент "Корзина"

Копируем шаблон компонента 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;
    }

Задача решена.