Tilda · 6 мин чтения

Каталог на Тильде: пределы штатного и что дописывают кодом

Каталог на Тильде я настраивал для доброго десятка интернет-магазинов, от нишевой косметики на полсотни товаров до каталогов на тысячи SKU с синхронизацией с 1С. Платформа закрывает типовые задачи каталога быстро и без бэкенда, но у конструктора, как и у любой коробочной системы, есть потолок. Как только бизнес-логика выходит за рамки формы «скидка в процентах», начинается код. В статье разбираю, что в каталоге Тильды настраивается руками в интерфейсе, а что я обычно дописываю скриптами и интеграциями.

Что умеет каталог Тильды из коробки

Каталог товаров в Тильде собран в блоке «Магазин»: карточки, категории, варианты и корзина настраиваются в панели без разработчика. Для каждого товара задаются цена, старая цена для акции, галерея, описание, артикул и остаток на складе. Можно добавить варианты, например цвет и размер, с отдельной ценой, картинкой и остатком для каждой комбинации, и покупатель увидит только доступные сочетания.

Категории собираются деревом произвольной вложенности, товар при этом может входить сразу в несколько разделов. Из готового тут же доступны фильтры по цене, категориям и характеристикам через блок «Фильтры», сортировка по популярности и цене, экспорт каталога в YML-фид для Яндекс Маркета и похожих площадок, встроенная корзина с несколькими способами доставки и оплаты. Для магазина на полсотни-другую позиций этого хватает почти всегда, такие каталоги я собираю вместе с дизайном блоков за неделю-полторы.

Фильтры и характеристики товаров: где заканчивается конструктор

Фильтры в Тильде работают по полям, заданным в карточке товара: цена, категория, теги, произвольные текстовые характеристики. Настройка идёт через интерфейс, без единой строчки кода, и для большинства каталогов этого достаточно с самого запуска.

Ограничение проявляется, когда фильтров становится много и они должны взаимодействовать нелинейно. Например, фильтр по размеру должен скрывать недоступные варианты в зависимости от уже выбранного цвета, с учётом остатка именно этой комбинации на складе. Штатный блок «Фильтры» такую перекрёстную логику не считает, он фильтрует карточки целиком, а не отдельные варианты внутри карточки. Для такого сценария я обычно пишу скрипт поверх API Тильды: он подгружает остатки по вариантам и на лету блокирует недоступные сочетания прямо в интерфейсе карточки.

Обмен с 1С и синхронизация остатков

Тильда поддерживает обмен с 1С через CommerceML прямо из настроек магазина: товары, цены, остатки и заказы синхронизируются без дополнительного сервера. Для розницы с одним складом и единым прайсом это закрывает вопрос синхронизации полностью, и я не вижу смысла городить что-то поверх штатного обмена, если бизнес-правил у клиента нет.

Сложности начинаются на стороне бизнес-правил, которые 1С не передаёт как часть стандартного обмена: региональная наценка, разные прайсы для розницы и опта, скидки по группам клиентов. В таких случаях выгрузка из 1С проходит через промежуточный обработчик, который пересчитывает цены по нужным правилам перед тем, как они попадут в Тильду. Обработчик пишу на PHP и разворачиваю на том же хостинге, где уже стоит сайт, отдельный сервер под такую задачу не нужен. Та же логика применима, если каталог нужно завести не в 1С, а в стороннюю CRM: тогда обработчик забирает заказы через API Тильды по расписанию или по вебхуку и раскладывает их по нужным полям CRM.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Промокоды, доставка и оплата: штатных настроек хватает чаще, чем кажется

В настройках платёжных систем Тильда подключает Робокассу и ряд других провайдеров без кода, там же настраивается приём оплаты картой или по счёту. Доставку Яндекс Доставкой включают через поле токена в настройках, без встраивания скриптов в head. Для расчёта стоимости по регионам есть калькулятор СДЭК с зонами прямо в конструкторе, а промокоды поддерживают процентную или фиксированную скидку с ограничением числа использований, тоже без разработчика.

Ограничение всплывает в частных сценариях. Например, зоны доставки нужно привязать не к городам из справочника СДЭК, а к полигонам на карте с индивидуальной стоимостью для каждой зоны, или совместить у одного заказа доставку курьером и постаматом с разной логикой расчёта. Я делал отдельный виджет под такую задачу, похожий на мой готовый модуль зоны доставки для Tilda: подключается скриптом в блок T123 и пересчитывает стоимость по зоне прямо на карте покупателя.

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

