Возможности
← Ко всем возможностям
Движок магазина

CartiX

Снимки экрана скоро появятся.

Подробное описание ещё готовится.

Тема «Базовая» (default)

Референс-структура темы витрины CartiX (Smarty 5, шаблоны .html).

Структура

themes/default/
├── theme.json              # манифест: имя, версия, СХЕМА настроек
├── theme.png               # превью для галереи тем
├── templates/              # Smarty-шаблоны страниц
│   ├── layout.html         # каркас (наследуется всеми через {extends})
│   ├── home.html           # главная
│   ├── category.html       # листинг категории
│   ├── product.html        # карточка товара
│   ├── list.html           # страница списка товаров (is_page)
│   ├── brand.html          # страница бренда
│   ├── tag.html            # страница тега
│   ├── page.html           # CMS-страница
│   ├── search.html         # результаты поиска
│   ├── cart.html           # корзина (этап 3)
│   ├── checkout.html       # чекаут (этап 3)
│   ├── partials/           # переиспользуемые куски
│   │   ├── header.html  footer.html  product-card.html
│   │   ├── breadcrumbs.html  pagination.html  filters.html
│   │   └── (sort-bar, sku-options, services, product-features …)
│   └── blocks/             # контент-блоки
│       ├── hero.html
│       └── product-list.html   # вывод подборки (getList)
├── assets/                 # статика темы
│   ├── css/theme.css
│   ├── js/theme.js
│   ├── images/
│   └── fonts/
└── locale/                 # переводы строк темы
    ├── ru.json  uk.json  en.json

Ключевые механизмы

  • Клонирование: тема копируется целиком в новую папку (полная независимая копия, без наследования). Правки клона ни на что не влияют; обновления базовой темы в клон не переносятся — это самостоятельная тема.
  • Настройки (schema-driven): описаны в theme.json → settings.groups, редактор строит форму автоматически. Значения хранятся per-витрина, попадают в шаблоны как $theme.*.
  • Функции тем: {url}, {trans}, {money} (готовы), {getList} (вывод подборок), {hook} (точки расширения для плагинов — работают нативно на Smarty).
  • Данные: контроллер витрины собирает контекст (товар/категория/список/фильтры) и передаёт в шаблон. Логику в шаблонах не пишем — только вывод.
  • Безопасность: песочница Smarty (без {php}, автоэкранирование HTML).

Точки расширения (hooks)

storefront.head, storefront.body.start/end, header.end, footer.*, home.after.lists, product.after.buy, product.bottom, product.card.footer, catalog.filters.end, checkout.fields. Плагин подписывается — вставляет свой HTML.

1.24.1 04.08.2026

Выбранные заказы видно всегда

В окне «На несколько заказов» отметки переживают листание и смену фильтра — так и собирают пачку. Но стоило сменить статус, и отмеченные заказы уходили с экрана: печаталось больше, чем было видно.

Теперь выбранные заказы показаны строкой над списком. Каждый убирается нажатием, рядом — «Снять все».

1.24.0 04.08.2026

Выбор заказов для дополнений

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

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

1.23.0 04.08.2026

Штрихкод товара и основа для печати этикеток

У каждого варианта товара появилось поле «Штрихкод» — раньше код с упаковки хранить было негде. По нему товар находится поиском наравне с артикулом: достаточно поднести сканер.

В магазин заложена основа для печати ярлыков и этикеток: каталог и карточка товара теперь умеют показывать кнопки дополнений. Сама печать появляется вместе с дополнением «Ценники и этикетки» — оно устанавливается отдельно из маркетплейса.

1.22.1 04.08.2026

Вариант товара подписан так, как его назвал магазин

Если у товара несколько артикулов без опций покупки, переключатель вариантов теперь подписан их названиями («чёрный», «белый») — так, как их назвал владелец магазина. Раньше при заведённой числовой характеристике артикула подписи молча заменялись на её значения («275 г», «290 г»). Характеристика подставляется только там, где названий у артикулов нет.

1.22.0 04.08.2026

Характеристики артикула и выбор варианта в карточке

Характеристику теперь можно задать не только товару, но и каждому артикулу — число, текст, дату или «да/нет». Раньше флаг «задать значения для артикулов» работал только для характеристик со списком значений: числовую с ним магазин сохранял, но задать её артикулу было негде.

Товар с несколькими артикулами, которые не различаются опциями покупки, теперь даёт покупателю выбор: переключатель собирается по числовой характеристике артикула («10 таблеток» / «30 таблеток»), а если её нет — по названиям артикулов. Раньше выбора не было вовсе и товар всегда продавался основным артикулом. Собственные характеристики артикула видны в карточке и меняются вместе с выбранным вариантом.

