Ваш город: Баку
Способ получения
Мои адреса
Корзина
Г

Гость

UID:
Заказы
Лицензии
1
Баланс
0

Управление лицензиями BotIQ CMS

Лицензионный ключ предоставляется владельцам официальных копий BotIQ CMS. Он открывает доступ к получению автоматических обновлений из панели управления и гарантирует техническую поддержку.

Enterprise Edition

license.botiq-cms

Статус Активен
Ключ продукта
BTQ-ENT-7821-9942-A810-77C1

Мои обращения

Активные заказы

Бонусная программа

Доступно бонусов: 0

Настройки профиля

Данные защищены
База знаний & Справочник

Документация BotIQ CMS

Официальное руководство по работе с платформой, шаблонизатором и API

Ctrl+K

Добро пожаловать в документацию BotIQ CMS

Здесь вы найдете полное руководство по установке, администрированию, верстке шаблонов и созданию плагинов для платформы онлайн-торговли BotIQ CMS.

Тарифы и лицензии

Основные разделы базы знаний

Быстрый старт

Первичная установка, настройка файла dbconfig и запуск каталога.

Руководство по шаблонам

Структура файлов .tpl, переменные и вызов карточек товаров.

Кратко о платформе BotIQ CMS

BotIQ CMS — это универсальная система управления контентом и современная, высокопроизводительная система управления интернет-магазином, созданная на монолитном стеке PHP 8.1–8.3, SQLite 3 (WAL mode) и Vanilla JS (ES6+). Платформа разработана специально для запуска интернет-магазинов любой сложности без необходимости привлекать программистов или верстальщиков. 99% всех процессов развертывания выполняются нажатием нескольких кликов благодаря интуитивно понятному мастеру пошаговой автоматической установки.

Вам больше не нужно тратить недели на интеграцию сторонних сервисов. В ядро системы уже заложены ключевые модули для полноценной торговли: популярные платежные шлюзы, службы курьерской доставки, двухсторонняя синхронизация с учетными системами (1С:Предприятие, МойСклад), а также быстрая выгрузка каталога с крупнейших маркетплейсов (Wildberries, Ozon, Яндекс Маркет). Это сводит к минимуму время переноса и добавления товаров с нуля.

Службы доставки

Авто-расчет стоимости

Прием платежей

Все популярные эквайринги

1С и МойСклад

Синхронизация остатков

Маркетплейсы

Wildberries, Ozon, Yandex

Ключевая особенность архитектуры:

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

Общие Возможности и Архитектура

BotIQ CMS Enterprise спроектирована как автономный e-commerce монолит на стеке PHP 8.0–8.3, сочетающий минимальную нагрузку на серверное оборудование с высокой пропускной способностью под пиковыми нагрузками.

1. Системное ядро и производительность

Сверхнизкая нагрузка (0–5 SQL-запросов)

Оптимизированное ядро с O(1) RAM-мемоизацией и подготовленными транзакциями гарантирует стабильную отдачу страниц даже на базовых VPS и недорогих тарифах хостинга.

Поддержка PHP 8.0 и выше

Полная совместимость с современными версиями PHP (8.0, 8.1, 8.2, 8.3), строгая типизация, обработка ошибок через Throwable и изоляция через буферизацию вывода.

Многоуровневое кэширование

Гибкий кэш-слой: поддержка Redis, Memcached и атомарного файлового кэширования. Раздельный кэш с сегментацией по типам устройств (desktop, mobile, tablet).

Сжатие Brotli и Gzip

Компрессор контента витрины и панели управления на лету сокращает вес HTML-страниц до 70%, ускоряя рендеринг в браузере и экономя трафик сервера.

Суверенная система ЧПУ

Внутренний роутер без жесткой привязки к серверному ПО. Идеальная работа под Apache (.htaccess) и связкой Nginx + PHP-FPM, строгая изоляция пространств имён URL.

Изолированная безопасность

Ядро закрыто от прямого веб-доступа, защита от Directory Traversal и LFI. Встроены Honeypot-ловушки для ботов, Rate Limiting обращений и криптографическая сессионная аутентификация.

Тотальное SEO, Schema.org и IndexNow

Автоматическая разметка JSON-LD (Schema.org), генерация OpenGraph и Canonical-тегов. Мгновенный протокол IndexNow для оповещения поисковых систем и многофайловый генератор XML Sitemap.

Глубокая AJAX-интеграция

Бесшовный переход между страницами и разделами админки без перезагрузки экрана (SPA-эффект) с мгновенным откликом интерфейсов.

2. Разделы панели управления

📦 Товары и Складской учёт
Все товары: каталог, массовое редактирование, управление статусами активности и ценами.
Склады и остатки (Multi-Warehouse): распределенный складской учёт, ведение цен и остатков по филиалам, отображение наличия в конкретных точках.
Категории: иерархическое дерево каталога любой вложенности с раздельным SEO-описанием категорий.
Дополнительные поля (XFields): кастомные свойства любых типов данных (текст, даты, фото, галереи) со статическим JSON-парсингом.
Товарные блоки: ручная и интеллектуальная привязка похожих товаров, сопутствующих аксессуаров и аналогов.
СЕО-Фильтр и Справочники: управление брендами, странами, формами выпуска и фасетными фильтрами.
Отзывы: модерация комментариев покупателей, оценок, плюсов и минусов с премодерацией.
🛒 Заказы и Обработка продаж
Реестр заказов с кастомными статусами обработки, фиксацией адресов клиентов, способов доставки, онлайн-оплат и наличного расчета.
👥 Команда и Доступ
Пользователи: единая база профилей клиентов и менеджеров, просмотр балансов, истории покупок и сохранённых адресов.
Группы и права: детальное разграничение доступа в панель управления и модули по ролям (администраторы, менеджеры, клиенты, гости).
🔌 Интеграции и Платёжные шлюзы
Системы оплаты: готовые шлюзы онлайн-эквайринга (Т-Банк, ЮKassa и др.) с вебхуками подтверждения.
Интеграция с 1С:Предприятие: двусторонний обмен номенклатурой, ценами, остатками по складам и выгрузкой заказов.
🎯 Маркетинг и Лояльность
Бонусная система и Товарный бонус: накопительный кэшбэк, акционные проценты на выбранные товары, правила суммирования бонусов.
Промокоды: скидочные и партнерские купоны с контролем срока действия и лимитов использования.
E-mail рассылка: массовые и триггерные сервисные уведомления через универсальный почтовый модуль.
Реферальная система: учет партнеров, промокоды, ссылки с параметром ?ref=, автоматический или ручной Hold-режим начислений комиссий.
🛡️ Безопасность и Контент
Статические страницы: публикация информационных разделов, политик конфиденциальности и документации.
Логи входа: подробный аудит попыток авторизации администраторов и клиентов с фиксацией IP-адресов, даты и браузера.

3. Ключевые возможности интернет-магазина

Встроенный фасетный фильтр

Реляционная фильтрация товаров по множественным параметрам (цена, бренды, дозировки, страны) без перезагрузки витрины и с автокоррекцией URL-адресов.

Авторизация и регистрация по SMS и E-mail

Быстрый беспарольный вход по коду из SMS или подтверждение через Email. Мгновенная гидратация сессии из крипто-куки без потери корзины.

