Интеграция шаблонов корзины
текстовая расшифровка видео урока
Мы уже произвели интеграцию практически всех шаблонов ювелирного интернет-магазина с функционалом платформы Flexcore CMS II.
На текущем этапе мы находимся в корзине покупок.
Для оформления этой страницы есть шаблон файла донора.
Давайте его интегрируем с функционалом движка.
Перейдем к шаблону «Верхний уровень корзины», и откроем верстку файла донора в редакторе.
Выделим верстку блока со списком товаров и блока с итоговой информацией о заказе.
Копируем ее и переносим в верхний уровень шаблона корзины.
Разместим верстку под имеющейся в шаблоне конструкцией.
Теперь давайте изучим верхний образец.
Мы знаем что корзина у нас может иметь два состояния, быть пустой или содержать товары.
Поэтому данный шаблон содержит условные операторы php «if и else».
Соответственно, если корзина пуста is_empty, то выводится верстка под оператором else.
Если корзина содержит товары, то выводится форма первого шага оформления заказа, т.е. форма интегрируемого нами шаблона.
Давайте в данную форму перенесем верстку донора.
Присвоим актуальные заголовки для таблицы с товарами:
- Список товаров;
- Цена;
- Количество;
- Итого.
Далее по верстке у нас идет непосредственно список заказанных товаров.
Вырежем его.
И на его место вставим метку items.
Жмем сохранить.
Переходим к шаблону «товар в списке корзины».
Вставляем вырезанную верстку товаров.
Оставляем только один образец, лишние дубли конструкции удаляем.
В данном случае предложенные системой условные операторы позволяют настроить отображение заказанных товаров в письмах, отправляемых клиентам при осуществлении заказа is_letter и настроить отображение товара в корзине при совершении заказа на сайте.
Подробнее об использовании условных операторов описано в пояснениях.
Итак, возьмем наш образец верстки и перенесем его к оператору else.
В данном случае он выводит верстку товара в шаблоне верхнего уровня корзины.
Теперь настроим верстку с использованием меток.
Вместо тега с изображением устанавливаем метку
{good_preview}. С помощью дополнительных параметров ограничим выводимое изображение по ширине.Далее выводим название товара меткой {header}
Добавляем ссылку на товар меткой {url}
С помощью метки выводим описание товара.
Далее цена
Количество
и Сумма
На кнопку удаления товара из корзины устанавливаем метку {delete}.
Устанавливается она в атрибут для ссылки и указывает путь к файлу, который удалит товар из корзины.
Нажимаем сохранить.
Посмотрим, что изменилось в корзине на сайте.
Обновим страницу.
Картинка, название, описание, цена, количество, сумма и кнопка удаления – все это выведено.
Видим, что при нажатии удаление срабатывает.
Визуально немного выбивается поле с количеством.
Подправим его с помощью CSS.
Итак, в этой части у нас порядок.
Перейдем к интеграции нижнего блока с итоговой информацией о заказе.
Для этого возвращаемся к шаблону верхнего уровня корзины.
Уберем строчку с промежуточным итогом, т.к. при подборе способа доставки система автоматически будет пересчитывать цену и выводить пояснения.
Дальше приведем в актуальное состояние тексты.
Варианты доставки выводим с помощью метки {delivery}.
Чтобы варианты выводились выпадающим списком, нужно обернуть метку в select.
Так же необходимо установить атрибутам id и name значение “delivery”.
<select id="delivery" name="delivery">{delivery}</select>
Обернем текст в SPAN.
По такому же принципу добавим в шаблон «методы оплаты». Это метка {payments}
В данном случае атрибут id заполняется значением payments, а атрибут name значением payment.
<p><span>Методы оплаты:</span><select id="payments" name="payment">{payments}</select></p>
Стоимость заказа выводим меткой {sum}
Чтобы стоимость автоматически пересчитывалась сразу после выбора варианта доставки, метка {sum} должна находиться в блоке с атрибутом id равном значению ”price”. Добавим его.
Кнопка «Перейти к оформлению заказа» должна быть обернута не тегом для создания ссылок, а кнопкой button, чтобы отправлять результаты заполнения формы дальше.
Вот такая конструкция у нас получилась:
<button class="btn-grey" type="submit" id="order" formaction="/market/order/"> Оформление заказа</button>
Внутри ссылка на шаблон оформления заказа /market/order/ и id должен быть order.
Переназначим класс из тега а в тег button, чтобы сохранить стилистику шаблона кнопки.
На случай, если пользователь магазина захочет внести изменения в заказ при его оформлении, добавим кнопку «Пересчитать». ID у данной кнопки должен быть “acct”. Результаты пересчета должны выводиться на этой же странице, поэтому в атрибут formaction установим метку {action}.
<button class="btn-grey" type="submit" id="acct" formaction="{action}">Пересчитать</button>
Сохраним.
Посмотрим, что получилось.
Варианты доставки, методы оплаты, стоимость заказа, кнопки «оформление заказа» и «пересчитать» – успешно выведены в шаблон.
При этом мы видим, что из-за новых модификаций теперь не все красиво отображается.
Исправим это с помощью CSS.
Обновляем.
Видим, что смена типа доставки изменяет итоговую стоимость заказа.
Так же, если мы изменим количество заказываемого товара и нажмем на кнопку «пересчитать», то в итоговой цене все изменения корректно отобразятся.
Нажимаем на кнопку и переходим к оформлению заказа.
Для этой формы шаблона донора у нас нет, поэтому мы воспользуемся общей стилистикой проекта и настроим под нее заготовку, которая есть в движке.
Перейдем к шаблону «форма заказа».
Отладим верстку и стили цсс.
Теперь заполним форму заказа.
Нажмем кнопку «Оформить».
Следующей, не настроенной формой является форма результата отправки заказа.
Перейдем к данной форме.
Так же настроим верстку, стили и текст.
Таким образом, мы совершили первый заказ на сайте.
Перейдем к списку заказов в панели администратора и увидим, что заказ появился в статистике.
Видео урок: интеграция шаблонов корзины