1.21.0 03.08.2026

Баллы видны там, где на них смотрят

В карточке заказа появилась строка «Оплачено баллами» — раньше менеджер видел итог и не понимал, из чего он сложился. В карточке покупателя теперь есть счёт: остаток, история движений со ссылками на заказы и сроками сгорания, а также начисление и списание вручную — за задержку, за отзыв, в качестве извинения. Каждое такое движение подписано сотрудником.

Оформление заказа

Набранная покупателем сумма баллов сразу пересчитывает заказ, а не только кнопка «Все». Обе правки — из живой проверки: поле принимало число, а сумма оставалась прежней.

1.20.0 03.08.2026

Бонусные баллы покупателей

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

Сколько начислять и сколько разрешать тратить — задаёт дополнение «Бонусы и лояльность». Магазин же следит за тем, чтобы баллами нельзя было заплатить больше, чем их есть, и чтобы сумма заказа сходилась до копейки.

Мелочи

Журнал заказа больше не подписывает сотрудником действие покупателя.

1.19.2 03.08.2026

Уведомления в браузере и магазин на телефоне

Магазин получил бесплатный канал связи: покупатель один раз разрешает уведомления и узнаёт о заказе, поступлении товара и скидке даже с закрытым сайтом. Уведомления встают рядом с почтой и SMS — те же события, те же тексты, тот же журнал — и ими же можно сделать рассылку.

Тем же дополнением витрина становится приложением: покупатель ставит магазин на главный экран телефона.

Рассылка больше не врёт об успехе

Рассылка, у которой канал недоступен, честно останавливается с объяснением. Раньше она помечалась отправленной, не отправив ни одного сообщения. Установка дополнения теперь сама перезапускает обработчик задач — новый канал работает сразу, а не после перезапуска сервера.

1.18.0 03.08.2026

Помощник отвечает на частые вопросы

Вы задаёте слова покупателя и готовый ответ — магазин отвечает сам, показывает подходящие товары или зовёт менеджера. В переписке видно, что отвечал не человек, поэтому менеджер не повторяет одно и то же.

1.17.0 03.08.2026

Заказ прямо из переписки

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

1.16.0 03.08.2026

Видно, что покупатель уже выбрал

В карточке собеседника показано содержимое его корзины — вместе с самим вопросом, а не после него. Половина вопросов в чате именно о том, что человек уже положил.

1.15.0 03.08.2026

Видно, с кем говоришь

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

1.14.0 03.08.2026

Вопрос с сайта приходит в Telegram

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

1.13.0 03.08.2026

Разделы админки стали одинаковыми

Шапка раздела, кнопки, панели и вкладки теперь выглядят и работают одинаково везде. Раньше каждый экран верстался отдельно, и разделы понемногу разъезжались между собой.

Разделы дополнений — «Заявки на звонок», «Уведомления о поступлении», «Короткие ссылки» — приведены к тому же виду: содержимое лежит в карточке раздела, отбор по состоянию переехал в левую панель со счётчиками.

Поиск товаров в админке ищет как на витрине

Раньше подбор товара в заказе искал по-своему — строго по совпадению названия. Менеджер не находил того, что покупатель на витрине находил.

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

Правка заказа переписана

  • У правки появился свой адрес: ссылку можно дать коллеге, «назад» возвращает к просмотру.
  • Из рабочего стола «Редактировать» открывает правку сразу — раньше приходилось нажимать кнопку второй раз уже в карточке.
  • Слева покупатель, справа состав заказа, под ним доставка и оплата.
  • Позиция занимает одну строку: количество, цена и сумма справа.
  • Способ доставки выбирается списком, поля перевозчика подгружаются после выбора.

Мелочи, которые заметны

  • Поля выбора больше не стоят пустыми без подсказки — по всей админке.
  • У поля «Название магазина» появилось пояснение, где покупатель его увидит.
  • Подсказка к имени списка товаров написана человеческим языком.
1.12.0 03.08.2026

Повтор заказа

Менеджер открывает новый заказ с готовым составом прежнего — цены и наличие проверяются заново.

1.11.0 03.08.2026

Подарки к заказу

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

1.10.4 02.08.2026

Товары в заказе — по складу

Позиции заказа сортируются так, как удобно собирать: по складу.

1.10.3 02.08.2026

Уведомление на любой статус заказа