Интерактивная карта адресов и ПВЗ

Интеграция гео-карт (Яндекс.Карты) прямо в чекауте корзины. Автоматическое определение зоны доставки, выбор пунктов выдачи и пересчет стоимости курьера.

Быстрый серверный ресайзер (img.php)

Генерация адаптивных миниатюр изображений под любые размеры экранов с кэшированием готовых превью и поддержкой внешних CDN-ссылок.

Установка скрипта на сервер

Установка BotIQ CMS проходит в полностью автоматическом пошаговом режиме через веб-интерфейс мастера инсталляции. Перед запуском установщика необходимо загрузить дистрибутив и выставить корректные права на папки и файлы сервера.

Шаг 1 Копирование файлов дистрибутива

Распакуйте полученный архив с дистрибутивом и скопируйте все файлы и папки из директории /BotIQ CMS/ в корневую директорию вашего веб-сервера (обычно public_html, www или httpdocs). Для безопасной передачи данных рекомендуется использовать проверенные FTP/SFTP-клиенты (например, FileZilla или WinSCP).

Шаг 2 Настройка прав доступа (CHMOD)

Для создания кэша, загрузки фото товаров, работы плагинов и сохранения конфигурации задайте следующие права:

Директория / Файл CHMOD Назначение
/backup/ 777 Хранение резервных копий СУБД
/templates/ 777 Редактирование шаблонов из панели управления
/uploads/ 777 Загрузка оригиналов изображений товаров и баннеров
/engine/data/ 777 Конфигурационные файлы ядра (config.php, dbconfig.php)
/uploads/cache/
/system, /images, /files, /news, /products
777 Атомарный кэш страниц, миниатюры ресайзера и файлы
/engine/plugin/ (все подпапки) 777 Установка сторонних модулей и интеграций
Для всех вложенных файлов внутри каталога /engine/plugin/ установите права на запись CHMOD 666.
Шаг 3 Запуск автоматического мастера

