105  /  389
Справочник

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

Просмотров: 1802
Дата последнего изменения: 26.05.2021
Ольга Пичужкина
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в редакциях:
Старт, Стандарт

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

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

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

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

Задача:

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

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

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

Посмотрите в видеоролике, как можно кастомиризовать шаблон компонента Корзина:

Описание решения:

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

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



4
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии