Точки для дополнений
Полный список мест, куда дополнения выводят свою разметку, и что будет, если тема их не поставит.
На этой странице
Дополнения выводят свою разметку не там, где им вздумается, а в местах, которые
объявила тема. Такое место называется точкой встраивания и ставится тегом
{hook}:
{hook name="product.buybox.end" product=$product}
Подписчиков нет — тег не выводит ничего. Каждое дополнение вызывается отдельно и в защите от ошибок: упавшее не выводит ничего, а страница остаётся живой.
Зачем это теме
Тема, не поставившая точки, ломает дополнения. Владелец купил «Купить в один клик» — а кнопки на карточке товара нет. Купил «Подарки к заказу» — в корзине ничего не появилось. Он видит не «тема не поддерживает», а «дополнение не работает», и пишет в поддержку.
Поэтому точки ставят все, даже те, для которых у владельца сейчас ничего не установлено: они ничего не стоят и ничего не выводят, пока не понадобятся.
Передавайте контекст
Всё, что передано параметрами, уезжает дополнению. Без контекста дополнение не знает, о каком товаре или позиции идёт речь:
{hook name="product.buybox.end" product=$product}
{hook name="cart.item.after" item=$i}
{hook name="product.card.footer" product=$product}
Полный список точек
Общие
| Точка | Где стоит |
|---|---|
storefront.head |
в конце <head> |
storefront.body.start |
сразу после открытия <body> |
storefront.body.end |
перед закрытием <body> |
footer.start |
в начале подвала |
footer.end |
в конце подвала |
Первые три — самые нагруженные: туда встают счётчики аналитики, окно согласия на cookie, чат на сайте, окно подписки на уведомления. Без них половина дополнений не заработает вовсе.
Каталог и товар
| Точка | Где стоит |
|---|---|
catalog.filters.end |
под панелью фильтров |
product.title.end |
сразу после названия товара |
product.rating |
рядом с оценкой |
product.price.end |
под ценой |
product.buybox.end |
под кнопкой покупки |
product.tabs.end |
после вкладок описания |
product.reviews.list |
в списке отзывов |
product.questions |
в блоке вопросов |
product.bottom |
внизу страницы товара |
product.card.footer |
в подвале карточки товара в списке |
product.buybox.end и product.card.footer — рабочие лошадки: туда встают
кнопка «Купить в один клик», «Сообщить о поступлении», отметка «к товару
подарок», плашка акции. Ставьте их обязательно.
Корзина
| Точка | Где стоит |
|---|---|
cart.body |
в теле страницы корзины |
cart.items.before |
над списком товаров |
cart.item.after |
после каждой позиции |
cart.totals.after |
под итогами |
cart.items.before — полоска «до подарка осталось 350 ₴»; cart.totals.after —
блок «Ваш подарок» с выбором.
Оформление заказа
| Точка | Где стоит |
|---|---|
checkout.head |
в шапке страницы оформления |
checkout.body |
в теле формы |
checkout.contact.before / .after |
до и после блока контактов |
checkout.delivery.before / .after |
до и после блока доставки |
checkout.field.city |
рядом с полем города |
checkout.payment.before / .after |
до и после блока оплаты |
checkout.confirm.before / .after |
до и после подтверждения |
checkout.totals.after |
под итогами |
checkout.submit.before |
над кнопкой «Оформить» |
checkout.success.after |
на странице «заказ принят» |
checkout.pay.after |
на странице оплаты |
checkout.success.after — одна из самых востребованных: туда встают события
аналитики о покупке, предложение привязать Telegram, приглашение в кабинет.
Личный кабинет
| Точка | Где стоит |
|---|---|
account.login.body |
на странице входа |
account.login.methods |
среди способов входа |
account.register.body |
на странице регистрации |
account.forgotpassword.body |
на восстановлении пароля |
account.verify.body |
на подтверждении почты |
account.phone.body |
на подтверждении телефона |
account.profile.body |
в профиле |
account.orders.body |
в списке заказов |
account.order.body |
на странице заказа |
account.favorites.body |
в избранном |
account.login.methods — вход через соцсети и Telegram; account.profile.body —
привязка мессенджеров.
Что занято прямо сейчас
Из установленных дополнений чаще всего используются:
| Точка | Кто в ней |
|---|---|
storefront.head |
аналитика, SEO, чат, уведомления, метки рекламы |
storefront.body.end |
чат на сайте, окно согласия, подписка на уведомления |
product.buybox.end |
купить в один клик, сообщить о поступлении, подарки |
checkout.success.after |
события аналитики, привязка Telegram |
cart.items.before, cart.totals.after |
подарки к заказу |
product.price.end, product.card.footer |
акции |
checkout.field.city |
пункт выдачи заказов |
checkout.contact.before |
реквизиты компании по коду |
account.profile.body |
привязка Telegram |
Список будет расти — это ещё один довод поставить все точки сразу.
Шаблоны и стили дополнений
Дополнение с собственной разметкой кладёт её прямо в вашу тему:
themes/ваша-тема/
templates/plugins/<дополнение>/…
assets/plugins/<дополнение>/…
Эти файлы правятся как любые другие — вид блока меняете вы, и он останется вашим.
Но в пакет темы они не попадают: у клиента там будут его дополнения, а не ваши. Установка вашей темы его блоки не затрёт — при обновлении темы эти папки переносятся из прежней версии в новую.
Как узнать, что приносит дополнение
Каждое дополнение обязано описать свои встраивания в собственном манифесте: в какую точку оно выводит, что именно там появляется и какие файлы подключает. Это требование, а не пожелание — дополнение физически не может завести тег или блок, не описав его.
Практический способ посмотреть — заглянуть в папку templates/plugins/ своей
темы: что там лежит, то и выводится.
Свои точки
Тема может объявить точку, которой в этом списке нет:
{hook name="mytheme.sidebar" }
Смысла в этом мало: дополнения о ней не знают. Полезно только когда вы делаете тему и дополнение в паре — тогда точка становится их общим уговором.
Придерживайтесь общего списка: тема, поставившая все известные точки, работает с любым дополнением из маркетплейса, и это её главное преимущество перед вёрсткой «под один магазин».