Откройте в браузере адрес вашего домена (например, https://website.com/). Движок автоматически перенаправит вас на страницу мастера установки install.php.

  • Мастер инсталляции автоматически протестирует окружение сервера и права доступа к системным директориям.
  • Нулевая настройка СУБД: вручную создавать базу данных или настраивать сервер баз данных не требуется — защищенное изолированное хранилище и все таблицы развертываются инсталлятором автоматически в один клик.
  • Активируйте лицензионный ключ и укажите логин с паролем главного администратора.
  • После завершения процедуры витрина будет доступна по адресу https://website.com/, а панель управления — по адресу https://website.com/admin.php.
Критически важно: защита данных и завершение установки

1. Опасность перезаписи: Чистая установка скрипта полностью удаляет существующие таблицы базы данных. Если вам необходимо обновить работающий магазин, воспользуйтесь разделом «Обновление скрипта».
2. Удаление инсталлятора: Сразу после успешного входа в панель управления обязательно удалите файл install.php из корневой директории сайта. Если файл останется на сервере, злоумышленники смогут заново инициировать инсталляцию и удалить всю структуру каталога.

Обновление платформы

Для перехода на актуальный релиз BotIQ CMS предусмотрено два сценария: быстрая фоновая синхронизация из панели управления или традиционный ручной перенос архива.

Способ 1 Автоматическая установка обновлений в один клик

Наиболее быстрый и безопасный способ, не требующий работы с FTP-клиентами:

  • Откройте дашборд управления магазином и перейдите во вкладку лицензирования: https://ваш-сайт/admin.php?mod=license.
  • Нажмите «Проверить наличие обновлений». При обнаружении нового стабильного билда активируйте команду запуска инсталляции и дождитесь завершения системного процесса.
  • Ознакомьтесь со списком новшеств в шаблонизаторе на странице botiq-cms.ru/templates-changelog.html и при необходимости скорректируйте разметку своих тем оформления.
Способ 2 Классическое ручное развертывание файлов

Используется при регламентных технических работах или обновлении с архивных сборок:

  • Бэкап: обязательно выгрузите полную резервную копию файлов проекта и базы данных перед началом процедуры.
  • Перенос дистрибутива: скопируйте всё содержимое директории /update/ из свежего пакета поверх текущей структуры сайта. Важно: перезаписывайте файлы без предварительного удаления каталогов на сервере, исключая директорию /templates/, чтобы сохранить авторскую верстку темы.
  • Применение миграций: авторизуйтесь в административной части (admin.php) под суперпользователем — система автоматически выполнит адаптацию таблиц базы данных и применит системные патчи.
  • Сверьте пользовательские темы оформления с перечнем правок в официальном реестре изменений шаблонов.

Системные требования

Для развертывания и стабильной работы BotIQ CMS Enterprise под любыми нагрузками серверное окружение должно соответствовать следующим спецификациям:

Серверное окружение и СУБД
Веб-сервер: Nginx (рекомендуется с PHP-FPM) или Apache 2.4+ с активным модулем mod_rewrite
Версия PHP: PHP 8.0, 8.1, 8.2 или 8.3 (рекомендуется 8.2+)
Система управления БД: Встроенная SQLite 3 с поддержкой WAL-режима (для внешних баз: MySQL 5.6+ или MariaDB 10.0+)
Оперативная память (RAM): Минимальный лимит памяти скрипта (memory_limit) — от 64 МБ (рекомендуется 128 МБ–256 МБ)
Обязательные расширения и библиотеки PHP

Все указанные библиотеки входят в базовые сборки PHP большинства хостинг-провайдеров и панелей управления:

pdo_sqlite / sqlite3
Работа скоростной транзакционной СУБД
curl
Верификация лицензий, платёжные шлюзы, SMS API и вебхуки
mbstring
Корректная обработка кириллицы и многобайтовых строк
gd / gd2
Серверный ресайзер картинок (img.php) и водяные знаки
zip
Автоматическая установка обновлений и распаковка модулей
zlib
Сжатие страниц Gzip/Brotli на лету для экономии трафика
fileinfo
Безопасное определение реального MIME-типа загружаемых файлов
exif
Считывание метаданных и автоповорот фото товаров
intl
Локализация, корректные форматы дат, цен и валют
xml / simplexml
Генерация XML Sitemap, работа протокола IndexNow и обмен 1С
Рекомендуемые параметры в файле php.ini
  • upload_max_filesize = 16M (или выше для массовой загрузки фото товаров)
  • post_max_size = 16M
  • max_execution_time = 60 (для стабильного экспорта/импорта номенклатуры и 1С)
  • date.timezone — должен быть явно указан ваш часовой пояс (например, Europe/Moscow)

Принципы интеграции шаблонов и оформление

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

Хранение и управление темами оформления
Изолированные директории тем

Все визуальные оформления хранятся в корневом каталоге /templates/. Каждая отдельная подпапка внутри этой директории выступает самостоятельным скином с персональным набором стилей, скриптов и файлов .tpl.

Мгновенное подключение темы

Для установки сторонней темы достаточно скопировать папку с макетом в каталог /templates/ и выбрать её в конфигурации платформы через раздел «Настройка системы» панели управления.

Мульти-шаблонность для клиентов

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

Управление плотностью каталога

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

Синтаксис верстки внутри файлов .tpl

Файлы шаблонов представляют собой стандартный HTML-код, дополненный специальными служебными маркерами ядра. Никаких серверных скриптов писать не требуется: вы просто размещаете готовые функциональные теги движка в нужных точках разметки. С полным списком управляющих тегов и блоков условий вы можете ознакомиться в главе «Шаблоны (.tpl)» текущего справочника.

Главные и глобальные теги шаблонов

Глобальные теги платформы BotIQ CMS Enterprise обрабатываются центральным шаблонизатором ядра и доступны в главном каркасе сайта main.tpl, а также в подключаемых подшаблонах.

1. Структура каркаса и метаданные
Тег Описание и назначение
{content} Главный маркер контента. Выводит скомпилированное тело активного раздела (витрина каталога, страница товара, корзина, кабинет, статика или ошибка 404).
{seo_headers} Выводит сгенерированный SEO-пакет: метатеги Title, Description, Robots, Canonical, OpenGraph и JSON-LD Schema.org.
{speedbar} Выводит навигационную цепочку («хлебные крошки») со ссылками на родительские разделы.
{page_title} Текущий чистый заголовок страницы без лишних HTML-тегов.
{meta_desc} Текст глобального мета-описания из настроек ядра платформы.
{site_name} Название магазина или проекта из конфигурации config.php.
{tpl_url} Относительный URL-адрес директории текущей темы (например, /templates/Green).
{cur_code} Знак или буквенный код базовой валюты магазина (₽, ₼, ₸, USD).
{year} Текущий календарный год (автоматически вычисленный).
{time} Текущая временная метка Unix Timestamp (используется для сброса кэша статики).
{active_address} Текущий сохраненный адрес клиента (выбранный пункт выдачи или адрес курьера).
{search_query} Текущая строка поискового запроса пользователя (если активен поиск).
{site_config} Внедряет системный скрипт конфигурации window.siteConfig (задержка поиска, лимиты, пагинация).
{privacy_banner} Выводит скомпилированный модальный блок согласия на сбор Cookie по шаблону privacy.tpl.
2. Глобальная корзина и онлайн-заказ
Тег Описание и возвращаемый результат
{cart_count} Выводит интерактивный элемент количества позиций: <span class="cart-badge botiq-cart-count">0</span>.
{cart_total} Выводит динамический элемент суммы товаров: <span class="botiq-cart-total">0</span>.
{cart_action} Прямая ссылка для перехода на страницу оформления заказа: /index.php?action=cart.
{cart_js_core} Подключает системный файл логики cart.js с контролем версии и защитой от кэширования.
{cart_item_tpl} Внедряет скрытый шаблон строки товара (cart/item.tpl) для мгновенной отрисовки без запросов к серверу.
{cart_config_json} Передает параметры доставки, складов, бонусов и Яндекс Доставки в JS-движок браузера.
3. Профиль клиента и группы доступа
Тег Описание и возвращаемый результат
{fullname} Имя и фамилия покупателя из базы данных (если не авторизован — выводит «Гость»).
{name} Логин пользователя или имя учетной записи.
{first_letter} Первая заглавная буква имени для создания компактных аватарок профиля.
{balance} Текущий персональный баланс лицевого счёта клиента.
[role=1,2,3]...[/role] Блок увидят пользователи с указанными ID ролей (1 — Администратор, 2 — Менеджер, 4 — Клиент, 5 — Гость).
[not-role=5]...[/not-role] Блок увидят все авторизованные клиенты и сотрудники (скрыто для гостей).
4. Условия видимости страниц: [available=...] и [not-available=...]

Конструкции позволяют выводить или скрывать HTML-разметку на определенных страницах сайта. Имена разделов перечисляются через запятую.

Параметр Страница срабатывания
main Главная страница сайта (витрина магазина).
cat, category Разделы каталога и страницы категорий товаров.
product, fullstory Полная карточка отдельного товара.
cart Корзина и оформление заказа.
search Страница результатов поисковой выдачи.
favorites Страница избранных товаров покупателя.
feedback Форма обратной связи и обращений.
static Статические информационные страницы.
404 Страница сообщения о ненахождении документа.
1. Теги модуля статических страниц (static.tpl)
Тег Описание и возвращаемый результат
{title} Заголовок текущей статической публикации.
{content} Скомпилированный текст страницы, очищенный и изолированный контейнером botiq-static-wrapper.
{date} Дата публикации или редактирования документа в формате ДД.ММ.ГГГГ.
{slug} ЧПУ-алиас страницы из адресной строки браузера (например, about, delivery).
{id} Уникальный числовой идентификатор записи в базе данных.
2. Теги модуля обратной связи (feedback.tpl)
Тег Описание и возвращаемый результат
{prefill_name} Автоматически подставляет ФИО или логин авторизованного клиента в атрибут value поля имени.
{prefill_email} Автоматически подставляет подтвержденный Email пользователя из профиля.
{prefill_phone} Автоматически подставляет привязанный телефон покупателя из базы данных.
{form_time} Скрытый временной маркер безопасности (Time Delta Shield) для отсечения автоматического спама ботов.
{support_phone} Системный телефон горячей линии клиентской службы поддержки из конфигурации.
{support_email} Официальный адрес электронной почты отдела обработки обращений.
3. Теги личного кабинета покупателя (profile.tpl)
Тег Описание и возвращаемый результат
{first_name} Имя пользователя (без фамилии).
{last_name} Фамилия пользователя.
{user_id} Цифровой ID аккаунта клиента в таблице users.
{email} Электронный адрес, закрепленный за учетной записью.
{phone} Контактный телефон в международном формате.
{city} Город проживания или основной населенный пункт доставки.
{address} Сохраненный адрес доставки по умолчанию.
{orders_total} Общее количество созданных пользователем заказов за все время.
{recent_orders} Готовая SSR-верстка списка последних покупок с цветовыми бейджами статусов исполнения.
4. Теги модуля фасетных фильтров (modules/filter.tpl)
Тег Описание и возвращаемый результат
{botiq_dynamic_filters} Генерирует динамический блок характеристик EAV (бренды, формы, чекбоксы, диапазоны и системные флаги).
{filter_reset_url} Сформированная ссылка для мгновенного сброса выбранных параметров фильтрации с сохранением категории.
{price_from} Значение нижнего порога цены из активного GET-запроса.
{price_to} Значение верхнего предела цены из активного фильтра.
{in_stock_checked} Возвращает атрибут checked, если включен фильтр наличия товаров.
{in_stores_checked} Возвращает checked, если активен фильтр наличия в конкретных складах/филиалах.
{total_products_count} Общее количество позиций, найденных с учетом примененных фильтров.
{sidebar_categories_tree} Выводит скомпилированное иерархическое дерево разделов внутри блока фильтра.
5. Логические теги экрана успешного заказа (cart/success.tpl)
Конструкция Условие срабатывания
[pay-success]...[/pay-success] Отображается только в случае, если заказ был успешно оплачен онлайн через платежный шлюз (Т-Банк, эквайринг).
[pay-standard]...[/pay-standard] Отображается при выборе наличного расчета при получении или ожидания подтверждения менеджером.
[show-id]...[/show-id] Показывает блок только если номер оформленного заказа корректно определен в базе данных (исключает вывод заказа #0).
[hide-id]...[/hide-id] Срабатывает в случае регистрации заказа без прямого отображения его системного ID.
{order_id} Числовой номер созданного заказа.
5. Специальные виджеты, меню и блоки
Конструкция Описание и поддерживаемые параметры
{custom category="1,2" limit="8" sort="rand"} Выводит выборку товаров в любой части любого шаблона. Параметры: category (ID разделов), limit (число), offset (смещение), template (шаблон вывода карточки), sort (rand, price_asc, price_desc, views, date), nocache.
{cat-menu template="catalog-col"} Многоуровневый интерактивный каталог категорий. Поддерживает многоколоночные шаблоны с переменными {col1}, {col2}, {col3}, диапазоны ID (1-5), иконки и кэширование в ОЗУ.
{categories} Автоматический вывод полного дерева категорий каталога магазина.
{sub_categories} Список подкатегорий активного открытого раздела каталога.
{block alias="novinki"} Выводит настроенный в админ-панели товарный блок по его системному алиасу.
{block-title alias="novinki"} Выводит текстовое название товарного блока.
{related limit="6"} Выводит блок аналогов и сопутствующих товаров текущей позиции.
{include file="modules/header.tpl"} Рекурсивно подключает подшаблон из каталога активной темы с защитой от LFI.

Теги при оформлении карточек товаров и статей

При заполнении описаний номенклатуры, инструкций к препаратам и текстовых публикаций в BotIQ CMS вы можете задействовать богатый набор форматирующих BB-кодов, а также выводить параметры каталога внутри шаблонов shortstory.tpl и fullstory.tpl.

1. Вставка графики, видео, аудио и внешних медиаресурсов
Конструкция тега Результат и назначение
[img]https://site.com/photo.jpg[/img] Внедрение иллюстрации в текст публикации в ее оригинальном виде.
[img=left|Препарат в капсулах]https://...[/img] Вставка фото с обтеканием текстом (left или right) и добавлением альтернативного описания (атрибут alt).
[thumb]https://site.com/box.jpg[/thumb] Генерирует компактную миниатюру изображения с автоматической ссылкой на всплывающий полноразмерный оригинал.
[thumb=right|Схема применения]https://...[/thumb] Создание кликабельного превью с заданным направлением выравнивания и персональным текстом подсказки.
[video=https://site.com/video.mp4] Размещение адаптивного HTML5-видеоплеера для локального видеофайла.
[video=https://...mp4|https://...jpg|Обзор] Воспроизведение видеоролика с назначением заставки (постера), отображаемой до клика Play, и текстовой подписью.
[video=640x360,https://site.com/video.mp4] Фиксация точных физических пропорций (ширина х высота в пикселях) окна видеопроигрывателя.
[video=url1.mp4,url2.mp4] Сборка непрерывного последовательного плейлиста из нескольких видеофайлов.
[audio=https://site.com/track.mp3] Интеграция звукового аудиоплеера (или плейлиста через перечисление файлов через запятую).
[media=https://youtube.com/watch?v=ID] Автоматическая трансформация ссылки стороннего сервиса в готовый адаптивный плеер или виджет через протокол oEmbed (YouTube, Rutube, Vimeo, VK Video).
[media=800x450,https://...] Встраивание видео с внешних платформ с указанием кастомных габаритов фрейма.
2. Данные номенклатуры, галереи и ценообразования
Тег карточки Описание и выдаваемые данные
[name] / {name} Полное наименование позиции. Внутри тегов ссылок и модалок автоматически экранируется.
[id] / {id} Уникальный идентификатор товара в каталоге.
[full-link] ЧПУ-адрес персональной страницы товара вида /product/123-nazvanie-tovara.
[price] / {price} Отформатированная розничная цена с разделением разрядов (например: 1 250).
[price-raw] Чистая неформатированная стоимость (Float) для динамических JS-калькуляций и корзины.
[old_price] Старая базовая цена до применения скидки (если указана).
[old_price-raw] Неформатированное числовое значение базовой цены без скидки.
[if_old_price]...[/if_old_price] Условный контейнер: отображает вложенные элементы (зачеркнутую цену, процент скидки) только при наличии скидки.
[image] Оптимизированный адрес превью через встроенный компрессор img.php?src=...&w=350.
[full_image] / {raw_image} Прямая ссылка на оригинальный графический файл высокой четкости для зума и галереи.
{gallery} Массив миниатюр фотогалереи товара для подключения слайдеров Swiper.
{avg_rating} Средняя оценка по подтвержденным отзывам покупателей (от 1.0 до 5.0).
{reviews_count} Суммарное число проверенных отзывов к позиции.
3. Складской учет и доступность в точках самовывоза
Тег Описание функционала
{stock} Число доступных единиц товара (с учетом выбранного склада либо суммарно по сети).
{stores_count} Число филиалов (аптек или складов), где позиция есть в наличии.
{stores_word} Правильное грамматическое склонение слова в предложном падеже («аптеке», «аптеках»).
{stores_word_nom} Склонение в именительном падеже («аптека», «аптеки», «аптек»).
[stores_json] Сериализованный JSON-пакет данных о наличии и ценах по каждому отдельному магазину для передачи в модальные карты.
{selected_warehouse_id} Идентификатор склада или филиала, активного в сессии пользователя.
[if_stores_count]...[/if_stores_count] Скрывает блок, если товар полностью отсутствует во всех точках сети.
4. Товарные промо-акции и бонусные баллы
Конструкция Назначение
[bonus-promo]...[/bonus-promo] Отображается строго в том случае, если на позицию действует активная акция повышенного начисления баллов.
[no-bonus-promo]...[/no-bonus-promo] Выводится в обычные дни, когда действует лишь базовый процент кэшбэка сайта.
{bonus-min-qty} Минимальный объем заказа в штуках, необходимый для активации промо-ставки.
{bonus-percent} Итоговый процент начисляемого вознаграждения (например: 15%).
{bonus-amount} Точная сумма бонусов в валюте, поступающая на баланс покупателя.
{bonus-user-limit} Текстовое предупреждение о лимите количества акционного товара в одни руки.
5. Справочники, свойства и дополнительные поля (XFields)
Тег / Конструкция Логика работы
{features} Выводит готовую готовую скомпилированную HTML-таблицу всех привязанных к товару свойств.
{feature_ИмяСвойства} Точечный вывод значения свойства из справочников (например: {feature_Бренд}, {feature_Страна}).
[xfvalue_имяполя] Выводит сохраненное строковое или текстовое значение дополнительного поля XFields (например: [xfvalue_form], [xfvalue_producer]).
[xfgiven_поле]...[/xfgiven_поле] Отображает секцию или строку характеристики только в том случае, если данное поле было заполнено при редактировании товара.
[xfnotgiven_поле]...[/xfnotgiven_поле] Срабатывает, если поле осталось пустым.
[xfvalue_поле limit="100"] Безопасная обрезка текста дополнительного поля до указанного лимита символов с сохранением целостности слов.
[ifxfvalue поле="значение"]...[/ifxfvalue] Сравнение значения поля с эталоном. Выводит блок разметки только при совпадении.

Система избранного и персональных закладок

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

1. Принцип функционирования закладок
Фиксация в один клик

Клиент сохраняет товар нажатием на кнопку с иконкой сердечка как в общем каталоге (shortstory.tpl), так и в подробной карточке изделия (fullstory.tpl).

Автономность от браузера

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

Скоростная SSR + AJAX подгрузка

Контроллер favorites.php отдает готовые отрендеренные карточки через серверный шаблон render_view, обеспечивая моментальное открытие раздела без лишней нагрузки на СУБД.

Плавное интерактивное управление

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

2. Интеграционные теги и селекторы в шаблонах
Элемент / Селектор Назначение и правила интеграции
btn-wishlist / btn-action-fav Обязательные служебные CSS-классы кнопок добавления в избранное в файлах shortstory.tpl и fullstory.tpl.
data-id="[id]" HTML5 дата-атрибут с номером товара, используемый ядром для идентификации сохраняемой позиции.
favorite-count-badge Служебный класс текстового узла (например, <span class="favorite-count-badge">0</span>), куда JS-ядро выводит общее число сохраненных товаров.
/index.php?do=favorites Прямой системный URL-адрес для перехода на страницу сохраненных товаров (шаблон favorites.tpl).
[available=favorites]...[/available] Управляющая логическая конструкция: отображает разметку исключительно при просмотре раздела избранного.
Пример кнопки сохранения для карточки товара:
<button type="button" class="btn-action-fav" data-id="[id]" title="Добавить в закладки">
    <i class="bi bi-heart"></i>
</button>

ЧПУ и серверная маршрутизация URL

BotIQ CMS Enterprise задействует двухуровневый механизм генерации человеко-понятных URL (ЧПУ). Названия товаров, категорий и статических страниц транслитерируются в читаемый вид, обеспечивая приоритетное ранжирование поисковыми системами (Яндекс, Google) и удобство для клиентов магазина.

1. Настройка для серверов Apache (.htaccess)

При работе на веб-сервере Apache с включенным модулем mod_rewrite убедитесь, что в корневой папке вашего сайта присутствует файл .htaccess со следующими штатными правилами:

# Запрет листинга каталогов и кодировка ядра
Options -Indexes
AddDefaultCharset UTF-8
DirectoryIndex index.php index.html

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Проброс заголовков авторизации для обмена данными с 1C и МойСклад
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%1]

    # Маршрутизация XML-карт сайта
    RewriteRule ^sitemap\.xml$ uploads/sitemap.xml 

    # Системные разделы и статические документы
    RewriteCond % !-f
    RewriteCond % !-d
    RewriteRule ^page/([^/]+)/?$ index.php?page=$1 [L,QSA]

    # Корзина, личный кабинет, обратная связь и избранное
    RewriteRule ^cart/?$ index.php?action=cart [L,QSA]
    RewriteRule ^favorites/?$ index.php?do=favorites [L,QSA]
    RewriteRule ^feedback/?$ index.php?do=feedback [L,QSA]

    # Карточки товаров: /product/12-nazvanie-tovara
    RewriteRule ^product/(+)(?:-.*)?/?$ index.php?product_id=$1 [L,QSA]

    # Разделы каталога: /catalog/1-kategoriya или /catalog/kategoriya
    RewriteRule ^catalog/?$ index.php?category_slug=catalog [L,QSA]
    RewriteRule ^catalog/(+)(?:-.*)?/?$ index.php?category=$1 [L,QSA]
    RewriteRule ^catalog/(+)/?$ index.php?category_slug=$1 [L,QSA]

    # Фронт-контроллер: перенаправление остальных запросов в единую точку входа
    RewriteCond % !-f
    RewriteCond % !-d
    RewriteRule . index.php 
</IfModule>
2. Конфигурация для высоконагруженных связок Nginx

Если ваш сайт функционирует под управлением Nginx (Standalone или в связке с PHP-FPM), добавьте правила изоляции системных директорий и передачи URL-параметров в блок server конфигурации виртуального хоста:

location / {
    # Блокировка прямого доступа к резервным копиям и конфигурационным файлам
    location ~ ^/(backup|engine/data)/ {
        deny all;
        return 403;
    }

    # Запрет выполнения скриптов в папке пользовательских загрузок и шаблонах
    location ~ ^/(uploads|templates)/.*\.php$ {
        deny all;
        return 403;
    }

    # Карта сайта Sitemap XML
    rewrite ^/sitemap\.xml$ /uploads/sitemap.xml last;

    # ЧПУ-маршруты платформы BotIQ CMS
    rewrite ^/page/([^/]+)/?$ /index.php?page=$1 last;
    rewrite ^/cart/?$ /index.php?action=cart last;
    rewrite ^/favorites/?$ /index.php?do=favorites last;
    rewrite ^/feedback/?$ /index.php?do=feedback last;
    rewrite ^/product/(+)(?:-.*)?/?$ /index.php?product_id=$1 last;
    rewrite ^/catalog/?$ /index.php?category_slug=catalog last;
    rewrite ^/catalog/(+)(?:-.*)?/?$ /index.php?category=$1 last;
    rewrite ^/catalog/(+)/?$ /index.php?category_slug=$1 last;

    # Передача ненайденных URI на фронт-контроллер ядра
    try_files $uri $uri/ /index.php?$args;
}
3. Форматы маршрутизации и соответствие GET-параметрам

Роутер ядра index.php принимает URL-запросы и раскладывает их по изолированным пространствам имён. При ручной модификации правил сервера необходимо строго соблюдать соответствие целевых переменных:

Внешний ЧПУ-адрес Целевой внутренний маршрут Назначение
/product/125-vitamin-c index.php?product_id=125 Карточка товара. Обязателен числовой ID позиции.
/catalog/medicines index.php?category_slug=medicines Рубрика каталога по текстовому ЧПУ-слагу.
/catalog/12-preparaty index.php?category=12 Категория каталога с числовым ID (формат DLE-style).
/page/delivery index.php?page=delivery Статическая публикация по символьному имени.
/cart index.php?action=cart Корзина, этапы чекаута и оплата онлайн.
/favorites index.php?do=favorites Индивидуальный реестр закладок пользователя.

Сегментация устройств и мобильная адаптация

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

1. Принцип функционирования ядра BotIQ_Device
mobile (Смартфоны)

Высокоскоростная фильтрация User-Agent по сигнатурам мобильных систем: iPhone, Android Phone, iPod, BlackBerry, Opera Mini, Windows Phone.

tablet (Планшеты)

Детекция планшетных девайсов: iPad, планшетные платформы Android, PlayBook, Kindle с сохранением сенсорных сценариев витрины.

desktop (ПК и Ноутбуки)

Полноразмерная версия сайта с многоколоночными каталогами, развернутыми сайдбарами и полноформатной сеткой товаров.

Кэширование сессии: тип клиентского оборудования сохраняется в $_SESSION['botiq_device_type']. Это избавляет сервер от повторного анализа заголовков User-Agent при каждом переходе по страницам каталога.
2. Теги выборочного рендеринга контента

В любых шаблонах сайта (main.tpl, shortstory.tpl, fullstory.tpl) вы можете использовать парные управляющие блоки. Однопроходный парсер ядра исключает лишний HTML-код из DOM-дерева еще на этапе компиляции, экономя мобильный интернет-трафик и ускоряя рендеринг страницы:

Конструкция тега Условие отображения содержимого
[mobile]...[/mobile] Блок разметки отображается исключительно на мобильных устройствах (смартфонах). На ПК и планшетах вырезается из HTML.
[tablet]...[/tablet] Контент доступен только пользователям планшетных компьютеров.
[desktop]...[/desktop] Содержимое рендерится строго на экранах ПК и десктопных браузеров (скрыто для мобильных платформ).
Пример адаптивного вывода панелей покупки в карточке товара:
[desktop]
    <!-- Правый закрепленный блок чекаута для компьютеров -->
    <div class="desktop-buy-sidebar">
        <button type="button" class="btn-cart">Купить в 1 клик</button>
    </div>
[/desktop]

[mobile]
    <!-- Фиксированная плавающая панель покупки внизу экрана телефона -->
    <div class="botiq-mobile-fixed-action-bar">
        <button type="button" class="btn-cart-mobile">В корзину [price] {cur_code}</button>
    </div>
[/mobile]
3. Изоляция кэша по маркерам устройств (m, t, d)

Серверный слой кэширования BotIQ CMS (в связках с Redis, Memcached или файловым хранилищем) автоматически добавляет суффикс устройства в ключ кэша страниц:

  • _m — кэшированная версия интерфейса для мобильных телефонов.
  • _t — скомпилированная копия разметки для планшетов.
  • _d — полноформатный кэш для стационарных компьютеров.

Благодаря этому мобильный пользователь никогда не получит застрявший в кэше «десктопный» вариант верстки, и наоборот.

Публикация товаров в каталог

Форма создания номенклатуры позволяет зарегистрировать новую товарную позицию, привязать её к категории, распределить остатки по складам и настроить фасетные свойства для фильтрации на витрине.

Поля и параметры создания товара

Параметр Назначение и правила заполнения
Название позиции Обязательное поле. Торговое наименование товара, отображаемое в каталоге, чекауте и документах заказа.
Артикул (SKU) Уникальный внутренний идентификатор номенклатуры для складского поиска и синхронизации с 1С / МойСклад.
Категория Раздел каталога. При выборе категории система мгновенно подгружает привязанные к ней дополнительные поля (XFields) и свойства фильтра.
Ценообразование Задается розничная цена и опционально «Старая цена». Если указана старая цена, система автоматически рассчитывает процент скидки и активирует бейдж распродажи.
Складской учет В одиночном режиме задается общий остаток. В режиме Multi-Warehouse открывается матрица распределения наличия и индивидуальных цен по филиалам.
Галерея WebP Engine Загрузка нескольких фотографий одновременно. Изображения автоматически конвертируются в оптимизированный формат WebP с возможностью сортировки порядка перетаскиванием (Drag & Drop).
Специальные флаги Тумблеры системных отметок («Хит», «Без рецепта», «Акция»), управляющие выводом бейджей и фильтрацией в боковом меню.

Управление и редактирование номенклатуры

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

Быстрое инлайн-редактирование

Клик по цене, названию или артикулу в общем списке товаров активирует поле ввода. Новые значения сохраняются в базе по нажатию Enter или клику вне поля (событие blur) через точечные AJAX-запросы без перезагрузки экрана.

Групповые операции (Bulk Actions)

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

Личный профиль администратора

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

Доступные параметры профиля:
  • Имя и Фамилия: публичные данные, подставляемые в системные журналы действий и комментарии.
  • Рабочий E-Mail: адрес для получения критических уведомлений безопасности и восстановления доступа.
  • Смена пароля: шифрование нового пароля алгоритмом BCRYPT с моментальной инвалидацией старых сессий.
  • Привязка контактов: сохранение служебного номера телефона для двухфакторной аутентификации.

Глобальная конфигурация платформы

Центральный пульт управления магазином разбит на тематические блоки и сохраняет параметры в файле config.php с атомарной блокировкой записи LOCK_EX.

Вкладка настроек Функционал и регулируемые опции
Общие Название магазина, домашний URL, Speedbar, часовой пояс сервера, выбор активной темы оформления и перевод сайта в режим обслуживания.
Заказы Конструктор этапов и статусов заказов (коды N, P, VO, Z), правила авто-начисления бонусов и звуковые оповещения о новых заявках.
Корзина Лимит минимальной суммы покупки, стоимость доставки, политика действий при нулевом остатке (блокировка, предзаказ, аналоги) и гостевой чекаут.
Оптимизация Драйверы кэширования (Файловый, Redis, Memcached), компрессия HTML-страниц алгоритмами Gzip / Brotli и время жизни кэша (TTL).
Почта Шлюз отправки писем (PHP Mail или защищенный SMTP), шаблоны сервисных писем покупателям и отчеты менеджеру.
Доступ Способы клиентской авторизации (по SMS-коду, Email или связке логин/пароль), роли по умолчанию и интеграция Telegram Widget.
1С и МойСклад Шлюз CommerceML, API-реквизиты учетной системы, авто-обновление цен, остатков и двухсторонний обмен статусами заказов.

Управление статическими страницами

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

Особенности архитектуры статических страниц:
  • ЧПУ URL (Slug): задается латинскими символами и формирует чистый адрес вида https://website.com/page/delivery (или index.php?page=delivery при отключенном перенаправлении).
  • Изоляция стилей: разметка контента автоматически оборачивается в контейнер botiq-static-wrapper, что исключает конфликт встроенного HTML-кода с общей версткой темы.
  • Кастомные шаблоны: для каждой страницы можно назначить индивидуальный файл оформления (например, static-contacts.tpl), указав его имя в поле «Шаблон страницы».
  • SEO-пакет: персональные мета-теги Title и Description с автоматической генерацией микроразметки OpenGraph.

Матрица прав и группы пользователей

Позволяет детально разграничить полномочия покупателей и сотрудников магазина. Базовые системные роли (ID 1–5: Администратор, Менеджер, Клиент, Гость) защищены от случайного удаления.

Ключевые настройки прав роли:
Доступ в админпанель (allow_admin) Разрешает авторизацию в admin.php. Менеджерам открываются только разрешенные модули, полный доступ имеют только администраторы.
Оформление и отзывы Право оставлять отзывы к товарам, ставить оценки, прикреплять фотографии и оформлять заказы.
Авто-перенос по стажу Автоматический перевод покупателя в группу постоянных клиентов при достижении порога выполненных заказов или суммы покупок.
Префиксы и стилизация Задание цветовых HTML-префиксов и бейджей для наглядного отображения ранга пользователя на сайте.

Структура и настройка категорий

Обеспечивает построение иерархического каталога товаров любой глубины вложенности с поддержкой ручной сортировки порядка и генерацией SEO-метатегов.

Инструменты управления разделами:
  • Сортировка Drag & Drop: порядок отображения категорий в меню витрины меняется простым перетаскиванием строк в таблице. Позиции фиксируются в БД в один клик без перезагрузки.
  • ЧПУ Slug и родитель: назначение уникального символьного кода ссылки и выбор родительского раздела для формирования вложенных веток каталога.
  • SEO и описания: индивидуальный Title, Description и расширенное HTML-описание раздела, выводящееся под карточками товаров для поискового продвижения.
  • Иконки каталога: загрузка графической иконки категории для вывода в 3-уровневом мега-меню витрины.

Дополнительные поля товаров (XFields)

Механизм расширения карточки товара произвольными характеристиками (форма выпуска, состав, показания, дозировка) без изменения структуры базы данных.

Типы полей и синтаксис использования:
Тип поля Тег вывода Назначение
Одна строка [xfvalue_имя] Короткий текст (объем, производитель, артикул поставщика).
Многострочный [xfvalue_имя] Развернутое текстовое поле для инструкций, составов и схем применения.
Список (Select) [xfvalue_имя] Выпадающий список фиксированных значений, разделенных символом переноса строки.
Переключатель [xfgiven_имя]...[/xfgiven_имя] Логический флаг «Да/Нет» для условного показа блоков верстки.

Привязка к рубрикам: каждое поле можно назначить глобально для всех товаров магазина либо ограничить выбранными категориями (при смене категории в редакторе лишние поля скрываются автоматически).

Журнал безопасности и аудит действий

Служба аудита протоколирует ключевые события системы: попытки авторизации в панель управления, ввод одноразовых паролей (OTP) и модификацию заказов.

Фиксация параметров сессий:
  • Сетевой адрес (IP): фиксация реального IP-клиента и гео-локации для отслеживания подозрительных попыток подбора кодов.
  • Метод и статус: отображение способа подтверждения (SMS, Email, Password) и результата попытки (успешно, ошибка, просрочен).
  • Ротация записей: журнал не перегружает базу данных — устаревшие записи ротируются автоматически, гарантируя высокую скорость выборки на SQLite.
  • Очистка журнала: администратор имеет возможность мгновенно очистить реестр логов вручную с обнулением счётчиков автоинкремента.

Принципы построения тем оформления

Архитектура тем BotIQ CMS полностью отделяет дизайн от программного ядра PHP. Все темы хранятся в изолированных папках внутри каталога /templates/ и состоят из стандартных файлов HTML-верстки с расширением .tpl.

Структура и переопределение стилей темы:
  • Изоляция стилей темы: активный дизайн выбирается в настройках системы. Вы можете переключать скины оформления без риска сломать базу данных или логику корзины.
  • Рекурсивное подключение {include file="..."}: позволяет вставлять повторяющиеся фрагменты верстки (шапку, подвал, блоки карточек) из одного файла в другой. Подключаемый путь отсчитывается относительно папки текущей активной темы (например, {include file="modules/header.tpl"}).
  • Безопасность путей: синтаксический анализатор ядра блокирует попытки межпапочных выходов (Directory Traversal ../), гарантируя выполнение разметки строго внутри каталога авторизованной темы.
  • Токенизация в один проход: ядро BotIQ не компилирует тяжелые PHP-конструкции внутри шаблонов. Все теги вычисляются в памяти через быстрые строковые замены O(1).

Главный каркас витрины (main.tpl)

Файл main.tpl является фундаментом темы. Он задает общую структуру HTML-документа, подключает стили, шрифты, скрипты шапки и подвала, а также определяет точку вывода активного модуля.

Ключевые теги, размещаемые в main.tpl:
Тег Назначение в каркасе
{seo_headers} Обязателен в секции <head>. Выводит кодировку, Title, Description, Canonical и метатеги соцсетей.
{content} Центральная точка монтирования. Сюда ядро подставляет результат работы запрошенной страницы (каталог, карточку, корзину, профиль).
{cart_count} / {cart_total} Интерактивные виджеты количества товаров и текущей стоимости корзины в шапке сайта.
{speedbar} Навигационная цепочка «хлебных крошек» со ссылками на вложенные каталоги.
{site_config} Обязательный системный тег внизу страницы. Инжектирует конфигурацию window.siteConfig для живого поиска и чекаута.
[available=main]...[/available] Условный тег для показа блоков исключительно на стартовой странице (слайдеры, баннеры, преимущества).

Краткая карточка товара (shortstory.tpl)

Файл shortstory.tpl описывает верстку одного товара в общей сетке каталога, поисковой выдаче, блоках похожих позиций {related} и каруселях {custom}.

Ключевые теги и атрибуты кнопки покупки:
Тег / Селектор Назначение
[full-link] ЧПУ-адрес для перехода на полную карточку товара.
[image] Скомпилированный URL оптимизированной обложки через серверный ресайзер картинок.
[price] / [price-raw] Форматированная стоимость для пользователя и неформатированное число (Float) для JS-расчетов.
[if_old_price]...[/if_old_price] Блок перечеркнутой базовой цены. Срабатывает только при наличии действующей скидки.
[bonus-promo]...[/bonus-promo] Бейдж повышенного начисления баллов за объем покупки (например, от 2 шт.).
btn-add-to-cart Обязательный класс кнопки заказа. Должен содержать дата-атрибуты data-id="[id]", data-price="[price-raw]" и data-stock="{stock}".

Полная карточка товара (fullstory.tpl)

Файл fullstory.tpl управляет главной страницей единицы номенклатуры. Отвечает за галерею с зумом, переключение складов, расчет кэшбэка, характеристики XFields, инструкцию и прикрепленный модуль отзывов.

Специфические элементы карточки:
  • Галерея фотографий {gallery}: контейнер миниатюр для Swiper-слайдера с поддержкой полноэкранного модального зума.
  • Наличие в сети {stores_count}: выводит количество аптек или филиалов, где товар есть прямо сейчас, с авто-склонением слова через {stores_word}.
  • Свойства [xfvalue_*]: вывод структурированных блоков инструкции (состав, показания, противопоказания, способ применения).
  • Подключение отзывов: строка {include file="reviews.tpl"} выводит блок модерации, рейтинг и форму публикации нового отклика.
  • Рекомендации {related limit="6"}: подгружает карусель аналогов и сопутствующих товаров из той же фармакологической группы.

Витрина категории и каталога (category.tpl)

Шаблон category.tpl задает компоновку страницы каталога. Объединяет хлебные крошки, фасетный сайдбар фильтрации, переключатель вида (сетка/список) и контейнер вывода товаров.

Основные теги страницы рубрики:
  • {category_h1_title} — заголовок текущей категории (в режиме поиска автоматически трансформируется в поисковый запрос клиента).
  • {total_products} — точное количество найденных активных товаров с учетом выбранных фильтров цены, брендов и наличия.
  • {botiq_sidebar_filter} — готовый скомпилированный боковой сайдбар с чекбоксами характеристик, ползунками цен и фильтрами по филиалам.
  • {products} — список отрендеренных карточек каталога (по шаблону shortstory.tpl).
  • {pagination} — блок постраничной навигации либо кнопка бесконечной подгрузки товаров (AJAX-лоадер).

Постраничная навигация (navigation.tpl)

Файл navigation.tpl отвечает за перелистывание страниц каталога. Поддерживает два взаимоисключающих режима: классические круглые номера страниц и динамическую AJAX-кнопку «Показать еще».

Конструкции переключения режимов пагинации:
Конструкция Описание и возвращаемый результат
[if_is_standard]...[/if_is_standard] Блок активируется, если в настройках выбран стандартный режим ссылок 1 2 3 ....
{pages_list} Генерирует готовый список номеров страниц с подсветкой активной вкладки.
[if_is_ajax]...[/if_is_ajax] Отображается при включенной бесшовной подгрузке.
#load-more-btn Идентификатор кнопки «Показать еще» с дата-атрибутами data-next-page и data-total-pages.

Отзывы и рейтинги товаров (reviews.tpl)

Файл reviews.tpl отвечает за визуализацию оценок покупателей, разбивку по звездам от 1 до 5, публикацию достоинств/недостатков и модальную форму с антиспам-ловушкой Honeypot.

Теги статистики и списка отзывов:
  • {reviews_list} — список опубликованных модератором отзывов с разделением на плюсы, минусы и текст комментария.
  • {avg_rating} — средний балл товара (от 1.0 до 5.0) с сохранением дробной части.
  • {reviews_count} — общее количество оставленных мнений.
  • {rating_percent_5} ... {rating_percent_1} — процентные доли оценок для заполнения полос прогресс-баров шкалы рейтинга.
  • {rating_count_5} ... {rating_count_1} — точное число покупателей, поставивших соответствующую оценку.

Шаблоны корзины и экранов заказа (cart/*.tpl)

Все файлы чекаута изолированы в подкаталоге темы /templates/ВашаТема/cart/. Это гарантирует независимость логики оформления от основного макета.

Файлы и назначение подшаблонов:
  • cart/cart.tpl — основной интерфейс корзины: выбор способа доставки (курьер/самовывоз), ввод промокода и расчет суммы.
  • cart/item.tpl — шаблон строки позиции товара для клиентской отрисовки через Vanilla JS без перезагрузки экрана.
  • cart/success.tpl — экран подтвержденного заказа. Поддерживает разделение сценариев онлайн-оплаты [pay-success] и наличного расчета [pay-standard].
  • cart/failure.tpl — информационный экран при отклонении транзакции банком с кнопкой повторной попытки платежа.

Личный кабинет покупателя (profile.tpl)

Файл profile.tpl задает структуру личного кабинета. Работает по технологии SSR с поддержкой вкладок истории покупок, баланса бонусов и редактирования персональных данных.

Специальные теги профиля:
{fullname} / {first_letter}
ФИО клиента и первая буква имени для круглой аватарки.
{balance}
Текущий бонусный счет пользователя в баллах программы лояльности.
{recent_orders}
Готовая SSR-верстка списка заказов с цветовой индикацией статусов.
{orders_total}
Общее число оформленных покупателем покупок.

Форма обратной связи (feedback.tpl)

Файл feedback.tpl управляет формой клиентских обращений в службу заботы. Включает автоматическую подстановку данных авторизованного пользователя и скрытую антиспам-защиту.

Теги автозаполнения и контактов:
  • {prefill_name} — подставляет сохраненное имя клиента в поле value.
  • {prefill_email} — автоматически вставляет верифицированный адрес электронной почты.
  • {prefill_phone} — номер телефона пользователя из базы данных.
  • {form_time} — скрытая временная метка (Time Delta Shield) для отсечения автоматических спам-ботов.
  • {support_phone} и {support_email} — системные контакты аптеки/магазина из конфигуратора.

Статические публикации (static.tpl)

Файл static.tpl рендерит информационные статьи (о компании, доставка, гарантия, лицензии). Текст публикации изолируется для сохранения мобильной адаптивности.

Переменные статического документа:
  • {title} — заголовок страницы, указанный при создании в панели управления.
  • {content} — скомпилированное тело статьи в защитной обертке botiq-static-wrapper.
  • {date} — дата публикации материала в формате ДД.ММ.ГГГГ.
  • {slug} — ЧПУ-идентификатор документа (например, delivery или about).

Системные уведомления и ошибки (info.tpl)

Файл info.tpl используется ядром для отображения служебных предупреждений: страницы 404 (документ не найден), блокировок доступа и информационных сообщений платформы.

Теги шаблона сообщений:
  • {title} — заголовок системного окна (например, «404 - Страница не найдена» или «Доступ ограничен»).
  • {info} / {error} — подробный текст пояснения с рекомендацией вернуться на главную страницу или в каталог.

Разработка плагинов и модулей

Архитектура BotIQ CMS Enterprise поддерживает модульное расширение без модификации исходного кода ядра, что сохраняет работоспособность сторонних доработок при обновлении скрипта.

1. Встраивание модулей в шаблоны оформления

Пользовательские скрипты витрины размещаются в каталоге /engine/modules/ и вызываются в разметке шаблонов через тег подключения:

{include file="engine/modules/my_custom_block.php"}

Вывод данных из файла модуля осуществляется стандартной функцией echo. Внутри подключаемого файла доступны глобальные переменные ядра:

  • $db — экземпляр PDO SQLite для безопасного выполнения подготовленных выражений.
  • $sys — глобальный массив конфигурации магазина из config.php.
  • $member_id — массив параметров авторизованного пользователя или null для гостя.
  • $cur_code / $cur_sym — буквенный код и визуальный знак валюты сайта.
  • $cache — системный кэш-драйвер для сохранения тяжелых выборок.
2. Подключение модулей панели управления

Новые разделы административной части создаются в каталоге /engine/inc/ в виде отдельного PHP-файла. Доступ к интерфейсу формируется по системному URL:

https://website.com/admin.php?mod=mymodule

Шаблон страницы возвращается в переменную $admin_content через буферизацию вывода ob_start() ... $admin_content = ob_get_clean();, что встраивает интерфейс в единый дашборд.

3. Платежные шлюзы и службы логистики

Службы онлайн-эквайринга изолируются в /engine/plugin/payment//. Ядро автоматически подгружает плагин при чекауте через стратегию вызова функции payment_init_($order_id, $amount, $config), исключая зависимость от сторонних библиотек.

REST API и интеграционные вебхуки

Платформа предоставляет встроенный API-шлюз для взаимодействия с мобильными приложениями, Telegram Mini App, внешними ERP-системами и службами логистики.

Базовые эндпоинты API ядра:
Метод Маршрут URL Назначение и формат ответа
GET /api/get_products Выгрузка каталога с поддержкой параметров пагинации (page), категории (cat) и поискового запроса (q).
POST /index.php?api=save_order Создание заказа из фронтенда или внешнего приложения. Принимает JSON-пакет с товарами, адресом, гео-координатами и промокодом.
GET /index.php?api=check_promo Валидация купона скидки по коду (?code=SALE20) с проверкой лимита использований и срока действия.
POST /index.php?api=calc_yandex_delivery Расчет стоимости курьерской доставки по координатам клиента и ближайшему активному складу.
POST /index.php?api=yandex_webhook Служебный вебхук приема статусов курьера от логистической платформы с подтверждением HTTP 200 OK.
Формат ответа эндпоинтов:

Все эндпоинты возвращают заголовки Content-Type: application/json; charset=utf-8 и стандартную обертку статуса операции:

{
"success": true,
"order_id": 1042,
"payment_url": "https://payment-gateway.com/pay/order_1042",
"bank_error": null
}
BotIQ Agent Network

Стать агентом BotIQ CMS

Заполните анкету для получения индивидуального промокода, реферальной ссылки и комиссии до 40% с продаж.

Заявка успешно принята!

Спасибо за проявленный интерес к BotIQ CMS. Наш B2B-отдел изучит вашу анкету и свяжется с вами в течение 24 часов.

Мы отправили подтверждение на ваш E-mail. После одобрения вы получите промокод и реферальную ссылку в личные данные.

Отправляя форму, вы подтверждаете согласие с политикой конфиденциальности.