Настройки блоков Тильды закрывают процентов восемьдесят типовых задач: отступы, шрифты, цвета, анимации, порядок элементов на мобилке. Но как только речь заходит о логике - показать блок только для повторных посетителей, ограничить промокод одним использованием на клиента, посчитать доставку СДЭК по адресу - панель разводит руками, и дальше начинается код. В статье разбираю границу между этими двумя мирами на конкретных примерах из своих проектов.
По теме статьи
Готовое решение
Ограничение доставки по зонам на карте в корзине Tilda
Виджет доставки в шапке сайта + ограничение оформления в корзине по зонам на Яндекс.Карте.
от9 000 ₽
Кастомный скрипт
Когда стандартных блоков не хватает
Доработка сайтов на Тильде: скрипты для корзины, промокоды, зоны доставки, интеграции с CRM и Telegram. Простой скрипт от 3 000
от3 000 ₽
Настройки блоков в Тильде: что доступно в панели без Zero
Каждый блок в Тильде (T123, T450, T959 и так далее) собран разработчиками платформы под конкретный сценарий верстки и открывает пользователю ограниченный, но при этом довольно широкий набор параметров. В панели настроек блока обычно доступны:
- отступы сверху и снизу, ширина контента, выравнивание
- цвета фона, текста, кнопок, обводки для разных состояний (hover, active)
- шрифты и их размеры отдельно для десктопа, планшета и мобильной версии
- анимации появления блока при скролле
- порядок и видимость колонок на разных брейкпоинтах
- настройки формы: обязательные поля, редирект после отправки, интеграция с почтой или CRM через штатные коннекторы
На практике этого хватает для лендинга или карточного сайта, если задача - собрать заявки и красиво показать товар. Я регулярно собираю такие сайты на Tilda с нуля, и там процентов семьдесят времени уходит именно на настройку блоков через панель, без единой строчки кода.
Отдельно стоит сказать про блоки с настройками CSS-класса: почти в каждом блоке можно задать свой класс в поле «CSS-класс блока» и переопределить стили через общий код на странице. Это уже не совсем «без кода», но и не полноценная разработка - скорее промежуточный уровень, который закрывает мелкие визуальные хотелки без похода к разработчику.
Zero Block: расширенные настройки блоков без единой строчки кода
Zero Block снял часть ограничений старого конструктора: там можно рисовать произвольную сетку, добавлять кастомные отступы на уровне пикселя, комбинировать элементы так, как в T‑блоках было невозможно. Для дизайнера это огромный шаг вперед - многие вещи, которые раньше требовали верстальщика, теперь собираются мышкой.
Но у Zero Block есть потолок, и он ровно там же, где и у обычных блоков: логика. Zero прекрасно расставит текст и картинки, но не умеет:
- проверять условия (регион пользователя, UTM-метку, время суток)
- обращаться к внешним API - курсам валют, тарифам доставки, остаткам на складе
- считать что-то сложнее суммы товаров в корзине
- хранить состояние между визитами (использовал ли человек промокод)
Здесь и заканчивается работа дизайнера-конструктора и начинается работа с кодом, который добавляется через поле «Дополнительный код» в настройках блока или через код всей страницы.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Где настройки блоков Тильды не решают задачу
Чаще всего ко мне приходят с задачами, которые на первый взгляд кажутся «просто настроить блок», а по факту требуют скрипта. Вот типичные ситуации из практики.
Ограничение промокодов
Штатный модуль промокодов в Тильде работает по общему пулу: код действует до конца срока или до исчерпания количества, без привязки к конкретному покупателю. Если нужно, чтобы промокод сработал у клиента один раз, панель настроек этого не даст - требуется скрипт, который проверяет использование через localStorage, куки или запрос к внешнему хранилищу перед отправкой заказа.
Зоны доставки и расчет стоимости
Стандартная доставка в Тильде считается по фиксированным зонам или интеграции с СДЭК, но как только логика усложняется (разные тарифы для разных категорий товара, расчет по весу и габаритам, комбинация нескольких служб), приходится писать код, который дергает API службы доставки и подставляет стоимость в блок оформления заказа.
Оплата и эквайринг
Стандартные платежные системы в Тильде подключаются через панель за пару кликов, но если у бизнеса уже есть договор с конкретным банком (например, Т‑Банком) и нужна не просто оплата, а полноценная интеграция с рассрочкой, сплитом или отдельной логикой возвратов, стандартного виджета уже недостаточно - тут нужен кастомный обработчик, который встраивается в блок оформления заказа.
Расчет налогов и мультивалютность
Если сайт продает в нескольких валютах или должен показывать цену с учетом НДС по-разному для юрлиц и физлиц, панель блока такую логику не поддерживает в принципе - только код, который на лету пересчитывает цену на основе курса или ставки налога.
Доработки блоков Тильды кодом: примеры из практики
Ниже - таблица с задачами, которые регулярно встречаются в моих проектах на Тильде, и с тем, где заканчивается панель настроек.
| Задача | Решается панелью/Zero | Нужен код | Ориентир по срокам |
|---|---|---|---|
| Изменить отступы, цвета, шрифты блока | да | нет | от 30 минут |
| Скрыть блок на мобильной версии | да | нет | от 10 минут |
| Показать блок по региону или UTM-метке | нет | да | 1-2 дня |
| Ограничить промокод одним использованием | нет | да | 1-3 дня |
| Расчет доставки СДЭК по адресу и весу | частично | да | 3-7 дней |
| Интеграция эквайринга Т‑Банка с кастомной логикой | нет | да | 5-10 дней |
| Конвертер валют в реальном времени | нет | да | 2-4 дня |
Под часть таких задач - ограничение промокодов, расчет зон доставки, конвертацию валют, расчет налогов - у меня уже есть готовые скрипты, которые я адаптирую под конкретный блок и структуру страницы, это быстрее, чем писать с нуля.
Для задач посложнее, где типового скрипта не хватает - например, связка формы на Тильде с CRM через n8n или бот на aiogram, который забирает заявки из блока и обрабатывает их в Telegram, - делаю кастомную разработку под задачу, с учетом конкретной верстки и данных, которые нужно передавать между сервисами.
Как менять блоки Тильды кодом, не ломая верстку
За несколько лет работы с Тильдой накопил список правил, которые экономят время и нервы при доработке блоков кодом.
Не трогать структуру блока напрямую
Тильда периодически обновляет верстку своих блоков - меняет классы, добавляет обертки, переносит атрибуты. Если скрипт жестко завязан на конкретный класс вроде .t123__title, после обновления блока разработчиками платформы он может перестать находить нужный элемент. Поэтому я стараюсь вешать код на собственные CSS-классы, добавленные в поле «CSS-класс блока», а не на внутреннюю разметку Тильды.
Тестировать на копии страницы
Перед тем как менять код на боевой странице, делаю копию через панель Тильды и проверяю скрипт там. Это касается любых доработок - от простой анимации до интеграции с эквайрингом, где ошибка в коде может привести к тому, что форма оплаты вообще перестанет открываться.
Разделять код по зонам ответственности
Общий код проекта (счетчики аналитики, глобальные скрипты) держу в настройках сайта, а код, который относится к конкретному блоку (логика формы, расчет доставки в блоке заказа), - в поле «Дополнительный код» самого блока. Это упрощает отладку: сразу понятно, где искать проблему, если что-то перестало работать.
Пример простой доработки
Вот как выглядит фрагмент кода, который я добавляю в поле «Дополнительный код» блока, чтобы скрыть его для пользователей, уже отправивших заявку (проверка простая, локальная, без обращения к внешним сервисам):
document.addEventListener('DOMContentLoaded', function () {
var block = document.querySelector('.t123');
if (block && localStorage.getItem('lead_sent') === '1') {
block.style.display = 'none';
}
});
Задачи вроде интеграции с СДЭК или Т‑Банком выглядят сложнее - там код обращается к внешнему API, обрабатывает ответ и подставляет данные в блок оформления заказа, но принцип тот же: код живет в зоне блока, не трогает чужую разметку и тестируется отдельно от боевой страницы.
Частые вопросы
Сколько стоит доработка блока Тильды кодом?
Простая доработка - скрыть блок по условию, поправить логику формы, добавить кастомную анимацию - от 3 000 ₽. Комплексная интеграция вроде подключения СДЭК с расчетом по адресу, эквайринга Т‑Банка с нестандартной логикой или связки с CRM обойдется от 40 000 ₽, точная сумма зависит от количества внешних сервисов и объема логики.
Можно ли редактировать код блока прямо в Zero?
Zero Block не дает доступа к JS-логике - это визуальный редактор сетки и стилей. Код добавляется через поле «Дополнительный код» в настройках блока (доступно и для обычных T‑блоков, и для Zero Block) или через общий код страницы в настройках сайта.
Что будет с кастомным кодом при обновлении Тильдой блока?
Если код завязан на внутренние классы блока, после обновления верстки платформой он может перестать работать - Тильда не предупреждает разработчиков заранее об изменениях в структуре блоков. Поэтому я стараюсь опираться на собственные классы и минимально зависеть от внутренней разметки, но полностью исключить риск нельзя, и после крупных обновлений Тильды стоит перепроверять работоспособность кастомных скриптов на сайте.
Как понять, что задачу не решить настройками панели и нужен разработчик?
Если задача описывается словами «в зависимости от», «только для», «посчитать» или «запомнить между визитами» - скорее всего, панель настроек тут бессильна и нужен код. Простое изменение внешнего вида, наоборот, почти всегда можно сделать через стандартные настройки блока или Zero, без обращения к разработчику.