Письмо или сообщение покупателю можно привязать к любому статусу, включая ваши собственные.

1.10.2 02.08.2026

Колонки товаров в вашем порядке

Порядок колонок в таблице товаров остаётся таким, каким вы его задали.

1.10.1 02.08.2026

Заказ помнит нужные вам поля покупателя

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

1.10.0 02.08.2026

Установка и сброс не оставляют магазин без витрины

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

1.9.1 31.07.2026

Один покупатель — одна карточка. Телефон везде хранится в международном виде, поэтому «0671234567» и «+380671234567» больше не считаются разными людьми, а в поле телефона нельзя оставить что попало. Гостю с номером, на который уже есть личный кабинет, магазин предлагает войти вместо того, чтобы завести ещё одну карточку. Регистрация и вход через соцсеть подхватывают карточку человека, который раньше покупал гостем, а правка карточки в админке переносит телефон и почту в его кабинет. Накопленные дубли разбираются кнопкой «Найти дубли» в контактах: заказы, переписка и значения полей переезжают в выбранную карточку.

1.9.0 31.07.2026

Названия статусов заказа теперь переводятся на языки магазина. Покупатель видит статус в личном кабинете и в письмах на своём языке, а названия для каждого языка задаются в разделе «Локализация → Статусы заказов». Существующие названия сохраняются как основной язык магазина.

1.8.1 30.07.2026

Печать сразу на несколько заказов

Выделили заказы на рабочем столе — и печатаете накладные или бланки пачкой, а не по одному.

1.8.0 30.07.2026

Акции со сроками снова включаются и выключаются сами: задача, которая за это отвечает, падала при каждом запуске, и закончившаяся акция продолжала действовать.

Письмо о восстановлении пароля переехало в раздел «Уведомления» — его текст, язык и канал теперь настраиваются как у остальных писем покупателю.

В настройках канала «E-mail» появился переключатель «Не проверять сертификат сервера»: он нужен, если почтовый сервер ваш собственный и сертификат выписан им самим.

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

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

1.7.1 30.07.2026

Ссылка на магазин выглядит опрятно

У раздела своя картинка для соцсетей, у страницы — своё описание: ссылка, которой поделились, показывает то, что нужно.

1.7.0 30.07.2026

Оформление магазина под себя

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

1.6.1 29.07.2026

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

1.6.0 28.07.2026

Реквизиты продавца стали профилями: если витрины торгуют от разных юрлиц, каждая печатает документы со своими данными, а при печати можно выбрать, от чьего имени выставить счёт. Живут они теперь во вкладке «Реквизиты» раздела «Печатные формы»; заполненное раньше переезжает само. Номер заказа: в магазине хранится сам номер, а приставка вроде «#100» добавляется при показе — поэтому перенесённые заказы тоже с ней, а формат можно поменять в любой момент. После переезда новые заказы продолжают нумерацию старого магазина. Счётчик у пункта «Заказы» считает те статусы, которые вы выберете в настройках заказов.

1.5.3 28.07.2026

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

1.5.2 28.07.2026

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

1.5.1 28.07.2026

Заказ теперь можно напечатать: счёт на оплату и расходная накладная. Бланки правятся под вашу бухгалтерию в разделе «Настройки → Печатные формы» — с предпросмотром на настоящем заказе и возвратом к заводскому виду. Реквизиты продавца задаются в «Настройки → Реквизиты». Связывание справочников при переезде стало понятнее: блоки свёрнуты, видно, что с чем свяжется, есть поиск и связывание совпадающих названий одним нажатием. Типы товаров в характеристике отмечаются списком.

1.5.0 28.07.2026

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

1.4.1 28.07.2026

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

1.4.0 28.07.2026

Две темы оформления со светлым и тёмным видом. Варианты покупки прямо в каталоге: покупатель выбирает цвет или объём памяти на карточке, меняются фото, цена и наличие. Доп-услуги товара доходят до корзины. Раздел «Акции»: страница акции со сроком и скидкой на подборку. Темы ставятся из маркетплейса. Исправлен переезд с Webasyst напрямую из базы.

1.3.8 27.07.2026

Перенос заказов больше не останавливается на десятитысячном и не выдаёт себя за завершённый.

Старый магазин на части номеров отвечает неверно: на «заказы после 10000» отдаёт заказы с самого начала, а число записей выдумывает. Перенос этому верил, дальше пройти не мог и объявлял себя готовым — доезжало около 15% заказов. Теперь заказы забираются по счёту записей, каждая порция сверяется, а при неудаче перенос останавливается с причиной.