Что реально дописывают кодом в каталоге

Кроме фильтров по вариантам и доставки по полигонам, из практики чаще всего в каталог добавляют:

  • оптовые цены с порогами по количеству, когда цена за единицу меняется при заказе от 10, 50 или 100 штук;
  • конвертацию цен в несколько валют на лету, если каталог смотрят из разных стран и держать отдельные версии карточек невыгодно;
  • расчёт налога или НДС в чеке при оформлении заказа для отдельных категорий товаров;
  • персональные рекомендации «с этим товаром покупают» на основе истории просмотров конкретного посетителя;
  • выгрузку каталога на внешние площадки и в CRM по расписанию через n8n, когда одной выгрузки в YML недостаточно и нужна трансформация полей под конкретный маркетплейс.

Для уведомлений о заказах обычно хватает обработчика вебхука Тильды на PHP, который шлёт сообщение в Telegram через Bot API, это укладывается в обычный хостинг сайта без отдельного сервера. Другое дело, если нужен полноценный бот для операторов, чтобы смотреть остатки и менять статус заказа прямо в Telegram: такой бот пишу на aiogram, но это уже отдельный процесс на сервере, который требует настройки, обновлений и оплаты отдельно от хостинга сайта.

Стоимость такой доработки зависит от объёма. Точечный скрипт вроде пересчёта промокода по условию я делаю от 3 000 ₽, комплексную интеграцию каталога с CRM, эквайрингом и службой доставки одновременно оцениваю от 40 000 ₽. Если каталога на сайте ещё нет и его нужно собрать с нуля вместе с блоками, такой проект начинается от 30 000 ₽.

Сравнение: типовой каталог и каталог с доработками

Свёл частые задачи в таблицу, чтобы было видно, где хватает штатных настроек, а где я подключаю код.

Задача Что даёт Тильда из коробки Когда нужна доработка
Категории и фильтры Блоки «Категория» и «Фильтры» настраиваются в конструкторе Перекрёстная логика по вариантам товара и остаткам
Остатки и цены Синхронизация через CommerceML с 1С Региональные наценки и разные прайсы для опта и розницы
Промокоды Скидка в процентах или фиксированной сумме, лимит использований Комбинация нескольких условий одновременно
Доставка Калькулятор СДЭК по зонам, токен Яндекс Доставки Индивидуальные полигоны и комбинация нескольких служб
Оплата Робокасса и другие системы в настройках магазина Нестандартные сценарии вроде сплит-платежей
Языковые версии Переключатель языков в блоках меню Синхронизация остатков и цен между языковыми версиями каталога

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

Условия и возможности Тильды меняются, поэтому перед запуском я уточняю их у самого сервиса.

Частые вопросы

Сколько стоит доработать каталог на Тильде?

Точечный скрипт, например пересчёт промокода по дополнительному условию или блокировка варианта товара по остатку, я оцениваю от 3 000 ₽. Комплексная интеграция, где каталог одновременно связывается с CRM, эквайрингом и службой доставки, начинается от 40 000 ₽ и требует отдельного обсуждения объёма работ.

Можно ли расширить каталог без разработчика?

Категории, варианты, фильтры по цене и характеристикам, промокоды с лимитом использований, обмен с 1С и калькулятор СДЭК настраиваются полностью в интерфейсе. Код нужен там, где логика выходит за рамки одной формы настроек, например когда фильтр должен учитывать остаток конкретного варианта товара или скидка зависит от нескольких условий сразу.

Как синхронизировать каталог Тильды с 1С или CRM?

Для 1С в настройках магазина есть обмен по CommerceML: он передаёт товары, цены, остатки и заказы без стороннего сервера. Для CRM, которая не поддерживает CommerceML, использую собственный API Тильды и обработчик на стороне хостинга сайта, который забирает заказы по вебхуку и кладёт их в нужную систему.

Что будет с кастомным кодом в каталоге после обновления Тильды?

Скрипты подключаются через блок T123 или встроенный код на странице, и крупные изменения в структуре блоков магазина иногда требуют доработки под новую вёрстку. Такую проверку закладываю в платную поддержку от 15 000 ₽ в месяц, а не в разовую стоимость скрипта.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно