К содержимому
Вывод в теме

Вывод и шаблоны темы

Обновлено

Автоматическое подключение

Плагин регистрирует хуки 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}

Это фрагмент шаблона, а не вызов хелпера плагина. Дополнительные вызовы методов плагина для этих примеров не нужны.

Проверка темы

Проверьте авторизованного покупателя с бонусным счётом и без него, страницу подписок, выбранный шаг оформления, сохранение согласия и пересчёт заказа после выбора бонусов. Меню появится только при включённой общей синхронизации и соответствующей функции.