Названия вариантов покупки теперь переводятся. Раньше у товара, категории и характеристики перевод был, а у варианта («40 Вт», «Синій», «XL») — нет, и на магазине с несколькими языками карточка оставалась наполовину непереведённой.

Итоги покупок магазин досчитывает сам. Если очередь задач останавливалась, раздел «Покупатели» мог показать нули у всех — теперь недосчитанное чинится без вашего участия.

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

Диагностика показывает ограничения вашего хостинга и объясняет, что каждое из них меняет для магазина, — до того, как что-то сломается.

Кнопка «Открыть доступ к фотографиям» объясняет, что делать, вместо технической ошибки.

1.3.7 27.07.2026

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

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

Кнопка «Остановить» у переноса теперь работает: раньше он сам продолжался через три минуты. А перенос, вставший по настоящей причине, больше не поднимается бесконечно — он останавливается и показывает причину.

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

Диагностика показывает ограничения вашего хостинга и объясняет, что каждое из них меняет для магазина, — до того, как что-то сломается, а не после.

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

Кнопка «Открыть доступ к фотографиям» объясняет, что делать, вместо технической ошибки.

1.3.6 27.07.2026

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

1.3.5 27.07.2026

Расписание теперь работает на хостингах, где запрещены proc_open и pcntl: раньше из-за них не выполнялась НИ ОДНА задача — не уходили письма, не разбиралась очередь, стоял перенос, а cron рапортовал об успехе.

1.3.4 27.07.2026

Диагностика больше не говорит «планировщик не запускается» при работающем cron. Фоновый перенос сам продолжается, если цепочка оборвалась, и счётчик на экране больше не замирает.

1.3.3 27.07.2026

Главное: планировщик падал на хостингах, где запрещены функции pcntl — из-за этого не работали ни очередь, ни фоновый перенос, хотя cron отрабатывал. Незаконченный перенос теперь открывается сам после перезагрузки страницы. Перенесённые покупатели видны в разделе сразу, не дожидаясь заказов.

1.3.2 27.07.2026

Исправлено: один оборванный запуск задачи глушил расписание на сутки, и диагностика говорила «планировщик не запускается» при работающем cron. Добавлена кнопка «Снять замки планировщика».

1.3.1 27.07.2026

Обновление теперь рассказывает, что делает: «в очереди», «загружаем пакет», «проверяем подпись», «заменяем файлы». Все подписи и описание обновления приходят на языке админки.

1.3.0 27.07.2026

Перенос магазина теперь идёт на сервере: вкладку можно закрыть. Продолжение продолжает с места остановки, а не начинает заново. После переезда пересчитываются итоги покупок.

1.2.3 27.07.2026

В карточке покупателя появились покупки: итоги и история заказов. Категории покупателей пересчитываются ночью — условие «покупал за последние N дней» теперь срабатывает само.

1.2.2 27.07.2026

Раздел «Покупатели»: шапка встала вровень с остальными разделами, у числовых полей появились подсказки.

1.2.1 27.07.2026

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

1.2.0 27.07.2026

Появился раздел «Покупатели»: кто покупает, сколько принёс, история заказов, категории покупателей со своими названиями и автоназначением по покупкам. Фотографии больше не нарезаются все сразу при загрузке — перенос ускорился в сотни раз. Мастер установки открывает доступ к фотографиям сам и показывает, что нужно настроить на сервере.

1.1.7 27.07.2026

Скидка в корзине теперь объяснена: прежняя цена зачёркнута, рядом название акции, в итогах — «Ваша выгода». Акция на категорию применяется сразу при сохранении, а не через минуту. Переключатель языков остаётся на том же домене. Один знак валюты на всём экране.

1.1.6 27.07.2026

Названия и описания плагинов теперь на языке админки — и у установленных, и в списке доступных к установке. Ссылка на скачивание обновления живёт сутки вместо получаса.

1.1.5 26.07.2026

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

1.1.4 26.07.2026

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

1.1.3 26.07.2026

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

1.1.2 26.07.2026

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

1.1.1 26.07.2026

Установка в базу, где остались таблицы от прошлой попытки, объясняется словами, а не ошибкой SQL, и базу можно очистить прямо из мастера. Исправлено имя индекса, из-за которого установка обрывалась посреди миграций. В мастере появился фирменный знак.

1.1.0 26.07.2026

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

1.0.0 24.07.2026

Первый релиз CartiX: каталог, заказы, доставка и оплата, админка, витрина.