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.
Важно перед обновлением
Вместе с этой версией обновите дополнения «Нова Пошта», Meest, «Укрпошта», «Купить в 1 клик» и «Дропшиппинг». Если обновить только перевозчика, в окне быстрого заказа и в кабинете дропшиппера останутся первые 30 отделений без поиска, а часть заказов, которые дропшипперы присылают через API, магазин начнёт отклонять.
Что нового
Ошибку в ответе покупателю теперь можно исправить. Наведите мышь на своё сообщение в разделе «Диалоги» и нажмите карандаш, чтобы поправить текст, или корзину, чтобы удалить сообщение. У покупателя исправленный текст меняется на месте, а удалённое сообщение пропадает. В «Диалогах» вместо него остаётся серая строка с тем, кто и когда его удалил, а прежний текст виден при наведении мыши. Сотрудник правит только свои ответы. Администратор может исправить или удалить любое сообщение магазина, в том числе автоответ. В переписке из Telegram и чата на сайте это заработает после обновления этих дополнений.
Покупатель теперь находит отделение или поштомат по мере набора номера или адреса, например «Радунська 8/13», среди всех точек города. Раньше поле загружало только первые 2000 точек, а в Киеве одних поштоматов «Нова Пошта» больше семи тысяч, и часть из них выбрать было нельзя. Отделения «Нова Пошта» и Meest, которые не примут посылку по весу или размеру, в списке больше не появляются. Так же ищет отделение редактор заказа в панели. Карта показывает ближайшие точки и подсказывает приблизить, если на экран поместились не все.
Что починили
Если покупатель после выбора поштомата увеличивал количество товара, заказ мог уйти на поштомат, который такую посылку не примет. Теперь выбор в этом случае снимается, и оформить заказ на неподходящую точку магазин не даст.
Что починили
Мастер установки можно было продолжить из любого браузера, пока установка не закончена. Посторонний, который открыл адрес установки в это время, мог завести себе администратора или подключить магазин к своей базе данных. Брошенный на середине мастер так и оставался открытым на работающем магазине. Теперь установку продолжает только браузер, в котором подключили базу, администратор создаётся один раз, и после этого другую базу подключить нельзя. Если установку бросили, а администратор уже создан, через сутки мастер закрывается сам.
Магазин принимал ссылку на видео товара, если в ней где угодно встречалось «vk.com/video» или «youtube.com». Превью VK он загружал прямо по этой ссылке, поэтому сотрудник мог заставить магазин открыть адреса на сервере, закрытые от интернета. Теперь ссылка принимается только с сайтов YouTube, Vimeo, Rutube и VK, а превью VK магазин берёт по номеру видео.
При переносе с другой платформы магазин скачивал фото по любому адресу из данных старого сайта, в том числе с адресов на сервере, закрытых от интернета. Теперь магазин скачивает фото только из интернета, не идёт за перенаправлением на закрытый адрес и пропускает файлы больше 40 МБ.
Важно перед обновлением
Ключ CartiX теперь работает только на домене, к которому он привязан. Если ваш магазин уже работает на другом адресе, после обновления у вас будет 3 дня, чтобы перенести ключ, иначе витрина и панель закроются. Для этого отвяжите прежний домен в личном кабинете на cartixx.com, затем в панели на новом адресе нажмите «Проверить сейчас» и введите ключ. Отвязать домен можно не чаще раза в 30 дней.
Что нового
При каждой проверке лицензии магазин сообщает нам, на каких адресах открывали его панель. Если магазин скопировали вместе с базой и открыли на другом домене, вы получите письмо с этим адресом, а через 3 дня витрина и панель копии закроются. Ваш магазин продолжит работать. Адреса для разработки и IP-адреса не учитываются. Магазин с несколькими доменами копией не считается, если панель вы открываете и на домене ключа. Подробнее: https://cartixx.com/docs/engine/updates
Лицензией вы теперь управляете только в личном кабинете на cartixx.com. В разделе «Система → Лицензия» вместо кнопки «Отвязать» теперь стоит «Управлять в кабинете». Так копия магазина не сможет отвязать ваш ключ.
Что починили
Если витрину открыть до окончания установки, магазин больше не записывает в журнал ошибку о ключе шифрования.
Что нового
Если в магазине несколько языков, в окне «Написать покупателю» теперь можно выбрать язык сообщения. Магазин подставит заготовку и данные заказа на выбранном языке, и письмо или SMS уйдёт на нём же. Сначала выбран язык, на котором покупатель оформил заказ. Текст, который вы уже поправили, при смене языка останется как был.
Что нового
В карточке заказа подарки теперь стоят в конце списка, после купленных товаров.
Что починили
Копия заказа теперь открывается с тем же отделением или почтоматом «Нова Пошта», что и в исходном заказе. Раньше отделение терялось, и менеджер выбирал его заново. Если отделение с тех пор закрылось или не принимает посылку такого веса, поле останется пустым, и нужно будет выбрать другое.
Если в заказе сменить город, «Нова Пошта» предлагает отделения нового города. Раньше в списке могли остаться отделения прежнего.
Что нового
Чек за заказ теперь может выдавать касса того ФОП, который отправил посылку. Для этого обновите «Нова Пошта — накладные (ТТН)» до 1.8.0 и выберите кассу у отправителя на экране дополнения.
Что нового
Дропшипперы теперь могут присылать заказы прямо со своего сайта. Ключ для этого дропшиппер выдаёт себе сам в кабинете. В «Заказах» такой заказ ничем не отличается от оформленного в кабинете. У него есть получатель, доставка «Нова Пошта», цена продажи дропшиппера и схема расчётов. Как подключить сайт, написано здесь: https://cartixx.com/docs/api/dropshipping
Если покупатель не забрал посылку, магазин теперь запоминает, сколько вы заплатили за доставку, возврат и платное хранение в отделении. Эти суммы сообщает перевозчик. Магазин следит за такой посылкой, пока она не вернётся к вам, и отмечает день возврата. По этим данным «Дропшиппинг» удерживает с дропшиппера то, что вы на самом деле заплатили за отказ.
В CRM действие «Отправить данные в другую программу» теперь повторяет отправку около трёх суток, если программа не отвечает или временно не принимает данные. Раньше магазин переставал пытаться через 12 минут, и из-за короткого сбоя у программы данные терялись. Пока отправка повторяется, строка в «Журнале срабатываний» отмечена часами, а срабатывание остаётся в состоянии «Выполняется». Если программа отказалась принять данные или перенаправляет на другой адрес, журнал сразу пишет об этом и показывает её ответ. Магазин в таком случае отправку не повторяет, поэтому проверьте адрес и ключ подписи в правиле.
Что починили
В карточке заказа блоки дополнений не обновлялись после смены статуса, отметки оплаты или ответа перевозчика. Например, блок «Дропшиппинг» показывал прежнее начисление до перезагрузки страницы. Теперь блоки обновляются сами.
Что сделать после обновления
Обновите «Дропшиппинг» до 1.1.0 и «Нова Пошта — накладные (ТТН)» до 1.7.0 в разделе «Платформа → Обновления». Обе версии вышли вместе с этим обновлением и требуют его. Пока вы их не обновите, заказы с сайта дропшиппера и удержание реальных расходов за отказ не заработают.
Что нового
Сотрудник с правом «Устанавливать и обновлять дополнения из маркетплейса» теперь может включать и выключать дополнения в разделе «Настройки → Плагины». Настройки дополнения ему не показываются, вместо них стоит пояснение, что их меняет сотрудник с правом «Менять настройки магазина». Раньше раздел был ему закрыт целиком.
Что починили
Кнопки, которые ведут в каталог дополнений, видны только тем, кому этот каталог открыт. Раньше сотрудник с одним правом «Открывать системный раздел» нажимал такую кнопку на экранах телефонии, касс, маркетплейсов, импорта и экспорта или дизайна и попадал на сводку.
Сотрудник без права «Открывать системный раздел» больше не видит в полосе слева значок «Система», где у него был всего один пункт «Что нового». «Что нового» по-прежнему открывается из шапки, а на телефоне — из меню профиля.
При установке магазина и при отвязке ключа в разделе «Система → Лицензия» панель обещала, что магазин работает и без ключа. На самом деле без ключа магазин закрыт для покупателей, и теперь панель говорит об этом прямо.
Если в карточке нет ничего, кроме заголовка, под ним больше не остаётся пустой полосы. В настройках поиска поле «Движок поиска» теперь называется «Способ поиска».
Что сделать после обновления
Обновите дополнения «Молниеносный поиск» и «Автокомплит города» в разделе «Платформа → Обновления». После этого их сообщения о ходе работы тоже будут приходить на языке того, кто нажал кнопку.
Что нового
Вышло дополнение «Дропшиппинг». Дропшипперы находят покупателей и оформляют заказы в своём кабинете на вашем сайте, а посылки отправляете вы. Цену для дропшиппера задаёт скидка его уровня от вашей розничной цены. Магазин ведёт его баланс, начисляет разницу после выкупа, удерживает за отказ от посылки и записывает выплаты. Поставить дополнение можно в разделе «Платформа → Инсталлер».
Что починили
После перестройки меню в 2.131.0 часть подсказок и сообщений панели вела в разделы, которых уже нет или которые называются иначе, например в «Настройки → Печатные формы» вместо «Настройки → Настройки магазина → Печатные формы». Теперь пути в подсказках совпадают с меню.
Что нового
В полосе слева появились два раздела, «Платформа» и «Система». То, что раньше было вкладками одного экрана, теперь стоит отдельными пунктами.
В «Платформе» лежит всё про дополнения и «API магазина». «Инсталлер» — каталог дополнений и тем, которые можно поставить; то, что уже стоит в магазине, отмечено словом «Установлено». Назвали его так, чтобы не путать с «Маркетплейсами», где работают Rozetka и Prom. «Обновления» показывают только то, что можно обновить: карточку CartiX с текущей и новой версией, кнопки обновления и «Создать резервную копию» и одну строку о том, готов ли магазин к обновлению. Если обновлять нечего, экран так и пишет: «У вас всё в порядке». В «Установке файлом» вы ставите дополнение или тему из ZIP-архива и подключаете дополнения, которые лежат папкой на сервере.
В «Системе» собраны диагностика, обслуживание, резервные копии, журналы, информация о системе, лицензия и «Что нового».
Установленные дополнения переехали в «Настройки», пункт «Плагины». Группы в списке сворачиваются, а нужное дополнение находится поиском по названию. Если у плагина нет своих настроек, экран пишет, что он установлен и работает, и подсказывает, какой раздел открыть. Старые ссылки и закладки ведут в новые разделы.
Удалить плагин из панели больше нельзя. Ненужное дополнение можно выключить, и тогда оно ничего не делает.
Полоса прокрутки в панели стала тонкой.
Что починили
На экране обновлений строка о резервной копии всегда говорила, что копии нет, даже если вы только что её сделали. Теперь там дата последней копии.
Магазин получил свежие версии библиотек, на которых он работает. В той, что проверяет загружаемые SVG-картинки, была уязвимость: специально подготовленный файл мог обойти проверку.
Что сделать после обновления
Обновите дополнения в «Платформе → Обновления». В «Автокомплите города» 1.5.0 подсказки города можно брать из справочника «Нова Пошта». Тогда покупатель видит только те места, куда возит перевозчик, и написаны они так же, как у него. Включается это в «Настройках → Плагины → Автокомплит города», в поле «Справочник населённых пунктов». Этот вариант появляется в списке, когда дополнение «Нова Пошта» включено и уже загрузило города. Ещё вышли «Облачные бэкапы» 1.1.1 и «Документы в облако» 1.2.6 с исправлениями безопасности.
Что нового
Номер отправления теперь можно вписать в любой заказ, при любом способе доставки. В карточке заказа, в блоке «Доставка», появилась строка «Номер отправления». Нажмите «Указать номер» и вставьте номер Укрпошты, курьерской службы или накладной, которую вы выпустили в кабинете перевозчика. Номер можно исправить или убрать, каждое изменение остаётся в истории заказа. Покупатель видит его в личном кабинете. Номер попадает в печатные формы и выгрузку заказов, а в письма — если вы добавили в шаблон переменную «Номер накладной».
Когда магазин выпускает накладную «Новой Почты», её номер попадает в эту же строку. Если заменить такой номер своим, накладная останется в кабинете перевозчика, но распечатать или удалить её из магазина уже не получится.
Что починили
В блоке «Накладная перевозчика» у заказа с Укрпоштой стояли кнопки «Где посылка» и «Удалить накладную», хотя «Нова Пошта» такой номер не знает. Теперь «Где посылка» есть только там, где номер принадлежит «Новой Почте», а «Удалить накладную» — только у накладной, которую выпустил магазин.
Что сделать после обновления
Если у вас стоит дополнение «Нова Пошта — накладные (ТТН)», обновите его до 1.6.2. Старая версия спрашивает «Нову Пошту» обо всех номерах, в том числе о номерах Укрпошты. Если в настройке «Статус заказа по состоянию посылки» вы назначили статус состоянию «Номер накладной не найден», заказ сменит статус сам и покупателю уйдёт письмо. Кнопка «Где посылка» у номера, вписанного руками, тоже появится только с новой версией.
Что починили
Подсказка в поле «Добавить товар» в заказе показывала не больше шести строк. У товара с семью вариантами последний, например «100 шт.», в неё не попадал. Теперь в подсказке всё, что нашёл поиск, а длинный список прокручивается. В настройке подарка поле «Что дарим» тоже больше не обрывает список на десятой строке.
Ещё подсказка сама отбрасывала часть найденного. Если в запросе стояла запятая, а в названии точка, товар пропадал: «лампа 7,5 Вт» не показывала «Лампа 7.5 Вт». Покупатель, которого вы искали по почте, тоже не появлялся в списке. Теперь оба случая на месте.
Что починили
Когда менеджер добавлял товар в заказ из панели, поиск мог не показать нужный товар, если у товаров много вариантов. Товар с семью фасовками пропадал из подсказки, хотя подходил под запрос лучше остальных.
Теперь первым стоит товар, который лучше всего подходит под запрос, и с ним все его варианты в том же порядке, что в карточке. Если ввести точный артикул, он окажется на самом верху. На общий запрос подсказка показывает несколько товаров целиком, а не два-три. Подарок к заказу подбирается так же.
Что нового
Если к магазину подключается партнёр, его программист теперь может получить описание API в формате OpenAPI. В этом файле перечислены все запросы к магазину и все поля, которые приходят в ответ. Программист открывает файл в Postman или Swagger и получает готовые запросы, ключ для этого не нужен. Ссылку на файл вы найдёте в разделе «Настройки платформы → API магазина», в блоке «Как подключить» у ключа. Подробнее: https://cartixx.com/docs/api/overview
Что починили
Программа партнёра могла выдать ошибку на заказе, который перенесли из другой системы или который пришёл с маркетплейса. Город, вид отправления и пункт выдачи в таком заказе иногда приходили в непривычном для неё виде. Теперь эти поля всегда приходят обычным текстом, а если значения нет, остаются пустыми.
Что починили
Если заказ оформил сотрудник в панели, в истории заказа теперь рядом с записью «Заказ создан» стоит его имя. Раньше имени там не было, и по истории нельзя было понять, кто из сотрудников завёл этот заказ.
Что нового
В редакторе заказа под составом теперь показываются подарки по акциям, если у вас стоит дополнение «Подарки к заказу» 1.9.0. Менеджер выбирает их так же, как покупатель в корзине.
Что починили
Под заголовком раздела «Оплата и доставка» снова написано, для чего он нужен. Раньше там по ошибке стояло «Описание для покупателя».
Что починили
Ошибочный фискальный чек теперь можно исправить. Выдайте к нему чек возврата, а когда касса подтвердит возврат, выдайте правильный чек продажи кнопкой «Выдать чек» в заказе. Раньше после возврата магазин отказывался выдавать по этому заказу второй чек продажи, и у неверного чека оставался только возврат.
Новый чек продажи после возврата магазин выдаёт, только когда менеджер нажмёт кнопку. При оплате или смене статуса он такой чек сам не выдаёт, потому что перевод заказа из «Возврата» в другой статус ещё не значит, что деньги пришли снова. Если понадобится ещё один возврат, выдайте его уже к новому чеку продажи.
Что нового
Магазин теперь дописывает в фискальном чеке к названию товара купленный вариант в скобках, например «Шампунь (500 мл)». Раньше в чеке стояло только «Шампунь», и покупатель не мог понять, какую фасовку он купил. Если у варианта нет своего названия или оно уже входит в название товара, в чеке остаётся одно название товара.
Дополнения теперь могут показывать свои блоки в карточке заказа под блоком оплаты. Блок «Фискальные чеки» переезжает туда после обновления «Чекбокса» до версии 1.3.1, и чек оказывается рядом с оплатой.
Что починили
Магазин теперь показывает время по своему часовому поясу. Раньше в панели оно отставало на несколько часов, и заказ, оформленный в 22:39 по Киеву, стоял в списке и карточке как 19:39. Так же отставало время в истории заказа, в контактах и покупателях, в отзывах и вопросах, в выгрузках. Заказ, сделанный после полуночи, получал вчерашнюю дату, и с ней он приходил покупателю в письме, печатался в документах и показывался в личном кабинете.
Фильтр «Дата заказа», фильтры по дате в движении остатков и счётчик заказов за сегодня теперь считают сутки с полуночи по часам магазина. Раньше заказ в 00:30 попадал во вчерашний день. Бонусные баллы сгорают в конце последнего дня по часам магазина, а не в три часа ночи следующего.
Что нового
В SMS и письмо покупателю теперь можно вставить номер накладной. Когда менеджер выпускает накладную и переводит заказ в статус «Отправлен», покупатель получает номер в сообщении и отслеживает посылку сам, без звонка в магазин. Чтобы это включить, откройте «Настройки → Настройка уведомлений», выберите уведомление «Заказ: Отправлен» и добавьте в текст переменную «Номер накладной». Тот же номер можно вставить в сообщение, которое вы пишете покупателю из карточки заказа, и в сообщение автоматизации о заказе.
Что починили
Купленный товар больше не пропадает из корзины, если такой же уже лежит там подарком. Когда акция дарила, например, одну упаковку, а покупатель добавлял такую же за деньги, магазин отвечал «добавлено», но купленная упаковка сливалась с подарком и исчезала. То же случалось, когда покупатель с такой корзиной входил в кабинет. Отметка «в корзине» на карточке товара теперь показывает то, что покупатель положил сам, а не подарок.
Статья блога, написанная только на одном языке, больше не стоит пустой карточкой в ленте на другом языке. Раньше её страница на этом языке открывалась без текста, а теперь переключатель языка на статье ведёт в ленту блога. Поисковикам магазин называет только те языки, на которых статья написана.
Что нового
Если покупатель входит по коду, а код в Telegram до него не дошёл, магазин может отправить тот же код по SMS. Так бывает, когда покупатель не открыл Telegram или сообщение не доставлено. Вы сами выбираете, сколько ждать, от 1 до 3 минут. SMS не уходит, если Telegram подтвердил доставку или покупатель уже вошёл, а запоздавшее сообщение в Telegram магазин отзывает.
Настройка находится в «Витрины» → ваша витрина → «Регистрация и вход» → блок «Вход по коду». Для неё нужны включённые коды в Telegram и по SMS и SMS-сервис, подключённый в разделе «Уведомления → Каналы связи». Каждое такое SMS оплачивается по тарифу сервиса. Подробнее: https://cartixx.com/docs/customers/code-login
Что починили
Если у способа доставки вместо цены стоит подпись, например «По тарифам перевозчика», в личном кабинете покупателя доставка в заказе значилась как «Бесплатно». Теперь там та же подпись, что и при оформлении. Подпись видна и в карточке заказа в панели и сохраняется, когда вы правите заказ. Это касается заказов, оформленных после обновления.
Что починили
Если покупатель открывал «Доставку в другую страну», вернуться к доставке по Украине было нельзя. Оставалось только найти Украину в списке стран. Теперь под списком есть ссылка «Отменить выбор страны».
Когда покупатель переключал способ доставки, цена выбранного способа на время пересчёта исчезала. Теперь прежняя цена остаётся на месте, а рядом с ней крутится значок загрузки.
Что нового
Магазин теперь принимает заказы из других стран. Включите «Доставка в другие страны» в настройках оформления заказа, и под полем города появится ссылка «Доставка в другую страну». Покупатель выбирает страну из списка и сам пишет город. Страна сохраняется в заказе и печатается на бланках.
В правилах показа способов доставки и оплаты появилось условие «Страна доставки». Например, способ со своей ценой или «по тарифам перевозчика» можно показывать только покупателям из Украины, а международную доставку — только покупателям из других стран. Если покупатель страну не выбирал, магазин считает, что заказ идёт по стране магазина.
Описание способа доставки теперь можно оформить: выделить цветом или жирным, разбить на строки. Если ваша тема это поддерживает, покупатель увидит такое описание над полями выбранного способа. В строке самого способа описание остаётся обычным текстом.
В разделе «Оплата и доставка» в списке способов теперь виден логотип, который вы загрузили для способа.
Что починили
Если в описании способа были теги, на оформлении заказа покупатель видел их как текст, например «». Теперь он видит только само описание.
Что нового
Способы оплаты и доставки в «Настройки → Оплата и доставка» теперь можно переставлять мышью прямо в списке слева. В выпуске 2.121.1 для этого были стрелки. Поля адреса доставки в таблице способа тоже расставляются перетаскиванием. Потяните поле за значок ☰ слева от названия.
Переключатель «Способ работает» переехал в шапку способа и стоит рядом с кнопками «Удалить» и «Сохранить». В блоке «На других языках» поля «Название» и «Описание» теперь стоят друг под другом, как в основном блоке.
Что нового
Поля адреса доставки у способа теперь настраиваются одной таблицей. Вы отмечаете, какие поля спрашивать и какие обязательны, и стрелками расставляете их в том порядке, в каком покупатель будет их заполнять. Раньше порядок полей был всегда один и тот же.
Способы оплаты и доставки теперь можно переставлять. В разделе «Настройки → Оплата и доставка» у каждого способа в списке слева есть стрелки «выше» и «ниже», и в том же порядке покупатель видит способы при оформлении заказа. Раньше порядок поменять было нечем.
При переезде с Webasyst покупатель без телефона, но с почтой теперь получает личный кабинет, если ваш магазин пускает покупателей по почте. Пароль он восстановит письмом. Раньше такой покупатель оставался без кабинета.
Что починили
Правило «скрыть способ оплаты при таком-то способе доставки» не срабатывало при оформлении заказа. Если вы, например, запретили наложенный платёж для курьерской доставки, покупатель всё равно мог его выбрать. Теперь правило работает. Ваши правила находятся в разделе «Настройки → Оплата и доставка → Правила показа».
Если дополнение ставили или включали, не закрывая панель, вместо его подписей стояли служебные надписи латиницей, а его экран не открывался, пока страницу не перезагрузят. Теперь дополнение сразу показывает свои тексты и свой экран.
Значок сайта теперь можно загрузить файлом ICO. Раньше окно выбора файла такие файлы не показывало.
Что нового
Повторный перенос с Webasyst теперь забирает только то, что изменилось после прошлого раза. Это новые заказы и заказы, которые на старом сайте успели поправить, оплатить или перевести в другой статус, а ещё новые покупатели и покупатели этих заказов. Товары и справочники магазин, как и раньше, переносит целиком. Раньше последний перенос перед переключением домена заново читал всех покупателей и все заказы. На магазине с 28 тысячами заказов это занимало 18 минут, теперь покупатели и заказы догоняются за 14 секунд.
Иногда старые записи всё-таки нужно перечитать. Если вы поменяли соответствия (например, нашли пару статусу заказа), удалили в магазине перенесённые заказы или покупателей или в прошлый раз часть из них не записалась, магазин сам перенесёт всех покупателей и все заказы заново.
Так работает перенос, когда магазин читает базу старого сайта: по доступам к базе, из папки на этом сервере или через файл-мост. Если вы подключались ключом доступа, перенос по-прежнему читает всё.
Если покупатель сменил на старом сайте телефон или почту, но ничего не заказывал, повторный перенос этого не заметит. Webasyst не запоминает, когда правили контакт.
Что починили
Если сайт партнёра не принимал соединение за 5 секунд, журнал отправок в разделе «API магазина» писал «Сайт партнёра не ответил за 5 секунд». Это путало, потому что ответа магазин ждёт 10 секунд. Теперь в журнале стоит «Сайт партнёра не принял соединение за 5 секунд». Все причины неудачной отправки описаны в справочнике: https://cartixx.com/docs/api/webhooks
Что сделать после обновления
Если вы переезжаете с Webasyst, обновите дополнение «Миграция с других платформ» до версии 1.14.0. Без него повторный перенос будет, как раньше, читать все заказы и всех покупателей.
Что нового
Магазин теперь сам сообщает партнёру, подключённому по API, об изменениях. Партнёр узнаёт, что у его заказа сменился статус или менеджер что-то поменял в заказе, например доставку или номер накладной. Ещё магазин сообщает, что у товаров могли измениться цены и что изменились остатки. Партнёру больше не нужно постоянно опрашивать магазин. В сообщении приходят только номера заказов или артикулов, а сами данные партнёр забирает через API, поэтому ничего сверх прав своего ключа он не увидит. Разработчики называют такие сообщения вебхуками.
Чтобы включить сообщения, откройте «Настройки платформы», в группе «Платформа» выберите «API», затем ключ партнёра, и найдите блок «Сообщения партнёру». Впишите адрес, который даст партнёр, отметьте, о чём сообщать, и передайте партнёру секрет подписи. Кнопка «Отправить проверку» покажет, принимает ли сайт партнёра сообщения. В блоке «Журнал отправок» видно каждое сообщение за последние 30 дней и что на него ответил партнёр. Как подключить партнёра, описано в справочнике: https://cartixx.com/docs/api/webhooks
Если сайт партнёра перестал принимать сообщения, магазин отправляет их повторно. Через 12 часов он предупредит вас в уведомлениях, а через трое суток выключит отправку. Когда партнёр починит свой сайт, нажмите «Включить снова».
Остатки через API теперь можно запросить по списку номеров артикулов, так же как цены. Это те самые номера, которые приходят в сообщении об изменении остатков.
Что починили
Если в адресе доставки были указаны страна и область, любое сохранение заказа в панели стирало их, даже когда менеджер правил совсем другое. Теперь адрес остаётся как был.
Заказ без телефона или фамилии покупателя, например пришедший от партнёра по API, нельзя было сохранить в панели, пока менеджер сам не впишет недостающее. Теперь такой заказ сохраняется, а стереть уже заполненное поле по-прежнему нельзя.
Правило в «Автоматизациях» с действием «Отправить данные в другую программу» записывало в журнал, что данные доставлены, хотя программа отвечала перенаправлением на другой адрес и ничего не получала. Теперь магазин считает такую отправку неудачной, повторяет её и пишет в «Журнале срабатываний», что адрес нужно уточнить.
Что нового
Партнёры и дропшипперы теперь могут передавать заказы в ваш магазин через API. Партнёр присылает товары с номерами из каталога API и комментарий, а заказ появляется у вас в «Заказах» с каналом продаж «API: название ключа». Заказчиком в нём стоит контакт, которому выдан ключ, и цены со скидками магазин считает по этому контакту. Доставку, оплату и получателя менеджер назначает в панели, как в обычном заказе.
Товар под такой заказ магазин резервирует со складов, выбранных в ключе, а если склады не выбраны, то со складов витрины. Если количество не подходит под шаг продажи или товара не хватает, а настройка «Разрешить заказ, когда товара нет» выключена, магазин не принимает заказ и называет партнёру причину по каждой позиции. Партнёр видит свои заказы и их статусы, но изменить или отменить заказ через API не может.
Чтобы партнёр мог присылать заказы, отметьте в его ключе «Создавать новые заказы», а чтобы он видел их статусы, отметьте ещё «Видеть заказы». Как подключить партнёра: https://cartixx.com/docs/api/orders
О заказах из API магазин сам ничего не пишет ни партнёру, ни его покупателям. Уходит только электронный чек, если у кассы включено «Отправлять чек покупателю». Его отправку партнёру можно выключить в форме ключа, в блоке «Заказы партнёра».
Что починили
Если акция дарила тот же товар, который покупатель положил в корзину, магазин резервировал больше, чем лежит на складе. При двух штуках на складе в резерв уходили три, а недостающая штука не попадала в «под заказ». Теперь резерв не превышает остаток, а недостача уходит «под заказ». Так же было с товаром, который лежал в заказе двумя позициями с разными услугами.
Покупатель больше не может подделать канал продаж своего заказа. Раньше, изменив данные формы оформления, можно было выдать заказ за заказ с маркетплейса, и тогда магазин не отправлял покупателю писем о нём.
Что сделать после обновления
Обновите дополнения «Подарки к заказу» до 1.8.0 и «Счёт покупателю на почту» до 1.1.4. Без этого в заказах из API не будет подарков по акции, а счёт, который уходит сам при смене статуса, придёт партнёру на почту.
Что нового
Партнёр, который забирает ваш каталог по API, теперь видит оптовые ступени: сколько стоит единица товара от 10 штук, от 50 штук и так далее. В каждой ступени стоит та же цена, которую партнёр заплатит в заказе за такое количество, с учётом скидки его категории покупателей. Ступени задаёт дополнение «Оптовые цены» версии 1.4.0.
Минимальное количество и шаг заказа партнёр теперь получает для каждого варианта товара, и они совпадают с теми, что применит корзина. Если товар продаётся только упаковками, а у варианта своя упаковка, минимум и шаг у этого варианта тоже свои. Подробности для разработчика партнёра: https://cartixx.com/docs/api/prices
Что починили
Товары, которые продаются только упаковками, уходили на Prom без учёта упаковки, и Prom не знал, что меньше одной упаковки магазин не продаёт. Теперь Prom получает тот же минимальный заказ, что применяет корзина: для свечей в коробках по 6 штук это 6 штук. Минимум уходит на Prom только целым числом, поэтому дробный, например 1,4 м², туда не передаётся.
Если у товара не был задан свой минимум, партнёр по API и Prom получали минимум из типа товара, хотя корзина его не применяет. Теперь минимум везде совпадает с корзиной.
Что сделать после обновления
Чтобы партнёры увидели оптовые ступени, обновите дополнение «Оптовые цены» до версии 1.4.0. Оно работает только с CartiX 2.118.0 и новее, поэтому сначала обновите магазин, а потом дополнение.
Что нового
Партнёр, которому вы выдали ключ API, теперь может забрать ваш каталог на свой сайт. Он получает товары с описаниями, фото и характеристиками, категории и бренды, а также цены и остатки. Менять что-либо в магазине через API по-прежнему нельзя. Партнёр только читает данные и отправляет новые заказы.
Партнёр получает цены со всеми скидками, которые действуют для его контакта. Если контакт входит в категорию покупателей со скидкой, цена в API будет уже с ней.
В настройках ключа появились два новых блока. В блоке «Каталог» вы выбираете, как отдавать описание товара: с разметкой, где сохраняются списки, таблицы и картинки, или только текстом, если сайт партнёра разметку не принимает. В блоке «Остатки» вы решаете, показывать партнёру остаток одной суммой или по каждому складу, и выбираете склады. Для дропшиппера можно завести отдельный склад и открыть ему только его.
Партнёру не нужно каждый раз забирать весь каталог. Он может запросить только то, что изменилось с прошлого раза. Разработчик партнёра найдёт подробности в справочнике: https://cartixx.com/docs/api/catalog-sync
Что починили
Способы «Бесплатная доставка» и «Оплата при получении», которые магазин заводит при установке, показывались покупателю по-русски даже на украинской и английской витрине. Теперь у них есть названия на всех языках магазина. Если вы уже переименовали эти способы, магазин ваши названия не трогает.
Склад, которому вы не задавали цвет, больше не получает его сам. Раньше окно склада подставляло первый цвет из палитры, и он записывался при любом сохранении. Теперь среди цветов есть вариант «Без цвета».
Большое обновление
Это большое обновление. В магазине появился API, и ради него мы переписали, как панель сохраняет товары, категории, контакты и заказы.
Партнёры и дропшипперы всё чаще хотят забирать ваш каталог к себе, а разработчик сайта или мобильного приложения хочет получать товары и передавать в магазин заказы. Для этого их программе нужен свой вход в магазин, без панели и без файлов выгрузки. Такой вход и называется API. Раньше его не было, и под каждое подключение приходилось делать отдельное дополнение или обмениваться файлами.
В этом выпуске API делает первый шаг. Вы уже можете выдавать ключи и видеть, кто и как обращается к магазину. Товары, цены, остатки, заказы и покупатели появятся в API в следующих выпусках.
Что нового
В настройках, в группе «Платформа», появился раздел «API магазина». В нём вы выдаёте ключ каждому, кто подключается к магазину, и отмечаете, какие разделы ему открыть. Ключу можно задать срок действия, предел запросов в минуту и IP-адреса, с которых он будет работать. Если кому-то доступ больше не нужен, отзовите его ключ. Остальные ключи продолжат работать. Сотрудник может открыть ключу только то, что открыто ему самому в панели.
Каждый ключ выдаётся контакту из вашей базы, например дропшипперу или партнёру. Когда в API появятся цены и заказы, магазин будет считать цены для этого контакта с учётом его категории покупателей и записывать заказы на него. Если передать рабочий ключ другому контакту, магазин выдаст новый ключ, а прежний перестанет работать. Если удалить контакт, его ключи удалятся вместе с ним.
Через API можно только смотреть данные магазина и передавать вам новые заказы, например заказы покупателей с сайта дропшиппера. Изменить через API товары, цены, остатки или уже оформленные заказы нельзя.
Журнал запросов хранит обращения к магазину за последние 30 дней. Нажмите на запрос с ошибкой, и вы увидите, что прислали и что ответил магазин. Так проще понять, почему подключение не работает. У каждого ответа магазина есть код обращения. Если партнёр пришлёт вам такой код, впишите его в поле «Код обращения» над журналом, и вы увидите этот запрос. Пароли и ключи в журнале скрыты звёздочками.
Сейчас через API можно получить основные сведения о магазине (название, валюты с курсами, языки) и справочники: витрины, статусы заказов, способы оплаты и доставки, склады, категории покупателей, виды контактов и налоговые ставки. Длинные списки API отдаёт частями, по 50 записей, а разработчик может попросить до 200 за раз. Права на каталог, цены, остатки, заказы, покупателей и создание новых заказов в ключе уже можно отметить. Они заработают, когда эти разделы появятся в API, и выдавать ключ заново не придётся.
Тому, кто подключается к магазину, отправьте ссылку на справочник API https://cartixx.com/docs/api. В нём описано, как выдать и проверить ключ, какие данные можно получить и что значит каждая ошибка.
Внутри магазина мы переписали сохранение товаров, категорий, характеристик, брендов, контактов и заказов. Теперь всё это сохраняется одним общим способом, и на нём будут работать следующие шаги API. В панели для вас всё работает как раньше.
Что починили
Импорт переносил товар в начало категории, если товары в ней были расставлены вручную. Теперь товар остаётся на своём месте.
Импорт не сохранял оригиналы фото, даже когда включена настройка «Хранить оригиналы». Теперь сохраняет.
Если строка импорта категорий пыталась вложить категорию в её же подкатегорию, магазин отвечал непонятной ошибкой на английском и при этом успевал сменить название. Теперь он объясняет, почему строка не принята, и ничего не меняет. Повторная загрузка того же файла больше не переносит категории в конец списка.
Код артикула с невидимыми символами, например после копирования из Excel, форма товара теперь не принимает и прямо говорит почему. Импорт и переезд с другой платформы такие символы убирают сами.
Если новому варианту дать код варианта, который удаляется в той же правке, или поменять коды двух вариантов местами, сохранение заканчивалось ошибкой сервера. Теперь такие правки сохраняются, а повторяющиеся коды магазин отклоняет и объясняет почему.
Удаление темы больше не задевает соседние темы с похожим названием и файлы за пределами папки темы.
Что сделать после обновления
Раздел «API магазина» сначала открыт только администраторам. Если подключениями будет заниматься другой сотрудник, дайте его роли право «Выдавать ключи API» в разделе «Роли и права».
Что нового
Витрина собирает страницы с товарами заметно быстрее. Раньше магазин заново готовил все размеры фотографий товара ради каждой картинки на странице, а карточка с вариантами отбирала фото товара отдельно для каждого артикула. Теперь размеры готовятся один раз на страницу, фото товара отбираются один раз на карточку, а адреса картинок остались прежними. На главной живого магазина с тремя десятками товаров страница стала собираться примерно вдвое быстрее.
Магазин также перестал по несколько раз за запрос перечитывать список своих адресов, поэтому быстрее открывается любая страница — и витрина, и панель управления.
Тема оформления теперь может показывать на карточке цену «от» — самую низкую цену среди вариантов товара, которые можно купить. Раньше ради одной такой цены магазин готовил для каждого варианта всё сразу: цену, наличие, фото и список опций.
Что починили
Мелкие правки.
Что нового
Письмо рассылки теперь собирается в визуальном конструкторе. Вы видите письмо таким, каким его получит покупатель, перетаскиваете блоки из набора в нужное место и правите текст прямо в письме. Нажмите на блок, и рядом откроются его настройки: цвет и размер текста, ширина картинки, цвет кнопки, фон и отступы. Из фона и отступов получаются цветные плашки, например с промокодом или праздничным заголовком.
В письме появились колонки: две или три рядом, а в телефоне они встают друг под другом. Товары можно ставить по одному, по два или по три в ряд и добавить под каждым кнопку «Купить». Правки отменяются кнопкой или клавишами Ctrl+Z, в том числе после сохранения, а конструктор можно развернуть на весь экран.
В библиотеке шаблонов теперь двенадцать готовых писем. Шесть без товаров: приветствие подписчика, новость, промокод, просьба об отзыве, поздравление и «почему выбирают нас». Пять с товарами: распродажа, новинки, хиты продаж, товар недели и письмо тем, кто давно не покупал. В шаблоны с товарами для примера встают ваши последние товары, поэтому сразу видно, как выглядит письмо.
Подробно о конструкторе и шаблонах: https://cartixx.com/docs/customers/mailings
Что починили
В отчёте рассылки карта кликов ставит у карточки товара одну отметку с числом переходов, а не три одинаковых.
Что нового
Способы доставки на оформлении появляются только тогда, когда покупатель указал город. Пока он набирает название или не выбрал город из подсказок, магазин показывает способы не раньше времени: на недописанное «ки» больше не предлагается «Нова Пошта» с курьером. Если города нет в справочнике подсказок (например, заграничный адрес для международной доставки), способы появятся, как только покупатель закончит ввод.
Поле купона на оформлении появляется только тогда, когда в магазине есть хотя бы один рабочий промокод. Если купонов вы не ведёте, покупатель больше не видит поле, в которое нечего ввести.
В блоке «Ваш заказ» у способа «по тарифам перевозчика» теперь написано «По тарифам перевозчика», а не «0 грн.». Раньше покупатель мог решить, что доставка бесплатная.
Телефон в полях формы оформления, регистрации и другого получателя теперь можно поставить на любое место: перетащите строку. Убрать телефон или сделать его необязательным по-прежнему нельзя, потому что по нему магазин узнаёт покупателя.
Ссылки на поиск со старого сайта на Webasyst (вида /search/?query=…) теперь открывают выдачу, а заголовок вкладки поиска совпадает с запросом покупателя.
Пока витрина закрыта на обслуживание, подсказки города на оформлении работают и у сотрудника, который проверяет магазин. Раньше они не отвечали.
Что починили
Отметка «обязательное» у поля формы регистрации или другого получателя переносила поле в самый конец списка. Теперь поле остаётся на своём месте. У поля получателя «для компании» та же отметка снимала пометку «для компании», и поле начинали спрашивать у всех. Теперь пометка сохраняется.
Если в адресе поиска стоял лишний символ (например, q[]=), страница поиска открывалась с ошибкой. Теперь она открывается пустой выдачей.
Что сделать после обновления
Обновите дополнения «Подарки» и «Автокомплит города» в маркетплейсе.
Если у вас своя тема оформления, оберните поле промокода условием, чтобы оно пропадало у магазина без купонов. Как это сделать, написано здесь: https://cartixx.com/docs/theme/behavior
Что нового
У писем рассылок появились шаблоны. Кнопка «Шаблоны» в блоке «Письмо» открывает библиотеку: четыре готовых образца («Новость магазина», «Распродажа», «Новинки» и образец своей вёрстки) и ваши сохранённые шаблоны. Справа видно, как выглядит письмо, а «Взять шаблон» переносит в рассылку тему, строку-превью и само письмо. Любое собранное письмо можно сохранить кнопкой «Сохранить как шаблон», чтобы следующую рассылку начинать с него. Свои шаблоны можно переименовать и удалить. Подробно: https://cartixx.com/docs/customers/mailings
Письмо теперь можно написать своей вёрсткой — HTML-кодом, если конструктора из блоков вам мало. Переключатель «Конструктор / Своя вёрстка» стоит в блоке «Письмо», под редактором кода сразу видно, как письмо увидит покупатель. Имя покупателя и название магазина подставляются так же, как в конструкторе, ссылки магазин сам проводит через учёт переходов, а ссылку отписки добавит внизу, если вы её не поставили. Скрипты, формы и встроенные страницы из письма убираются. Как верстать письмо, чтобы его одинаково показывали Gmail, Outlook и почта в телефоне: https://cartixx.com/docs/customers/mailing-layout
Что починили
В сообщениях об ошибках формы рассылки названия некоторых полей стояли не в том падеже, например «Поле сумму покупок обязательно». Теперь они читаются правильно.
Что нового
Магазин теперь делает почтовые рассылки. Письмо вы собираете из блоков: заголовок, текст, картинка, кнопка и карточки товаров с ценой. Можно подставить имя покупателя, посмотреть письмо на компьютере и телефоне, отправить его себе на проверку и назначить время отправки. Рассылка находится в разделе «Маркетинг → Рассылки». Письмо уходит только тем покупателям, которые согласились получать рассылки, а в каждом письме есть ссылка, чтобы отписаться в один клик. Подробно: https://cartixx.com/docs/customers/mailings
Для каждой рассылки магазин ведёт отчёт. Пока письма уходят, видно, сколько уже отправлено и когда отправка закончится, а саму отправку можно приостановить, продолжить или остановить. Когда письма ушли, отчёт показывает, сколько людей открыли письмо, перешли по ссылке, отписались и сколько заказов и денег принесла рассылка. Каждая цифра сравнивается с вашим средним по прошлым рассылкам. В отчёте есть карта кликов, где на каждой ссылке письма видно, сколько раз её нажимали, а также список получателей с выгрузкой в таблицу, купленные товары и доставка по почтовым службам. Тем, кто письмо не открыл или не перешёл по ссылке, можно отправить повтор с новой темой.
В CRM появились сегменты покупателей. Сегмент отбирает людей по условиям, например «потратили у вас от 5000», «бросили корзину» или «не заказывали три месяца», и сам обновляется, когда покупатели под условие попадают или из него выпадают. Можно составить и обычный список вручную. Сегменты используются в рассылках и автоматизациях, а в «Покупателях» любой отбор сохраняется сегментом одной кнопкой. Подробно: https://cartixx.com/docs/customers/segments
Письма рассылок можно отправлять отдельно от писем о заказах: через свой почтовый сервер или через сервис рассылок. Там же задаются отправитель, сколько писем уходит в час и в сутки и плавный старт для нового адреса. Магазин проверяет, настроен ли ваш почтовый домен, и ведёт стоп-лист адресов, куда писать нельзя. Подробно: https://cartixx.com/docs/customers/mailing-settings
Что сделать после обновления
Откройте «Настройки платформы → Уведомления → Отправка рассылок» и выберите, через что уходят письма рассылок. Если оставить вариант «Как уведомления о заказах», рассылки пойдут с того же адреса, что и письма о заказах. Для больших рассылок лучше завести отдельный сервер или сервис: жалобы на рекламу тогда не помешают доставке писем о заказах.
Что нового
Магазин больше не оформляет гостю заказ на номер или почту, которые ему уже знакомы. Если у покупателя есть личный кабинет или он уже заказывал с этого номера, под полем появится предупреждение и кнопка «Войти». Войдя, покупатель оформляет заказ как обычно, а его адреса подставляются сами. Раньше любой мог вписать чужой номер, и заказ ложился на карточку другого человека вместе с его баллами и скидками.
Покупатель с новым номером получает личный кабинет сразу после первого заказа, без отдельной галочки. Пароль приходит ему в уведомлении о регистрации, а следующие заказы он делает уже через кабинет.
Регистрация на сайте теперь подтверждает номер кодом из Telegram или SMS, если у витрины включён вход по коду. На странице входа покупатель может войти по коду, а не только по паролю.
Что починили
Баллы, скидки группы покупателей и скидки за прошлые покупки на сайте теперь получает только вошедший покупатель. Раньше их можно было забрать себе, вписав при оформлении чужой номер.
Что сделать после обновления
Включите вход по коду, если он у вас выключен: без него покупатель, который раньше заказывал гостем, не сможет войти и оформить новый заказ. Как это сделать, написано здесь: https://cartixx.com/docs/customers/code-login
Если у ваших покупателей часто нет почты, заведите SMS к уведомлению «Регистрация покупателя» в настройках уведомлений. Иначе покупатель не узнает пароль от кабинета, который магазин завёл ему после заказа. Образец текста с паролем там уже есть.
Если вы начисляете баллы за регистрацию, учтите, что теперь их получает каждый новый покупатель после первого заказа.
Обновите дополнения «Купить в 1 клик» и «Telegram: бот»: в них те же правила.
Что нового
Вышло новое дополнение «Копия товара». Оно делает копии товара прямо из его карточки или сразу для нескольких товаров, отмеченных в каталоге. Вы указываете, сколько копий нужно, и отмечаете, что в них перенести: название, описание, мета-теги и SEO, артикулы, фото товара, фото артикулов и характеристики. Так из нескольких готовых товаров за пару нажатий собирается каталог под вашу нишу.
Остатки у копий всегда нулевые, а штрихкоды не переносятся. Копии сохраняются черновиками, но их можно сразу показать на витрине. Большую партию магазин создаёт в фоне, и копии появляются в каталоге по мере готовности.
Что сделать после обновления
Чтобы пользоваться копиями, установите дополнение «Копия товара» в разделе «Маркетплейс» панели. После установки в шапке карточки товара и рядом с отмеченными товарами в каталоге появится кнопка «Копия товара».
Что нового
Во всех календарях панели теперь видно сегодняшнее число: оно выделено рамкой и подложкой. По нажатию на название месяца календарь показывает месяцы, а по второму нажатию — годы, поэтому дату рождения или давнюю дату можно выбрать за несколько нажатий. Календарь открывается на месяце выбранной даты, а если она не задана — на текущем.
Поля даты в карточке товара, фильтре заказов, слайдах, карточке покупателя и накладной теперь открывают тот же календарь, что и вся панель, а не встроенный календарь браузера.
Шапка панели стала проще: строки с разделом и подразделом в ней больше нет, где вы находитесь, видно по заголовку экрана. Список разделов на планшете и узком окне уходит под кнопку меню уже при ширине 1024 точки.
Новое значение характеристики теперь появляется в начале списка, и курсор сразу встаёт в него. Число товаров у значения спрятано в подсказку по значку, поэтому строки в списке стоят ровно.
Что починили
Даты показа слайда, заданные раньше, в настройках слайда выглядели пустыми. Теперь они показываются.
Цифры в панели набирались отдельным шрифтом и выглядели чужими рядом с текстом. Теперь весь текст и цифры набраны одним шрифтом, а суммы в столбцах стоят ровно.
На странице установки и в темах оформления по умолчанию стоит обновлённый логотип CartiX.
Что нового
В «Банкинге» у каждого счёта появилась настройка «Статус заказа после оплаты». Когда поступление на счёт оплачивает заказ, магазин сам переводит заказ в выбранный статус: с записью в истории и письмом покупателю, если оно настроено. Настройка работает вместе с дополнением «Банкинг» 1.3.1. Подробнее: https://cartixx.com/docs/catalog/banking
Что починили
Новый статус заказа, заведённый в настройках заказов, вставал в самое начало списка, выше «Нового». Теперь он встаёт в конец списка, а место всегда можно поменять перетаскиванием.
Кнопка «Синхронизировать» в «Банкинге» сжималась до узкого квадрата, и подпись на ней не помещалась. Теперь кнопка показывается целиком.
Что нового
В разделе «Банкинг» у поступления, которое оплатило заказ, теперь стоит номер этого заказа, и по нему заказ открывается одним нажатием. Раньше там была только отметка «Заказ» без номера.
Под названием счёта в «Банкинге» теперь видна причина, если загрузка выписки не удалась, и предупреждения банка. Раньше стояло одно слово «ошибка», и понять, что не так, было нельзя.
Что починили
Обновление магазина больше не перезаписывает файлы оформления и скрипты установленных дополнений. Раньше вместе с ядром приходили их копии, иногда старее ваших, и после обновления дополнение могло выглядеть или работать как в прошлой версии.
Что сделать после обновления
Обновите дополнение «Банкинг» до 1.3.0: с ним поступления сами оплачивают заказы. Как это работает: https://cartixx.com/docs/catalog/banking
Что нового
Тема получает всё о блоге, его категориях и статьях. Раньше в меню категорий блога и в метке категории на карточке статьи были только название и адрес, и вывести обложку или баннер категории было нечем. Теперь у категории есть обложка, баннер, краткое и полное описание, родительская и вложенные категории, а у статьи в ленте — баннер, все её категории и метки. Список блогов $shop->blogs() тоже отдаёт значок, обложку и баннер. Полное описание в списках приходит по параметру full, потому что собирать его со всеми вставками дорого. Что именно приходит теме, описано здесь: https://cartixx.com/docs/theme/data
Что починили
Если тема написана до общего списка фильтров, магазин показывал фильтры раздела не в том порядке, который вы задали. Например, в разделе стояло «Цена, Объём, Тип горловины», а на витрине выходило «Цена, Со скидкой, Тип горловины, Объём»: объём уезжал вниз, а фильтр «Со скидкой» появлялся, хотя вы убрали его из раздела. Теперь такая тема показывает только выбранные вами фильтры и в вашем порядке.
Старая ссылка с фильтром, который вы убрали из раздела, больше не урезает список товаров. Раньше покупатель видел меньше товаров и не мог понять почему: галочки, чтобы снять такой отбор, в колонке уже не было.
Как настраивать фильтры в разделе: https://cartixx.com/docs/catalog/filters
Что нового
В карточке кассы появилась галочка «Подарки в чеке». Подарок, которому в акции назначена цена (например 0,01 ₴), печатается в фискальном чеке отдельной строкой, как обычный товар. Если галочку снять, подарка в чеке не будет, а его стоимость войдёт в цену остальных товаров, и сумма чека совпадёт с оплатой. Подарок за 0 ₴ в чек не попадает никогда: товар с нулевой ценой касса не продаёт.
Подарок в заказе теперь отмечен пометкой «Подарок» в карточке заказа и на экране правки. Раньше товар за 0 ₴ выглядел ошибкой, и было непонятно, откуда он взялся.
Что починили
Скидка на весь заказ или оплата бонусами больше не убирают подарок из чека: копейку подарка теперь несут платные товары.
При правке заказа цену подарка больше нельзя случайно поменять, и подарок не участвует в пересчёте доставки. Раньше пересчёт считал его обычным товаром по цене каталога.
На экране правки заказа название товара показывается в две строки, а поля подстраиваются под ширину карточки. Раньше на ноутбуке название обрезалось на середине, и товары одной линейки было не различить. Строка товара с упаковкой на телефоне больше не уводит страницу вбок.
Что нового
Новые уведомления теперь всплывают карточкой в правом нижнем углу панели, а не только числом у колокольчика. На карточке видно, что случилось: новый заказ, звонок, сообщение покупателя. Щелчок по ней открывает заказ или переписку, крестик закрывает, а без внимания карточка уходит сама через несколько секунд. Если карточки вам мешают, выключите «Показывать новые уведомления в углу экрана» в разделе «Звук уведомлений». Настройка у каждого сотрудника своя, и события, которые вы там отключили, не всплывают.
Оформление заказа теперь помнит, что покупатель уже ввёл. Если он выбрал доставку и отделение Новой Почты, а потом вернулся в каталог за ещё одним товаром, на оформлении всё осталось на месте: контакты, город, способ доставки, отделение и оплата. После оформления заказа форма начинается с чистого листа. Введённое хранится только в браузере покупателя, пока открыта вкладка или магазин в Telegram.
Что починили
Окно «С этим товаром берут» после нажатия «Добавить в корзину» не закрывалось и сбрасывало выбор, и покупатель не понимал, легло ли что-то в корзину. Теперь окно закрывается, внизу появляется «Товар в корзине», а значок корзины подпрыгивает. Если добавить не получилось, окно остаётся открытым, и выбор не теряется.
Кнопка «Сбросить весь кеш» на экране обслуживания и пересборка после восстановления из резервной копии заканчивались ошибкой. Теперь они срабатывают.
В магазине в Telegram подпись вместо цены доставки, например «Рассчитается после выбора точки», налезала на длинное название способа. Теперь она стоит строкой ниже. Подсказка «Укажите город доставки, чтобы продолжить оформление» больше не висит, когда город уже введён, а переключатель «Получатель — другой человек» больше не прилипает к полю фамилии.
Что нового
Покупатель теперь может открыть ваш магазин прямо в Telegram и оформить заказ, не выходя из чата с ботом. Магазин в Telegram открывается по адресу вашего сайта с окончанием /tg/, поэтому у хостера ничего настраивать не нужно. В нём есть главная страница, каталог, поиск, товар, избранное, корзина и оформление заказа. Входить покупателю не нужно: магазин узнаёт его по Telegram и подставляет имя на оформлении. Для магазина в Telegram в поставке есть своё оформление, сделанное под экран телефона. Вы выбираете его у витрины в поле «Оформление в Telegram» и настраиваете в «Дизайне», а кнопка «Открыть как в Telegram» показывает, как магазин видит покупатель. Как всё включить, описано по шагам: https://cartixx.com/docs/customers/telegram
В «Диалогах» стало удобнее отвечать. Заготовка ответа дописывается к уже набранному тексту, а не затирает его. Над полем ответа появились кнопки подстановок: название магазина, а в переписке, связанной с заказом, ещё номер заказа, сумма, статус, ссылка на оплату и имя покупателя. У каждой заготовки появился переключатель «Показывать в переписке». На компьютере длинная переписка листается внутри своей колонки, и поле ответа всегда остаётся на виду.
Стандартный сигнал уведомления теперь можно прослушать. Свой звук магазин принимает в форматах MP3, WAV, OGG, M4A, AAC и WebM и сохраняет сразу после загрузки.
Что починили
В карточке заказа снова есть кнопка «Написать в переписке»: она пропала при обновлении панели в августе. Кнопка видна, когда покупатель подписан на бота или писал в чат на сайте, и открывает разговор с ним в «Диалогах». Заказ становится поводом разговора: его номер, сумма и ссылка на оплату подставляются в ответ, а ответственный за заказ получает уведомления лично. Простой просмотр карточки больше не переносит переписку на другой заказ.
Менеджер, который ведёт только свои заказы, мог отправить сообщение в чужую переписку по заказу, если знал номер этой переписки. Теперь он пишет только в те переписки, которые видит: по своим заказам и не связанные с заказом. О новых сообщениях в них он теперь получает уведомления, раньше они приходили только тем, кто видит все заказы.
Щелчок по уведомлению о сообщении открывал первую переписку в списке, а не ту, о которой шла речь. Теперь открывается нужная, а прочитанная переписка гасит своё уведомление в колокольчике.
Если покупатель писал в ту же секунду, что и вы, его сообщение могло не появиться в переписке, пока вы не открывали её заново. Теперь оно появляется сразу. Отметка о новых сообщениях гаснет, когда вы возвращаетесь к окну с открытой перепиской.
Если ответ с файлами дошёл до покупателя в Telegram только частично, панель показывала «Сообщение не отправлено» и оставляла всё в поле ответа. Повторное нажатие отправляло покупателю дошедшее ещё раз. Теперь поле очищается, а магазин называет файл, который нужно дослать.
Изменённые настройки звука начинали работать только после перезагрузки панели, а файл WAV магазин не принимал. Если первое уведомление приходило до щелчка по странице, стандартный сигнал больше не звучал до перезагрузки панели. Теперь он возвращается после первого щелчка.
Экран «Информация о системе» показывал версию магазина 1.0.0, какая бы ни стояла на самом деле. Теперь там настоящий номер. В «Диалогах» номер заказа больше не показывается как «№#10079».
Что сделать после обновления
Обновите дополнения «Telegram: бот» до версии 1.13.0, «Чат на сайте» до версии 1.8.1 и «Редиректы и монитор 404» до версии 1.3.2. Без них не заработает магазин в Telegram, гости чата на сайте останутся без подписи, а переадресации будут выводить покупателя из Telegram на сайт. Чтобы открыть магазин в Telegram, включите в настройках бота «Открывать магазин в Telegram». Оформление магазин возьмёт сам, а другое можно выбрать у витрины в поле «Оформление в Telegram».
Что нового
Окно накладной в заказе может открываться сразу, без ожидания перевозчика: стоимость доставки тогда считается по кнопке «Рассчитать стоимость», а города, отделения и улицы ищутся по мере набора. Так работает дополнение «Нова Пошта — накладные (ТТН)» с версии 1.4.0; дополнения перевозчиков прежних версий работают в окне как раньше. Комментарий к накладной теперь виден в заказе рядом с её номером.
Магазин передаёт дополнениям накладных коды города, улицы и область из заказа, поэтому накладная не ищет их у перевозчика заново.
Что починили
Страница «Дополнения» больше не получает настройки, которые дополнение не показывает на экране, — в том числе служебные ключи доступа. Одновременное сохранение настроек дополнения из двух вкладок больше не затирает одно другим.
Подсказки о капче в настройках форм ведут в «Основные настройки → Защита форм», а не в раздел, которого в меню нет.
Что нового
В CRM появились формы для сайта. Форму вы собираете в разделе «CRM → Формы»: начинаете с готовой «Задать вопрос» или «Обратная связь» либо с пустой, перетаскиваете поля мышью и подписываете их на каждом языке магазина. На страницу или в блок форма ставится кнопкой «Форма» в текстовом редакторе. По заявке магазин находит покупателя по телефону или почте, а если не находит — заводит карточку, открывает сделку, пишет заявку в ленту «Активность», присылает уведомление сотрудникам и запускает автоматизации. Заявки собираются в том же разделе, подозрительные попадают в «Спам». Как всё устроено: https://cartixx.com/docs/customers/forms
От роботов форма защищается сама: невидимой ловушкой, проверкой времени заполнения и пределом отправок с одного адреса. Если в «Основных настройках → Защита форм» подключена reCAPTCHA, её можно включить у формы. Данные из анонимной формы не дописываются в уже существующую карточку покупателя, а отказ от рассылок сильнее флажка «Хочу получать новости».
Пункты меню панели теперь видны только тем сотрудникам, у которых есть доступ к самому экрану. Раньше часть разделов открывалась с отказом. Чужой заказ, покупатель или сделка по прямой ссылке показывают понятное «вам не открыт» вместо пустой формы. Право «Локализация» позволяет править переводы, маркетолог сохраняет свои настройки скидок, а «Что нового» читает любой сотрудник.
Что починили
Сотрудник, которому покупатель не открыт, больше не видит его телефон и почту: если у покупателя нет имени, на доске сделок, в задачах и журнале автоматизаций стоит «Покупатель #15». Названия старых сделок вида «Перезвонить: +380…» при обновлении получат имя покупателя.
Магазин снова удаляет старые события статистики витрины по расписанию: с конца августа ночная очистка ничего не удаляла, и таблица росла. Первая очистка после обновления пройдёт порциями.
Если в «Основных настройках → Защита форм» выбрана reCAPTCHA, а ключи не заданы, вход, регистрация, отзывы и формы больше не отказывают каждому посетителю: до ввода ключей работает простая ловушка для роботов, а экран предупреждает об этом.
Баллы в карточке покупателя открываются без ошибки, отчёты без права на финансы не показывают выручку, а файл выгрузки с данными покупателей удаляется вместе с выгрузкой.
Что сделать после обновления
Обновите дополнения «Обратный звонок», «Уведомление о поступлении», «Купить в 1 клик» и «Push-уведомления и PWA-приложение»: в них исправлены ошибки на поддельных запросах и капча без ключей.
Что нового
В магазине появились блоки — куски текста и вёрстки, которые вы пишете один раз и показываете на многих страницах: преимущества магазина, условия доставки, баннер акции. Блоки живут в разделе «Витрины и контент → Блоки». Правка блока сразу меняется везде, где он стоит.
Блок вставляется в текст страницы, описание товара или категории кнопкой «Блок» в редакторе. Текст блока пишется на каждом языке магазина, а для отдельной витрины можно задать свой текст под тем же блоком — например, разные условия доставки на двух сайтах.
Один блок может показывать разное на разных страницах. В окне вставки под «Дополнительно» задаются параметры: так один блок со списком товаров выводит на одной странице акции, а на другой — новинки. Как пользоваться блоками в теме, написано здесь: https://cartixx.com/docs/theme/tags
Что починили
Кнопки вставки блоков, товаров и кода больше не появляются в полях, текст которых магазин выводит как есть: в тексте главной страницы из дополнения SEO и в кратком описании рубрики блога. Раньше вставка там сохранялась, но на сайте на её месте было пусто.
Что нового
Название варианта теперь можно перевести прямо в карточке товара. В окне «Свойства артикула» под кодом стоит поле названия на каждом языке магазина, все поля идут в один столбец. Раньше магазин хранил переводы названий вариантов и показывал их покупателям, но поправить их в панели было негде.
Тема может показать весь каталог одной таблицей — например, на странице прайс-листа. Товары идут раздел за разделом в том порядке, который вы расставили в панели, а новые товары попадают в таблицу сами. Как подключить это в теме, написано здесь: https://cartixx.com/docs/theme/shop
Что починили
Пока покупатель не ввёл город, магазин больше не выбирает доставку за него. Раньше на оформлении сразу стоял первый способ, которому город не нужен, — например, международная доставка, — и итог выходил в несколько раз больше суммы товаров. Теперь в строке доставки написано «укажите город», а способ выбирается после ввода города.
Если покупатель выбрал перевозчика, а потом стёр город, магазин больше не подставляет вместо него другой способ доставки.
Подарок исчезает из корзины на оформлении сразу после удаления товара, без обновления страницы. Быстрые нажатия «+» больше не теряются.
Корзина показывает названия товаров и вариантов на языке страницы, а не на том, на котором товар положили в корзину.
Выбор варианта в карточке товара показывает название варианта, а не его код, даже если перевода на языке страницы нет.
Сотрудник, работающий в панели на украинском, больше не перезаписывает основное название варианта украинским текстом при сохранении товара.
Выгрузка и загрузка товаров таблицей пишут название варианта на языке файла.
Поиск ставит товар с точно таким названием первым: по запросу «Сиалис 20» сначала идёт «Сиалис 20», а не похожие товары. Порядок найденного больше не меняется от загрузки к загрузке.
Переключатель языка сохраняет поисковый запрос и выбранные фильтры.
Уменьшенные копии фото нарезаются и для PNG с повреждённым цветовым профилем. Раньше на странице товара в таком случае грузился тяжёлый оригинал.
Плашка «Витрина закрыта», которую видят сотрудники, переехала вниз экрана. Раньше на телефоне она закрывала шапку темы, и мобильное меню не открывалось.
Длинные названия разделов в «Каталог → Категории» переносятся на вторую строку, а не обрезаются.
Важно перед обновлением
Обновите дополнение «Подарки» до 1.6.1 вместе с ядром.
Что нового
Подарок теперь задаётся вариантом товара и количеством. В разделе «Подарки» поиск сразу показывает варианты — «Виагра 100 · 1 шт.», — вы выбираете нужный и указываете, сколько его дарить: две штуки, полкило или два метра, в единицах самого товара. Раньше подарком был товар целиком, и магазин всегда клал его основной вариант в количестве одной штуки.
Что починили
Если открыть акцию в разделе «Подарки» и нажать «Сохранить», у каждого подарка сбрасывались вариант и количество: всё превращалось в одну штуку основного варианта. Теперь акция сохраняется ровно такой, какой вы её видите.
Что сделать после обновления
Обновите дополнение «Подарки к заказу» до версии 1.6.0: покупатель увидит в списке подарков, какой вариант и сколько ему положат.
Что починили
Фото в формате PNG, сохранённые в некоторых графических редакторах, не показывались в карточках каталога и на странице товара: вместо снимка была пустая рамка. Такие файлы несут неверный цветовой профиль, и на части серверов магазин не мог сделать из них уменьшенную копию. Теперь уменьшенные копии делаются, и фото видно везде.
Что нового
Способы оплаты и доставки теперь переводятся на языки магазина. В карточке способа вы пишете название и описание на основном языке, а ниже, в блоке «На других языках», — для остальных; все языки видны сразу, без переключения вкладок. Покупатель на украинской странице видит «Накладений платіж», на русской — «Наложенный платёж», и в заказ, письма и личный кабинет способ попадает на его языке. Если перевод не заполнен, покупатель видит основное название.
У способа оплаты и доставки появилось описание: короткая подпись под названием при оформлении заказа, например «Оплата при получении».
Фото товара можно показывать только на нужных языках и витринах. В редакторе товара, в разделе «Фото», у каждого снимка есть поля «Показывать на языках» и «Показывать на витринах». Это нужно, когда на упаковке надпись на языке страницы: снимок с русской надписью видят покупатели русской версии, с украинской — украинской. Если поля пустые, снимок виден везде.
Отзывы о магазине получили итог для шапки блока: число отзывов и среднюю оценку по всем одобренным отзывам, а не только по показанным. Под отзывом теперь виден ответ магазина, а дата пишется словами — «1 апреля 2025». Как вывести это в своей теме: https://cartixx.com/docs/theme/shop
Тема получает варианты товара списком с названиями на языке страницы, поэтому их можно показать строками «Дженерик Виагра 5x100мг — 200 грн. — Купить» прямо на странице. В корзине рядом с товаром видно название выбранного варианта. Подробнее: https://cartixx.com/docs/theme/product
Что починили
После правки фото или видео товара, одобрения отзыва или ответа магазина покупатели до суток видели прежнюю страницу. Теперь страницы обновляются сразу.
На украинской версии магазина прочтения статей не считались, а гость, открывший личный кабинет, попадал на страницу входа на основном языке. Оба случая исправлены.
Заказ, который менеджер оформлял в панели, получал язык панели: с английской панелью покупатель получал письма на английском. Теперь заказ оформляется на основном языке витрины.
После правки названия способа оплаты он перемещался в начало списка. Теперь он остаётся на своём месте.
Что сделать после обновления
Если в магазине больше одного языка, откройте «Настройки → Оплата и доставка» и впишите названия способов на других языках.
Что нового
Магазин теперь принимает отзывы о себе, а не только о товарах. Покупатель пишет о покупке в целом — о доставке, упаковке, работе менеджера — и по желанию подписывает, что брал. В разделе «Отзывы» появился выбор «О товарах» и «О магазине», а такие отзывы отмечены отдельной пометкой. Рейтинг товаров отзывы о магазине не меняют. Чтобы показать их на сайте, в теме оформления есть список $shop->storeReviews().
У магазина с несколькими витринами на каждой теперь может быть своя страница с тем же адресом. Например, «Оплата и доставка» по адресу info/ может быть своей на каждом домене, с разным текстом. Раньше вторую страницу с занятым адресом создать было нельзя.
Что починили
В меню страниц на сайте показывались страницы всех витрин, в том числе отданные другой витрине. Теперь каждая витрина показывает только свои страницы и общие для всех.
Если раздел каталога переносили в другой раздел, а адреса на витрине строятся с «category/» в начале, переадресация со старого адреса не появлялась, и он отвечал «страница не найдена». То же было с переносом страницы в другую ветку. Теперь магазин уводит посетителей со старого адреса на новый.
На витрине, где язык всегда стоит в адресе, переадресация при смене адреса товара или раздела не срабатывала вовсе. Теперь срабатывает и ведёт посетителя на его язык.
Что нового
Магазин научился работать с облачной АТС. Менеджер звонит покупателю кнопкой рядом с его телефоном в заказе, профиле покупателя, сделке или заявке на звонок: АТС сначала звонит менеджеру, а когда он снимет трубку, набирает покупателя. Когда покупатель звонит сам, у менеджера, чей телефон звонит, в панели появляется карточка звонящего: имя, сколько он покупал, последний заказ и открытые сделки.
Все звонки собираются в новом разделе «CRM → Работа с клиентами → Звонки», а разговоры с длительностью и записью попадают в карточку покупателя. Пропущенные звонки ждут в списке «Перезвонить» и уходят из него сами, как только с покупателем поговорили. Звонок нового покупателя может сам становиться сделкой, а на пропущенный звонок можно настроить автоматизацию, например задачу «Перезвонить».
Сама АТС подключается дополнением. Первое из них — «Телефония: Zadarma». Пока АТС не подключена, раздела «Звонки» в меню нет. Как подключить: https://cartixx.com/docs/customers/telephony
Что сделать после обновления
Чтобы менеджеры слышали звонки, установите дополнение своей АТС, подключите её в «Настройки платформы → Настройки магазина → Телефония» и назначьте сотрудникам внутренние номера. Видеть звонки всех сотрудников и слушать записи разговоров из коробки может только администратор: остальным ролям эти права при необходимости выдайте в разделе «Роли и права».
Что починили
Если вы отмечали оплату, пока у покупателя была открыта страница «Заказ оформлен», кнопка «Оплатить» на ней отправляла его на главную страницу магазина. Теперь покупатель попадает на страницу своего заказа и видит, что заказ уже оплачен. Это касается дополнений, которые ставят кнопку оплаты на «Заказ оформлен», например IBAN oplata.
У предупреждения в списке способов оплаты была кнопка «Открыть настройки дополнения», которая вела на экран с надписью «настраивать нечего». Платёжные способы настраиваются в самом способе и в реквизитах продавца, поэтому этой кнопки у них больше нет. У способов доставки она осталась: подключение к перевозчику настраивается именно там.
Важно
Если вы обновили магазин до 2.96.0, разделы «Задачи», «Сделки» и «Автоматизации» могли не работать, а сохранение карточки покупателя — заканчиваться ошибкой. При обновлении магазин не подготовил базу под новый раздел CRM. Версия 2.96.1 исправляет это сама: после обновления магазин при первом же открытии дозаписывает в базу всё недостающее. Делать ничего не нужно.
Что починили
Лента «Активность» в карточке покупателя показывала сотруднику переписку и служебные комментарии из заказов, которые ему открывать нельзя. Теперь журнал заказа в ленте видит только тот, кому виден сам заказ.
Покупатель мог вписать в своё имя разметку, и в письме магазина она превращалась в настоящую ссылку — например, «Оплатить» с чужим адресом. Теперь имя, почта и другие данные покупателя в письмах всегда показываются как обычный текст.
Если в названии магазина есть апостроф или амперсанд («Сім’я», «Tom & Jerry»), в шапке писем оно больше не показывается с лишними символами.
В новой сделке, открытой по прямой ссылке, поле «Ответственный» иногда оставалось пустым — теперь там всегда вы. Записи удалённой сделки в ленте покупателя больше не ведут на страницу «Такой сделки нет». Причины проигрыша на телефоне видны целиком, а сумма сделки подписана знаком валюты.
Что нового
В панели появилась CRM — работа с покупателями до заказа и после него. Задачи, сделки и автоматизации собраны в группе «Работа с клиентами» — значок с людьми в левой колонке панели.
Задачи. Вы ставите сотруднику задачу по покупателю или заказу со сроком: позвонить, уточнить размер, напомнить об оплате. Магазин напоминает о задаче к сроку личным уведомлением, которое видит только сам сотрудник. Задачи по покупателю видит каждый, кому виден этот покупатель, — чтобы двое менеджеров не звонили одному человеку. У покупателя теперь можно назначить ответственного.
Лента «Активность» в карточке покупателя. Заказы, переписка, задачи, баллы, заметки и правки карточки собраны в одну ленту по времени: открыв покупателя, вы сразу видите всю историю общения с ним.
Сделки и воронки продаж. Сделка — это то, что происходит до заказа: покупатель спросил о товаре, попросил расчёт, думает. Сделки двигаются по этапам воронки перетаскиванием. Выигранная сделка оформляется в заказ одной кнопкой, и заказ остаётся связан со сделкой. У проигранной сделки указывается причина. Воронки, этапы и причины проигрыша вы настраиваете в «Настройки → Воронки продаж».
Сделки из обращений. Магазин может сам заводить сделку, когда покупатель оставил заявку на звонок, впервые написал в переписке или бросил корзину. Если с покупателем уже идёт сделка, вторую магазин не заводит. По умолчанию всё выключено; включается в «Настройки → Воронки продаж → Сделки из обращений».
Автоматизации. Вы задаёте правило «когда случилось — если выполнено — сделать»: например, когда заказ оплачен на сумму от 5000 грн, поставить менеджеру задачу позвонить покупателю. Правило умеет поставить задачу, перевести сделку на этап, назначить ответственного, поставить метку покупателю, написать покупателю или отправить данные в другую программу. Каждое срабатывание записывается в журнал. Раздел «Автоматизации» доступен только администратору.
Списки диалогов, заявок на звонок и брошенных корзин кнопкой «Показать ещё» теперь листаются до конца, а не останавливаются на первых 100 записях (у диалогов — на 200).
Что починили
Если банк сообщал об оплате в ту же секунду, когда покупатель возвращался на сайт, заказ отмечался оплаченным несколько раз. Покупатель получал несколько писем об оплате, а магазин отправлял в налоговую несколько чеков на одну покупку. Так же бывало, когда менеджер переводил заказ с заблокированными на карте деньгами в «Отправлен», а банк в этот момент подтверждал списание. Теперь оплата отмечается ровно один раз, и чек по заказу выдаётся только один.
В «Диалогах» ответ, отправленный сразу после переключения на другого покупателя, мог уйти не тому человеку, а поиск по диалогам выдавал ошибку. Теперь ответ всегда уходит тому, чья переписка открыта на экране.
Что сделать после обновления
Обновите дополнения «Чекбокс» и «Брошенные корзины» до последних версий.
Что нового
В справочнике появилась пошаговая инструкция для каждой площадки: что сделать в кабинете продавца, что заполнить в магазине, как принимать заказы и что делать, если товар не ушёл. Prom.ua: https://cartixx.com/docs/marketplaces/prom, Rozetka: https://cartixx.com/docs/marketplaces/rozetka, Hotline: https://cartixx.com/docs/marketplaces/hotline, Price.ua: https://cartixx.com/docs/marketplaces/price-ua
Что починили
После удачной отправки остатков на площадку рядом с отметкой «Остатки отправлены» стоял пустой красный значок, будто случилась ошибка. Теперь его нет. Подсказки «Только товары в наличии» и «Выгружать всегда» теперь честно говорят, что Hotline и Price.ua не получат товар, которого нет и который нельзя заказать.
Что нового
Площадка теперь стоит в «Каналах продаж» наравне с витриной. В разделе «Заказы» слева рядом с витриной появилась строка Rozetka или Prom.ua со своим числом заказов, и нажатие на неё открывает только заказы этой площадки. На сводке площадка тоже получила свою долю выручки. Витрина считает только заказы с сайта, а в карточке заказа с площадки в строке «Канал продаж» стоит сама площадка. Подробнее: https://cartixx.com/docs/marketplaces/orders
Подсказка у причины отмены в приёме заказов теперь объясняет, что будет без выбранной причины: одни площадки получат «Другая причина», а другие отмену не примут.
Что нового
В панели появился раздел «Маркетплейсы». Магазин сам собирает файл для Prom.ua, Rozetka, Hotline.ua и Price.ua, обновляет его по расписанию и отдаёт по постоянной ссылке, которую вы один раз вставляете в кабинет площадки. Какие товары уходят, по какой цене и на каких языках, вы решаете на экране площадки: весь каталог или выбранные категории, наценка, округление цены. Ваши категории и характеристики привязываются к категориям и параметрам площадки, а магазин заранее показывает, какие товары площадка не примет и почему.
У одной площадки может быть несколько выгрузок, у каждой своя ссылка, свои правила и свои языки. Например, весь каталог на украинском и отдельный файл распродажи с другой наценкой.
Заказы с площадок приходят в раздел «Заказы» вместе с заказами с сайта. Магазин забирает их каждые пять минут, записывает по цене площадки, находит покупателя по телефону и откладывает под заказ остаток. Когда вы принимаете, отменяете или отправляете заказ, площадка узнаёт его статус и номер накладной. Через минуту после продажи на сайте площадка видит новый остаток, поэтому проданный товар не купят второй раз. В списке заказов появился отбор «Площадка», а в карточке заказа видно, с какой он площадки и какой у него там номер.
Как всё это настроить, по шагам: https://cartixx.com/docs/marketplaces/overview
Что сделать после обновления
Каждая площадка подключается своим дополнением: поставьте его в разделе «Дополнения», и площадка появится в «Маркетплейсах». Приём заказов включается на вкладке «Заказы» площадки, для него нужен ключ доступа к её кабинету.
Что починили
Новые настройки теперь сразу действуют и в работе, которую магазин делает в фоне: отправке заказов в другие сервисы, письмах, пересчёте цен по акциям. Раньше фоновая обработка помнила настройки, прочитанные при своём запуске, и не видела изменений, пока её не перезапускали. Например, после выбора источника заказов в KeyCRM заказы продолжали считаться «не подключёнными».
Повторный перенос каталога с другой платформы больше не заводит копии. Если запустить перенос из того же KeyCRM ещё раз, магазин дополнит уже перенесённое: новые товары добавит, а прежние обновит. На шаге сопоставления заведённые в прошлый раз типы товаров, характеристики и склады показываются связанными с ними, а не как «заведётся заново».
Строка хода переноса больше не пишет «Перенесено 16 из 3»: в ней считаются только этапы, объём которых известен заранее, а при повторном переносе счёт начинается с нуля.
Что нового
Статус «Возврат» теперь возвращает покупателю деньги и тогда, когда заказ оплачен несколькими платежами: предоплатой и доплатой, частью наличными и частью картой, предоплатой и блокировкой на карте. Каждый платёж уходит обратно через платёжную систему своей суммой. Часть, которую покупатель платил наличными или переводом, магазин в истории заказа просит вернуть вам самим. Если банк откажет посреди возврата, в истории видно, что уже вернулось, а оплата становится «Оплачен частично».
Что починили
После отказа банка покупатель видел «Спасибо! Мы приняли ваш заказ» и считал заказ оплаченным. Теперь он возвращается на страницу оплаты, где написано, что деньги с карты не списаны и можно попробовать снова.
Если заказ удалили, панель показывала служебную строку «No query results for model…», а карточка молча открывала другой заказ. Теперь панель пишет «Заказ не найден: его удалили или номер указан неверно».
Если банк возвращает один платёж из нескольких, «оплачено» у заказа уменьшается ровно на этот платёж. Раньше уведомление Monobank о полном возврате могло оставить заказ оплаченным.
Что починили
Правка заказа больше не меняет способ доставки и оплаты без вашего ведома. Если способа, которым оформлен заказ, нет в списке (заказ перенесён из другой системы или способ потом выключили), редактор подставлял первый доступный, и после сохранения, например, «InPost» превращался в «Бесплатную доставку». Теперь поле показывает «Без изменений» с названием прежнего способа, и способ меняется, только если вы выберете другой сами.
Сохранение заказа больше не обрезает имя покупателя: отчество остаётся, как его ввели при оформлении. Раньше любая правка оставляла в заказе только фамилию и имя.
Если покупатель внёс предоплату, ссылка на оплату теперь просит только остаток. Раньше банк выставлял весь итог ещё раз, и покупатель переплачивал внесённое. Доплата прибавляется к уже оплаченному, а на странице оплаты покупатель видит, сколько осталось оплатить.
В назначении платежа для банка номер заказа пишется с одним знаком: «Оплата заказа №100129», а не «№#100129».
Если заказ оплачен несколькими платежами (предоплата и доплата), статус «Возврат» больше не просит платёжную систему вернуть всю сумму по последнему платежу: банк такой возврат всё равно отклонял. Теперь в истории заказа написано, какую сумму вернуть покупателю в кабинете платёжной системы.
Что нового
Магазин теперь сам следит за деньгами, заблокированными на карте покупателя при двухстадийной оплате. Раз в час он спрашивает платёжную систему, что с блокировкой. Если банк снял её по сроку (Monobank держит деньги 9 дней, WayForPay — 21) или блокировку сняли в кабинете платёжной системы, заказ снова получает статус «Ожидает оплаты», а в истории появляется запись об этом. Раньше банк снимал блокировку молча, и заказ навсегда оставался «Деньги заблокированы», хотя денег на карте уже не было.
Заказ запоминает, сколько денег заблокировано на карте. Сделать такой заказ дороже этой суммы нельзя: больше банк всё равно не спишет. Магазин объяснит это при сохранении, а дополнительные товары вы оформите отдельным заказом. Уменьшить заказ можно, и тогда спишется уже новый итог.
В очереди заказов на рабочем столе номер и сумма заказа окрашены в цвет его статуса, если в «Настройках заказов» включён цвет статуса в списке.
Что починили
Если заказ после оплаты подорожал, банк отказывал в списании заблокированных денег: магазин просил больше, чем было заблокировано. Деньги оставались на карте до срока, а товар уезжал без оплаты.
Статус «Возврат» снимал блокировку на текущий итог заказа, а не на заблокированную сумму. Если заказ успели изменить, банк мог отказать. Теперь снимается ровно то, что заблокировано.
Некоторые заказы, перенесённые из другой системы, не сохранялись после правки: магазин отвечал «Поле customer.is_company должно быть строкой». Теперь такие заказы сохраняются как обычные.
Что нового
Платёжные системы теперь получают от магазина всё, что требует их документация: состав заказа, имя, телефон и почту покупателя, язык заказа. Покупатель видит на странице оплаты свои товары, а не одну строку «Заказ №…», и ему не нужно второй раз вводить телефон. Чтобы это заработало, обновите дополнения WayForPay, Monobank и LiqPay.
У Monobank и WayForPay появилась двухстадийная оплата. Если включить её в настройках способа оплаты, деньги при оплате не списываются, а блокируются на карте покупателя, и у заказа появляется статус оплаты «Деньги заблокированы». Магазин списывает их сам, когда заказ доходит до выбранного вами статуса, например «Отправлен». Если вы отмените заказ или переведёте его в «Возврат», блокировка снимется. Покупателю с заблокированными деньгами магазин больше не предлагает заплатить ещё раз — ни на странице заказа, ни в письмах.
Что починили
В счетах, накладных и назначении платежа по QR номер заказа больше не печатается как «№ #100134». Рабочее место заказов помещается в окно на экранах от 1360 точек, а на более узких открывается в два шага: сначала очередь, потом заказ.
Если банк отказал в оплате, покупатель на странице оплаты читает, что деньги с карты не списаны и можно попробовать ещё раз. Чек возврата выдаётся и тогда, когда чек продажи в момент возврата ещё обрабатывался.
В редакторах кода больше нет карты кода справа, она только занимала место. Поиск вверху панели теперь подписан «Глобальный поиск».
Что нового
Вид панели теперь можно поправить своими стилями. В «Настройке бренда» появился блок «Свои стили»: там вы пишете CSS-правила, например меняете цвет кнопок, отступы или размер шрифта. Ваши правила подключаются последними, поверх стилей панели, поэтому перебивают их, а если правило не срабатывает, достаточно добавить к значению !important. Изменения видны сразу, пока вы печатаете, а сохраняются кнопкой «Сохранить». Обновления магазина ваши стили не трогают.
Если стили что-то сломали, откройте панель по адресу вашего магазина с /admin?nocss=1 в конце: она загрузится без ваших стилей, и вы сможете их исправить.
Важно перед обновлением
Номер заказа теперь совпадает с его внутренним номером в магазине, как в Webasyst: заказ 134 показывается как «#100134». Раньше у заказа был отдельный счётчик номеров, и номер мог отличаться от того, под которым заказ хранится. После обновления уже созданные заказы покажут номер по новому правилу, поэтому у части старых заказов номер на экране, в письмах и в документах изменится. Если вы переезжали с Webasyst и покупатели знают свои старые номера, перед обновлением напишите нам.
Что нового
Деньги покупателю возвращает статус заказа «Возврат». Когда вы переводите в него заказ, оплаченный через LiqPay, Monobank или WayForPay, магазин сам отправляет деньги обратно на карту покупателя, а оплата заказа становится «Возврат». Перед этим панель показывает сумму и способ оплаты и просит подтверждения. Если банк отказал, заказ остаётся в прежнем статусе, а причину отказа вы видите сразу и в истории заказа. Заказ, оплаченный наличными или по счёту, тоже можно перевести в «Возврат»: деньги вы возвращаете сами, а товар и бонусы возвращаются на место так же, как при отмене.
Статус «Возврат» появился в магазине сам и стоит в переходах остальных статусов. Название, цвет и значок вы можете поменять, а удалить статус нельзя, потому что на нём держится возврат денег.
Касса выдаёт чеки по статусам заказа. В настройках кассы появилась таблица: для каждого статуса вы выбираете, выдавать ли чек продажи или чек возврата. Например, при оплате при получении чек продажи можно выдавать на статусе «Доставлен». По умолчанию статус «Возврат» выдаёт чек возврата.
Что починили
После оплаты через WayForPay покупатель возвращается в магазин на страницу «Спасибо», а оплата заказа отмечается сразу. Раньше он попадал на страницу с ошибкой и терял вход в личный кабинет и корзину. Оплатить по старой ссылке из письма заказ, который уже отменён или по которому вернули деньги, больше нельзя.
Выбранное значение в выпадающих списках теперь можно убрать крестиком. Раньше в настройках кассы, налогов, оптовых цен и в отборе заказов однажды выбранное значение снять было нельзя.
На телефоне предупреждение о подписке занимает две строки вместо шести, а полностью раскрывается нажатием. Раньше оно закрывало почти треть экрана. Редактор файлов в разделе «Дизайн» больше не выходит за край окна.
Что починили
Закрытая витрина больше не обращается к корзине покупателя. Раньше страница «Магазин временно не работает» всё равно спрашивала корзину и получала отказ, а в браузере покупателя оставалась ошибка.
В разделе «Роли и права» дополнения стоят по алфавиту языка панели. Раньше «SMS.RU» стояло раньше «SMS Fly», а названия на украинские Ґ, Є, І и Ї могли оказаться в конце списка.
Важно перед обновлением
Магазин работает, пока лицензия в порядке. Если подписка закончилась и её не продлили, после льготного срока в 21 день витрина и панель закрываются для покупателей и сотрудников. То же случится, если магазин дольше этого срока не связывается с сервером лицензий или у него нет ключа. Бессрочных лицензий срок подписки не касается. Заказы, оплаты и данные магазина при этом сохраняются, а в панели остаются кнопки «Продлить подписку», поле для нового ключа и «Проверить сейчас» — после продления магазин открывается сразу. Подробнее — https://cartixx.com/docs/engine/updates
За 14 дней до конца подписки панель начнёт напоминать о продлении.
Что нового
В разделе «Роли и права» появилась группа «Дополнения»: доступ к каждому дополнению можно дать или снять отдельно. Без доступа сотрудник не видит разделов, кнопок и блоков дополнения. После обновления доступ ко всем дополнениям есть у всех ролей, как и раньше, — уберите его тем, кому он не нужен.
Что починили
Выгрузка контактов и заказов больше не отдаёт поля, которые сотрудник не видит на экране: внутренние заметки, РНОКПП, банк и IBAN. Раньше они попадали в файл любому, у кого было право выгружать данные. Сохранённую выгрузку контактов теперь видит и запускает только тот, кто её завёл, и сотрудник, который управляет ролями.
Справочник, кабинет и ссылки панели больше не привязаны к одному адресу нашего сайта: если адрес сменится, магазин узнает новый сам.
Важно перед обновлением
Магазин больше не держит разделы платной редакции вечно, если не может связаться с сервером лицензий. Без связи они работают 21 день, потом закрываются — например склады, расширенный маркетинг и отчёты. Магазин, витрина и заказы при этом работают всегда, данные никуда не пропадают. За неделю до конца срока в панели появится предупреждение с кнопкой «Проверить сейчас»: если связь есть, разделы откроются сразу. Для вашего магазина отсчёт начнётся с этого обновления. Подробнее — https://cartixx.com/docs/engine/updates
Что починили
В окне накладной город и отделение теперь находятся по набранному названию. Раньше список просил «Начните набирать название», но поля для ввода в нём не было, и выбрать можно было только из готовых подсказок под полем. Подсказка города под полем теперь сразу выбирает его, а отделения выбранного города показываются без набора.
В отборе товаров по типу появился поиск: при длинном списке типов нужный находится по первым буквам.
Журнал «Что нового» показывает всю историю выпусков. Раньше самые старые выпуски в нём молча пропадали.
Что сделать после обновления
Если вы когда-нибудь видели в панели жалобы на планировщик задач, проверьте его по странице https://cartixx.com/docs/engine/cron — именно он держит связь с сервером лицензий.
Что нового
Склейку стилей и скриптов витрины теперь можно выключить в панели: «Настройки магазина → Основные настройки → Скорость витрины», переключатель «Склеивать стили и скрипты». Выключать её стоит, только когда вы ищете причину неполадки на витрине, например после установки своей темы или нового дополнения. Без склейки витрина открывается медленнее, поэтому после проверки включите её снова.
Будьте осторожны с этим переключателем: после него магазин может работать неадекватно. Сразу после сохранения откройте витрину и проверьте главную, карточку товара, корзину и оформление заказа. Подробнее: https://cartixx.com/docs/theme/assets
Что нового
Витрина открывается быстрее, особенно с телефона. Стили и скрипты страницы магазин теперь склеивает в несколько сжатых файлов: на главной штатной темы CartiX вместо 23 отдельных файлов грузятся 4. Каждый файл — это отдельный запрос к серверу, и на мобильной связи разница заметна сразу.
Склеек два набора. В общий входит то, что есть на каждой странице: оформление темы, корзина и поиск. Он одинаковый на всём сайте, поэтому браузер покупателя скачивает его один раз и дальше берёт из своего кеша. Во втором наборе только то, что нужно конкретной странице, и он маленький.
Дополнения теперь подключают свои стили так же, как магазин, и склеиваются вместе с темой. Раньше чат, окно согласия на cookie и окно уведомлений выводились в самом низу страницы, и их оформление загружалось последним: блок успевал мигнуть неоформленным. Теперь их стиль приходит вместе с остальными. Библиотека для слайдеров больше не загружается дважды, если её уже подключает тема.
Склейка работает в любой теме, включать её не нужно. Если вы правите стиль в редакторе оформления, покупатели сразу получают новую версию.
Для тех, кто делает темы и дополнения
Подключать стили и скрипты теперь можно в любом месте шаблона, даже в подвале: магазин печатает список файлов последним, когда страница собрана целиком. Дополнения подключают файлы одним вызовом, по образцу Битрикса, — Asset::addCss() и Asset::addJs(). Что попадает в склейку, как сделать свой файл пригодным для неё и как проверить результат, описано с примерами:
https://cartixx.com/docs/theme/assets https://cartixx.com/docs/plugins/storefront-assets
Что сделать после обновления
Обновите дополнения, которые стоят в вашем магазине. Пятнадцать из них вышли вместе с этим выпуском: прежние их версии работают, но их файлы грузятся отдельно, мимо склейки. Если вы правили шаблоны чата, уведомлений или окна cookie в редакторе оформления, ваши правки сохранятся. Чтобы стиль такого окна тоже попал в склейку, удалите из шаблона строку <link rel="stylesheet" …>, и магазин подключит файл сам.
Что починили
Магазин, который пропускал несколько выпусков и обновлялся сразу на последний, мог остаться со старой базой данных. Если последний выпуск сам базу не менял, изменения из пропущенных выпусков не применялись, и после обновления часть разделов отвечала ошибкой: например, витрина не сохранялась с сообщением «Server Error». Теперь после обновления магазин сам проверяет, все ли изменения базы применены, и применяет недостающие.
Что нового
В магазине появилась новая тема оформления CartiX. У неё компактная шапка с выпадающим каталогом, полоса акций над шапкой и нижняя панель на телефоне с каталогом, избранным, корзиной и кабинетом. Своих шаблонов у темы хватает на каждую страницу магазина, от главной до оформления заказа и личного кабинета. Цвет всего магазина вы задаёте одной из семи готовых схем, а поверх схемы можете поставить свой цвет кнопок и шапки. Чтобы попробовать тему, откройте «Дизайн», выберите витрину и поставьте ей оформление CartiX.
Настройки темы в «Дизайне» теперь показываются на языке, который вы выбрали для панели: на украинском и английском подписи и подсказки больше не остаются русскими. Для темы CartiX переводы уже есть.
Что починили
В настройках темы нельзя было убрать выбранное меню или слайдер: в списке не было пустого варианта, а меню по умолчанию возвращалось само. Теперь первым пунктом в таких списках стоит «Без меню» или «Без баннера», и выбор сохраняется.
После правки стилей темы покупатели продолжали видеть старое оформление, пока не обновлялся кэш страниц, а заменённый логотип мог держаться у них до месяца. Теперь браузер покупателя получает новый файл сразу после правки, а неизменённые стили берёт из своего кэша и не скачивает их заново на каждой странице.
На английской версии витрины цены на одной странице выглядели по-разному: в карточках «UAH 50,991.50», а в итоге заказа «₴50,991.50». Теперь везде одинаково.
При обновлении магазина правки, которые вы внесли в блоки дополнений внутри штатных тем, заменялись заводскими. Теперь обновление эти блоки не трогает. Тему, которую вы создали сами, обновление тоже не трогает, даже если её код совпадает с кодом штатной темы.
Что нового
Панель оформления на витрине теперь подключена в штатных темах «По умолчанию», «Маркет» и «Промо». Вы открываете свой магазин, вошедши в панель, и меняете цвета, шрифт и тексты прямо на странице. Покупатели панель не видят.
Остаток до бесплатной доставки и предупреждение о минимальной сумме заказа тема теперь может показать на любой странице, а не только в корзине: в шапке, в выезжающей корзине, на странице товара. Как это разметить в своей теме, описано здесь: https://cartixx.com/docs/theme/data
Что починили
Под товаром в корзине перечислялись все подходящие акции, даже те, что цену не снизили. Покупатель видел под платьем со скидкой 25% ещё и «Ламинат дешевле на 15%». Теперь магазин называет только те акции, которые вошли в цену.
Нажатие Enter в поле промокода или города отправляло заказ целиком, хотя покупатель ещё не заполнил остальное. Теперь Enter проверяет промокод и сразу пишет ответ, а заказ уходит только по кнопке «Оформить».
Если доставка на оформлении выключена (самовывоз, цифровые товары), кнопка «Оформить заказ» не появлялась вовсе. Теперь она на месте.
Товар, который продаётся метрами или килограммами, в корзине на странице оформления менялся только на целую единицу, а «1,5» читалось как 1. Теперь количество меняется шагом товара. Товар в упаковках не уменьшается ниже минимального заказа, округлённого до целых пачек.
Предупреждение о минимальной сумме заказа оставалось висеть, даже когда покупатель добрал сумму. Теперь оно исчезает.
Отменённый заказ показывал в кабинете покупателя «Ожидает оплаты» и сумму долга. Теперь об оплате у отменённого заказа ничего не написано, кнопки оплаты нет.
Подпись «С нами с июль 2026» в кабинете покупателя заменена на «Регистрация: июль 2026».
Для авторов тем
В корзине на странице оформления передавайте в поле количества data-step и data-min: штатные темы уже это делают.
Что починили
Услуга, выбранная на странице товара, например гарантия или подарочная упаковка, уходила в корзину и с товарами из ленты похожих на той же странице: покупатель добавлял чехол из ленты и получал к нему гарантию от телефона. Теперь услуга добавляется только к тому товару, для которого её выбрали. Цена услуги теперь пишется тем же знаком валюты, что и цена товара рядом.
После обновления до 2.83.1 в стандартной теме на витрине могла появиться панель оформления, которую вы туда не ставили. Её видели только сотрудники, покупателям она не показывалась. Обновление 2.83.2 возвращает тему к прежнему виду. Если панель вам нужна, вставьте тег {theme_configurator} в свою тему сами.
Что починили
Заголовок из «SEO-оптимизации» теперь появляется на странице. Если вы задали шаблон заголовка для разделов, брендов или меток, например «{category} — купить с доставкой», раньше он не выводился ни в одной теме, и на странице оставалось обычное название. Теперь магазин сам показывает заданный заголовок. Страницы подбора SEO-фильтра по-прежнему показывают свои заголовки и тексты.
Что нового
Код для входа по телефону можно сделать действующим одну минуту. Срок вы выбираете в настройках входа покупателей на витрине.
Что нового
Покупатель может входить без пароля — по коду из Telegram или SMS. Включается это во вкладке «Регистрация и вход» витрины, блок «Вход по коду». Код приходит в Telegram через официальную службу Telegram Gateway (дешевле SMS, бот не нужен), а покупатель без Telegram получает SMS через ваш SMS-сервис. Если номера в магазине ещё нет, кабинет заводится сам после верного кода. Как подключить: https://cartixx.com/docs/customers/code-login
Магазин бережёт деньги на SMS: новый код можно запросить не раньше чем через минуту, число кодов на номер и с одного адреса ограничено, а после пяти неверных попыток код сгорает.
Покупатель без имени (например, вошедший по коду) теперь показан в списке контактов по номеру телефона, а не прочерком.
Что починили
Подключение SMS-сервиса больше не сохраняется без обязательного поля. Раньше, например, AlphaSMS без подписи отправителя выглядел подключённым, но не отправлял ни одного сообщения.
Для тех, кто правит свою тему
Форму регистрации можно показать в окне входа на любой странице: магазин отдаёт её разметкой вашей темы по адресу /account/register/form. Подробности о данных входа: https://cartixx.com/docs/theme/data
Что нового
Во вкладке «Регистрация и вход» у Google, Facebook и Telegram появилась ссылка «Как получить ключи». Она ведёт на пошаговую инструкцию: где взять ключи в кабинете сервиса и куда вставить их и адрес возврата. Инструкция: https://cartixx.com/docs/customers/social-login
Тема оформления теперь может показывать окно входа на любой странице, вместе с кнопками соцсетей. После входа покупатель остаётся на той странице, где был, а не попадает в личный кабинет.
Для тех, кто правит свою тему
Шаблоны получили способы входа ($auth), а также куки и параметры адреса страницы ($cookies, $get, $request). С их помощью тема может, например, совсем не выводить баннер, который покупатель закрыл, — без мигания при загрузке. Подробности: https://cartixx.com/docs/theme/data
Что починили
Уведомление о поступлении на счёт теперь открывает раздел «Банкинг». Раньше щелчок по такому уведомлению в колокольчике уводил на сводку, и платёж приходилось искать вручную. Уведомления, которые пришли до обновления, тоже открываются правильно.
Что нового
Если тема предлагает готовые цветовые схемы, вы выбираете схему цветным квадратом, а под квадратами написано, какая схема сейчас выбрана. Так это выглядит и в панели оформления на витрине, и в разделе «Дизайн».
Группы настроек в панели оформления теперь свёрнуты, и вы раскрываете только ту, с которой работаете. Раскрытая группа остаётся открытой, пока вы правите настройки.
Незаданный цвет больше не выглядит чёрным: его образец перечёркнут, и видно, что действует цвет самой темы.
Что починили
Наименьшая сумма заказа теперь доступна теме на любой странице магазина, а не только в корзине. Раньше её можно было показать только на странице оформления: в шапке и в выезжающей корзине значение было пустым, а если тема выводила сумму там в денежном виде, страница переставала открываться.
Для тех, кто правит тему
Сумма приходит в переменной $min_order (0 — ограничения нет), скриптам темы — в window.CartiX.minOrder. Пример вывода: https://cartixx.com/docs/theme/data
Что нового
В заказе появились кнопки «Написать в Viber» и «Написать в Telegram». Нажмите на кнопку, и у вас откроется чат с покупателем по номеру телефона из заказа, в приложении Viber или Telegram на вашем компьютере. Кнопки стоят в действиях с заказом, под «Написать клиенту».
Кнопки видны, когда телефон покупателя записан с кодом страны, например +380 67 123 45 67: без кода мессенджер номер не найдёт. Чат в Telegram откроется, если покупатель разрешил находить себя по номеру телефона.
Что починили
В уведомлениях панели снова видно, сколько денег пришло и от кого. После обновления вида панели уведомление о поступлении на счёт показывало только название счёта, а сумма, плательщик и назначение платежа пропали. Теперь они снова стоят в уведомлении, а сумма окрашена в цвет счёта, как в таблице «Банкинга»: поступления на разные счета различаются с первого взгляда.
В таблице операций «Банкинга» назначение платежа видно целиком. Раньше оно обрезалось в одну строку многоточием, и номер заказа или счёта в конце назначения было не прочитать.
Что сделать после обновления
Чтобы сумма окрашивалась в цвет счёта, обновите дополнение «Банкинг» до версии 1.2.1. Уведомления, пришедшие до обновления, покажут сумму обычным цветом.
Что починили
Кнопка покупки у аксессуара на странице товара теперь показывает, что товар добавлен. Раньше, если в теме стояла своя кнопка, после нажатия она оставалась прежней — «Добавить», и покупатель видел только, что изменилось число у корзины в шапке. Теперь кнопка получает подпись, которую тема задала для этого случая, например «Добавлено».
Для тех, кто правит тему
Подпись после покупки задаётся атрибутом data-l-added на кнопке аксессуара или на корне блока аксессуаров, а оформление — классом is-added, который кнопка получает после покупки. Подробнее: https://cartixx.com/docs/theme/behavior
Что починили
Если несколько складов собраны в общий склад, магазин теперь считает их остаток вместе. Раньше каждый склад сравнивался со своим порогом отдельно, и товар, которого у одного склада 2 514 шт, а у двух других нет, в списке товаров помечался как «мало». Теперь товар помечается, только когда заканчивается общий остаток всех складов группы.
По этому же правилу считают отбор «Заканчиваются» в списке товаров и блок «Заканчиваются» на главной странице панели, поэтому число на главной совпадает с тем, что открывается по нажатию.
Что сделать после обновления
Порог для общего склада отдельно задавать не нужно: магазин берёт самый высокий порог из складов, которые в него входят. Если у складов группы разные пороги, проверьте их в разделе «Склады».
Что нового
Лицензия CartiX теперь действует на одном домене вместе со всеми его поддоменами: shop.example.com, www.example.com и example.com — это один сайт. Если ключ уже работает на другом домене, магазин так и скажет и назовёт этот домен, а не просто сообщит, что активировать не удалось. Чтобы перенести магазин, отвяжите прежний домен в личном кабинете https://cartixx.com/account/licenses и активируйте ключ снова. Адреса для разработки (localhost, *.local, *.test) по-прежнему не считаются.
Что починили
Если ключ приостановили или удалили, магазин продолжал показывать лицензию действующей, а неверно введённый ключ выглядел как «сервер лицензий недоступен». Теперь магазин говорит прямо: «такого ключа нет» или «ключ приостановлен».
Что нового
В разделе «Редиректы» появилась кнопка «Загрузить из файла». Правила переадресации теперь можно загрузить таблицей XLSX или CSV, а выгрузку из плагина «SEO-редиректы» для Webasyst — как есть, без переделки. Кнопка появляется, когда дополнение «Редиректы и монитор 404» обновлено до версии 1.3.0.
Адреса на кириллице в списке правил и в списке ненайденных страниц теперь показаны буквами, а не кодами вида %D0%90.
Что сделать после обновления
Обновите дополнение «Редиректы и монитор 404» до версии 1.3.0, иначе кнопки загрузки не будет.
Что нового
В разделе «Витрины и контент» появилось «Управление меню». В нём вы собираете меню для шапки, каталога и подвала: ссылки, разделы каталога, страницы сайта, бренды, товары и страницы магазина вроде корзины и личного кабинета. Пункты вкладываются друг в друга и перетаскиваются мышью, а для тачпада и телефона рядом стоят кнопки «выше», «ниже» и «вложить». У каждого пункта есть название на всех языках магазина, значок, метка вроде «Новинка» и выбор, кому его показывать: всем, гостям, вошедшим покупателям или выбранным категориям покупателей. Раздел каталога можно добавить одним пунктом вместе с подразделами — новые подразделы появятся в меню сами.
На сайт меню попадает через шаблон темы. Нажмите в разделе кнопку «Код для вставки в тему», скопируйте готовый код и вставьте его в шаблон там, где нужно меню: пункты появятся списком со вложенными, а разметку и классы можно поменять под свою тему.
Что починили
Тема, созданная кнопкой «Создать тему» в разделе «Дизайн», показывала на страницах служебные ключи вроде storefront.catalog вместо подписей «Каталог», «В корзину» и «Оформить заказ». Теперь новая тема сразу получает все стандартные подписи витрины на русском, украинском и английском, и переносить их из другой темы вручную не нужно.
Что нового
Оформление магазина теперь можно настраивать прямо на витрине. Когда вы вошли в панель управления и открыли свой сайт в том же браузере, слева внизу появляется шестерёнка. По ней выезжает панель: там те же настройки темы, что в разделе «Дизайн», — цвета, ширина, шрифт, логотип (файл выбирается с компьютера) — и все тексты витрины на каждом языке. Правки оформления сначала видите только вы, а покупатели увидят их после кнопки «Опубликовать». Покупатель ни шестерёнки, ни черновика не видит.
К теме можно добавлять свои настройки и группы настроек: строку, текст, число с единицей, цвет, картинку, флажок, выбор из списка или шрифт. Цвет, размер, картинку и шрифт можно связать с оформлением — тогда значение само попадает в стили страницы, и шаблон править не нужно. У каждой настройки есть значок с готовым кодом, который показывает, как вставить её в тему. Свои настройки и поправленные тексты сохраняются и после обновления темы.
Что починили
Настройка темы раньше принимала любое значение: в поле цвета можно было вписать что угодно, и оно попадало прямо в стили страницы. Теперь цвет обязан быть цветом, число — числом в заданных границах, а адрес картинки — адресом.
Что сделать после обновления
Панель на витрине включается одной строкой в теме. Откройте «Дизайн → Файлы», файл templates/layout.html, и вставьте перед строкой тег theme_configurator в фигурных скобках. Если панель не нужна, ничего делать не надо.
Что нового
Свою тему оформления теперь можно начать с чистого листа. В разделе «Дизайн» появилась кнопка «Создать тему»: вы вводите название, код и описание, и магазин создаёт все файлы, которые нужны теме, — страницы каталога и товара, корзину и оформление заказа, личный кабинет, блог, места для установленных дополнений, стили и переводы. Файлы пустые, и в каждом написано, для чего он нужен и какие данные в него приходят, поэтому верстальщику не нужно разбирать чужую тему, чтобы понять, что где лежит.
Раньше новую тему можно было получить только копией готовой, а потом вычищать из неё чужую вёрстку. Копирование никуда не делось — кнопка «Сделать копию» работает как прежде.
Важно
Пока новая тема не свёрстана, витрина на ней показывает пустые страницы. Переключайте витрину на свою тему, когда в ней всё готово.
Что починили
Магазин не находил товар, когда в запросе стоят и название, и артикул. Вы набираете «Пляшка 1.286-С28-1-100», а магазин ищет каждое слово только в названии либо только в артикуле — и не находит ничего, потому что вместе они нигде не лежат. Именно так покупатель и набирает: название плюс код. Теперь слова ищутся по всему, что магазин знает о товаре, а название по-прежнему весит больше артикула.
Что сделать после обновления
Ничего. Пересобирать поиск не нужно — магазин всё сделает сам при обновлении.
Что нового
Поиск в панели находит товар по номеру. Наберите номер товара или номер артикула — тот, что пришёл в письме от покупателя или стоит в выгрузке, — и товар откроется сразу, без пролистывания списка. То же работает, когда менеджер набивает состав заказа.
Кнопка «Посмотреть на витрине» ведёт на настоящий адрес. Раньше панель складывала его сама и промахивалась: товар живёт внутри своего раздела, подраздел внутри родителя, а метка по адресу «/tag/…», — и ссылка вела на страницу, которой на витрине нет. Теперь адрес даёт сам магазин, и если витрин у вас несколько, вы увидите ссылку на каждую. Это касается товаров, разделов, меток, брендов и страниц магазина.
Что починили
Магазин не находил товары, в коде которых есть точка. Если у вас артикулы вида «1.286-С28-1-100», поиск по «286» товар показывал, а по «1.286» — уже нет: набранное разбиралось на слова не так, как разбирает сам поисковый указатель. Владелец копировал название своего товара из панели, вставлял в поиск и не находил ничего — в магазине, где такой код у каждой позиции, поиска не было вовсе.
Кнопка «Пересобрать» в настройках поиска всегда отвечала «Не удалось пересобрать поиск». Пересборка при этом шла, но панель спрашивала о ней не по тому адресу и ответа не получала. Теперь вы видите, сколько собрано и когда всё закончилось, а если расписание у магазина не настроено, пересборка всё равно доходит до конца.
Что сделать после обновления
Если кнопка «Пересобрать» отвечала вам ошибкой — откройте «Настройки → Поиск» и нажмите её ещё раз: теперь пересборка доходит до конца и показывает отчёт.
Что нового
Перед обновлением магазин показывает все выпуски, которые вы получаете, — списком, каждый со своей версией и датой. Магазин обновляют редко, и между вашей версией и последней обычно лежит несколько выпусков: раньше вы читали заметки только последнего и не знали, что приезжает работа ещё двух-трёх. Список виден и в «Установке и обновлениях», и в разделе «Что нового».
Что нового
Дополнения магазина заговорили на языке покупателя. Раньше всё, что дополнение отвечало со страницы — «спасибо, мы перезвоним», подписи подарков, страница счёта, — приходило на языке магазина по умолчанию, даже если покупатель ходил по украинской витрине. Дороже всего это стоило покупке в один клик: заказ запоминает язык, на котором его оформили, и по этому языку потом идут все письма покупателю и страница оплаты — украинец получал русские письма.
Покупатель, вернувшийся из письма о забытой корзине, теперь попадает именно в неё. Если корзина привязана к его кабинету, а он открыл письмо там, где не вошёл, магазин предложит войти и после входа сразу покажет ту самую корзину. Раньше он видел пустую корзину, и напоминание уходило впустую.
Что сделать после обновления
Обновите свои дополнения: возможность работать с языком появилась у них вместе с этим выпуском магазина.
Что нового
Магазин стал быстрее открывать страницы. Корзину, избранное и сравнение браузер теперь спрашивает одним разом вместо трёх, а посчитанная корзина запоминается до первого изменения. Раньше на каждый просмотр любой страницы магазин заново поднимал фотографии и характеристики всех товаров в корзине: у покупателя с полусотней позиций это выходило в сотни обращений к базе на каждый переход.
Теперь магазин сам сбрасывает сохранённые страницы витрины, когда вы его обновляете. Раньше после обновления покупатель ещё сутки мог видеть старую разметку темы.
Что починили
Корзина больше не пропадает, если покупатель отошёл от компьютера. Через час без действий магазин помечает корзину брошенной, чтобы напомнить о ней письмом, но показывать такие корзины витрина перестала: покупатель возвращался с обеда и видел пустую корзину, хотя товары лежали на месте. Теперь он застаёт корзину такой, какой оставил, а отметка снимается сама и напоминания ему больше не уходят.
Корзина гостя живёт 400 дней, и срок продлевается при каждом заходе. Раньше он отсчитывался от дня, когда покупатель положил первый товар, и даже постоянный покупатель терял корзину в назначенный день.
Покупатель больше не видит в шапке чужой счётчик товаров. Страницы каталога магазин хранит одной копией на всех, и в эту копию попадало число того, кто открыл страницу первым: гость с пустой корзиной видел в шапке «49». Сохранённая страница теперь не хранит ни личных чисел, ни следов того, кто её открыл.
Что сделать после обновления
Откройте «Настройки → Обслуживание магазина» и нажмите «Сбросить страницы витрины»: страницы, сохранённые до обновления, ещё сутки могут показывать чужие числа. Дальше магазин будет делать это сам при каждом обновлении.
Что нового
Любой способ доставки, который спрашивает адрес, теперь может подсказывать улицу: покупатель набирает первые буквы и выбирает название из списка. Справочник улиц даёт дополнение перевозчика — «Нова Пошта» или «Укрпошта», — а выбираете его вы, строкой «Подсказывать улицу при вводе» в настройках способа. Название в заказе совпадает с тем, что знает перевозчик, поэтому менеджеру не приходится править адрес перед выпуском накладной. Подсказка работает и на оформлении заказа, и в редакторе заказа в панели.
Что починили
Список подсказок накрывал подпись поля: покупатель начинал набирать улицу и переставал видеть слово «Улица» над ней. Теперь список встаёт под полем в любом оформлении.
Что сделать после обновления
Обновите «Нову Пошту» или «Укрпошту» до свежей версии и нажмите в их настройках «Обновить города, отделения и улицы». Строка «Подсказывать улицу при вводе» появится в настройках способа доставки после того, как улицы загрузятся.
Что починили
Кнопку «Повторить заказ» убрали из штатного оформления: её ставит в кабинете сам владелец магазина, строкой в шаблоне. В версии 2.69.0 она появлялась в списке заказов и на странице заказа без спроса, а это решение за вас.
Что сделать после обновления
Ничего, если вы не хотите кнопку. Если она вам нужна, поставьте её сами: «Дизайн» → вкладка «Файлы» → шаблоны личного кабинета покупателя, строка {repeat_order id=$order.number_raw} на странице заказа и {repeat_order id=$o.number_raw} в списке заказов. Дополнение «Повторить заказ» при этом должно быть установлено.
Что нового
В личном кабинете покупателя у заказа появилось место под кнопку «Повторить заказ» — в списке заказов и на странице заказа. Саму кнопку даёт одноимённое дополнение из маркетплейса: покупатель нажимает её, и весь состав заказа складывается в корзину по сегодняшним ценам. Пока дополнение не установлено, в оформлении ничего не меняется.
Магазин стал быстрее складывать в корзину сразу много товаров: раньше он пересчитывал корзину целиком после каждой позиции. На заказе из полусотни позиций это занимало около четырёх с половиной секунд, теперь — меньше полусекунды.
Что сделать после обновления
Если вы правили в своём оформлении список заказов или страницу заказа, кнопка там не появится: перенесите из обновлённого оформления строку {repeat_order id=$o.number} в список заказов и {repeat_order id=$order.number} на страницу заказа. Оформление правится в разделе «Дизайн» на вкладке «Файлы».
Что нового
Любой способ доставки теперь может спрашивать у покупателя адрес. Откройте настройки способа, включите «Спрашивать адрес доставки» и отметьте, что вам нужно: улицу, дом, квартиру, индекс — и отдельно то, без чего вы не принимаете заказ. Покупатель заполнит эти поля при оформлении, а вы увидите адрес в заказе, в накладной и на бланках. Раньше адрес умел спрашивать только один способ, поэтому доставка по городу и бесплатная доставка везли заказ курьером, а улицы и дома у покупателя никто не спрашивал.
Покупатель теперь видит, какие поля заполнить обязательно: рядом с их названием стоит звёздочка. Раньше он узнавал об этом отказом магазина уже после нажатия «Оформить».
Перевозчики — «Нова Пошта», «Укрпошта», Meest — и «Пункт выдачи» остаются при своём адресе: у них он зависит от выбранного отделения, почтомата или курьера, и магазин в это не вмешивается.
Что сделать после обновления
Обновите дополнения доставки — «Нова Пошта», «Укрпошта», Meest, «Пункт выдачи» и «Доставка по своим тарифам». До обновления у перевозчиков в настройках будет виден лишний выключатель адреса, который им не нужен.
Что нового
Поиск в шапке панели теперь находит и дополнения: наберите «карта сайта», «перенаправления» или «бонусы» — и попадёте в настройку нужного дополнения, не вспоминая, как оно называется. Ищет и по названию, и по описанию.
Добавились сотрудники (по имени и рабочей почте), склады, способы оплаты и доставки — со ссылкой прямо в настройку способа, а не в общий список, — и статусы заказов.
Список того, что поиск знает о настройках, вырос почти вдвое: реквизиты продавца, наименьшая сумма заказа, поля формы заказа, закрытие витрины на обслуживание, регистрация покупателей, размеры картинок, защита форм от роботов, промокоды, рассылки, подборки товаров и другое.
Что починили
Поиск по номеру заказа больше не показывает весь магазин. Если набрать только приставку номера — «#100», — магазин раньше считал это за «найти что угодно» и выдавал пять свежих заказов вместо нужного.
Знаки процента и подчёркивания ищутся как знаки. Запрос «скидка 10%» или промокод «SALE_20» раньше находили всё подряд.
Покупатель находится по куску номера телефона. Менеджер набирал код оператора, видел заказы этого человека и ни одной карточки покупателя — и заводил второго такого же.
Бренды находятся и открываются. Раньше в поиск попадали только те, кому уже загрузили логотип.
Настройка из поиска больше не выбрасывает на главную: сотруднику показывается только то, куда ему открыт доступ.
Сумма заказа в подсказке видна только тому, кому открыты деньги магазина.
Страница со всеми находками даёт досмотреть список целиком: раньше она писала «37 заказов», а показывала тридцать. Выбранный вид больше не прячет остальные, число согласовано со словом («1 совпадение», а не «1 совпадений»), а пометки «Скрыто» и «Выключено» подходят и странице, и статье.
Поиск слушается клавиатуры: стрелки ходят и по избранному, Escape больше не оставляет поле мёртвым, сочетание Ctrl+K не отбирается у редактора текста, а при уходе на другой экран подсказка закрывается сама.
На большом магазине поиск перестал пересчитывать все заказы при каждом нажатии клавиши.
Что сделать после обновления
Ничего. Если вы уже отметили страницы звёздочкой, они остались на месте.
Что нового
В шапке панели появился поиск по всему магазину. Одна строка отвечает сразу на два вопроса: «где это включается» и «где этот заказ». Наберите «налог» — и попадёте в налоговые ставки, наберите фамилию покупателя — увидите его карточку и все его заказы с суммами и статусами.
Поиск находит разделы панели и настройки, заказы по номеру, имени, телефону и почте, товары по названию и артикулу, покупателей, категории, бренды, статьи, страницы сайта, скидки и промокоды. Товары ищутся так же, как их ищет покупатель на витрине, — с опечатками, чужой раскладкой и синонимами, — только вместе со скрытыми. Каждый сотрудник видит своё: менеджеру, которому положены лишь его заказы, чужие в подсказке не покажутся.
Поиск открывается сочетанием клавиш Ctrl+K, стрелки ведут по строкам, Enter открывает найденное. Если находок больше, чем помещается, откройте страницу со всеми: там они разложены по видам. На телефоне поиск стоит значком и раскрывается на всю ширину экрана.
Страницу, к которой возвращаетесь каждый день, отметьте в поиске звёздочкой — она встанет в блок «Под рукой» на главной, рядом с последними переходами. Список свой у каждого сотрудника, а сам блок можно убрать с главной там же, где вы собираете её состав: «Настройки» → «Настройка бренда».
Что починили
Ссылка на заказ открывала список заказов, если сотрудник последний раз смотрел их списком. Теперь по такой ссылке — из поиска, из письма, от коллеги — открывается сам заказ, а привычный вид списка остаётся вашим.
Страница сайта теперь открывается прямой ссылкой, и её можно отправить коллеге.
Поиск покупателей и заказов в списках и в шапке работает одинаково: раньше один и тот же покупатель мог находиться в одном месте и не находиться в другом.
Что сделать после обновления
Загляните в поиск и отметьте звёздочкой то, чем пользуетесь каждый день: эти страницы соберутся на главной в блоке «Под рукой».
Что нового
Статьи магазина теперь можно показать в любом месте оформления — на главной, в подвале, на странице товара или прямо в тексте информационной страницы. Раньше свежие записи выводились только там, где это заранее предусмотрела тема.
Подборка собирается по вашим условиям: записи из нужного блога, из выбранной рубрики, по метке, только закреплённые, самые свежие, самые читаемые, по алфавиту или вперемешку — при каждом заходе покупатель увидит другой набор.
В темах из поставки блок свежих статей на главной уже стоит и показывает ваши записи. Если тему верстаете вы сами, блок ставится одной строкой: {posts limit=3}. Все условия подборки с примерами — https://cartixx.com/docs/theme/tags
Блог и рубрику в таком блоке можно назвать номером — он написан на странице блога и на странице рубрики, там же стоит готовая строка с кнопкой «Копировать». Номер удобен тем, что не меняется, даже если вы поправите адрес блога.
Что починили
В окнах, которые спрашивают подтверждение, кнопка «Отмена» выглядела как главное действие и перетягивала внимание на себя. Теперь в таком окне выделено то действие, о котором вас спрашивают.
Блок, собранный магазином из карточки темы, не показывался вовсе, если у темы своего файла такой карточки не было — на месте статей или товаров оставалась пустота. Теперь магазин берёт недостающую карточку из темы из поставки, как уже делает с целыми страницами.
Что сделать после обновления
Если на главной вашего магазина стоит тема «Базовая» и она правилась под вас, откройте главную и проверьте блок новостей: раньше он показывал придуманные статьи-заготовки, теперь — ваши настоящие записи. Записей ещё нет — блок не показывается вовсе.
Что починили
Магазин вёл записи о своей работе одним файлом и ничем его не ограничивал. На боевом магазине такой файл дорос до 209 мегабайт за полтора месяца, а на хостинге с ограничением по месту это заканчивается остановкой магазина. Теперь записи ведутся отдельным файлом на каждый день, магазин хранит их две недели и удаляет старые сам.
Ночная резервная копия базы данных снималась обходным, более медленным способом: внешняя программа искала подключение к базе не там, где работает сам магазин. Теперь магазин подсказывает ей нужный путь, и копия снимается обычным быстрым способом.
Что появилось
В разделе «Система → Диагностика» появилась строка «Журналы магазина»: она показывает, сколько места заняли записи о работе, и предупреждает, когда их пора почистить. Сама чистка — в разделе «Система → Логирование».
Что сделать после обновления
Если ваш магазин работает давно, записи по-прежнему могут вестись одним файлом: эта настройка хранится на вашем сервере. Откройте «Система → Диагностика» и посмотрите строку «Журналы магазина» — если она предупреждает о размере, очистите старые записи в разделе «Система → Логирование», а в файле .env на сервере задайте LOG_STACK=daily.
Что починили
Счёт и накладная не печатались по заказу от частного лица, если в бланке стоит название компании или любое другое поле, которое покупатель не заполнял: вместо документа менеджер получал страницу «Документ не удалось напечатать». Теперь незаполненное поле печатается пустым, а весь остальной документ собирается как обычно. То же самое касается полей получателя посылки.
Что починили
Раздел «ИИ-ассистент» прошёл проверку с четырёх сторон, и вот что в нём нашлось.
Удаление агента ломало магазин. Задача оставалась порученной работнику, которого уже нет, и на этом спотыкались все кнопки «Написать» и весь экран «Изменить выбранные» в каталоге — вместо них владелец получал ошибку. Теперь поручения убираются вместе с агентом.
Тексты сразу для группы товаров на втором языке магазина не сохранялись вовсе. Самый обычный случай — «напиши украинские описания всему каталогу» — оплачивался целиком, по обращению к сервису на каждый товар, и не давал ни строчки. Причина была в названии: у нового перевода оно обязательное, а никто его не заполнял. Кнопка «Вернуть как было» после такой операции тоже отказывала.
Отказ сервиса посреди работы выдавался за успех. Если ключ переставал работать на трёхсотом товаре из пятисот, владелец читал «Готово, изменено 299 из 500» и ни слова о причине, а магазин продолжал обращаться к отказывающему сервису ещё двести раз подряд. Теперь несколько отказов подряд останавливают работу, и в истории операций написано, что случилось.
Выбор «чем переводим» не работал по умолчанию. Владелец подключал сервис перевода, нажимал «Перевести» в «Локализации» и получал ответ, что не назначен ИИ-агент, — оплаченный сервис не звался вовсе. Заодно из списка переводчиков убраны те, кто переводить не умеет, и поле выбора модели, которое ни на что не влияло.
В самом разделе счётчик «назначено 0 из 17» показывал ноль даже тогда, когда исполнители были расставлены, а подсказка у звёздочки основного подключения показывала служебное имя вместо текста. Длинное название страницы, написанное агентом, выталкивало кнопки «Сохранить» и «Удалить» за край экрана — нажать их было нельзя.
Что нового
Отказ сервиса магазин теперь объясняет по-человечески. Частые причины он узнаёт сам: на счету закончились деньги, модель переименована или закрыта, запрос длиннее, чем модель читает, сервис не работает в стране магазина, ключ не принят. Раньше владелец читал ответ сервиса дословно по-английски.
Поля для поисковых систем во всём магазине названы одинаково — «Заголовок для поиска», «Описание для поиска», «Ключевые слова». В карточке товара, у бренда и в подборке они назывались по-английски, а на страницах и в статьях — по-русски.
Задания агенту стали точнее. Кнопка «Поправить написанное» больше не просит беречь разметку там, где её не бывает, держит пределы длины у полей для поиска и слушается того, что вы написали агенту в его карточке. В задании на описание товара появилась просьба не выдумывать характеристики, размеры и гарантии.
Что сделать после обновления
Если вы уже заводили агентов, загляните в «Настройки → ИИ-ассистент → Кто за что отвечает» и проверьте, что исполнители на месте: счётчик теперь показывает правду.
Что нового
Агенты взялись за остальные тексты магазина. В прошлом выпуске кнопка «Написать» появилась у товара и раздела каталога — теперь она стоит и на текстовых страницах витрины, в статьях, у бренда, у услуги и в подборках товаров. Работает всюду одинаково: нажимаете кнопку рядом с полем, агент пишет, написанное попадает в форму, и вы решаете, сохранять его или править. Если в поле уже есть текст, кнопка предложит написать заново или поправить написанное — опечатки и согласование, не трогая факты.
Магазин рассказывает агенту о записи то, чего нет в форме. Про статью — в каком она блоге и в какой рубрике, про услугу — из каких вариантов выбирает покупатель, про страницу — где она стоит и по какому адресу открывается. Поэтому текст выходит про ваш товар, а не «вообще».
На вкладке с языками у страниц, статей, брендов и подборок одно нажатие переводит весь блок целиком: заголовок, текст и поля для поисковых систем сразу.
Появились тексты сразу для группы товаров. Отметьте товары в каталоге, выберите «Изменить выбранные → Написать тексты агентом», укажите поля, язык и исполнителя — и магазин напишет их подряд. Работа идёт в фоне: окно можно закрыть, ход виден в истории операций. Написанное попадает прямо в каталог, поэтому по умолчанию заполняются только пустые поля, а всю операцию можно вернуть как было одной кнопкой.
Что починили
У подборки товаров нельзя было задать заголовок и описание для поисковых систем на основном языке магазина: поля были только у остальных языков, хотя в остальном страница подборки ничем не отличается от страницы раздела. Теперь у неё есть свой блок SEO.
В окне «Изменить выбранные» предпросмотр устаревал молча. Вы смотрели, что получится, потом меняли условие — скажем, подняли цену не на 5%, а на 50% — и нажимали «Применить», а разбор на экране оставался от прежнего условия. Применялось при этом новое. Теперь правка любого поля убирает устаревший разбор, и посмотреть придётся заново.
Что сделать после обновления
Откройте «Настройки → ИИ-ассистент» и загляните в «Кто за что отвечает»: задач стало семнадцать, и новые места ждут исполнителя. Пока задача никому не поручена, кнопки в этом месте не будет.
Если агентов вы ещё не заводили, начните с подключения: понадобится ключ доступа из кабинета сервиса, рядом с полем стоит кнопка, которая открывает нужную страницу. Посмотреть работу без ключа можно на сервисе «Пробный режим (без ключа)».
Что нового
Магазин научился поручать тексты ИИ. В настройках появился раздел «ИИ-ассистент»: вы подключаете сервис — OpenAI, Claude или Gemini — и заводите агентов. Агент это работник, которого играет модель: у него своё имя, своя инструкция («пиши коротко и по делу, без восторгов»), своя модель и свои запросы к ней по каждому полю. Ключ доступа вводится один раз в подключении, а агентов на нём может работать сколько угодно.
Кто за что отвечает, видно одним списком. На задаче может работать несколько агентов сразу: заведите сухого копирайтера для запчастей и продающего для подарков — менеджер выберет нужного прямо в карточке товара. Посмотреть работу агентов можно до того, как вы заведёте платный доступ: пробный режим отвечает сам и денег не стоит.
Первым делом агенты взялись за каталог. В карточке товара рядом с названием, кратким описанием, полным описанием и полями для поисковых систем появилась кнопка «Написать»; если в поле уже есть текст, она предложит написать заново или поправить написанное — опечатки и согласование, не трогая факты. На вкладке «Локализация» кнопка переводит всю карточку на другой язык магазина одним нажатием. То же самое умеет раздел каталога: описание, тексты для поисковых систем и перевод.
Написанное попадает в форму, а не в каталог: вы читаете, правите и сохраняете сами.
Заработал и выбор «чем переводим» в разделе «Локализация» — раньше он ничего не делал. Теперь туда подключаются сервисы перевода: DeepL, Google Переводчик и свободный LibreTranslate, который можно поставить на свой сервер. Сервис переводит слово в слово, стоит дешевле агента и отвечает быстрее — на справочнике из трёхсот значений разница заметна. В том же списке стоят и ваши ИИ-агенты: выбираете, кем переводить, и кнопка «Перевести пустые» в характеристиках, услугах, полях контактов и статусах заказа слушается этого выбора. Уже набранные переводы она не трогает.
Что сделать после обновления
Откройте «Настройки → ИИ-ассистент» и заведите подключение: понадобится ключ доступа из кабинета сервиса, рядом с полем стоит кнопка, которая открывает нужную страницу. Учтите, что подписка ChatGPT Plus или Claude Pro для магазина не подходит — доступ для приложений оплачивается отдельно, по числу обращений.
Если хотите сначала посмотреть, как это работает, выберите сервис «Пробный режим (без ключа)»: он покажет всю цепочку, отвечая образцом вместо настоящего текста.
Что починили
Отмеченная галочка в фильтре возвращалась пустой. Покупатель отмечал, скажем, «40 Вт», список сужался, сверху появлялась метка отбора — а сама галочка в фильтре стояла пустой, будто ничего не выбрано. Так было только у целых значений: «6.1» отмечалось правильно, а «40» — нет.
Товары, которых нет в наличии, всплывали в трёх местах. Витрина, настроенная их скрывать, всё равно предлагала такие товары в подсказках поиска, в блоке «с этим покупают» под карточкой и в блоках товаров на главной. Теперь правило действует и там; в блоках на главной заработало и «опускать в конец».
Карта сайта обновляется сразу после правки настроек витрины. Раньше она до часа жила прежним составом: вы включали «скрывать товары не в наличии», а карта продолжала звать поисковик на скрытые страницы.
Что нового
Витрина сама решает, что делать с товарами, которых нет в наличии.
Откройте «Витрины → Основное» — там появился выбор из трёх вариантов. Настройка принадлежит витрине, а не магазину: если у вас розница и опт на одном каталоге, правило у каждой может быть своим.
Показывать как есть — так магазин работал до сих пор: распроданные товары стоят в списках наравне с остальными.
Опускать в конец списков — товары остаются на витрине, но уходят после тех, что есть в наличии. Выбранный порядок каталога при этом сохраняется: если раздел отсортирован «сначала дешёвые» или расставлен вами вручную, внутри групп «есть» и «нет» этот порядок никуда не денется.
Скрывать с витрины — товары пропадают из разделов каталога, поиска, подсказок поиска, подборок на главной и из карты сайта. Страница самого товара при этом остаётся доступной: на неё ведут ссылки из писем, рекламы и закладок покупателей, и отвечать им «страница не найдена» неправильно.
Два правила, которые магазин соблюдает сам, чтобы настройка не работала против вас:
Если включён заказ при нулевом остатке, скрытие товара не касается — раз вы готовы его продать, покупатель обязан его видеть. Скрываются только те товары, которые купить нельзя: например, у которых все варианты сняты с продажи.
В режиме «скрывать» из фильтров пропадает отбор «Только в наличии»: других товаров на витрине уже нет, и такой отбор ничего не менял бы.
Что сделать после обновления
Ничего делать не нужно: у всех витрин сохраняется прежнее поведение — «Показывать как есть». Если хотите убрать распроданное из витрины или опустить вниз, откройте настройки витрины и выберите нужный вариант.
Что нового
Товары в категории теперь расставляются мышью.
У категории и раньше можно было выбрать порядок «Вручную», но задать сам порядок было нечем: магазин показывал товары так, как они добавлялись, и настройка ничего не меняла. Теперь откройте «Каталог → Товары», выберите категорию — и перетаскивайте строки: взяли товар, отпустили над другим, он встал перед ним. Если отметить галочками несколько товаров и потащить один из них, переедут все отмеченные и встанут подряд.
Порядок можно менять на любой странице списка, хоть на пятой: магазин запоминает, куда вы поставили товар, и не трогает остальные. Покупатель увидит этот порядок, когда у категории выбрана сортировка «Вручную».
Список товаров открывается в порядке своей категории. Выбрали категорию, собранную руками, — видите её ровно такой, какой её видит покупатель, и тут же правите. Выбрали категорию, которая сортируется по названию, по цене или «сначала новые», — список покажет то же самое, что и сайт. Раньше порядок в панели и на витрине приходилось сверять в двух окнах.
Товар, добавленный в категорию позже, встаёт в конец собранной вручную витрины, а не перед расставленными товарами.
Переезд со старого магазина переносит и порядок товаров в категориях — если старый магазин его знает. Так бывает при подключении к его базе; по сети порядок не передаётся.
Что сделать после обновления
Ничего делать не нужно: у категорий, где порядок не задавали, всё остаётся как было. Если вы хотите собрать витрину руками, выберите категории порядок «Вручную» в её настройках, а сами товары расставьте в списке товаров.
Что починили
Логотипы способов доставки и оплаты не показывались при оформлении заказа.
Вы загружаете знак перевозчика или платёжной системы в самом способе («Настройки → Оплата и доставка»), и в личном кабинете покупателя он был виден. А на странице оформления — нет: магазин не передавал логотип теме вовсе, поэтому нарисовать его тема не могла, даже если пыталась. Вторая причина была ещё незаметнее: список способов перерисовывается каждый раз, когда покупатель называет город или меняет доставку, и в этой перерисовке логотипа не было — знак пропал бы сразу после первого пересчёта.
Теперь знак стоит слева от названия способа и остаётся на месте при любом пересчёте. В темах «По умолчанию», «Маркет» и «Промо» это работает сразу после обновления.
Если тема у вас своя или куплена у другого разработчика, логотип доступен в данных способа под именем logo — и у варианта доставки, и у способа оплаты. Размер знака магазин задаёт сам, подгонять высоту в теме не нужно.
Что сделать после обновления
Если логотипы у способов ещё не загружены, откройте «Настройки → Оплата и доставка», выберите способ и загрузите картинку — покупатель увидит её при оформлении заказа.
Что нового
Числовую характеристику теперь можно выбирать галочками, а не только ползунком.
Раньше объём, вес, мощность и любое другое число покупатель отбирал ползунком «от» и «до». Когда значений немного и они круглые — 5, 10, 30, 50 и 100 мл, — это неудобно: покупатель ловит нужное число мышью и всё равно получает соседние. Теперь у такой характеристики можно включить список значений, и он выбирает объём одной галочкой.
Как включить: откройте «Каталог → Типы товаров и характеристики», выберите характеристику (например «Объём») и убедитесь, что включено «Участвует в фильтрах витрины». Ниже появится выбор, как покупатель отмечает значение: ползунком «от» и «до» или галочками из списка значений. Сохраните — фильтр на витрине сменится сразу.
Вид задаётся каждой характеристике отдельно, поэтому в одной колонке фильтров у вас могут стоять и галочки, и ползунок: объём — галочками, а высота, которая идёт подряд от 5 до 200 мм, — ползунком. Ползунок стоит оставить там, где значений много и они не круглые.
Рядом с каждым значением магазин пишет, сколько за ним товаров. Значение, которого нет при уже выбранном отборе, не пропадает, а гаснет — покупатель видит, что такой объём в магазине есть, просто не сочетается с остальным выбором. Снять отметку можно тем же крестиком сверху, что и у обычных значений.
Настройка работает во всех местах, где есть фильтры: в разделе каталога, в поиске, на странице бренда и на странице метки. Тему оформления править не нужно — в том числе вашу собственную или купленную: галочка «30 мл» устроена для темы так же, как галочка «Синий».
Что сделать после обновления
Ничего делать не нужно: все числовые характеристики остаются на ползунке, как и были. Если у какой-то из них значений немного, зайдите в характеристику и включите список значений — на витрине это видно сразу.
Что нового
Статус заказа в списке теперь видно цветом: название окрашено так же, как вы задали статусу в настройках. Раньше цветной была только отметка слева, и колонка статусов читалась сплошным серым списком.
Метка о новых делах в меню стала заметной. Вместо бледного числа рядом с названием раздела магазин показывает красный кружок — новый заказ вы увидите, даже когда работаете в другом разделе.
Что нового
Колонку фильтров в разделе каталога вы теперь собираете сами. Откройте «Каталог → Категории → Фильтры», выберите «Собрать вручную» и составьте список: характеристику добавляете поиском, порядок задаёте перетаскиванием, лишнее убираете корзиной. Покупатель увидит колонку ровно такой.
Цена, «только в наличии», «со скидкой» и склад стали такими же строками этого списка. Раньше они стояли сверху всегда — теперь их можно убрать из раздела или поставить под характеристиками.
Рядом с характеристикой магазин пишет, у скольких товаров раздела она заполнена, а у незаполненной ставит пометку. Фильтр, по которому в разделе нечего отбирать, на витрине не появится, и теперь это видно ещё до сохранения.
Что починили
Порядок фильтров, выбранный вручную, на витрине разъезжался. Тема рисовала сначала все характеристики со списком значений, потом ползунки числовых и только затем «да/нет»: раздел, где «Объём» стоял вторым, показывал его последним. Теперь фильтры идут ровно тем порядком, каким вы их расставили.
Раздел, из которого убрали все фильтры, показывал покупателю пустую колонку. Теперь колонки просто нет, а место занимают товары.
В выпадающих списках панели не было поиска там, где он должен был быть: выбор характеристики, языка, похожих товаров и три поля в основных настройках. Теперь по этим спискам можно искать.
Что сделать после обновления
Если у вас своя тема, перенесите в неё разметку фильтров: колонка рисуется по новым данным filters.all, и без правки порядок в ней останется прежним — сначала списочные характеристики, потом числовые, потом «да/нет». Три темы из поставки уже обновлены. Как переносить, с примером разметки: https://cartixx.com/docs/theme/data
Что нового
Тема может напечатать текст страницы, который владелец пишет в дополнении «SEO-оптимизация», одной строкой — {seo_text}. В темах из поставки этим тегом теперь выводится текст внизу главной: раньше там стояла заготовка из файлов темы, а теперь показывается ваш текст, свой на каждом языке. Пока текст не написан, тема показывает прежнюю заготовку, а тема «Default» — вообще ничего, чтобы пустого блока на странице не было.
Тег работает и без дополнения: магазин объявляет его пустым, поэтому тема с ним не ломается. Для авторов тем он описан в справочнике: https://cartixx.com/docs/theme/data
Что сделать после обновления
Чтобы писать текст главной, обновите дополнение «SEO-оптимизация» до версии 1.3.0.
Что починили
В редакторе заказа при доставке курьером улица теперь подсказывается справочником перевозчика: начинаете вводить — магазин предлагает названия, и в накладную уезжает улица в том виде, в каком её знает перевозчик. Раньше менеджер набирал улицу наугад и правил адрес руками при выпуске накладной.
Адрес заказа подставляется в поля перевозчика: у заказа с курьерской доставкой улица, дом и квартира уже заполнены, а поля открывались пустыми — казалось, что адрес потерялся. Заодно эти поля больше не показываются дважды: перевозчик спрашивает их сам.
Важно перед обновлением
Настройка раздела «Показывать товары подкатегорий» раньше не влияла на сайт: раздел всегда показывал товары всех подразделов. Теперь настройка работает, и при обновлении она включается у всех разделов — магазин выглядит как прежде. Если где-то нужно показывать только свои товары, выключите её у этого раздела.
Что починили
Перенос раздела в другой раздел больше не рвёт ссылки. Раньше старый адрес отвечал «страница не найдена» вместе со всеми подразделами и товарами внутри, и позиции в поиске терялись. Теперь магазин уводит посетителей со старой ссылки на новую, как при смене адреса.
Число товаров в дереве разделов показывает то, что увидит покупатель: черновики, скрытые и архивные товары больше не считаются, а раздел «по условиям» считает и товары своих подразделов.
Возврат раздела «по условиям» к обычному больше не стирает набранные условия — переключите обратно, и они на месте.
Товар без цены не попадает в раздел «дешевле 100»: раньше пустая цена считалась нулём, и такой раздел собирал весь незаполненный каталог.
Старая цена в условиях сравнивается в валюте магазина. Товар за 150 долларов больше не попадает в раздел «старая цена до 200 ₴».
Два условия по опциям покупки теперь сходятся на одном артикуле: раздел «красные 44-го размера» собирает товары, у которых есть именно красный 44-й, а не красный отдельно и 44-й отдельно.
Ползунок числовой характеристики больше не выбрасывает товары, которых покупатель не касался: границы ползунка считаются по тем же данным, по которым идёт отбор.
Условия раздела проверяются при сохранении: значение от другой характеристики, диапазон «от–до» у характеристики со списком значений и отрицательная цена больше не сохраняются молча, а объясняются словами.
Адрес страницы для других языков (hreflang) на второй и дальше странице выдачи ведёт на ту же страницу, а не на первую.
Карта сайта пересобирается сразу после создания, правки или удаления раздела, а не через час.
В теме «Default» число товаров пишется по-человечески («1 товар», «2 товара»), а пустой раздел больше не предлагает сбросить фильтры, которых покупатель не ставил. У раздела «по условиям» убран порядок «вручную»: расставить товары мышью в таком разделе нельзя.
Что нового
Образец заголовков и описаний для страниц SEO-фильтра теперь сохраняется отдельной кнопкой — создавать страницы для этого не нужно. Под полями видно, какой заголовок получится, и сказано, что образец один для всего магазина. Если в образце строки для поиска нет значения характеристики, магазин предупредит: заголовок выйдет одинаковым у всех страниц, и поиск сочтёт их дублями.
Что починили
Работает с дополнением «SEO-фильтр» версии 1.3.1 — обновите его вместе с магазином.
Слишком длинный образец больше не обрывает создание страниц с ошибкой: текст обрезается по длине поля, а отказ написан понятными словами, без служебных названий полей.
Что сделать после обновления
Обновите дополнение «SEO-фильтр» до 1.3.1.
Что нового
В разделе «SEO → SEO-фильтр» появились образцы заголовков и описаний для страниц, которые магазин создаёт автоматически. Заголовок собирается из названия категории, названия характеристики и её значения — «Бутылки объём 300 мл», — а дальше идёт то, что вы допишете сами: «купить оптом в Киеве, цены от…». Образец пишется один раз на каждом языке магазина, и все созданные страницы получают такие тексты. Работает с дополнением «SEO-фильтр» версии 1.3.0.
Что сделать после обновления
Обновите дополнение «SEO-фильтр» до 1.3.0 — без него поля образцов сохранять некому.
Что нового
Шапку, рамку и подвал писем покупателям теперь можно править. В разделе «Уведомления» появился блок «Оформление писем» с общим шаблоном письма: в нём вы меняете цвет шапки, логотип, подпись в подвале, а переменная «Текст письма» отмечает место, куда встаёт текст каждого уведомления. Раньше шапка с названием магазина добавлялась к письму сама, и поменять её было негде.
Отдельному письму можно включить «Свой шаблон письма». Тогда общий шаблон к нему не добавляется, и письмо уходит ровно так, как написано в уведомлении, вместе с вашей шапкой и подвалом. При включении в письмо подставляется общий шаблон, чтобы было с чего начать.
На странице подборки товаров тема может показать категории над списком: и те, что выбраны в условиях подборки, и те, в которых лежат её товары, со счётом товаров в каждой. Что именно доступно шаблону, описано в справочнике: https://cartixx.com/docs/theme/data
Что сделать после обновления
Ничего делать не нужно: письма уходят в прежнем оформлении. Если вы уже писали письмо целиком, со своей шапкой, у этого уведомления сразу включён «Свой шаблон письма».
Что починили
Вёрстка, вставленная в «Исходный код» текстового редактора, после сохранения превращалась в одну строку без переносов и отступов. Теперь текст, который вы вставили и не правили в обычном режиме, сохраняется ровно таким, каким вы его вставили. Если текст правили в обычном режиме, исходный код разложен по строкам с отступами по вложенности.
Обёртки с классами, секции и встроенное видео редактор выбрасывал при первой же правке в обычном режиме: блок с классом превращался в голые абзацы. Теперь такой кусок хранится целиком и показывается в тексте плашкой «Своя вёрстка». Чтобы его изменить, дважды щёлкните по плашке: откроется исходный код.
У кнопки «Товары» на панели редактора вместо подписи была служебная надпись. Теперь там обычный текст.
Что нового
Категорию «по условиям» теперь можно собрать по цене. В условиях отбора выберите «Цена» и укажите границы, например от 0,01 до 5: в разделе окажутся товары, которые продаются по цене в этих пределах с учётом акций.
В блоке аксессуаров тема может показать, сколько штук есть в наличии: {$acc.count}. Если остаток у товара не ведётся, значение пустое.
Что починили
Категория «по условиям» на сайте была пустой, хотя в панели у неё стояло число товаров. Теперь её товары видны на витрине, в поиске внутри категории, в подборках и акциях, нацеленных на неё. Товары, привязанные к такой категории вручную, пока она была обычной, в неё больше не попадают.
Если в своей теме магазина нет шаблона страницы подборки или блога, эти страницы отвечали ошибкой. Теперь магазин берёт недостающий шаблон из стандартной темы, а шапка и подвал остаются вашими.
Что сделать после обновления
Если у вас своя тема, проверьте, есть ли в её папке templates файлы product-list.html, blog.html, blog-category.html, blog-post.html и blog-tag.html, а в папке partials файл blog-card.html. Без них подборки и блог откроются в разметке стандартной темы. Чтобы они выглядели как остальной сайт, скопируйте эти файлы из themes/default/templates в свою тему и оформите под неё. Устройство темы описано здесь: https://cartixx.com/docs/theme/structure
Что починили
Покупатель исправлял ФИО в личном кабинете, нажимал «Сохранить», и ничего не происходило: страница не обновлялась, надпись о сохранении не появлялась. Теперь после сохранения страница открывается заново с новыми данными и надписью «Профиль сохранён». Покупатель-компания может исправить в профиле и ФИО, а не только название.
Вместо «Профиль сохранён», «Пароль изменён» и «Текущий пароль неверный» в кабинете выводились служебные надписи вида storefront.profile_saved. Теперь там обычный текст на языке витрины.
В выгрузке заказов колонка «Название компании» была пустой у всех заказов компаний. Теперь название выгружается, в том числе у уже оформленных заказов. В печатных формах название компании доступно и как {$customer.company_name}.
Что нового
В SEO-фильтре страницу подбора можно собрать по числовой характеристике: объёму, весу, диаметру. В редакторе страницы у такой характеристики поля «от» и «до». Чтобы страница показывала ровно одно значение, например флаконы на 30 мл, укажите в обоих полях одно и то же число.
Что починили
Если сохранить в редакторе страницу подбора, у которой есть условие по числу, цене или «да/нет», это условие стиралось, и страница начинала показывать всю категорию. Теперь условия сохраняются целиком.
Что сделать после обновления
Обновите дополнение «SEO-фильтр» до версии 1.2.0: без него числовые характеристики в редакторе не появятся.
Что нового
На плашке склада в очереди заказов теперь стоит сумма, на которую собирает этот склад, а не количество товара. Сумма совпадает с суммой склада в счёте: стоимость строк за вычетом скидки на них. Количество и число позиций показываются в подсказке при наведении на плашку.
Что починили
Если стереть у категории meta title, meta description или описание и сохранить, в базе оставался прежний текст. Так же нельзя было стереть переводимые поля у товаров, брендов, страниц, статей, характеристик и услуг. Теперь стёртое поле стирается.
При выборе другой категории в дереве менялось только название, а описание, meta, условия и остальные поля оставались от предыдущей категории. Теперь форма открывает выбранную категорию целиком.
Что сделать после обновления
Если вы правили категории после переключения между ними, проверьте их описания и meta: поля предыдущей категории могли сохраниться в выбранную.
Что нового
Поле формы заказа теперь можно скрыть от покупателя и задать ему значение по умолчанию. Так в счёт и расходную накладную попадает обязательная строка «Договір»: покупатель на сайте о договоре не спрашивается, каждый заказ компании получает «поставки», а менеджер видит поле в заказе и вписывает настоящий договор, если он есть. Обе настройки стоят рядом с отметкой «обязательное» в настройках оформления заказа витрины.
В бланках доступны все поля покупателя по их кодам: договор печатается как {$customer.contract}, плательщик — как {$customer.payer}. Если в коде поля есть дефис, в бланке его пишут через подчёркивание: поле «rnokpp-payer» печатается как {$customer.rnokpp_payer}. Подсказка переменных в редакторе бланков показывает эти поля с их названиями. Пустое поле печатается значением по умолчанию, в том числе у заказов, оформленных до появления поля.
Что починили
PDF-файл документа собирается так же, как его печатает браузер. Если бланк печатает несколько счетов подряд, например по счёту на каждый склад, каждый счёт теперь начинается с новой страницы, а не идёт сплошной простынёй с разрывом посреди таблицы.
Отметка «обязательное» у поля в настройках оформления больше не переносит поле в конец формы.
Что нового
В выгрузке заказов появилась колонка «Товар строкой»: позиция записывается одной фразой, как в накладной для сборки, например «Ковпачок алюмінієвий (Чорний з різьбою 28х18 мм)(0104) - 50 x 4,50 грн.». Сборщику не нужно сводить название, артикул, количество и цену из разных колонок. Цена без копеек пишется целым числом.
Для файлов, которые печатают или читают глазами, добавлены «Цена с валютой», «Сумма по складу с валютой» и «Сумма с валютой»: рядом с числом стоит «грн.», и его уже не спутать с количеством. Колонки выбираются в настройках набора выгрузки.
Что починили
Если магазин переехал с Webasyst, в списке заказов у перенесённых заказов не было букв складов, хотя настройка «Показывать склад отгрузки» включена. Теперь у каждого такого заказа видно, с какого склада и сколько товара собирали. Склад заполнится сам после обновления, переносить заказы заново не нужно.
Что нового
Документ покупателю можно открывать сразу с окном печати. Раньше покупатель нажимал ссылку на счёт, видел бумагу и искал, чем её напечатать: на телефоне печать спрятана в меню «Поделиться». Теперь тема может сказать «открыть на печать», и окно печати появится само, как только страница загрузится.
Печать вызывается после полной загрузки, а не сразу: иначе лист уходит в принтер без логотипа и печати, которые не успели загрузиться.
Как это поставить в тему — с готовым куском кода, в том числе для печати без перехода на другую вкладку: https://cartixx.com/docs/theme/tags
Что сделать после обновления
Ничего. Ссылки на бланки, которые уже стоят в вашей теме, продолжают работать как раньше — окно печати появляется только там, где тема об этом попросила.
Что нового
У печатной формы теперь виден её код. Он написан в самой форме, в «Настройки» → «Печатные формы», строкой «Код бланка» рядом с выключателем, и копируется кнопкой; в списке бланков он стоит подписью под названием. Этим кодом бланк называют в теме оформления, когда показывают документ покупателю, — раньше взять его было неоткуда.
Документ покупателю можно попросить на другом языке. По умолчанию бумага выходит на языке заказа: оформляли по-украински — и счёт украинский, даже если сейчас покупатель смотрит магазин по-русски. Тема может сказать иначе и дать, например, счёт по-английски партнёру. Просить можно только язык, на котором работает ваш магазин.
Примеры для темы: https://cartixx.com/docs/theme/tags
Что починили
Ссылка на печатную форму в личном кабинете не работала: тема писала то, что сказано в справочнике, и не получала ничего. Заказ в кабинете магазин называет номером, а не внутренним кодом строки, и помощник его не узнавал. Теперь он понимает и номер, и внутренний код, и номер с оформлением вроде «№1024».
Что сделать после обновления
Ничего. Если вы уже поставили в тему ссылку на бланк и она не появлялась — после обновления появится.
Что нового
Покупатель может открыть свои бумаги по заказу сам. Раньше счёт умело показывать только дополнение «Оплата по счёту», а накладную или гарантийный талон — никто: их печатал менеджер и отправлял письмом руками.
Теперь у темы оформления есть помощник: она ставит в нужном месте ссылку на любой ваш бланк из «Настройки» → «Печатные формы». Где показывать и что именно — решаете вы вместе с тем, кто ведёт вашу тему: счёт в личном кабинете, накладную на странице «Заказ оформлен», ничего вовсе. По ссылке открывается готовая к печати страница, а рядом можно поставить и ссылку на файл PDF.
Бумага у покупателя — ровно та же, что печатает менеджер: номер и дата документа выдаются один раз, поэтому у вас в бухгалтерии и у покупателя на руках один и тот же счёт, сколько бы раз его ни открывали.
Магазин следит за двумя вещами, чтобы тема не ошиблась: ссылку получает только тот, чей это заказ, а выключенный или пустой бланк ссылки не даёт вовсе — иначе покупатель нажимал бы на кнопку, ведущую в «страница не найдена».
Как это вставить в тему, с примерами: https://cartixx.com/docs/theme/tags
Что сделать после обновления
Ничего: пока в теме не поставлена ссылка, для покупателя ничего не меняется. Если ваша тема писалась не нами, покажите разработчику страницу справочника выше — ему нужна одна строка в шаблоне заказа.
Что нового
Магазин научился решать, кому какой способ доставки и оплаты показывать. Раньше способ можно было только включить или выключить целиком: если вы принимаете оплату по счёту, её видели и компании, и частные покупатели, а наложенный платёж предлагался и на заказ в двадцать тысяч. Теперь вы описываете правила: «компаниям — только счёт», «наложенный платёж до 5000», «самовывоз только своим», «предоплата на первый заказ».
Правила живут в «Настройки» → «Оплата и доставка», третьим списком под способами. Правило состоит из четырёх вещей: что настраиваем (доставку или оплату), что сделать (скрыть выбранные способы либо оставить только их), сами способы и условия. Условия — те же, что у правил скидок: тип покупателя, сумма корзины, вес, количество товаров, товары в корзине, категория покупателя, первый ли это заказ, сколько он заказывал раньше, расписание по дням и часам. У правила оплаты есть ещё одно условие — выбранный способ доставки: так собирается «наложенный платёж только Новой Поштой».
Правило можно выключить, не удаляя: оно останется в списке и подождёт до следующего сезона. Правила только убирают способы и никогда не возвращают убранное соседним правилом, поэтому их порядок ни на что не влияет. Заказ, который заводит менеджер, правила не касаются — он оформляет по телефону и вправе выбрать любой способ.
Как всё это настроить, с примерами и снимками экрана: https://cartixx.com/docs/engine/method-rules
В выгрузке заказов появились три колонки про склад: «Сумма по складу», «Позиций со склада» и «Количество со склада». В файле со строкой на каждый товар у всех строк одного склада стоит одно и то же число, поэтому сборщик сразу видит свою часть заказа и не складывает строки в уме. Суммы всех складов заказа вместе дают «Сумму товаров».
Что починили
Количество в выгрузке заказов округлялось до целого: 8,4 м² ламината уезжали в файл как «8», и склад отгружал не то, что купили. Теперь дробное количество доезжает как есть, а целое выглядит по-прежнему — «10», а не «10,000». То же самое исправилось в колонке «Состав заказа».
Оформление заказа принимало любой способ оплаты, какой пришёл в запросе: ни принадлежность витрине, ни «выключён» не проверялись. Теперь способ обязан быть в том списке, который магазин показал покупателю.
Что сделать после обновления
Ничего обязательного: правил показа после обновления нет, и все способы видны всем покупателям, как и раньше.
Если вы заведёте правило, откройте после этого оформление заказа и посмотрите на него глазами покупателя — особенно когда выбрали «оставить только выбранные». Правило «оставить только счёт» вместе с выключенным счётом оставит покупателя без единого способа оплаты.
Что нового
Выгрузка заказов теперь умеет отделять заказы пустой строкой. В файле со строкой на каждый товар заказ занимает столько строк, сколько в нём позиций, и где он кончается, глазом было не найти. Настройка стоит в наборе выгрузки, рядом со «Строкой на каждый товар».
Строки заказа можно сортировать по складу: товары одного склада идут подряд, а не вперемешку. Сборщику больше не нужно выбирать свои строки по всему заказу. Настройка там же, в наборе выгрузки.
Покупатель, который платит по счёту, видит ссылку на оплату в своём кабинете. Раньше ссылка была только у вас в карточке заказа: покупатель заходил в «Мои заказы» и не находил ни кнопки, ни счёта, а вы отправляли ему ссылку руками.
Магазин показывает незаконченную работу. Обновление справочника перевозчика, перенос каталога в поиск и загрузка населённых пунктов идут часами и порциями, и раньше оборвавшийся заход не оставлял следа: магазин говорил «не выполняется, не закончено, ошибок нет». Теперь такая работа попадает в «Настройки → Диагностика» строкой «Незаконченная работа» — с названием той кнопки, которой вы её запускали.
Что починили
На странице оплаты заказа под кнопкой «Счёт на оплату» стояла подпись «этот заказ оплачивается при получении». Она появлялась у любого способа, который не уводит на страницу банка, и прямо противоречила кнопке: деньги идут переводом, а не курьеру.
Магазин больше не предлагает оплатить заказ, который оплачивается при получении. Раньше ссылка на оплату была и в карточке заказа, и в письме, и в SMS, и в боте: покупатель открывал её и читал «этот заказ оплачивается при получении», а потом звонил и спрашивал, что с этим делать.
Что сделать после обновления
Обновите дополнение «Оплата по счёту» до версии 1.2.0 — без него ссылка на оплату в кабинете покупателя не появится. Если у вас стоят дополнения «Telegram» и «Нова Пошта», обновите и их: 1.12.3 и 1.4.3.
Если у вас своя тема оформления, обновите в ней страницу оплаты заказа: подпись про оплату при получении теперь включает переменная $show_offline_note, и без правки темы она останется на месте. Что доступно шаблону этой страницы — https://cartixx.com/docs/theme/data
Что починили
Суммы, цены и количества в выгрузке заказов попадали в Excel текстом: итог по колонке не считался, а сортировка по сумме шла по алфавиту — «9» оказывалось больше «44990». Теперь число лежит числом, а денежная колонка показывается как «1 234,50».
Дата заказа тоже была строкой и сортировалась по первой цифре: январь следующего года вставал перед сентябрём текущего, а отбор «с 1 по 15 число» в сводной таблице не строился вовсе. Теперь это настоящая дата, и выглядит она в файле так же, как раньше.
Номер заказа, артикул, телефон с ведущим нулём, почтовый индекс и длинный штрихкод остаются текстом. Иначе у телефона пропал бы первый ноль, а штрихкод Excel округлил бы: за пятнадцатью знаками он перестаёт хранить цифры точно.
Большая выгрузка в Excel могла не открыться совсем. Магазин записывал оформление каждой ячейки отдельной строкой списка форматов, и на десяти тысячах заказов их набиралось больше, чем Excel соглашается прочитать.
Что починили
Отбор списка заказов больше не пропадает. Менеджер отбирал заказы, открывал один из них, обновлял страницу — и список снова показывал весь магазин. Теперь выбранные признаки остаются в адресе страницы: отбор переживает обновление, а ссылкой на нужную выборку можно поделиться с коллегой.
В выгрузке характеристики брались только у товара. У товара с вариантами они чаще заполнены у самого варианта — покупатель взял флакон 50 мл, а в файл уходило значение товара или пустая ячейка. Теперь берётся значение купленного варианта.
Колонки адреса мешали друг другу: если в набор попадали и «Куда везём», и «Улица» с «Областью», часть колонок выходила пустой.
Поля получателя в файле назывались так же, как поля покупателя: «Телефон» стоял рядом с «Телефоном», и понять, где чей, можно было только по порядку колонок. Теперь они подписаны «Получатель: …».
Личный набор выгрузки уволенного сотрудника оставался в магазине и появлялся у всех остальных. Теперь он уходит вместе с ним.
Что нового
Выгрузка заказов собирается из тех полей, которые нужны именно вам. Поля разложены по группам: заказ, адрес и метки, покупатель, получатель, товар, характеристики товара. Кроме привычных номера, суммы и статуса теперь можно выгрузить дату обновления и дату оплаты, остаток к доплате, курс заказа, адрес по частям — страну, область, город, улицу, дом, квартиру и индекс, — отделение перевозчика, промокод и рекламные метки.
Поля покупателя и получателя — ровно те, которые магазин спрашивает при оформлении, включая заведённые вами. Значения берутся из самого заказа, а не из карточки покупателя: карточку правят, а заказ помнит, как было в день покупки.
Появился режим «строка на каждый товар»: заказ из трёх товаров даёт в файле три строки, а номер заказа и покупатель в них повторяются. Так выгрузку читают склад и бухгалтерия. Вместе с ним доступны поля товара — название, артикул, количество, цена, стоимость строки, скидка, склад отгрузки — и характеристики товара из вашего справочника: объём, длина, вес, всё, что заполнено.
У набора выгрузки теперь есть пояснение «зачем он» и отметка «только мой»: личный набор менеджера не показывается остальным сотрудникам. Поля в наборе ищутся по названию — их больше сотни.
В отбор списка заказов добавлены пять признаков: дата обновления, дата оплаты, номер накладной, первый заказ покупателя и товар в заказе — по названию или артикулу. Включаются они там же, где остальные, в «Настройки заказов → Отбор в списке».
Что сделать после обновления
Откройте «Настройки заказов → Отбор в списке» и включите нужные новые отборы — по умолчанию список фильтров остался прежним. Наборы выгрузки править не нужно: старые работают как работали.
Что починили
Фотография товара в редакторе заказа больше не разносит строку. Размер снимку никто не задавал, и на узком экране он занимал полэкрана, а поля количества и цены ложились поверх него.
Инициалы покупателя в карточке заказа стоят по центру кружка. Они выезжали влево-вверх и красились бледно-серым, как подпись под именем.
В карточке заказа среди кнопок перевода больше нет кнопки с нынешним статусом. Она ничего не делала, а сам статус и без того написан значком рядом с номером заказа. Остались только те статусы, куда заказ действительно можно перевести; сотруднику, которому менять статусы нельзя, ряд кнопок не показывается вовсе.
Что починили
Сумма корзины в шапке снова показывается с копейками. Её собирал браузер, и он же округлял её до целого и подписывал валюту по-своему: в шапке стояло «100 грн» там, где магазин печатал «99,50 ₴». Теперь запись приходит из магазина готовой — той же, какой сумма напечатана в самой корзине и на оформлении.
Если сумма в шапке должна быть без копеек, тема просит короткую запись сама: у элемента суммы указывается data-cart-total-header="short". В темах «Маркет» и «Промо» так и сделано.
Что нового
В личном кабинете покупатель видит и правит своё отчество. Магазин спрашивает его при оформлении, а страница профиля о нём не знала: поле в теме показывало пустоту, а сохранение молча теряло введённое. Поле добавлено во все три темы из поставки. Если у вас своя тема, добавьте в форму профиля поле с именем middle_name и значением {$profile.middle_name} — магазин его примет; тема без этого поля работает как раньше, отчество в карточке остаётся нетронутым.
Что починили
Товар из блока «Рекомендуем» на странице товара снова добавляется в корзину. Если тема ставит такой блок внутри карточки, соседние товары получали вариант открытого товара, и магазин отказывался класть их в корзину. По той же причине у соседних карточек менялась цена, когда покупатель переключал цвет или размер.
Отчество покупателя видно везде, где магазин показывает имя: в списке заказов, в карточке заказа и в личном кабинете. Имя заказа собиралось из фамилии и имени, и отчество, которое покупатель написал сам, оставалось невидимым. Заодно карточка заказа показывает менеджеру все поля, которые магазин спрашивал на оформлении, — раньше там были только имя, компания, налоговый номер, телефон и почта. У покупателя, заказывающего второй раз, отчество теперь попадает и в его карточку.
Код статуса заказа принимает дефис. Статусы, приехавшие с другой платформы, магазин называет по их названию — «udalit-admin»; такой статус нельзя было ни переименовать, ни перекрасить, потому что форма отказывала в коде, который магазин записал сам.
Что изменилось в работе
Покупатель, вошедший в личный кабинет, теперь правит свою карточку прямо на оформлении: поменял фамилию или отчество в форме заказа — так стало и в карточке. Телефоны и почты при этом добавляются к прежним, а не заменяют их. У покупателя без кабинета правило прежнее: магазин дописывает только то, чего в карточке ещё нет.
Что нового
Заказы, перенесённые с другой платформы, теперь можно связать с вашими способами оплаты и доставки. Старый магазин присылает только название способа, поэтому такой заказ не знал, чем за него платили и чем везли: покупатель не видел кнопку «Оплатить» в личном кабинете, накладная не знала про наложенный платёж, а отбор по способу эти заказы не находил. Вы один раз говорите, какой ваш способ соответствует названию из старого магазина, и магазин проставляет его всем таким заказам сразу — суммы заказов при этом не меняются. Экран связывания живёт в дополнении «Переезд с других платформ»: обновите его вместе с магазином.
Тема оформления теперь знает, какой именно способ доставки и оплаты выбран в заказе покупателя. По названию способа их не различить — вы его переименовываете и переводите, — поэтому в данные заказа добавлены номера способов: тема может показать свою подсказку у самовывоза и ссылку на отслеживание у перевозчика. Что доступно теме на странице заказа, описано здесь: https://cartixx.com/docs/theme/data
Что починили
Цвет и значок статуса заказа, которые вы выбрали в «Настройках заказов», снова видны в списке заказов, в карточке заказа и в окне печати. Список красил статусы по-своему, и ваш зелёный «В работе» со своим значком выглядел так же, как все остальные, — две настройки в форме статуса ничего не меняли.
Что сделать после обновления
Если вы переносили магазин с другой платформы, обновите дополнение «Переезд с других платформ» до версии 1.12.0, откройте раздел «Переезд» и свяжите способы оплаты и доставки — там появится список названий из ваших перенесённых заказов.
Что починили
Товар, распроданный в старом магазине, после переезда попадал в каталог как товар без учёта остатка — то есть продавался как всегда доступный, и магазин набирал заказы на то, чего на складе нет. Пустой остаток означает у нас именно «остаток не ведём», а ноль означает «нет в наличии»; перенос эти два случая путал и нулевые остатки терял.
Что сделать после обновления
Если вы уже перевозили каталог со старого магазина, откройте перенос и прогоните шаг «Товары» ещё раз. Он допишет потерянные нулевые остатки и больше ничего не тронет: цены, фотографии и заказы останутся как были, а в журнале склада не появится лишних записей.
Что нового
Покупатель видит в личном кабинете весь свой заказ, а не только номер, дату и сумму. В карточке заказа появился состав с фотографиями товаров и ссылками на них, услуги к каждой позиции и старая цена, а под составом — вся разбивка суммы: товары, услуги, скидка, доставка, налог и оплата баллами. Строки складываются в итог до копейки, поэтому покупатель может проверить счёт сам и не пишет вам с вопросом «почему столько».
Рядом со статусом заказа теперь стоит состояние оплаты: «Оплачен», «Ожидает оплаты», «Оплачен частично». Его же видно в списке заказов и в сводке кабинета вместе с остатком к доплате — раньше покупатель открывал заказы по очереди, чтобы понять, за какой он ещё должен. Если заказ оплачивается через банк и деньги ещё не пришли, в карточке появляется кнопка «Оплатить», и покупателю не нужно разыскивать письмо со ссылкой.
Магазин показывает покупателю и всё, что тот о себе указал при оформлении: контактные данные, реквизиты компании, другого получателя вместе с его реквизитами, адрес доставки целиком — с областью, индексом и выбранным отделением, — просьбу перезвонить, номер накладной, время оформления и время оплаты. Поля называются теми же словами, которыми вы назвали их в разделе «Оформление заказа».
Названия сработавших скидок и промокод покупатель тоже видит: он понимает, за что ему снизили цену, а не разглядывает строку «Скидка −150 ₴» без объяснения.
Что сделать после обновления
Если вы работаете на своей теме оформления или на копии поставляемой, перенесите в неё страницу заказа и список заказов из обновлённых тем. Своя тема обновляется отдельно, и без этого новые данные покупателю не покажутся.
Что именно теперь приходит теме — поля заказа, состав с фотографиями, покупатель, другой получатель, адрес с отделением и история статусов — расписано с примерами разметки здесь: https://cartixx.com/docs/theme/data
Что нового
Магазин показывает, сколько товаров стоит за каждой характеристикой и за каждым её значением, и умеет отобрать те, за которыми не стоит ничего. Справочник растёт с каждым переездом и каждой загрузкой прайса, и отличить заведённое «на пробу» от того, на чём держится каталог, раньше было нечем.
Дубли теперь объединяются, а не удаляются. Две характеристики про одно и то же — «Цвет» и «Цвет товара» — или два написания одного значения — «Красный» и «красный» — сводятся в одну запись: товары переезжают на неё сами, вместе с ними переезжают условия подборок, правил скидок, фильтров раздела и подбора похожих товаров, а карточка бренда сохраняет описание и логотип. Объединять можно характеристики одного вида и с одинаковым способом ввода значений; системные характеристики магазин не трогает.
В разделе «Типы товаров и характеристики» появился экран «Значения справочников». Он ищет значение сразу по всем характеристикам: вы помните слово «Красный», а магазин показывает, в каких характеристиках оно живёт, в каких типах товаров встречается и сколько товаров за ним стоит. Отсюда же убираются пачкой значения, за которыми нет ни одного товара.
Значения добавляются списком. Вставьте столбец из таблицы — по одному значению в строке, — и магазин заведёт их разом, пропустив пустые строки и повторы. Для цвета код можно дописать прямо в строке: «Красный #ff0000».
Код характеристики магазин пишет сам из её названия, пока вы не поправите его вручную.
Что починили
Значение, за которым стоят товары, магазин больше не предлагает удалить. Раньше окно подтверждения обещало, что за значением не стоит ни одного товара, и только после нажатия отказывало. Теперь сразу видно, сколько товаров на нём держится, и предложено объединить его с другим значением.
Числа в сообщениях согласованы со словом: «стоит у 1 товара», а не «у 1 товаров».
Что нового
Подборку товаров и динамический раздел теперь можно собрать по числу: объёму, весу, длине — по любой характеристике, которая заполнена у товаров числом. Условие задаётся границами «от» и «до», рядом с названием характеристики стоит её единица, чтобы не гадать, миллилитры это или литры. На таких же условиях работают цели акций и каталожных скидок, поэтому акцию «на всё объёмом 30 мл» стало чем задать — раньше её нельзя было составить вовсе.
Магазин перестал спрашивать у характеристики формат раньше её вида. Числовая характеристика ведёт себя как число всюду: в массовом изменении, в загрузке прайса, при переезде с другой платформы и в отборе товаров.
Что починили
Массовое изменение записывало числовой характеристике значение из списка вместо числа. Владелец отмечал сто флаконов, выбирал объём «10» — и магазин запоминал не число, а строку справочника: на витрине пропадали миллилитры, а группа аксессуаров «к флаконам 10 мл» такие товары не находила. Теперь у числовой характеристики в форме поле для числа с единицей, а магазин не примет ссылку на справочник, откуда бы запрос ни пришёл.
Загрузка прайса заводила в справочнике новые значения из чисел: после каждой загрузки объём исчезал с витрины, а список значений рос мусором вроде «10», «12,5». Теперь такая ячейка читается числом.
Динамический раздел с условием по объёму оставался пустым, а фильтр каталога показывал одну характеристику дважды — списком, где у всех значений ноль товаров, и ползунком.
Отмена массового изменения не работала для чисел: магазин сверял записанное с тем, что лежит у товара, значения расходились в мелочи, и отмена молча пропускала все товары.
Объём и вес уходили в выгрузку и в файл для площадки как «10.000000» и без единицы. Теперь в файле стоит «10», а единица передаётся отдельным полем — площадка сама подписывает «10 мл». В списке товаров и на печатной этикетке значение тоже показывается с единицей, а характеристика «да/нет» — словом вместо галочки.
Поиск находил товар по характеристике, только если значение выбрано из списка. Число не искалось вовсе, и это било по починке каталога: пока объём лежал ссылкой на справочник, поиск по «30 мл» работал, а после перевода в число переставал.
Что сделать после обновления
Если ваш каталог переезжал с другой платформы, откройте «Настройки → Диагностика» и посмотрите проверку числовых характеристик: она стала находить и те случаи, которые пропускала раньше. Нажмите «Починить», а потом проверьте условия групп аксессуаров, разделов и подборок по объёму и весу — их нужно задать числом.
Если вы пользуетесь выгрузкой на площадки, обновите дополнение «Универсальный XML-фид»: единица измерения уходит в файл только с ним. Владельцам дополнения «Ценники и этикетки» стоит после обновления посмотреть свои макеты — значение стало длиннее на единицу измерения, и на узкой наклейке ему может не хватить места.
Что нового
В «Диагностике» появилась проверка числовых характеристик. Она находит характеристики вида «число», у которых значения заданы списком — так магазин выглядит после переезда с другой платформы, где объём или вес выбирались из готового перечня. Магазин показывает, какие это характеристики и сколько записей у товаров он может перевести в число, и чинит их кнопкой «Починить»: ни консоль, ни расписание для этого не нужны.
Значения, которые числом не читаются («без объёма», «по запросу»), магазин не трогает и говорит, сколько их осталось. Придумывать за вас число он не станет — такие товары вы правите сами в карточке.
Что починили
После переезда с Webasyst числовая характеристика приезжала списком значений, из-за чего каталог разъезжался: у части товаров объём лежал числом, у части значением из списка. В карточке товара поле стояло пустым и предлагало выбрать значение, а группа аксессуаров с условием по объёму не показывалась ни на одном товаре. Теперь переезд сразу сопоставляет тип характеристики и заводит числовую характеристику с вводом числа.
Что сделать после обновления
Если ваш каталог переезжал с другой платформы, откройте «Настройки → Диагностика» и посмотрите проверку числовых характеристик. Нашла беду — нажмите «Починить», после этого проверьте условия групп аксессуаров по объёму и весу.
Что починили
Числовая характеристика в карточке товара показывает своё значение. Объём, вес, длина, мощность приходят из магазина дробным числом, и поле их не принимало: на витрине «Об'єм 10 мл» выводился, а в карточке стояло пусто, будто характеристика не заполнена.
Характеристика вида «число», у которой заведён ещё и список значений, теперь везде спрашивает число. Раньше карточка товара рисовала для неё выпадающий список и писала «Выберите значение», хотя значение у товара было, а в условиях группы аксессуаров такую характеристику нельзя было задать числом — владелец выбирал значение из списка, которого у товаров нет, и группа не показывалась ни на одном товаре.
Что сделать после обновления
Если вы задавали группе аксессуаров условие по объёму, весу или другой числовой характеристике — откройте группу и задайте его заново: теперь там поля «от» и «до». Чтобы предложить пипетки к флаконам 10 мл, напишите 10 в обоих.
Что нового
Группу аксессуаров теперь можно привязать по объёму, длине или весу — по любой характеристике, которая у товаров заполнена числом. Чтобы предложить пипетки только к флаконам 30 мл, выберите характеристику объёма и напишите 30 в полях «от» и «до». Одну границу можно оставить пустой: «от 50» значит 50 и больше. Раньше условие принимало значения только списком, и по объёму или весу задать группу было нечем.
Группу можно убрать у одного товара, даже если она пришла правилом — по типу товара, категории или характеристике. Магазин запоминает решение по этому товару: правило и остальные товары остаются как есть, а убранная группа показана в списке отдельно и возвращается одной кнопкой.
Что починили
Группа с двумя условиями показывалась на товаре, у которого совпало хотя бы одно из них: пипетки для флаконов 30 мл предлагались и к 50, и к 100 мл. Теперь товар обязан подойти под все условия сразу. Значения одной характеристики по-прежнему остаются вариантами на выбор — «объём 30 или 50».
Что сделать после обновления
Откройте свои группы аксессуаров и проверьте условия по объёму и весу: их нужно задать заново числом, а не значением из списка.
Условия группы аксессуаров по характеристикам сужают друг друга
Группа сопутствующих товаров с двумя условиями — например «Объём 30» и «Тип горловины DIN18» — показывалась на любом товаре, у которого совпало хотя бы одно из них. Из-за этого пипетки для флаконов 30 мл предлагались и к флаконам на 50 и 100 мл: второе условие ничего не сужало.
Теперь условия читаются так, как написано на экране. Значения одной характеристики остаются вариантами на выбор («объём 30 или 50»), а разные характеристики складываются вместе: товар обязан подойти и по объёму, и по типу горловины. Товар, у которого такой характеристики нет вовсе, под условие не подходит.
Группу аксессуаров можно убрать у одного товара
Группа сопутствующих товаров попадает в карточку не только точечно: её вешают на тип товара, на категорию, на значение характеристики. Убрать такую группу у одного товара было нечем — оставалось либо менять правило для всего каталога, либо мириться с лишним блоком.
Теперь в карточке товара, в разделе «Аксессуары», убрать можно любую группу, откуда бы она ни пришла. Магазин запоминает решение по этому товару: правило и остальные товары остаются как есть, а убранная группа показана отдельно — её можно вернуть одной кнопкой.
Перенос магазина рассказывает о языках
Переезд теперь помнит не только числа («нашли 824 товара»), но и то, что источник знает о старом магазине: на каких языках заполнено содержимое и сколько там переводов. Эти сведения видны и при проверке связи, и всё время, пока идёт перенос, — даже если вы закрыли вкладку и вернулись позже.
Раньше о языках приходилось догадываться: перенос показывал только «перенесено 500 из 824», и приедут ли переводы, понять было нельзя.
Перенос магазина берёт фотографии с диска
Раньше при переезде фотографии всегда скачивались со старого сайта, а сайт отдаёт только уменьшенную копию: оригиналы лежат в закрытой папке и по сети недоступны. Теперь, если файлы старого магазина доступны — он стоит на этом же сервере или рядом с ним лежит файл-мост, — перенос берёт оригинал прямо с диска. Фотографии приезжают в полном размере и заметно быстрее.
Заодно обновление магазина обновляет и экраны установленных дополнений: раньше после обновления версия дополнения в списке была новая, а его экран открывался прежний.
Магазину нужен PHP 8.4
Магазин теперь прямо называет версию PHP, на которой он работает: 8.4 или новее. Это указано в требованиях, на экране установки и в проверке магазина. Раньше на старой версии установка обрывалась служебным сообщением, по которому нельзя было понять ни что случилось, ни что делать дальше.
Если магазин всё же откроют на старой версии, вместо пустого экрана откроется страница с объяснением: какая версия стоит на сервере сейчас, какая нужна и как переключить её в панели хостинга. Данные магазина при этом в порядке — он просто не запускается на старой версии.
Перенос магазина показывает, что происходит
Экран переезда говорил «идёт перенос» и больше ничего: на чём магазин сейчас, сколько уже перенесено и работает ли вообще что-нибудь — понять было нельзя. Теперь над кнопками стоит текущий шаг с номером («Шаг 4 из 7 — Товары и артикулы»), полоса выполнения, сколько записей перенесено из скольких найденных, сколько идёт перенос и сколько записей не прошло. Ниже — все этапы: пройденные с галочкой, текущий и те, что ждут очереди, каждый со своим счётчиком.
Объём работы магазин узнаёт на шаге подключения — там, где вы видите «нашли 824 товара, 78 категорий». Раньше эти числа терялись сразу после проверки связи, теперь переезд их помнит и по ним считает долю.
История заказов: отбор и страницы
У постоянного покупателя заказов набираются сотни, и одной страницей список превращался в простыню. Теперь заказы разбиты на страницы, а над списком стоит отбор: способ доставки, способ оплаты, статус заказа и даты «с» и «по». Выбирать можно только из того, что встречается в его собственных заказах — предлагать перевозчика, которым он никогда не пользовался, незачем.
Список перерисовывается на месте, без перезагрузки страницы, а выбранное остаётся в адресе: такую ссылку покупатель может сохранить или вернуться к ней кнопкой «назад». Отбор ведёт сам магазин, а разметку рисует тема — он работает и в теме, написанной кем-то ещё.
Заказы в кабинете покупателя стали понятнее
Список заказов теперь отвечает на вопросы, ради которых покупатель туда и заходит: рядом с номером стоят способ доставки и оплаты с логотипами, число позиций, номер накладной и оставленный комментарий. То же самое в карточке заказа. История заказа называет статусы словами — раньше там стояли служебные коды вроде «processing». Сумма в списке остаётся в валюте, в которой покупатель платил, а из номера ушла лишняя решётка. Значок текстовой страницы виден в меню и в подвале.
Оформление заказа объясняет отказы по-человечески
Незаполненный город раньше давал «Поле address.city обязательно для заполнения» — теперь «Укажите город». Так же со способом доставки, оплаты и согласием с условиями. Текст, пришедший в неизвестной кодировке, магазин отклоняет понятной ошибкой вместо того, чтобы упасть уже на сохранении заказа.
Мелочи, которые мешали
Артикул чужого товара больше не попадает в корзину молча — магазин отвечает отказом. Ссылка на предложенный аксессуар открывает именно тот вариант, который предложили. Значок сайта принимается и в формате .ico, который панель предлагала выбрать. Журналы SQL-запросов, почты и уведомлений стали дневными и подчищаются сами: включённая и забытая запись запросов набирала гигабайты и забивала диск.
Заказы в личном кабинете рассказывают о себе
Покупатель заходит в кабинет с двумя вопросами: где мой заказ и чем я платил. В списке заказов до сих пор были только номер, дата, статус и сумма — за остальным приходилось открывать каждый заказ. Теперь и список, и карточка заказа несут доставку и оплату (название способа и его логотип), комментарий, который покупатель оставил при оформлении, число позиций и номер накладной, по которому он следит за посылкой у перевозчика.
Логотип загружается у самого способа, в разделе «Оплата и доставка»: покупатель узнаёт перевозчика и платёжную систему по знакомому значку быстрее, чем по названию. Подойдёт SVG или небольшой PNG.
Магазин принимает SVG в логотипах и значках
Значки и логотипы обычно рисуют в SVG: он не мылится на плотных экранах и весит мало. Магазин такие файлы отвергал: сохранённый графическим редактором SVG начинается со служебного комментария, и сервер считает его обычным текстом — владелец видел «недопустимый формат» на совершенно нормальной картинке. Теперь SVG принимается везде, где загружается картинка магазина: логотипы и оформление, значок категории для меню, значок характеристики, логотип бренда.
Файл при этом хранится вычищенным: скрипты и обращения к чужим серверам из него удаляются, а если редактор не написал пространство имён, магазин дописывает его сам — без него браузер такой значок просто не рисует.
Значок у текстовой страницы
У страниц «Доставка», «Оплата», «Контакты» появился свой значок — загружается в карточке страницы. Тема получает его вместе со страницей и может подписать им пункт меню и ссылку в подвале.
У предлагаемого аксессуара виден артикул
Названия сопутствующих товаров бывают похожи до неразличимости — «Крышка твист 82» и «Крышка твист 82 SL» отличаются одним значком. Теперь под названием каждого аксессуара стоит его артикул: и в окне, которое магазин показывает после покупки из каталога, и в блоке «соберите комплект» на карточке товара. Артикул именно того варианта, который предлагается к покупке.
Тема получает артикул вместе с остальными данными аксессуара и может расположить его по-своему.
Окно аксессуаров показывает товар, к которому их предлагают
Покупатель нажимает «В корзину» в списке товаров, и окно с сопутствующими накрывает карточку — понять, к чему ему предлагают крышку или чехол, было уже не по чему. Теперь в шапке окна стоят снимок, название и артикул товара, который он только что положил. Показывается именно выбранный вариант: взяли синий — в окне синий, со своим фото и своим артикулом.
Тема получает эти данные и рисует их по-своему, если ведёт окно сама. Подпись «Вы добавили: …» остаётся там, где показывать нечего — у товара нет ни снимка, ни артикула.
Из корзины можно вернуться к товару
Покупатель кладёт товар из подборки, а потом хочет посмотреть его состав, фотографии или отзывы — и до сих пор искал его заново поиском. Теперь название и фотография позиции в корзине после добавления ведут на карточку товара: и в корзине, которая выезжает сбоку, и в той, что всплывает окном по центру. Ссылка открывает именно выбранный вариант — положили синий, откроется синий.
То же самое на странице оформления заказа: название позиции в составе заказа стало ссылкой, и покупатель проверяет покупку, не теряя заполненную форму. Товар, снятый с продажи, остаётся в корзине обычным текстом — битых ссылок не появляется.
Название группы аксессуаров теперь переводится
Заголовок блока «соберите комплект» покупатель читает прямо в карточке товара, а название у группы было одно на все языки: украинская витрина показывала русское, и поправить его было негде. Теперь названия групп переводятся в разделе «Настройки → Локализация» новым блоком «Аксессуары» — там же, где вы переводите характеристики, услуги, поля покупателя и статусы заказов.
На экране аксессуаров название по-прежнему пишется одним полем, на вашем языке, а остальные переводы остаются как были. Группу, которую ещё не перевели, покупатель видит названием основного языка магазина, а не пустым заголовком. Заодно раздел «Локализация» перестал закрывать открытую запись после сохранения — раньше казалось, что перевод не сохранился.
Заказ больше не упирается в «слишком много попыток»
Магазин считал частоту запросов одним числом на весь сайт: пересчёт доставки, подсказки города и само оформление складывались вместе, а срабатывал самый строгий предел. Покупатель менял адрес и способ доставки десяток раз — это обычное поведение на оформлении, — нажимал «Оформить заказ» и получал отказ. Теперь у каждого действия свой счёт, и пересчёты не мешают оформить заказ. Правило действует и на дополнения: их адреса тоже считаются отдельно.
Если запросов действительно оказалось слишком много, магазин объясняет это на своём языке и говорит, через сколько секунд повторить, вместо английской служебной строки на кнопке оформления.
Способ доставки больше не подменяется молча
Покупатель выбрал способ доставки, а при пересчёте он пропал — так бывает, когда перевозчик не везёт по этому адресу или не отвечает его сервис. Раньше магазин тихо подставлял соседний способ и менял сумму, и человек доходил до кнопки «Оформить» с доставкой, которую не выбирал. Теперь на оформлении появляется строка с объяснением: какой способ стал недоступен и что выбор нужно проверить. Текст даёт сам магазин, поэтому он появится в любой теме, в том числе написанной раньше.
Ошибка внутри дополнения перевозчика больше не роняет страницу оформления заказа. С продажи снимается только этот способ, остальные продолжают работать, а причина записывается в журнал магазина.
Работа дополнения начинается сразу
Кнопка в дополнении ставила работу в очередь и на этом всё. Очередь на обычном хостинге разбирается раз в минуту, а если планировщик не настроен — не разбирается вовсе, и работа не начиналась никогда. Теперь её выполняет тот же браузер, из которого вы нажали: результат виден сразу. Закрыли вкладку — работу доделает планировщик, как и раньше.
Видно, что у дополнения в базе
Рядом с кнопкой теперь написано, сколько записей в справочнике и когда их загружали. Пустой справочник назван пустым: подсказка города в таком магазине не работает вовсе, и об этом лучше прочитать, чем догадываться.
Название блока дополнение задаёт само: вместо общего «Действия» — «Справочник населённых пунктов» и объяснение, что здесь делают.
Видно, что происходит с работой дополнения
Вы нажимали кнопку в дополнении — «Обновить справочник», «Загрузить курсы», — и рядом висело «В очереди…», без единого пояснения и без конца. Понять, ждать или чинить, было нельзя.
Теперь рядом с кнопкой видно, сколько работа ждёт очереди, а если ожидание затянулось — магазин прямо говорит, что очередь не разбирается, и куда посмотреть. Пока работа идёт, она рассказывает о себе сама: «записано 12 000…».
Перенос с другой платформы сам замечает удалённые записи
Перенос помнит, что уже перенёс, и второй раз те же записи не создаёт. Если перенесённое потом убрали — сбросили магазин, почистили каталог, удалили товар руками, — эта память начинала мешать молча: справочники и товары значились перенесёнными и заново не создавались, а всё, что на них ссылается, не переносилось вовсе. Со стороны перенос при этом выглядел нормальным.
Теперь перед запуском перенос сверяет свою память с магазином: запись, которой больше нет, из памяти убирается и создаётся заново — как в первый раз. Ничего нажимать для этого не нужно.
Магазин после полного сброса начинается с первого номера
Сброс удалял записи, но счётчик номеров оставался прежним: магазин с восемью сотнями товаров и десятками тысяч заказов после полного сброса заводил первый товар под номером 825, а первый заказ — под 65925. Номер заказа вы показываете покупателю, и начинать с середины незачем.
Полный сброс теперь режет таблицы начисто, и нумерация идёт с первого номера. Выборочный сброс работает как прежде: там связи между записями и делают работу — в оставшемся заказе ссылка на удалённый товар обнуляется, остатки уходят вслед за артикулом.
Сброс магазина больше не уносит чужие картинки
Сброс чистил медиатеку целиком, а лежат в ней снимки всего магазина: слайды баннера, логотипы марок, изображения страниц. Владелец сбрасывал каталог и обнаруживал, что заодно пропали ранее загруженные слайды. Теперь уходят только картинки того, что вы отметили к сбросу.
Сброс убирает и память переноса с другой платформы. Она помнит, что уже перенесено, и после сброса начинала мешать: товары «уже перенесены» и в отчёте ноль, а заказы не доезжают — их позиции ссылаются на удалённые товары. Заодно перенос стало можно забыть кнопкой, не дожидаясь сброса.
Звук уведомлений вернулся
В разделе «Уведомления» появился пункт «Звук уведомлений»: включить сигнал, выбрать, о чём предупреждать, и загрузить свой звук для каждого события — заказ и заявку на звонок теперь слышно по-разному. Настройка личная, у каждого сотрудника своя. Панель снова подаёт сигнал, когда приходит новое событие.
Отделения перевозчиков стали видимыми
Дополнения доставки теперь могут показать покупателю больше, чем одно название точки: под ней помещается вторая строка — например, до скольки отделение работает сегодня и его телефон. Поля способа доставки научились подсказывать значения из справочника перевозчика прямо во время набора и объяснять, чего они ждут.
Страница «не найдено» больше не роняет витрину
Если в оформлении темы нет своей страницы для несуществующего адреса или в ней ошибка, магазин показывает свою — с понятным текстом и правильным ответом для поисковых систем. Раньше в этом случае покупатель мог получить страницу ошибки, а поломка шаблона не всплывала нигде; теперь она попадает в журнал.
Тема знает тип товара
Оформление карточки теперь можно менять по типу товара: тема получает и название типа, и его код, и номер — и на странице товара, и на плитке в каталоге, поиске, избранном и сравнении. Условие в разметке пишется по коду типа, тому самому, который вы задаёте в редакторе типа товара. Раньше теме доставалось только название, и разметка, опиравшаяся на тип, могла оставить покупателя без страницы товара.
Там же появился код характеристики — в вариантах покупки и в строках сравнения. Теперь тема отличает «цвет» от «размера» и оформляет их по-разному.
Правка темы видна сразу
Сохранение файла темы в разделе «Дизайн» само сбрасывает подготовленные шаблоны и кеш страниц витрины. Раньше правка могла не появиться на сайте, и выглядело это как сломанный редактор.
Исходный код в текстовом редакторе (кнопка «</>») снова открывается редактором кода с подсветкой разметки. Он держится в границах поля, переносит длинные строки и следует светлому или тёмному оформлению панели.
Фотография товара в корзине
Корзина, которая открывается после «В корзину», теперь показывает снимок каждой позиции — именно того варианта, который выбрал покупатель. Тот же снимок стоит на странице корзины и на шаге оформления, поэтому по дороге к заказу картинка не меняется.
Корзина показывается так, как решите вы
В оформлении появилась настройка «Как показывать корзину после добавления»: сбоку, выезжающей панелью, или окном по центру экрана. Состав и кнопки одинаковые, отличается только подача. Саму корзину теперь рисуют обычные шаблоны оформления, поэтому её вид меняется правкой вёрстки, а не программированием.
Восстановление из копии доводится до конца
Если восстановление сорвалось, магазин возвращается к тому состоянию, в котором был, и больше не остаётся закрытым на обслуживание. Старые копии убираются по заданному сроку хранения, а настройки подключения при переносе на другой сервер можно взять из самого архива.
Проверки состояния магазина стали честнее
Раздел «Диагностика» больше не пугает старыми записями: очередь задач считается по свежим, доступность фотографий проверяется настоящим запросом, а сам раздел открывается даже после смены ключа приложения.
Мелочи
В разделе «Дизайн» снова прокручивается список файлов оформления — до нижних файлов можно добраться.
Сброс магазина по частям
Раньше кнопка «Сбросить магазин» убирала всё разом, вместе с настройками: витринами, способами оплаты и доставки, бланками документов, реквизитами продавца. Теперь вы отмечаете, что именно убрать — каталог, покупателей, заказы, скидки, склады или статистику — и видите объём каждой части до нажатия. Настройки магазина остаются на месте при любом выборе, поэтому можно убрать, например, только пробные заказы и работать с собранным каталогом дальше.
Восстановление из копии стало безопаснее
Если восстановление большой базы не успевало за отведённое время, магазин оставался закрытым с табличкой «идут работы» — снять её можно было только из консоли. Теперь этого не случится. Копия переливается из хранилища потоком, поэтому большие резервные копии больше не упираются в предел памяти, а после восстановления магазин сам сбрасывает страницы витрины и перезапускает фоновые задачи. Если копия сделана на более новой версии магазина, вы увидите предупреждение.
Товары и витрина
Товар из архива теперь можно удалить прямо из списка товаров — раньше это было доступно только через массовые изменения. В отборе товаров появился тип товара. Витрина больше не отказывается сохраняться из-за языка, который убрали из магазина: такой язык убирается из витрин сам.
Панель управления работает с телефона и планшета
Панелью теперь можно пользоваться с любого экрана. Разделы «Маркетинг», «Рассылки», «Акции», «Подарки», «Оптовые цены», «Отчёты», «Банкинг», «Настройки» и системные страницы перестроены под узкий экран: длинные строки складываются в карточки, где сверху стоит название, а под ним — суммы, сроки и кнопки. Открытая запись сама подводится к глазам, поэтому нажатие на строку больше не выглядит так, будто ничего не произошло.
Правка артикулов в списке товаров помещается на экран ноутбука целиком: раньше колонки с остатком и состоянием оставались за краем, а на телефоне были видны только название и код. На узком экране каждый артикул показывается карточкой с кодом, ценами и остатком.
Реестр операций банкинга показывает сумму сразу, без прокрутки вбок. Отчёты складывают числа по два в ряд, а таблицу показывают карточками с подписями колонок. Каталог дополнений читается на телефоне: название целиком, описание во всю ширину, кнопки под ними.
Отдельно исправлены названия на графиках: воронка продаж и отчёт по товарам показывали нули вместо «Просмотр товара», «В корзину» и названий товаров. Подписи под графиками больше не слипаются в сплошную ленту. Раздел «Логирование» назван «Журналы» — как и заголовок внутри него.
Склад в строке заказа и правка номера базы кеша
В строке списка заказов у каждого склада теперь своё число — сколько товара уходит именно с него. Раньше стояло общее количество позиций и буквы складов без чисел, и собирающему это ничего не говорило: непонятно, что откуда брать. Общий счётчик при включённых складах больше не показывается, а в подсказке — название склада, количество и в скольких позициях заказа.
Номер базы Redis и порт больше не отклоняются при сохранении. Магазин отвечал «Поле settings.REDIS_CACHE_DB должно быть строкой» ровно тогда, когда владелец сам правил номер, — настройки хранилища лежат в файле окружения строками, а панель присылала число. Заодно порт перестал показываться как «6 379»: разряды в номере порта разделять незачем.
Исходный код в редакторе, настройки списка заказов и проверка Redis
Кнопка «</>» в текстовом редакторе открывала разметку кодовым редактором панели — тем же, которым правят шаблоны темы: он занимал всё поле и вымахивал далеко за его границы. Теперь разметка показывается обычным полем внутри редактора, ровно в тех же границах, что и текст.
Настройки строки списка заказов заработали и в рабочем столе. Раньше «Красить строку в цвет статуса», склад отгрузки, способ доставки и оплаты читала только таблица, а рабочий стол показывал одно и то же независимо от них. Открытый заказ и заказ с заминкой цветом статуса не красятся: у них левая полоса занята своим смыслом.
Проверка соединения с Redis отвечала «Redis не отвечает» в магазине, который уже работает на Redis. Теперь проверка поднимает своё соединение и на нём же пишет и читает пробное значение, а недоступный сервер отвечает понятной ошибкой, а не молчанием. В настройках хранилища поля встали в одну колонку, и заданный пароль виден по самому полю.
Текст для покупателя набирается редактором
Описание категории и товара, текст страницы, рассказ о бренде, подборку и тег вы теперь пишете в редакторе, а не в поле с разметкой. Есть заголовки и списки, выделение, выравнивание, таблицы и цитаты, ссылки с выбором «открывать в новой вкладке» и «не передавать вес». Картинку можно загрузить прямо из окна редактора и сразу задать ей подпись для поиска, ширину и ссылку. Кому привычнее править разметку руками — кнопка «</>» показывает исходный код с подсветкой.
В текст можно вставить готовый кусок витрины: карусель, подборку товаров, блок дополнения. Вставка живёт отдельным блоком, в тексте показывается плашкой, а покупатель видит готовый результат.
Заодно исправлено: рассказ о бренде, текст подборки и текст страницы тега показывались как есть, вместе с разметкой; описание для поисковика бралось из текста страницы вместе с тегами; у подборки товаров текст страницы на основном языке магазина негде было написать.
Ключ страницы магазин ставит сам
Чтобы запрос из браузера прошёл, странице нужен ключ — без него покупатель нажимает «В корзину», а магазин молчит. Раньше этот ключ ставила тема отдельной строкой в разметке, и забыть её было проще простого: тема выглядела рабочей, а корзина не наполнялась.
Теперь ключ печатает сам магазин и отдаёт его скриптам вместе с остальными настройками витрины. Темам поставки строка больше не нужна, а тема, написанная по прежней инструкции, продолжает работать как раньше. Что именно приходит скриптам, описано в справочнике: https://cartixx.com/docs/theme/behavior
Тема ведёт окно аксессуаров, а настройки витрины приходят одним объектом
Окно «возьмите к этому», которое магазин показывает после покупки из каталога, теперь может рисовать сама тема: положите в неё templates/partials/accessories-popup.html, и магазин нарисует окно по вашему шаблону, оставив за собой поведение — выбор, живой итог, добавление в корзину. Оформление и поведение тоже забираются своими файлами. Шаблона в теме нет — окно собирает магазин, как и раньше, поэтому тема, написанная кем-то ещё, ничего не теряет. Надписи окна берутся из словаря темы, так что владелец правит их там же, где остальные тексты витрины.
Адреса действий магазина тема больше не прописывает руками. Раньше на теге body висели пятнадцать data-атрибутов: половина из них ничего не делала, а забытый ломал корзину молча. Теперь магазин печатает объект window.CartiX — адреса уже с языковым префиксом витрины, валюта, раздел страницы и настройки окна аксессуаров. Темы, написанные по прежней инструкции, продолжают работать. Как этим пользоваться, описано в справочнике: https://cartixx.com/docs/theme/behavior
Выгрузка заказов перестала упираться в память на колонке «Состав заказа». Позиции читались все сразу, и на магазине с большими заказами файл не собирался вовсе. Теперь состав собирается построчно, а из базы поднимается только то, что просят выбранные колонки — выгрузка стала втрое быстрее и не зависит от числа позиций в заказе.
Окно набора экспорта больше не белеет. Включив колонку у нижнего края длинного списка, вы получали пустое окно, из которого было не выбраться, — теперь окно остаётся на месте.
Порядок характеристик из типа товара теперь соблюдается на сайте
Вы расставляете характеристики мышью внутри типа товара — «Предназначение» вторым у банок, десятым у бутылок, — и раньше этот порядок оставался только в панели: сайт показывал характеристики в общем порядке справочника. Теперь порядок типа соблюдают страница товара, плитки в каталоге и подборках, переключатель вариантов покупки и сравнение товаров. Характеристики, отмеченные «для всех типов», идут следом — так же, как панель показывает их в конце списка типа.
У характеристики появился значок
В редакторе характеристики можно загрузить картинку — гирьку у «Веса», щит у «Гарантии». Подходят PNG, JPG, WebP и SVG до 2 МБ; растровый магазин уменьшает сам, SVG остаётся чётким на любом экране. Значок появляется рядом с названием характеристики в карточке товара. Если вы делаете свою тему, адрес значка приходит в поле icon: https://cartixx.com/docs/theme/features
Панель управления в этом выпуске окончательно перестала уезжать вбок на телефоне: поправлены разделы настроек и системный, а плиточные сетки во всей панели больше не могут распереть страницу.
Каталог и покупатели открываются с телефона
Список товаров с телефона был почти бесполезен: страница уезжала вбок на полтысячи точек, и видно было только снимок и название — цену, остаток и состояние приходилось искать прокруткой вправо. Теперь на узком экране строка складывается в карточку: сверху снимок, название и кнопка действий, ниже по строке на каждую колонку с её подписью. Колонки остаются вашими: что вы выбрали показывать в списке, то в карточке и появится, включая характеристики.
Так же сложились покупатели и заказы в карточке покупателя, а журнал движений остатка оставляет на телефоне главное: когда, что произошло, на сколько и сколько стало. Раздел «Категории» больше не уезжает вбок вместе с кнопкой «Сохранить», когда открыта правка.
Вы решаете, как часто предлагать аксессуары
Окно с аксессуарами после покупки из каталога показывалось один раз на товар за визит, и понять это со стороны было нельзя: вы добавляете товар — окно появляется, добавляете его же ещё раз — ничего. Теперь в настройках аксессуаров есть выбор: предлагать на каждую покупку, один раз на товар за визит (как было, остаётся по умолчанию) или один раз за визит. Когда проверяете окно сами, поставьте «на каждую покупку» — оно будет приходить всегда.
Кнопка «Назначить аксессуары» в списке товаров больше не исчезает, если вы нажали «Выбрать все найденные»: теперь группу можно назначить всему отбору сразу — например, всем светильникам каталога. Этой же кнопкой привязки снимаются со всего отбора. Как всё это настраивается, подробно описано в справочнике: https://cartixx.com/docs/catalog/accessories
Контакты, сотрудники и права открываются с телефона
Разделы CRM продолжили работу над панелью на небольших экранах. Списки контактов, полей карточки и сотрудников были таблицами шириной около тысячи точек: на телефоне и планшете они уезжали вбок, и до телефона человека, переключателя поля или роли сотрудника приходилось листать вправо. Теперь строка складывается в карточку — всё видно сразу, а полная таблица возвращается на широком экране.
Заодно поправлена шапка любого экрана панели: кнопки уходят под заголовок сами, когда рядом с ним уже не помещаются, — раньше на планшете название сжималось в две строки, подпись под ним обрывалась на середине, а подпись кнопки рвалась пополам. В ролях выбранная роль сама подводится к глазам: на телефоне права стоят под списком, и нажатие выглядело так, будто ничего не произошло.
Полоса сводки над списком встала ровно на телефоне
В разделах «Брошенные корзины», «Заявки на звонок» и «Уведомления о поступлении» полоса сводки над списком разъезжалась на узком экране: главная строка занимала левую половину, а числа рядом с ней вставали узкой лесенкой. Теперь полоса складывается — сверху главная строка во всю ширину, под ней три числа в ряд.
Заодно эта строка перестала обрезаться многоточием: на телефоне из-за него пропадал сам смысл предложения.
Панель управления открывается с планшета и телефона
Панелью теперь можно пользоваться не только за компьютером. Раньше на узком экране список разделов пропадал: зайдя в сводку с планшета, вы не могли уйти ни в заказы, ни к покупателям. Теперь он выезжает по кнопке в шапке и по значку слева, а закрывается сам, как только вы выбрали раздел.
Разделы «Дашборда» перестроены под небольшие экраны. Сводка сама решает, сколько плиток и колонок поставить в ряд, — на ноутбуке с узким окном она больше не выглядит телефонной. Рабочий стол заказов работает в два шага: сначала очередь, затем открытый заказ с возвратом к списку, — раньше он уезжал вбок целиком, и сумму заказа приходилось искать прокруткой. Список заказов помещается на экран телефона: остаются номер со статусом, покупатель и сумма. В редакторе заказа количество и цена встали в строку и перестали обрезаться. В разделах со списком и подробностями открытая запись подводится к глазам сама. Кнопки на телефоне стали компактнее.
Разделы и склады показываются тем витринам, которым их отдали
Если у магазина несколько витрин, для раздела, марки, склада или подборки можно выбрать, где они показываются. Раньше выбор сохранялся и ни на что не влиял: все витрины показывали всё, а на втором домене покупатель видел разделы первого. Теперь отметки работают, а витрина берётся из самого запроса.
Переименовали раздел — старая ссылка ведёт на новый
При смене адреса раздела, товара или страницы магазин сообщает об этом дополнению «Редиректы», и оно само заводит правило со старого адреса на новый. Раздел уходит вместе с подразделами и товарами, а повторное переименование не выстраивает цепочку переходов: посетитель с самой первой ссылки попадает сразу на последний адрес.
Кнопки, которых не хватало в панели
Порядок фотографий товара задаётся мышью или стрелками, у каждой фотографии появились подпись для поиска и всплывающая подсказка. Метки-дубли объединяются в одну: товары переезжают на выбранную, лишние удаляются. Склады и типы товаров выстраиваются в нужном порядке. В настройках рекомендаций можно посмотреть, что подберётся покупателю прямо сейчас. В подборке по правилам появился выбор «любое из условий», а найденные товары переносятся в список вручную порциями — и магазин говорит, сколько их всего. В списке товаров появился выбор порядка: сначала новые или старые, по названию, сначала дешёвые или дорогие.
Магазин не обрезает списки молча
Отзывы и вопросы на карточке товара, а также история изменений товара в панели показываются последними полусотней. Теперь под списком стоит строка «показаны последние 50 из 214» — раньше список просто обрывался.
Фильтры и быстродействие
Выключенная марка больше не предлагается в фильтрах раздела, а у видимой рядом с названием показывается логотип. Цена, по которой товары сортируются и попадают в диапазон ползунка, теперь лежит готовым числом: большой раздел перестал перебираться целиком при каждой сортировке и каждом движении ползунка.
Выбор варианта и отбор товаров работают в любой теме
Переключение цвета и размера, а также отбор товаров в разделе раньше были частью каждой темы. Тема, написанная не нами, получала карточку и раздел, где ничего не работает. Теперь это делает сам магазин: цена, старая цена, размер скидки, код, наличие, кнопка покупки и характеристики варианта, а в разделе — галочки, ползунок цены, порядок, «показать ещё» и панель отбора на телефоне.
Если ваша тема ведёт выбор варианта или отбор своими силами, укажите в разметке data-sku-runtime="theme" или data-catalog-runtime="theme" — магазин отойдёт в сторону.
Карточка товара больше не теряет данные
Сохранение карточки уносило с собой то, о чём его не просили: выбор размера и цвета пропадал с витрины, вес и габариты обнулялись, а у варианта слетали главное фото и валюта — товар, заведённый в долларах, начинал продаваться по той же цифре в гривне. Теперь всё, о чём форма молчит, остаётся как было, а характеристику можно очистить, оставив её пустой.
Тем же порядком закрыты соседние места. Сохранение услуги больше не стирает её привязку к товарам, выключенное «продаётся только упаковками» не удаляет заведённые упаковки, а переключение подборки в ручной режим не забывает правила отбора. Характеристика с одним значением из списка снова показывает выбранное и не пропадает при попытке его сменить. Если у товара заполнены характеристики, которых нет у его типа (так бывает после переезда или импорта), карточка их наконец показывает — раньше их было видно только на витрине.
Покупатель получает то, что видит
Отобрал в каталоге размер 37 — в корзину уходит именно он, а не основной вариант товара. Наличие на карточке тоже считается по отобранному варианту. Вошедший покупатель больше не получает страницу, посчитанную для гостя: он видит своё имя в шапке и свои цены, а не розничные.
Товар не может оказаться сразу на двух страницах раздела: у сортировок появился последний различитель, и часть каталога перестала теряться между страницами.
Деньги
Акции со сроком начинаются и заканчиваются по часам магазина, а не сервера — раньше «по 24 августа» в Киеве действовала до трёх часов ночи. Блок «Похожие товары» сравнивает цены в одной валюте и показывает цену товара, а не цену варианта. Массовая правка цен не принимает снижение больше ста процентов: раньше «минус 150%» делало пачку товаров бесплатными.
Склад, на котором ещё лежит товар, удалить нельзя, а удаление опустевшего пересчитывает остатки. Значение характеристики, которое стоит у товаров, тоже не удаляется молча — магазин скажет, у скольких товаров оно используется. Удалённые подкатегории уходят из поиска витрины вместе с родителем.
Настройки, которые раньше только сохранялись
«Выбрать вручную» в фильтрах раздела оставляет покупателю ровно те характеристики, которые вы отметили, и в вашем порядке. «Вручную, порядок в категории» расставляет товары так, как решили вы. «Товаров на странице» и «Догружать при прокрутке» дошли до списка товаров. «Мало» и «критично» в списке считаются по порогам ваших складов, а не по зашитому числу. Услугу можно сделать обязательной. Рассказ о бренде, ссылка на его сайт и описание тега видны на своих страницах.
Видео и услуги видны в любой теме
Видео товара магазин умел хранить и показывать в панели, но покупателю его не показывала ни одна тема. Теперь ролики стоят под галереей, а проигрыватель подключается только по нажатию. Доп-услуги (упаковка, гарантия, установка) появились в теме по умолчанию — раньше их рисовали две темы из трёх.
Внимание: право «Смотреть каталог» заработало
Оно выдаётся менеджеру и кладовщику с самого начала, но не открывало ничего — раздел просто пропадал из меню. Теперь по нему открыт каталог на чтение: списки, карточки, справочники и остатки. Менять каталог по-прежнему можно только с правом на управление. Проверьте роли сотрудников, если каталог кому-то был закрыт именно этой стороной.
Условия показа аксессуаров работают так, как их читают
Группа аксессуаров показывается там, где вы указали: тип товара, категория, значение характеристики. Раньше эти условия работали по отдельности — достаточно было совпадения любого одного. Заполнив категорию «Стеклянные банки Твист» и объём «30», владелец получал группу на всех банках подряд, а условие по объёму не сужало ничего.
Теперь заполненные условия обязаны сойтись все: категория и характеристика и тип. Незаполненное условие ничего не ограничивает — группа, где указана только категория, работает как прежде. Внутри одного условия ничего не изменилось: подходит любая из выбранных категорий и любое из перечисленных значений.
«Отдельные товары» остались отдельно: товару, выбранному вами вручную, остальные условия не указ.
Проверьте свои группы, если условий было несколько
Если в группе заполнено сразу несколько условий, она теперь показывается на пересечении, а не на объединении: товаров станет меньше, и это как раз то, чего от неё обычно и ждут. У групп с одним условием ничего не изменилось.
Подсказка под «Где показывать» переписана: раньше она об этом молчала.
Покупатель видит, когда товар снова появится
В карточке товара появилось поле «Дата поступления». Заполните его — и дата сама покажется покупателю: строкой в каталоге и рядом с наличием на странице товара. Настраивать больше нечего.
Показывается она, только пока товара нет в наличии. Товар появился — дата исчезает сама, очищать поле не нужно. Прошедшую дату магазин тоже не показывает: «ждите 20 августа», прочитанное в сентябре, отталкивает сильнее, чем молчание.
Если у вас разрешён предзаказ, дата видна и рядом с кнопкой предзаказа — покупателю она в этом случае нужна тем более.
Дата задаётся у товара целиком, как и само «нет в наличии». Как вывести её в своей теме: https://cartixx.com/docs/theme/product
Аксессуары предлагаются прямо в каталоге
Покупатель добавил товар с карточки в списке — магазин показывает окно с аксессуарами к этому товару: фото, цена, отмечено то, что вы пометили основным. Отметил нужное, нажал «Добавить в корзину» — и они там, со скидкой группы. Открывать карточку товара ради этого больше не нужно.
Возможность включается в настройках аксессуаров, по умолчанию выключена. Пока она выключена, витрина за неё не платит ничем.
Окно магазин рисует сам, поэтому оно работает в любой теме оформления — и в наших, и в вашей собственной. Теме для этого не нужно ни строчки. Подробности для верстальщика: https://cartixx.com/docs/theme/behavior
У каждого аксессуара своя кнопка покупки
Раньше аксессуары можно было взять только комплектом. Теперь у каждого есть своя кнопка: покупатель берёт одну крышку, не собирая набор и не снимая остальных отметок. Кнопка появилась и в окне каталога, и в конфигураторе на странице товара.
Скидка аксессуара — это скидка за покупку вместе с товаром. Взятый отдельно аксессуар идёт по обычной цене, а как только основной товар окажется в корзине, цена пересчитается сама. У аксессуаров без скидки цена одна и та же везде.
Мелочи, которые мешали
Группу с одиночным выбором теперь можно снять повторным нажатием: покупатель, передумавший брать предложенное по умолчанию, больше не обязан его покупать. Один и тот же товар, стоящий сразу в двух группах и отмеченный в обеих, кладётся в корзину один раз, а не двумя штуками.
Покупки через конфигуратор аксессуаров теперь попадают в воронку продаж и в счётчики аналитики — раньше они там не считались вовсе.
А ещё правки оформления витрины доезжают до покупателей сразу: файл стилей подписывался версией соседнего файла, и браузеры продолжали показывать прежнее оформление, пока не менялось что-то ещё.
Тип налогообложения в реквизитах продавца
В профиле реквизитов появилось поле «Тип налогообложения». Это обычная строка, и пишете вы её так, как её ведёт ваш бухгалтер: «Платник єдиного податку 3 групи, 5%», «Платник ПДВ», «ФОП без ПДВ». Поле своё у каждого профиля — если витрины торгуют от разных компаний, у каждой печатается собственная формулировка.
В печатных формах оно доступно как переменная тип налогообложения продавца и стоит в списке подстановок редактора рядом с налоговым номером, так что вставить его в счёт или накладную можно нажатием. Как править бланки: https://cartixx.com/docs/engine/print-templates
Готовые бланки мы не меняли: строка про налогообложение нужна не каждому магазину, и место для неё вы выбираете сами. Пустое поле в документ, как и раньше, не попадает.
Магазин называет ту версию, на которой работает
Раздел «Что нового» мог одновременно показывать «сейчас 2.7.1» и «доступно обновление 2.7.1»: версию для маркетплейса магазин брал из записи о последнем обновлении через кнопку. Если магазин обновляли файлами — а так делают разработчики и хостинг-провайдеры, — запись оставалась старой навсегда, и магазин объявлял себя версией годовой давности.
Тот же перекос мешал ставить дополнения: магазин мог отказать со словами «дополнению нужна версия 2.1.0, а у вас 1.9.0», работая на 2.4. Теперь версия берётся бОльшая из двух — записанной и той, что лежит в файлах магазина, — и все экраны говорят одно и то же.
Характеристика с несколькими значениями показывается одной строкой
Таблица характеристик на странице товара выдавала отдельную строку на каждое значение: у смартфона с пятью способами связи «Интернет» повторялся пять раз подряд, а «Цвет» у товара двух цветов — дважды. В списках товаров такого никогда не было, и один и тот же товар выглядел по-разному на своей странице и на плитке в подборке. На нашем демо-магазине у смартфона было 41 строка при 36 характеристиках.
Теперь строка одна на характеристику, а значения перечисляются в ней через запятую: «Интернет: WAP, 4G, 3G, EDGE, GPRS». Ничего настраивать не нужно, товары показываются так сразу после обновления.
Что это даёт теме оформления
Значения приходят в тему и по отдельности, поэтому их можно показать не только строкой через запятую. У каждого значения есть своя подпись, свой цвет из справочника и своя ссылка на подборку: цветные значения рисуются кружками, а покупатель, кликнув по «синему», попадает в подборку синих товаров, а не всей строки сразу.
Как это разметить в своей теме, с примерами: https://cartixx.com/docs/theme/features
Базовая тема, «Маркет» и «Промо» уже обновлены — в них значения выводит общий кусок разметки, который можно взять за образец.
Значения вариантов покупки остались раздельными
Если вес или другое значение задано конкретному варианту товара, оно по-прежнему живёт своей строкой и меняется вместе с выбором варианта: покупатель переключает фасовку и видит её собственный вес, а не соседний.
Ссылки в описании обновления открываются
Раздел «Что нового» и экран обновления показывали описание выпуска обычным текстом, и адрес приходилось переписывать руками. Теперь по ссылке из описания можно просто перейти.
Покупатель видит вес корзины
Магазин может показывать в корзине общий вес покупки, и он меняется сразу, как только покупатель правит количество. Возможность вы включаете в настройках оформления заказа, отдельно для каждой витрины; по умолчанию она выключена.
Вес берётся из характеристики товара «Вес» — той же, по которой считается доставка, поэтому в корзине и в накладной будет одно и то же число. Вес меньше килограмма показывается в граммах. У товаров, где характеристика не заполнена, строка веса не появляется.
Магазин стал заметно экономнее к серверу
Каждая страница витрины делала десятки лишних обращений к базе: свои настройки отдельным запросом читало каждое установленное дополнение, языки магазина спрашивались заново из каждого места, а счётчики значений в фильтрах считались по два запроса на характеристику. На магазине с шестью десятками дополнений это полсотни запросов на каждый заход покупателя — независимо от размера каталога.
Теперь всё это читается один раз на страницу. На хостинге, где база стоит на отдельной машине, разница чувствуется сразу.
Где магазин хранит кеш — теперь ваш выбор
В разделе «Система → Обслуживание» появился выбор хранилища: файлы, база данных, Redis или Memcached. У каждого написано, когда его стоит выбирать, а недоступное объясняет причину. Соединение проверяется до сохранения: магазин не даст переключиться на хранилище, которое не отвечает.
Новые магазины ставятся на файловый кеш вместо базы. Уже работающих это не касается — ваш выбор остаётся прежним, пока вы сами не решите иначе.
Вид характеристики задаётся один раз
Сменить вид или формат уже заведённой характеристики больше нельзя, и магазин объясняет почему. Раньше переключение формата со «списка» на «одно значение» молча стирало значения у всех товаров и артикулов — вернуть их было нельзя. Нужен другой вид — заведите новую характеристику и перенесите значения.
Разбор двух сплошных проверок панели. Убранная из заказа позиция возвращает товар складу. Товар из панели встаёт по цене, по которой продаётся, — с учётом акций и валюты артикула. Баллы не сгорают сверх стоимости заказа. Каталожная акция с пустым выбором больше не роняет цены на весь каталог. Кабинет чужого покупателя закрыт: сменить его пароль нельзя. Выгрузка и загрузка данных разведены по правам. Строка сводки открывает ровно столько заказов, сколько назвала. Заказ на компанию оформляется из панели, покупатель выбирается из базы, заказ удаляется. Покупатель узнаёт судьбу промокода. Появились категории покупателей, вход в магазин из карточки и выгрузка контактов.
Неудачное обновление больше не оставляет магазин закрытым
На время обновления магазин закрывается табличкой «Ведутся работы» и открывается по окончании. Если обновление не доезжало, магазин возвращался к прежней версии — но при неудачном возврате он мог остаться закрытым, и снаружи это выглядело как упавший сайт. Теперь магазин открывается в любом случае, чем бы обновление ни закончилось.
Возврат к прежней версии стал устойчивее: один файл, который не удалось вернуть, больше не отменяет возврат остальных, а о невозвращённых магазин прямо сообщает. Отдельно добавлена страховка на случай, когда обновление обрывается совсем — например, у сервера закончилась память: магазин сам заметит это в течение нескольких минут и откроется, а обновление пометит несостоявшимся.
Обновлены графики в панели
Библиотека графиков в панели переведена на новую версию: свежие подсказки, аккуратнее анимация при смене периода, поддержка жестов на планшете. Заодно поправлены подписи вертикальной оси — при обновлении библиотеки они начали выводиться сырыми числами вроде «200000.00» вместо «200 тыс.», теперь снова сокращаются.
Из панели убрана библиотека, которая давно ничем не пользовалась, — поставка стала чуть легче.
Обновление начинки магазина
Магазин переведён на свежие версии того, на чём он работает: Laravel 13.26, Symfony 8.1.4, обновлены библиотеки работы с изображениями, телефонными номерами, выгрузками в таблицы и входом через соцсети. На стороне панели обновились сборщик Vite и Vue со всем окружением. Для вас это ничего не меняет внешне — те же экраны и те же настройки, — но магазин получает исправления и заплатки безопасности, которые вышли в этих библиотеках за последнее время.
Обновляться можно обычной кнопкой: ни настройки, ни данные это не затрагивает.
Переменные в письмах понимаются в обоих написаниях
В магазине переменные пишутся по-разному: в печатных бланках это {'$'}имя в одинарных скобках, в письмах — имя в двойных. Перепутать их проще простого, и покупателю уходило письмо, где вместо номера заказа в теме стояли скобки с названием переменной. Теперь письма понимают оба написания, и переписывать уже настроенные тексты не нужно.
Заодно в настройках дополнений под полем с текстом письма появился список того, что можно подставить: название по-человечески, рядом — как это выглядит в тексте. Нажатие вставляет переменную в поле, так что помнить её название наизусть больше не требуется.
Видно, что даёт обновление и как оно идёт
В разделе обновлений под номером новой версии теперь написано, что в ней появилось: раньше магазин показывал только «Доступна 2.4.1», и решать, обновляться ли сейчас, приходилось вслепую. То же самое и у дополнений — их «что нового» стало читаемым, а не сплошной строкой со служебными знаками.
Ход самого обновления виден шагами: проверяем версию, скачиваем, проверяем подпись, устанавливаем, готово. Раньше после нажатия кнопки всплывало сообщение, и дальше было тихо — обновление двигалось само по себе не быстрее раза в минуту. Теперь работу двигает та вкладка, в которой вы нажали кнопку, а если обновление уже идёт, экран показывает это сразу при открытии. Закрыть вкладку по-прежнему можно: начатое обновление доделается само.
Видно, что заказ оформила компания
В карточке заказа блок «Покупатель» теперь прямо говорит, что заказ оформляли компанией, и показывает её название и налоговый номер. Раньше менеджер видел только имя, телефон и почту, а реквизиты, по которым выставлять счёт, приходилось искать в правке заказа.
Компания больше не попадает в заказ из карточки покупателя, если он оформлял как частное лицо. У покупателей, перенесённых с другой платформы, поле «Компания» заполнено сплошь и рядом при виде «физлицо», и оттуда оно уезжало в каждый их заказ — заказ выглядел как заказ юрлица, хотя им не был.
Остатки и покупатель в оформлении витрины, отметка о новой версии
Оформление магазина теперь знает о товаре больше. У товара появился остаток: сколько его всего и сколько на каждом складе, который вы согласились показывать покупателю. Пустое значение означает «остаток у этого товара не считают», и это не то же самое, что ноль, — надпись «осталось 0 шт.» на таком товаре не появится. Аксессуары можно вывести не только в карточке товара, а где угодно: в подборке на главной, в списке, в корзине. Имя покупателя приходит в оформление по частям — фамилия, имя и отчество отдельно, — поэтому обратиться к нему по имени и подставить его данные в форму стало можно без разбора строки.
Телефон покупателя больше не задваивается в карточке. Один и тот же номер, записанный в старом магазине по-разному, после переезда превращался в несколько одинаковых строк, и менеджер не понимал, по какому звонить; теперь номера сверяются уже приведёнными к единому виду, а накопившиеся повторы магазин убирает сам при обновлении. В шапке панели рядом с «Что нового» появляется отметка, когда выходит новая версия магазина, — чтобы узнать об этом, больше не нужно заходить в раздел обновлений.
Подпись и печать доходят до файла PDF
Счёт и накладная, сохранённые в PDF, выходили без подписи и печати: в браузере бланк выглядел как надо, а в файле на их месте оставалась пустота. Магазин искал картинку на диске по точному совпадению её адреса с адресом магазина, и хватало «www» или http вместо https, чтобы она потерялась.
Теперь адрес разбирается так же, как это делает браузер: домен не сверяется, а файл ищется и в открытой папке сайта, и прямо в хранилище — на случай, когда ссылки на него не создано. Если картинки бланка на диске всё-таки нет, магазин пишет об этом в журнал, а не выпускает документ без печати молча.
Покупатель в заказе: кто он, что покупал и как до него дойти
Заказ теперь помнит, оформлял его человек как физлицо или как компанию, и больше не спорит с карточкой покупателя. Правка заказа спрашивает те же поля, что и оформление на сайте, отбор по виду покупателя такие заказы находит, а название компании в форме больше не остаётся пустым. Реквизиты, которые покупатель ввёл при оформлении, дописываются в его карточку, если там пусто, — в следующий раз вводить их заново не придётся.
Из заказа можно перейти в карточку покупателя, из карточки — в его контакт, а «Все заказы покупателя» открывают список, отобранный по этому человеку. Число покупок в заказе считается по всей истории: и то, что человек купил гостем, и то, что купил после регистрации. Поиск по контактам снова находит людей по адресу почты — раньше на такой запрос не находилось ничего.
График продаж товара и ручной выбор рекомендаций
В карточке товара на вкладке «Основное» появился график: просмотры, продажи и выручка за выбранный срок. Цифры магазин считает так же, как в отчётах: суммы приведены к основной валюте по курсу заказа, отменённые заказы в продажи не идут. Срок выбирается прямо над графиком — за неделю, месяц или три месяца. Если товар за этот срок никто не смотрел и не покупал, вы увидите об этом надпись, а не пустую сетку. История изменений и движение остатков остались под графиком.
В блоках рекомендаций режим «Выбрать вручную» теперь делает то, что обещает: под ним появилось поле подбора товаров с поиском по названию и артикулу. Покупатель увидит выбранные товары в том порядке, в каком вы их поставили.
Согласия покупателя и метки в карточке
В карточке покупателя появился блок с настоящими сведениями о человеке: какой товар он берёт чаще всего, что у него сейчас лежит в незавершённой корзине и что он разрешил магазину. Из корзины можно сразу оформить заказ — менеджеру больше не нужно собирать её заново руками.
Магазин запоминает два разных согласия. Галочку «я согласен с условиями» на оформлении заказа он теперь сохраняет: раньше её требовали, но нигде не отмечали. Согласие получать письма о новинках покупатель даёт сам — при оформлении заказа или при регистрации, если вы включили такое предложение в настройках витрины, — и в любой момент отказывается от него в личном кабинете. Сотрудник может отметить отказ в карточке, услышав его по телефону. Рассылка обходит тех, кто просил не писать, и обещанное число получателей считается так же.
Покупателям можно ставить метки: «оптовик», «звонить вечером», что угодно. Метка заводится прямо в карточке — наберите название и нажмите Enter, — видна и в карточке контакта, и в карточке покупателя, а список покупателей умеет отбирать по ней.
Журнал показывает историю целиком
«Что нового» показывало только два десятка последних версий каждого дополнения и самого магазина, а остальное молча обрезалось — хотя у движка версий под сотню.
Теперь в журнал приходит вся история. На экране сразу сорок свежих выпусков, остальные добираются кнопкой внизу — страница не грузит сотни описаний, пока вы их не попросите.
«Что нового» стало настоящим журналом
Раньше раздел показывал только те обновления, которые магазин застал сам: свежая копия открывала пустой экран, хотя за спиной у движка десятки версий.
Теперь журнал собирает всю историю — и магазина, и установленных дополнений, — с описанием каждой версии, по месяцам. У тех версий, которые уже стоят у вас, видно и дату установки. Обновления, поставленные файлом, из журнала не пропадают, а если связи с маркетплейсом нет, раздел показывает то, что знает сам.
Рабочий стол заказов не моргает
При переходе к другому заказу список слева перечитывался заново и на секунду показывал заглушку, хотя заказы в нём те же. Теперь список остаётся на месте, а заглушка появляется только там, где содержимое действительно меняется.
Заодно управление заказом справа больше не показывает данные прежнего заказа, пока открывается новый: суммы, статус оплаты и кнопки ждут вместе с карточкой. При смене группы слева заглушка накрывает все три колонки — в новой группе откроется другой заказ.
Письма магазина умеют нести документ
Раньше письмо покупателю могло только рассказать и дать ссылку. Теперь к нему прикладывается файл: счёт, накладная, инструкция. На этом уже работает новое дополнение «Счёт покупателю на почту» — оно отправляет покупателю счёт прямо из заказа.
Обложки дополнений в каталоге
В разделе «Инсталлер» у каждого дополнения появилась картинка: в списке видно, о чём оно, ещё до того, как вы откроете описание.
Экспорт заказов
В списке заказов появилась кнопка «Экспорт заказов». Файл собирается ровно по тому отбору, который сейчас на экране: без фильтров уйдут все заказы, в группе — заказы группы, с фильтрами — то, что нашлось.
Что попадёт в файл, вы задаёте сами наборами в разделе «Настройки заказов». В наборе вы выбираете колонки и их порядок, формат файла (CSV, книга Excel или таблица OpenOffice), разделитель и кодировку для CSV, а также нужна ли первая строка с названиями колонок. Наборов можно завести сколько угодно: курьеру хватает номера, покупателя и телефона, бухгалтерии нужна вся карточка заказа. При выгрузке менеджер выбирает набор, а формат спрашивать не приходится — он записан в самом наборе. Названия колонок и содержимое приходят на том языке, на котором работает сотрудник.
Накладная перевозчика оформляется в окне
Накладная теперь создаётся в отдельном окне: поля описывает сам перевозчик, города и отделения подсказываются по мере ввода, стоимость доставки пересчитывается сразу. Номер накладной, её состояние и ссылки на печать видны прямо в заказе.
Раздел «Что нового»
В разделе «Система» появился журнал обновлений. Вы видите, какие обновления магазина и дополнений приехали, когда это произошло и что именно в них изменилось.
Вид панели
Кнопки дополнений и размер строк в очередях приведены к одному виду: заявки на звонок, уведомления о поступлении и брошенные корзины теперь выглядят одинаково, а кнопка «Настроить» открывает нужное дополнение сразу на его настройках.
Раздел «Дополнения»: весь ваш магазин целиком
Раздел показывает все установленные дополнения, а не только те, у которых есть форма настроек. Раньше из 59 дополнений в разделе было видно 23 — остальные для владельца просто не существовали, и их искали по другим экранам. Дополнению, у которого настраивать нечего, теперь так и написано. Выключенные тоже в списке, с пометкой, и включить их можно прямо здесь. Дополнения сгруппированы по разделам, есть поиск по названию, у каждого видно версию, что мешает ему работать и куда оно встраивается в оформление магазина.
Счётчики дел прямо в меню
У разделов появились числа: сколько заказов ждёт менеджера, сколько переписок без ответа, сколько отзывов на проверке, сколько вопросов о товарах, сколько заявок на звонок и сколько покупателей ждут поступления товара. Числа живые — панель пересчитывает их каждые десять секунд, сразу после вашей правки и при возвращении на вкладку, а значок гаснет, когда дела разобраны. Считает каждый раздел по вашим правам: менеджер, который ведёт только свои заказы, видит в значке только их. На колокольчике вместо точки теперь число непрочитанных.
Дополнение приносит свои настройки само
Дополнение описывает свои настройки у себя, а раздел рисует форму по описанию — движку для этого больше не нужно ни строчки кода, и выключенное дополнение ничего не занимает в панели. Настройки бывают своими у каждой витрины: над формой появляется выбор витрины, а значения хранятся по витринам. Дополнение узнаёт, что его настройки сохранили, и обновляет то, что готовило заранее, — новый счётчик аналитики появляется на витрине сразу, а не после истечения кеша.
Дополнение может принести и целый экран, если формой его не выразить: профили форм, меню бота, мастер переезда. Такой экран живёт в самом дополнении и уезжает вместе с ним.
Настройки списка заказов и фото товара
Три переключателя в настройках заказов сохранялись и ни на что не влияли: догрузка при прокрутке, цвет строки по статусу и колонка складов. Теперь работают, а «Заказов на странице» задаёт и то, сколько заказов магазин отдаёт за раз. В подборе товара и в составе заказа вместо снимка рисовался значок коробки — теперь видно фотографию.
Счётчики дел прямо в меню
Теперь у разделов есть числа: сколько заказов ждёт менеджера, сколько переписок без ответа, сколько отзывов на проверке, сколько вопросов о товарах без ответа, сколько заявок на звонок и сколько покупателей ждут поступления товара. Не нужно заходить в раздел, чтобы понять, есть ли там работа.
Числа живые: панель пересчитывает их сама каждые десять секунд, сразу после вашей правки и при возвращении на вкладку. Значок гаснет, когда дела разобраны. Считает каждый раздел по вашим правам: менеджер, который ведёт только свои заказы, видит в значке только их. Какие статусы заказов считать, вы выбираете в настройках заказов. На колокольчике вместо точки теперь число непрочитанных.
Настройки списка заказов заработали
Три переключателя в настройках сохранялись и ни на что не влияли. «Догружать при прокрутке» — список добирает заказы сам, страницы при этом не нужны. «Красить строку в цвет статуса» — строка красится тем цветом, который вы задали статусу. «Показывать склад отгрузки» — в списке появилась колонка со складами и суммой по каждому. Настройка «Заказов на странице» теперь задаёт и то, сколько заказов магазин отдаёт за один раз.
Фото товара в заказе
При подборе товара и в составе заказа вместо снимка рисовался значок коробки. Теперь видно фотографию — товар узнаётся глазом, а не по названию из десяти слов. Правило выбора снимка стало общим для всего магазина: главное фото артикула, затем фото галереи этого артикула, затем первое фото товара.
Фискальные чеки переехали в дополнение
Экран чеков в заказе, кнопки выдачи и возврата и все их тексты теперь принадлежат дополнению «Чекбокс» — движок даёт только место в карточке заказа. Дополнения научились показывать в заказе свои блоки и выполнять действия прямо из них.
Деньги магазина — по праву доступа
Теперь вы решаете, кто из сотрудников видит деньги. В правах появился раздел «Финансы»: выручка и средний чек на сводке, отчёты по деньгам и себестоимость товара показываются только тем, кому вы это разрешили. Менеджер без такого права работает как раньше — видит заказы, товары и покупателей, но не общие цифры магазина.
Заодно закрыт доступ к чужим заказам: сотруднику, который ведёт только свои заказы, чужие теперь недоступны везде — в письмах покупателю, документах и чеках, а не только в списке.
Заказы работают правильнее
Отмена заказа возвращает товар на склад, отменяет скидки и возвращает покупателю списанные баллы. Если заказ возвращают из отмены, баллы списываются снова, а когда их уже не хватает — заказ пересчитывается по обычной цене. Смена состояния оплаты больше не оставляет суммы от прошлого состояния.
Искать заказ стало быстрее: вы пишете номер, имя, телефон или почту, магазин подсказывает найденное списком, и по нажатию заказ открывается. Отдельного поля «искать по» больше нет — оно не нужно.
Фильтры списка вы собираете сами
В настройках заказов вы выбираете, по чему отбирать: состояние, оплата и её способ, доставка, тип покупателя, витрина, ответственный, дата, сумма, город, склад. На кнопке «Фильтры» видно, сколько отборов включено, — заказы больше не «пропадают» незаметно. В способах доставки и оплаты показываются и те, которыми заказы уже оформлены, даже если вы убрали их из настроек.
Печать документов сразу на несколько заказов и кнопки дополнений (например, печать этикеток) переехали в шапку списка: их видно, не открывая заказ.
Дополнения делают больше
Кнопка дополнения теперь умеет снять картинку заказа в буфер обмена, спросить подтверждение перед работой, сначала спросить, по каким заказам работать, и увести вас на нужный экран. Дополнения показывают свои блоки прямо в карточке заказа и свои кнопки в карточке товара.
Витрина
Характеристики товара отдаёт сам магазин — в карточке, в списке и в подборках. Теме больше не нужно доставать их самой, и характеристики доступны везде, где выводится товар. Товар, уже лежащий в корзине, отмечается на витрине и после перезагрузки страницы.
Числа в панели склоняются по-человечески: «1 заказ», «2 заказа», «5 заказов».
Настройки способов показывают то, с чем работают
Настройка с умолчанием открывалась выключенной, хотя работала включённой: у Новой Почты «Доставка в отделение» стояла выключенной, а отделения покупателю предлагались. Владелец щёлкал переключатель туда-обратно «чтобы включить» — и вот тогда настройка выключалась по-настоящему; сняв так все три типа получения, можно было потерять способ с оформления заказа целиком.
Теперь форма подставляет умолчания при открытии, и настройки сохраняются полностью: вы видите ровно то, с чем работает магазин. Ваш выбор умолчанием не перебивается — выключенное остаётся выключенным. Касается настроек доставки, оплаты, каналов связи и касс.
Номер профиля реквизитов виден в настройках
Печатный бланк объявляет компанию номером её профиля, а достать этот номер было неоткуда: приходилось печатать документ и смотреть, чьи реквизиты вышли. Теперь номер стоит над формой профиля и копируется кнопкой, а в переключателе профилей — рядом с названием.
Вместе с номером склада, который появился раньше, эти два числа и связывают склад с его юрлицом: в бланке с несколькими продавцами вы задаёте соответствие явно и больше не считаете профили по порядку.
Предпросмотр бланка на нужном заказе
Бумагу в редакторе печатных форм показывали на последнем заказе, а правку бланка вы затеваете из-за конкретного: заказ от юрлица, заказ с двумя складами, заказ с услугой в позиции. В панели предпросмотра появилось поле номера заказа — введите номер, и бумага соберётся на нём.
Номер пишется так, как он выглядит в списке заказов: и «№1005», и просто «1005» приведут к одному заказу, даже если в базе у него другой номер, а остальное приклеивает формат. Оставьте поле пустым — как и раньше, покажем последний заказ с товарами; такого номера в магазине нет — скажем об этом словами.
Видно, какие данные есть в шаблоне
Правя тему или печатный бланк, вы больше не гадаете, что лежит в заказе. Поставьте в шаблон {dump} — и увидите перечень всего, что доступно этому шаблону: имя значения, его вид и размер. {dump var=$order} покажет значение целиком, а {dumpc var=$order} отправит его в консоль браузера, не портя бумагу. В подсказке печатной формы для этого появилась своя группа.
Данные видит только сотрудник, вошедший в панель: покупателю такой тег не покажет ничего, даже если вы забудете его в теме. Пароли, ключи и подписи заменяются звёздочками, длинные списки и глубокая вложенность обрезаются.
Редактор бланка и страница, которая больше не падает
Печатную форму вы правите редактором кода: подсветка разметки, номера строк, поиск по шаблону, сворачивание блоков и сохранение по Ctrl+S. Высоту редактора можно потянуть за угол, а подстановка из списка теперь встаёт туда, где стоит курсор, а не в конец шаблона. Тем же заходом это починено и в письмах покупателю.
Магазин перестал отдавать ошибку вместо страницы, когда каталог служебных файлов создают сразу несколько посетителей. Такое случалось после обслуживания и после обновления: первый запрос каталог создавал, остальные падали на том, что он уже есть. Так же поправлены каталоги для печати документов — их часто печатают пачкой и из нескольких вкладок сразу.
Компанию в документе выбирает бланк
Над кнопками печати в заказе стоял список компаний — от какой из них печатать документ. Пользы от него не было: бланк, который объявляет продавца сам, этот выбор не замечал, а нигде не сохранялся — тот же счёт при повторной печати мог уйти уже от другого юрлица, покупателю же он всегда приходил от продавца витрины.
Теперь компания в документе везде одна и та же: её задаёт витрина заказа, а бланк вправе объявить свою тегом {profile id=…}. Счёт от второго юрлица вы делаете отдельным бланком — и на бумаге, и в письме покупателю он выглядит одинаково.
Номер склада виден в списке складов
Раздел «Каталог → Склады» показывает номер рядом с названием каждого склада. По нему печатный бланк отличает склады друг от друга, когда заказ разложен на несколько, и открывать ради номера карточку склада больше не нужно.
Обновление справочников перевозчиков и адрес получения в документах
Кнопка «Обновить города и отделения» в настройках дополнения теперь показывает, что происходит: «Загружаем города: 1 200» и итог с числом городов и отделений. Раньше она оставалась в положении «В очереди…», даже когда справочник уже загружался, а у «Нової Пошти» города не скачивались вовсе.
В печатных формах адрес получения снова полный. При доставке в отделение улица в адрес заказа не пишется, поэтому в бланке печатался один город; теперь туда попадает выбранное отделение или пункт выдачи, а для отдельных граф есть новые подстановки: отделение, его номер и город. То же самое покупатель видит в личном кабинете.
Номер склада показан в его настройках и копируется кнопкой — по нему бланк отличает склады, когда заказ разложен по нескольким. Сохранённый ключ доступа теперь подписан словами «Ключ сохранён».
Способ доставки говорит, когда работать не может
Дополнение перевозчика можно поставить, ключ ввести, способ включить — и не нажать «Обновить города и отделения». Способ выглядит рабочим, а покупатель на витрине его не видит: выбрать город и отделение не из чего. Раньше об этом сообщал покупатель, теперь панель сама пишет, чего не хватает, — в списке способов, в оформлении заказа витрины и в настройках дополнения, где стоит кнопка обновления справочника.
Оплата и доставка получили свой раздел
Способы доставки и оплаты переехали из карточки витрины в «Настройки → Оплата и доставка». Способ теперь заводится один раз на магазин, а витрины его включают: отметкой «на всех витринах» или поимённо, со своим порядком показа. Магазину с двумя витринами больше не нужны две «Нови Пошти» с одинаковыми ключами.
Оформление заказа тоже стало своим разделом: витрины перечислены слева, шаги — Корзина, Контактная информация, Доставка, Оплата, Подтверждение — раскрываются по одному. В шаге доставки видно только то, что показывать покупателю и в каком порядке.
Дополнения в панели разложены по разделам — доставка, оплата, уведомления, маркетинг — и ищутся по названию.
Заказ больше не оформить без адреса доставки
Способ доставки может потребовать своего: точку выдачи, адрес, номер отделения. Покупатель не проскочит такое поле мимо — раньше заказ оформлялся с посчитанной доставкой и пустым адресом.
Печатные формы
В бланк добавились склады заказа: у позиции видно, откуда она отгружается, а заказ доступен разложенным по складам — со своими позициями и суммой у каждого. Магазин, у которого склады принадлежат разным юрлицам, печатает счёт от нужной компании, объявляя её тегом {profile}. В подсказке редактора лежит готовая заготовка такого счёта.
Скрытые характеристики товара теперь тоже попадают в документ: покупателю на витрине их не показывают, а накладной они нужны. И появился способ получения заказа одним словом — отделение, почтомат или курьер, — чтобы бланк печатал нужное.
Настройки, которые заполняются таблицей
Дополнение может попросить у вас список, а не одно значение: города и адреса, куда вы возите заказы. Строка добавляется кнопкой, переставляется стрелками и удаляется корзиной.
Поля настроек больше не принимают подсказки браузера и не подсвечиваются им жёлтым.
Скидки, корзина и заказ считаются точнее
Проверка скидок вживую нашла места, где магазин показывал одну сумму, а списывал другую. Предохранители правила («не больше 500», «не дешевле 300») больше не стираются при повторном сохранении, скидка по промокоду переживает правку заказа менеджером, а корзина показывает суммы на текущий момент: акция, которая началась или закончилась, пересчитывается сразу. Доля скидки распределяется только на те товары, которых она касается, поэтому возврат такого товара возвращает верную сумму. Заказ больше не переоценивается по сегодняшнему тарифу доставки от одного нажатия «Сохранить».
Настройки витрины снова сохраняются: язык, выключенный в региональных настройках, больше не запирает форму, а настройка, указывающая на удалённую запись, не блокирует весь экран. Если сервер отказал, вы видите причину, а не молчаливую кнопку. Название магазина доходит до покупателя — в заголовок вкладки, подвал, письма и разметку для поисковиков, — а название способа доставки, которое вы написали для покупателя, больше не подменяется именем перевозчика.
Товар можно продавать упаковками
Теперь вы задаёте товару упаковки, в которых его отпускаете: «Упаковка, 50 шт», «Пачка, 1,4 м²». Покупатель в карточке товара переключается между упаковками и единицами, вводит нужное число пачек и сразу видит, сколько это будет метров или штук и сколько он заплатит. Если товар отпускается только целыми упаковками, магазин сам дотянет количество до целой пачки. Упаковка запоминается в заказе, поэтому и в корзине, и в письме покупателю, и в накладной позиция читается так, как её называл покупатель: «6 уп. (8,4 м²)».
Вес и габариты товара доехали туда, где они нужны: в печатные формы, в расчёт доставки, в выгрузку товаров и в товарные фиды. Вес можно указать как всему товару, так и отдельному варианту покупки. В бланк теперь подставляются характеристики товара — все списком или любая по её коду, — а размерности переведены на все языки магазина. В письме покупателю появился состав заказа: он видит, что именно у него заказано, а не только «товаров: 2». Параметры отправления в заказе показываются, только если вы их включили, и в накладную попадает то, что ввёл менеджер, а не подставленная единица.
Подстановки в бланке подписаны по-человечески
Список «что можно подставить в бланк» был сплошной лентой кодов вроде $order.items_total — приходилось разбирать их по буквам. Теперь это карточки: сверху понятное название «Сумма товаров», под ним код, который встанет в бланк по нажатию. Так же подписаны поля другого получателя и данные, которые добавляют дополнения.
Разделы настроек поиска приведены к общему виду панели: поля важности выстроены сеткой с подписью сверху, а кнопки «Добавить» и «Очистить» переехали в шапку раздела — раньше они стояли в строке с пояснением и читались как часть текста.
В бланк можно подставить способ доставки и оплаты
В печатных формах появились номер и код способа доставки и оплаты: .id, .code, .id, .code. По ним в бланке пишутся условия — например, печатать банковские реквизиты только тогда, когда покупатель выбрал оплату по счёту. Раньше проверять было не по чему, кроме названия способа, а название вы переименуете или переведёте — и условие тихо перестанет срабатывать.
В подсказке под редактором бланка заодно появились внутренний номер заказа, его состояние, дата создания и название документа. Они и раньше подставлялись, но узнать о них было неоткуда.
Тёмное оформление панели починено
В тёмном оформлении часть элементов оставалась светлой: заметнее всего это было в редакторе печатных форм, где список подстановок для бланка выглядел белыми плашками без текста. Причина была общей для всей панели, поэтому исправление задело её целиком — списки, таблицы, дерево категорий, редактор оформления и настройки теперь выдержаны в одном тоне.
Другой получатель виден в заказе
Если заказ забирает не тот, кто его сделал, это теперь видно сразу: в карточке заказа появился выделенный блок «Другой получатель» с его фамилией, телефоном и остальными полями, которые вы спрашиваете на оформлении. Раньше на рабочем столе получателя не было видно вовсе — менеджер вписывал его в правке, возвращался в карточку и видел только заказчика.
Из блока есть ссылка «Изменить»: она открывает правку заказа сразу на полях получателя.
Файлы показываются списком
Раздел «Файлы» открывается списком: название, размер и дата видны сразу, а нужная строка находится быстрее, чем в сетке картинок. Показ плитками с миниатюрами остался — он переключается кнопкой рядом с поиском, и магазин запоминает ваш выбор.
Раздел с вашими файлами
В панели управления появился экран для ваших собственных файлов: прайсов, инструкций, сертификатов и картинок для описаний. Файлы лежат по папкам, загружаются перетаскиванием, и на каждый из них есть ссылка, которую можно вставить в описание товара или отправить покупателю.
Сам раздел включает дополнение «Файловый менеджер» — поставьте его из каталога дополнений.
«Что нового» стало читаемым
Заметки к выпуску показывались в разделе «Инсталлер → Обновления» вместе со служебными знаками разметки: перед каждым заголовком стояли решётки, а текст шёл сплошным куском. Теперь заголовки, абзацы и списки выводятся как положено, и по описанию видно, ради чего выходила версия.
Документы печатаются от нужной компании
Реквизиты продавца теперь целиком берутся из профиля, который вы выбрали. Пустое поле профиля больше не добирается из основных настроек магазина: раньше счёт второй компании уходил покупателю с телефоном и адресом первой, и заметить это можно было только из его вопроса. То, чем магазин пользовался через подстановку, перенесено в основной профиль — заполнять заново ничего не нужно.
У профиля появилось своё название магазина: под ним компания известна покупателю. Логотип, подпись и печать снова загружаются файлом — раньше поле принимало только ссылку, хотя подпись под ним предлагала перетащить картинку.
Бланк сам знает, от кого печатается
Поставьте в начале бланка {profile id=2} — и он будет печататься от этой компании. Так «Счёт от ФОП» и «Счёт от ТОВ» становятся разными бланками, и выбирать компанию при каждой печати не нужно, а в письме со счётом выбирать и некому. Номера компаний подсказывает сам редактор.
Язык и печать прямо на странице документа
Над документом появилась панель: языки, на которых бланк заполнен, кнопка печати и кнопка «Скачать PDF». Раньше документ открывался только на языке заказа, и счёт зарубежному покупателю приходилось переписывать руками. На бумагу панель не идёт.
Файл PDF теперь сохраняется под понятным именем: раньше он ложился в загрузки набором случайных букв и вовсе без расширения.
Другого получателя вы описываете сами
Что спрашивать у того, кому вручить заказ, задаёте вы — во вкладке «Оформление заказа» рядом с полями покупателя. Раньше получателя описывали два поля, зашитых в магазин: имя и телефон. Теперь можно добавить фамилию отдельной строкой (её просит перевозчик), отчество, почту для уведомления о вручении — что нужно вашему магазину. Телефон стоит всегда: по нему звонит курьер.
Заказ забирает компания — отметьте у нужных полей «только для компании», и покупатель увидит их, лишь поставив галочку на чекауте. В накладной Новой Почты такой заказ оформляется на организацию по коду ЄДРПОУ, а не на частное лицо.
Получатель печатается в счёте и накладной отдельным блоком; в своём бланке он доступен как $recipient, и его наличие можно проверить условием.
Редактор печатных форм
Предпросмотр документа переехал в выезжающую панель — редактору досталась вся ширина экрана, а бумага перестала показываться обрезком. В подсказке «что можно подставить» не хватало полутора десятков значений, которые в документ уходят, — включая те, что уже стояли в заводских бланках.
Документы заказа файлом и свой значок у каждого дополнения
Любой печатный документ заказа теперь можно не только распечатать, но и скачать файлом PDF — из карточки заказа и из списка бланков, в том числе сразу по нескольким заказам. Кнопки дополнений в заказе стали умнее: дополнение может показывать свою кнопку только на тех заказах, где она уместна, — например, при определённых способах оплаты.
В разделе «Плагины» и в списке установленного у каждого дополнения появился свой значок вместо одинаковых коробок: нужное дополнение находится взглядом, а не чтением всего списка.
Мастер первой настройки магазина
Свежий магазин встречает вас мастером: язык, валюта, название, страна и часовой пояс — и можно начинать работу. Тот же мастер открывается после сброса магазина, ведь сброшенная копия ничем не отличается от только что поставленной.
На последнем шаге магазин предлагает заполнить каталог демо-товарами: 194 товара с фотографиями, категориями и характеристиками пяти тематик сразу. Так видно, как выглядят каталог, карточка товара и корзина, ещё до того, как вы заведёте свой первый товар. Позже эти товары удаляются одной кнопкой или заменяются вашими.
Установленное дополнение работает сразу
Раньше дополнение, установленное в магазине, могло открыться пустым разделом: магазин продолжал отвечать по прежнему списку адресов, и все запросы нового раздела заканчивались ошибкой «страница не найдена». Выглядело это как сломанное дополнение, хотя установлено было верно. Теперь магазин забывает прежние списки сразу после установки.
Цены стали одинаковыми во всех местах магазина
Старая зачёркнутая цена, которую вы задаёте у артикула, теперь доходит до корзины. Раньше покупатель видел скидку в каталоге, а в корзине товар выглядел так, будто скидки нет. Цена считается одним общим правилом в списке товаров, в карточке, в корзине и в документах, поэтому суммы больше не могут разойтись между экранами.
Единица продажи пишется словом: покупатель видит «шт», «кг» и «м», а не служебный код. Дополнения теперь могут показывать покупателю свою цену — оптовую для оптовиков, свою для постоянных, — и магазин возьмёт с него ровно ту сумму, которую показал.
Переезд с других платформ
Раздел, у которого собственные товары лежат в подразделах, больше не открывается пустым: настройка «показывать товары подразделов» переносится вместе с каталогом. Единицы обычных числовых характеристик тоже переезжают — раньше «10 таблеток» и «гарантия 12 мес.» приезжали голым числом.
Обновление не роняет магазин из-за старого дополнения
Дополнение перевозчика, выпущенное до появления выключателя окна накладной, переставало подходить обновлённому ядру, и сайт отвечал ошибкой целиком — вместе с витриной и админкой. Выключатель стал необязательным: дополнение, которое о нём не знает, работает как раньше. Обновляться можно в любом порядке.
У ошибки появился код обращения
Страница ошибки больше не показывает голое «500». На ней стоит код обращения, и он же попадает в журнал магазина — назовите его тому, кто ведёт магазин, и запись найдётся поиском. Технических подробностей посетителю больше не видно.
Окно проверки накладной можно выключить
Магазину, где отправляют однотипные посылки, лишнее окно только мешает: места и габариты и так заданы в самом заказе. В настройках дополнения перевозчика появился переключатель — при выключенном окне кнопка выпускает накладную сразу.
Отделение и город доезжают до накладной
Данные точки, которую покупатель выбрал при оформлении, теперь передаются перевозчику вместе с её названием, а не одним кодом.
Накладную видно до того, как она уйдёт перевозчику
Магазин больше не выпускает накладную одним нажатием. Кнопка открывает окно, где видно всё, что уедет перевозчику: отправитель, получатель, куда везём, места, вес, габариты и оплата. Там же показаны дата доставки и её стоимость, и они пересчитываются, пока вы правите поля. Накладная уходит только по кнопке в этом окне.
Параметры отправления живут в заказе
Рядом с кнопкой выпуска появились количество мест, габариты, общий вес и поддон. Их вводит тот, кто пакует; они сохраняются в заказе, подставляются в окно и не пропадают, если накладную удалить и выписать заново.
Накладная знает, сколько взять с получателя
Если покупатель платит при получении, магазин передаёт перевозчику остаток суммы заказа наложенным платежом. Раньше в накладную уходил ноль, и посылку отдавали без денег. Частичная предоплата учитывается: с получателя возьмут только то, что осталось доплатить.
В заказе видно, где посылка
Состояние отправления магазин запоминает и показывает в карточке заказа вместе со временем последней проверки. Заказ, оформленный на компанию, уходит перевозчику как отправление юридическому лицу, а если посылку забирает другой человек, накладная оформляется на него. В настройках дополнений появились таблицы сопоставления: слева состояния стороннего сервиса, справа ваши статусы.
Выбранные заказы видно всегда
В окне «На несколько заказов» отметки переживают листание и смену фильтра — так и собирают пачку. Но стоило сменить статус, и отмеченные заказы уходили с экрана: печаталось больше, чем было видно.
Теперь выбранные заказы показаны строкой над списком. Каждый убирается нажатием, рядом — «Снять все».
Выбор заказов для дополнений
Окно «На несколько заказов», которым магазин печатает бланки пачкой, теперь могут открывать и дополнения. Кнопка дополнения в заказе спрашивает, по каким заказам работать: тот заказ, из которого её нажали, отмечен сразу, к нему добавляются остальные. Такие кнопки появились и в шапке списка заказов, рядом с печатью бланков.
Первым этим пользуется дополнение «Ценники и этикетки»: наклейки на дневную отгрузку печатаются одной пачкой. В выборе видны только те заказы, которые сотруднику доступны.
Штрихкод товара и основа для печати этикеток
У каждого варианта товара появилось поле «Штрихкод» — раньше код с упаковки хранить было негде. По нему товар находится поиском наравне с артикулом: достаточно поднести сканер.
В магазин заложена основа для печати ярлыков и этикеток: каталог и карточка товара теперь умеют показывать кнопки дополнений. Сама печать появляется вместе с дополнением «Ценники и этикетки» — оно устанавливается отдельно из маркетплейса.
Вариант товара подписан так, как его назвал магазин
Если у товара несколько артикулов без опций покупки, переключатель вариантов теперь подписан их названиями («чёрный», «белый») — так, как их назвал владелец магазина. Раньше при заведённой числовой характеристике артикула подписи молча заменялись на её значения («275 г», «290 г»). Характеристика подставляется только там, где названий у артикулов нет.
Характеристики артикула и выбор варианта в карточке
Характеристику теперь можно задать не только товару, но и каждому артикулу — число, текст, дату или «да/нет». Раньше флаг «задать значения для артикулов» работал только для характеристик со списком значений: числовую с ним магазин сохранял, но задать её артикулу было негде.
Товар с несколькими артикулами, которые не различаются опциями покупки, теперь даёт покупателю выбор: переключатель собирается по числовой характеристике артикула («10 таблеток» / «30 таблеток»), а если её нет — по названиям артикулов. Раньше выбора не было вовсе и товар всегда продавался основным артикулом. Собственные характеристики артикула видны в карточке и меняются вместе с выбранным вариантом.
Баллы видны там, где на них смотрят
В карточке заказа появилась строка «Оплачено баллами» — раньше менеджер видел итог и не понимал, из чего он сложился. В карточке покупателя теперь есть счёт: остаток, история движений со ссылками на заказы и сроками сгорания, а также начисление и списание вручную — за задержку, за отзыв, в качестве извинения. Каждое такое движение подписано сотрудником.
Оформление заказа
Набранная покупателем сумма баллов сразу пересчитывает заказ, а не только кнопка «Все». Обе правки — из живой проверки: поле принимало число, а сумма оставалась прежней.
Бонусные баллы покупателей
У покупателя появился бонусный счёт: он видит остаток и историю в кабинете и оплачивает баллами часть заказа прямо в оформлении. Списанное показано отдельной строкой в итогах, а отменённый заказ возвращает баллы обратно.
Сколько начислять и сколько разрешать тратить — задаёт дополнение «Бонусы и лояльность». Магазин же следит за тем, чтобы баллами нельзя было заплатить больше, чем их есть, и чтобы сумма заказа сходилась до копейки.
Мелочи
Журнал заказа больше не подписывает сотрудником действие покупателя.
Уведомления в браузере и магазин на телефоне
Магазин получил бесплатный канал связи: покупатель один раз разрешает уведомления и узнаёт о заказе, поступлении товара и скидке даже с закрытым сайтом. Уведомления встают рядом с почтой и SMS — те же события, те же тексты, тот же журнал — и ими же можно сделать рассылку.
Тем же дополнением витрина становится приложением: покупатель ставит магазин на главный экран телефона.
Рассылка больше не врёт об успехе
Рассылка, у которой канал недоступен, честно останавливается с объяснением. Раньше она помечалась отправленной, не отправив ни одного сообщения. Установка дополнения теперь сама перезапускает обработчик задач — новый канал работает сразу, а не после перезапуска сервера.
Помощник отвечает на частые вопросы
Вы задаёте слова покупателя и готовый ответ — магазин отвечает сам, показывает подходящие товары или зовёт менеджера. В переписке видно, что отвечал не человек, поэтому менеджер не повторяет одно и то же.
Заказ прямо из переписки
Покупатель перечисляет коды товаров — магазин узнаёт их с количествами и предлагает положить всё сразу, а менеджеру открывает форму заказа с готовым составом.
Видно, что покупатель уже выбрал
В карточке собеседника показано содержимое его корзины — вместе с самим вопросом, а не после него. Половина вопросов в чате именно о том, что человек уже положил.
Видно, с кем говоришь
Вместе с вопросом приходит карточка собеседника: узнанный покупатель — с телефоном и покупками, гость — со страницей, устройством и тем, откуда пришёл. Отвечать можно обычным сообщением, «ответить» больше не требуется.
Вопрос с сайта приходит в Telegram
Сообщение покупателя из чата на сайте дублируется отвечающему в Telegram, а его ответ возвращается покупателю. Отвечать можно с телефона, не заходя в магазин.
Разделы админки стали одинаковыми
Шапка раздела, кнопки, панели и вкладки теперь выглядят и работают одинаково везде. Раньше каждый экран верстался отдельно, и разделы понемногу разъезжались между собой.
Разделы дополнений — «Заявки на звонок», «Уведомления о поступлении», «Короткие ссылки» — приведены к тому же виду: содержимое лежит в карточке раздела, отбор по состоянию переехал в левую панель со счётчиками.
Поиск товаров в админке ищет как на витрине
Раньше подбор товара в заказе искал по-своему — строго по совпадению названия. Менеджер не находил того, что покупатель на витрине находил.
Теперь во всех местах, где выбирают товар — состав заказа, аксессуары, подборки, подарки, скидки, акции, рассылки — работает тот же поиск и те же настройки, что у покупателя: синонимы, неправильная раскладка, латиница и кириллица, порядок по важности. В подсказках появились фотографии товара. Точный артикул находится всегда, даже если артикулы убраны из поиска витрины.
Правка заказа переписана
- У правки появился свой адрес: ссылку можно дать коллеге, «назад» возвращает к просмотру.
- Из рабочего стола «Редактировать» открывает правку сразу — раньше приходилось нажимать кнопку второй раз уже в карточке.
- Слева покупатель, справа состав заказа, под ним доставка и оплата.
- Позиция занимает одну строку: количество, цена и сумма справа.
- Способ доставки выбирается списком, поля перевозчика подгружаются после выбора.
Мелочи, которые заметны
- Поля выбора больше не стоят пустыми без подсказки — по всей админке.
- У поля «Название магазина» появилось пояснение, где покупатель его увидит.
- Подсказка к имени списка товаров написана человеческим языком.
Повтор заказа
Менеджер открывает новый заказ с готовым составом прежнего — цены и наличие проверяются заново.
Подарки к заказу
Магазин умеет отдавать товар подарком: его цена не пересчитывается скидками и остаётся нулевой до самого оформления.
Товары в заказе — по складу
Позиции заказа сортируются так, как удобно собирать: по складу.
Уведомление на любой статус заказа
Письмо или сообщение покупателю можно привязать к любому статусу, включая ваши собственные.
Колонки товаров в вашем порядке
Порядок колонок в таблице товаров остаётся таким, каким вы его задали.
Заказ помнит нужные вам поля покупателя
Поля, которые вы настроили в оформлении, сохраняются в заказе и показываются менеджеру.
Установка и сброс не оставляют магазин без витрины
После установки и после сброса магазин остаётся рабочим: витрина, тема и настройки на месте.
Один покупатель — одна карточка. Телефон везде хранится в международном виде, поэтому «0671234567» и «+380671234567» больше не считаются разными людьми, а в поле телефона нельзя оставить что попало. Гостю с номером, на который уже есть личный кабинет, магазин предлагает войти вместо того, чтобы завести ещё одну карточку. Регистрация и вход через соцсеть подхватывают карточку человека, который раньше покупал гостем, а правка карточки в админке переносит телефон и почту в его кабинет. Накопленные дубли разбираются кнопкой «Найти дубли» в контактах: заказы, переписка и значения полей переезжают в выбранную карточку.
Названия статусов заказа теперь переводятся на языки магазина. Покупатель видит статус в личном кабинете и в письмах на своём языке, а названия для каждого языка задаются в разделе «Локализация → Статусы заказов». Существующие названия сохраняются как основной язык магазина.
Печать сразу на несколько заказов
Выделили заказы на рабочем столе — и печатаете накладные или бланки пачкой, а не по одному.
Акции со сроками снова включаются и выключаются сами: задача, которая за это отвечает, падала при каждом запуске, и закончившаяся акция продолжала действовать.
Письмо о восстановлении пароля переехало в раздел «Уведомления» — его текст, язык и канал теперь настраиваются как у остальных писем покупателю.
В настройках канала «E-mail» появился переключатель «Не проверять сертификат сервера»: он нужен, если почтовый сервер ваш собственный и сертификат выписан им самим.
Проверка почты в диагностике смотрит на настройки магазина, а не на файл конфигурации, и показывает ваш почтовый сервер.
Исправлена отправка проверочного письма из настроек канала: адрес получателя терялся при сохранении.
Ссылка на магазин выглядит опрятно
У раздела своя картинка для соцсетей, у страницы — своё описание: ссылка, которой поделились, показывает то, что нужно.
Оформление магазина под себя
Значок вкладки загружается прямо в настройках, а не вписывается адресом. Меню админки собирает владелец: свой состав пунктов, раздельные меню магазина и статей, верхнее меню в одну строку.
Исправлено: ссылка на заказ в личном кабинете покупателя вела на пустую страницу. Тема «Промо»: выровнено оформление — единый вид кнопок, одинаковая высота карточек товара, на телефоне ленты товаров листаются и видно, что их можно листать, заработала кнопка «Каталог» в нижней панели.
Реквизиты продавца стали профилями: если витрины торгуют от разных юрлиц, каждая печатает документы со своими данными, а при печати можно выбрать, от чьего имени выставить счёт. Живут они теперь во вкладке «Реквизиты» раздела «Печатные формы»; заполненное раньше переезжает само. Номер заказа: в магазине хранится сам номер, а приставка вроде «#100» добавляется при показе — поэтому перенесённые заказы тоже с ней, а формат можно поменять в любой момент. После переезда новые заказы продолжают нумерацию старого магазина. Счётчик у пункта «Заказы» считает те статусы, которые вы выберете в настройках заказов.
Исправлен перенос категорий: в прошлой версии они не переносились вовсе. Проверка связи с базой старого магазина больше не путает недоступную базу с чужой — причина отказа приходит от самого сервера базы и остаётся на экране. Значения характеристик и названия категорий и товаров приезжают заполненными на всех языках магазина, даже если старый магазин перевёл не всё. В рабочем столе заказов появились печатные формы и кнопки дополнений — раньше они были только в полной карточке заказа.
Переезд с другой платформы больше не зависит от планировщика: перенос идёт из окна магазина, порция за порцией, и две порции больше не наступают друг другу на пятки — от этого раньше терялись отдельные товары. Значения характеристик приезжают заполненными на всех языках магазина, даже если старый магазин перевёл только названия. Заказ теперь можно напечатать: счёт на оплату и расходная накладная, бланки правятся в разделе «Печатные формы». Дополнения научились добавлять свои кнопки и блоки прямо в карточку заказа.
Заказ теперь можно напечатать: счёт на оплату и расходная накладная. Бланки правятся под вашу бухгалтерию в разделе «Настройки → Печатные формы» — с предпросмотром на настоящем заказе и возвратом к заводскому виду. Реквизиты продавца задаются в «Настройки → Реквизиты». Связывание справочников при переезде стало понятнее: блоки свёрнуты, видно, что с чем свяжется, есть поиск и связывание совпадающих названий одним нажатием. Типы товаров в характеристике отмечаются списком.
Раздел «Инсталлер»: магазин дополнений и тем, всё установленное, обновления и установка из файла — теперь в одном месте. Обновление начинается сразу по кнопке и больше не ждёт расписания. Перед обновлением видно, готов ли к нему сервер, что из установленного может перестать работать и есть ли свежая резервная копия. Настройки установленных плагинов переехали в свой раздел «Плагины».
Обновление начинается сразу по кнопке, а не по расписанию, и показывает честный ход установки. Названия статусов старого магазина при переезде.
Две темы оформления со светлым и тёмным видом. Варианты покупки прямо в каталоге: покупатель выбирает цвет или объём памяти на карточке, меняются фото, цена и наличие. Доп-услуги товара доходят до корзины. Раздел «Акции»: страница акции со сроком и скидкой на подборку. Темы ставятся из маркетплейса. Исправлен переезд с Webasyst напрямую из базы.
Перенос заказов больше не останавливается на десятитысячном и не выдаёт себя за завершённый.
Старый магазин на части номеров отвечает неверно: на «заказы после 10000» отдаёт заказы с самого начала, а число записей выдумывает. Перенос этому верил, дальше пройти не мог и объявлял себя готовым — доезжало около 15% заказов. Теперь заказы забираются по счёту записей, каждая порция сверяется, а при неудаче перенос останавливается с причиной.
Названия вариантов покупки теперь переводятся. Раньше у товара, категории и характеристики перевод был, а у варианта («40 Вт», «Синій», «XL») — нет, и на магазине с несколькими языками карточка оставалась наполовину непереведённой.
Итоги покупок магазин досчитывает сам. Если очередь задач останавливалась, раздел «Покупатели» мог показать нули у всех — теперь недосчитанное чинится без вашего участия.
Резервные копии базы данных работают на хостингах, которые запрещают запуск вспомогательных программ. Раньше на таких копия не снималась и не восстанавливалась вовсе.
Диагностика показывает ограничения вашего хостинга и объясняет, что каждое из них меняет для магазина, — до того, как что-то сломается.
Кнопка «Открыть доступ к фотографиям» объясняет, что делать, вместо технической ошибки.
Перенос магазина с другой платформы, переданный серверу, больше не останавливается. Он не делал ни одного шага: счётчик замирал, а перенос числился идущим.
Перенос покупателей идёт заметно быстрее. Поиск уже заведённых людей перебирал всю базу контактов на каждого человека, и с каждой тысячей перенос замедлялся.
Кнопка «Остановить» у переноса теперь работает: раньше он сам продолжался через три минуты. А перенос, вставший по настоящей причине, больше не поднимается бесконечно — он останавливается и показывает причину.
Резервные копии базы данных работают на хостингах, которые запрещают запуск вспомогательных программ. Раньше на таких хостингах копия не снималась и не восстанавливалась вовсе, а владелец видел техническую ошибку.
Диагностика показывает ограничения вашего хостинга и объясняет, что каждое из них меняет для магазина, — до того, как что-то сломается, а не после.
Очередь задач больше не отчитывается о работе, которой не делала: письма покупателям, выгрузки и обновления доходят до конца. В режиме обслуживания задачи тоже выполняются — раньше обновление, включившее этот режим, не могло завершиться.
Кнопка «Открыть доступ к фотографиям» объясняет, что делать, вместо технической ошибки.
Очередь задач теперь разбирается и на хостингах, где запрещены функции pcntl: раньше её обработчик падал, и не уходили письма, не применялись обновления, стоял фоновый перенос.
Расписание теперь работает на хостингах, где запрещены proc_open и pcntl: раньше из-за них не выполнялась НИ ОДНА задача — не уходили письма, не разбиралась очередь, стоял перенос, а cron рапортовал об успехе.
Диагностика больше не говорит «планировщик не запускается» при работающем cron. Фоновый перенос сам продолжается, если цепочка оборвалась, и счётчик на экране больше не замирает.
Главное: планировщик падал на хостингах, где запрещены функции pcntl — из-за этого не работали ни очередь, ни фоновый перенос, хотя cron отрабатывал. Незаконченный перенос теперь открывается сам после перезагрузки страницы. Перенесённые покупатели видны в разделе сразу, не дожидаясь заказов.
Исправлено: один оборванный запуск задачи глушил расписание на сутки, и диагностика говорила «планировщик не запускается» при работающем cron. Добавлена кнопка «Снять замки планировщика».
Обновление теперь рассказывает, что делает: «в очереди», «загружаем пакет», «проверяем подпись», «заменяем файлы». Все подписи и описание обновления приходят на языке админки.
Перенос магазина теперь идёт на сервере: вкладку можно закрыть. Продолжение продолжает с места остановки, а не начинает заново. После переезда пересчитываются итоги покупок.
В карточке покупателя появились покупки: итоги и история заказов. Категории покупателей пересчитываются ночью — условие «покупал за последние N дней» теперь срабатывает само.
Раздел «Покупатели»: шапка встала вровень с остальными разделами, у числовых полей появились подсказки.
Режим обслуживания: сотрудник теперь видит полосу «магазин закрыт», а страницы, открытые сотрудником, больше не попадают в общий кеш витрины. В архив добавлена инструкция по настройке сервера.
Появился раздел «Покупатели»: кто покупает, сколько принёс, история заказов, категории покупателей со своими названиями и автоназначением по покупкам. Фотографии больше не нарезаются все сразу при загрузке — перенос ускорился в сотни раз. Мастер установки открывает доступ к фотографиям сам и показывает, что нужно настроить на сервере.
Скидка в корзине теперь объяснена: прежняя цена зачёркнута, рядом название акции, в итогах — «Ваша выгода». Акция на категорию применяется сразу при сохранении, а не через минуту. Переключатель языков остаётся на том же домене. Один знак валюты на всём экране.
Названия и описания плагинов теперь на языке админки — и у установленных, и в списке доступных к установке. Ссылка на скачивание обновления живёт сутки вместо получаса.
Появилась кнопка «Сбросить магазин»: возвращает копию к состоянию после установки, сохраняя плагины, лицензию и сотрудников. Витрина и язык интерфейса берутся из того, что указали при установке. Перенос с другой платформы больше не спотыкается на длинных ключевых словах, не замирает на фотографиях, а о непрошедших записях сообщает понятным текстом.
Отозванная лицензия теперь распознаётся магазином, а не остаётся активной навсегда. В диагностике видно, работает ли планировщик и когда он отработал. Маркетплейс разбит по категориям целиком. Мастер установки задаёт языком магазина тот язык, на котором его проходили.
Фоновые задачи наконец выполняются: письма покупателям, выгрузки и обновления больше не копятся молча. Неактивированная копия не получает платные разделы. Переезд с другой платформы работает без настройки сервера и показывает ход работы.
Установка на чистом сервере проверена целиком: исправлен посев данных на нескольких языках, мастер больше не закрывается на шаге администратора, копия ставится в рабочем режиме, а не в отладочном.
Установка в базу, где остались таблицы от прошлой попытки, объясняется словами, а не ошибкой SQL, и базу можно очистить прямо из мастера. Исправлено имя индекса, из-за которого установка обрывалась посреди миграций. В мастере появился фирменный знак.
Установка на чистом сервере доводится до конца: мастер больше не спотыкается на переходе к настроенной базе. Сам мастер теперь на трёх языках — открывается на украинском, переключается на русский и английский.
Первый релиз CartiX: каталог, заказы, доставка и оплата, админка, витрина.