Вывод и шаблоны темы
Обновлено
Автоматическое подключение
Плагин регистрирует хуки Shop-Script. Отдельный хелпер для темы не предусмотрен; для обычного подключения функций достаточно хуков.
| Хук | Назначение |
|---|---|
frontend_my_nav |
Пункты «Бонусная программа» и «Подписки на уведомления» в личном кабинете при включённых функциях |
checkout_render_auth |
Чекбокс подписки на шаге данных покупателя, если выбран этот шаг |
checkout_render_confirm |
Чекбокс подписки на подтверждении, если выбран этот шаг |
frontend_checkout |
Сохранение текущей корзины для механизма брошенных корзин |
frontend_order |
Приглашение в бонусную программу |
frontend_order_cart_vars |
Данные бонусной программы в переменных корзины |
frontend_order_cart_save |
Сохранение выбора использования бонусов |
order_calculate_discount |
Учёт бонусной скидки в расчёте заказа |
Тема должна поддерживать соответствующие хуки Shop-Script. Чекбокс подписки работает через checkout 2.0. Приглашение в лояльность ищет элемент #js-order-cart .wa-affiliate-section[data-enabled='0']; если тема изменила эту структуру, автоматическое размещение приглашения нужно проверять отдельно.
Переопределение шаблонов
Плагин ищет файл в активной теме приложения «Магазин». Если его нет, использует встроенный шаблон. Скопируйте файл плагина в каталог своей темы под следующим именем и меняйте копию:
Встроенный файл относительно templates/actions/frontend/ |
Имя файла в теме |
|---|---|
FrontendAffiliate.html |
retailcrm_plugin.frontend_affiliate.html |
FrontendSubscriptions.html |
retailcrm_plugin.frontend_subscriptions.html |
CheckoutSubscribe.html |
retailcrm_plugin.checkout_subscribe.html |
include.frontend.my.nav.html |
retailcrm_plugin.include.frontend.my.nav.html |
Имя меню сохраняет точки. Механизм не использует название frontend_my_nav для этого файла.
Пример оформления чекбокса
В retailcrm_plugin.checkout_subscribe.html доступны $title, $text, $checked, $subscribe_url. Начните с копии штатного шаблона, сохранив обработку изменения чекбокса и отправку выбора. Например, замените только оформление описания:
{if !empty($text)}
<div class="retailcrm-subscribe-description">{$text|escape}</div>
{/if}Сам шаблон подключается хуком после проверки настроек и подписок. Не вставляйте его произвольно через include: вне обработчика нужные переменные могут отсутствовать.
Пример оформления меню
Шаблон меню получает $pages — массив с полями id, name, url. В копии файла темы можно изменить разметку, сохранив эти данные:
{foreach $pages as $page}
<li data-retailcrm-page="{$page.id|escape}">
<a href="{$page.url|escape}">{$page.name|escape}</a>
</li>
{/foreach}Это фрагмент шаблона, а не вызов хелпера плагина. Дополнительные вызовы методов плагина для этих примеров не нужны.
Проверка темы
Проверьте авторизованного покупателя с бонусным счётом и без него, страницу подписок, выбранный шаг оформления, сохранение согласия и пересчёт заказа после выбора бонусов. Меню появится только при включённой общей синхронизации и соответствующей функции.