Features
← All features
Shop engine

CartiX

Screenshots are coming soon.

A detailed description is on its way.

Тема «Базовая» (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.

2.138.0 01.11.2026

Before you update

Update the Nova Poshta, Meest, Ukrposhta, One-click buy and Dropshipping add-ons together with this version. If you update only the carrier, the quick order window and the dropshipper’s account will show just the first 30 branches with no search, and the shop will start rejecting some orders that dropshippers send through the API.

What’s new

You can now fix a mistake in a reply to a customer. In Conversations, hover over your message and click the pencil to edit the text or the bin to delete the message. The customer sees the corrected text in place, and a deleted message disappears for them. In Conversations, a grey line shows who deleted it and when, and the old text appears when you hover over it. Staff can edit only their own replies. An administrator can edit or delete any shop message, including auto-replies. For Telegram and website chat conversations, this starts working once you update those add-ons.

Customers now find a branch or parcel locker as they type its number or address, for example “Радунська 8/13”, across every point in the city. The field used to load only the first 2,000 points, while Kyiv alone has over seven thousand Nova Poshta parcel lockers, so some of them couldn’t be selected at all. Nova Poshta and Meest branches that won’t accept the parcel because of its weight or size no longer appear in the list. The order editor in the admin panel searches the same way. The map shows the nearest points and suggests zooming in if not all of them fit on the screen.

What we fixed

If a customer picked a parcel locker and then increased the quantity, the order could go to a locker that won’t accept such a parcel. Now the choice is cleared in that case, and the shop won’t let the order go through to an unsuitable point.

2.137.0 30.10.2026

What we fixed

The installation wizard could be continued from any browser until installation was finished. A stranger who opened the installation address at that time could create an administrator account or connect the shop to their own database. If installation was abandoned halfway, the wizard stayed open on a live shop. Now only the browser that connected the database can continue, the administrator is created once, and after that the database can’t be changed. If installation is abandoned after the administrator is created, the wizard closes by itself after a day.

The shop accepted a product video link if “vk.com/video” or “youtube.com” appeared anywhere in it. It loaded the VK preview straight from that link, so a staff member could make the shop open addresses on the server that are closed to the internet. Now links are accepted only from YouTube, Vimeo, Rutube and VK, and the shop gets the VK preview by the video’s ID.

When moving from another platform, the shop downloaded photos from any address in the old site’s data, including addresses on the server that are closed to the internet. Now the shop downloads photos only from the internet, doesn’t follow redirects to closed addresses, and skips files larger than 40 MB.

2.136.0 26.10.2026

Before you update

Your CartiX key now works only on the domain it is linked to. If your shop already runs at a different address, you will have 3 days after the update to move the key, or the storefront and the panel will close. To move it, unlink the old domain in your account at cartixx.com, then open the panel at the new address, click “Check now” and enter the key. You can unlink a domain once every 30 days.

What’s new

Each time your shop checks its licence, it tells us which addresses its panel was opened at. If someone copies your shop with its database and opens it on another domain, you get an email with that address, and 3 days later the copy’s storefront and panel close. Your own shop keeps working. Development addresses and IP addresses don’t count. A shop with several domains isn’t treated as a copy as long as you also open the panel on the key’s domain. Details: https://cartixx.com/docs/engine/updates

You now manage your licence only in your account at cartixx.com. In System → Licence, the “Detach” button is now “Manage in your account”. This way a copy of your shop can’t unlink your key.

Fixed

If someone opens the storefront before installation is finished, the shop no longer logs an encryption key error.

2.135.1 26.10.2026

What’s new

If your store has more than one language, you can now choose the message language in the “Write to the customer” window. The store fills in the template and the order details in that language, and the email or SMS goes out in it too. The language the customer placed the order in is selected first. If you’ve already edited the text, switching the language leaves it as it is.

2.135.0 26.10.2026

What’s new

In the order card, gifts are now listed at the end, after the purchased products.

What we fixed

An order copy now opens with the same Nova Poshta branch or parcel locker as the original order. Previously the branch was lost and the manager had to pick it again. If the branch has since closed or does not accept a parcel of this weight, the field stays empty and you need to choose another one.

If you change the city in an order, Nova Poshta offers branches of the new city. Previously the list could still show branches of the old one.

2.134.0 26.10.2026

What’s new

A receipt can now come from the register of the sole proprietor (FOP) who shipped the parcel. To use it, update "Nova Poshta waybills" to 1.8.0 and choose the register for each sender on the add-on screen.

2.133.0 25.10.2026

What’s new

Dropshippers can now send orders straight from their own website. They issue the key for this themselves in their account. In Orders, such an order is no different from one placed in the account. It has the recipient, Nova Poshta delivery, the dropshipper’s selling price and the payment scheme. Here is how to connect a website: https://cartixx.com/docs/api/dropshipping

When a buyer doesn’t collect a parcel, the shop now records what you paid for delivery, the return and paid storage at the branch. The carrier reports these amounts. The shop keeps following the parcel until it’s back with you and records the day it returned. Dropshipping uses this to charge the dropshipper what the refusal actually cost you.

In CRM, the “Send data to another program” action now keeps retrying for about three days when the program doesn’t answer or can’t take the data for a while. Before, the shop gave up after 12 minutes, and a short outage on the program’s side meant lost data. While retrying, the line in the Run log shows a clock and the run stays Running. If the program refuses the data or redirects to another address, the log says so right away and shows its response. The shop won’t retry in that case, so check the address and the signing key in the rule.

What we fixed

Add-on blocks on the order page didn’t refresh after a status change, a payment or an update from the carrier. For example, the Dropshipping block kept showing the old credit until you reloaded the page. The blocks now refresh on their own.

After updating

Update Dropshipping to 1.1.0 and Nova Poshta waybills to 1.7.0 in Platform → Updates. Both came out with this update and need it. Until you update them, orders from a dropshipper’s website and charging the real cost of a refusal won’t work.

2.132.1 25.10.2026

What’s new

Staff with the “Install and update add-ons from the marketplace” permission can now turn add-ons on and off in Settings → Plugins. They don’t see the add-on’s settings. Instead there’s a note saying that someone with the “Change shop settings” permission changes them. Before, the whole section was closed to them.

What’s fixed

Buttons that lead to the add-on catalogue are now shown only to people who can open that catalogue. Before, a staff member with only the “Open the system section” permission could press such a button on the telephony, cash register, marketplace, import/export or design screens and land on the overview.

Staff without the “Open the system section” permission no longer see the System icon in the left bar, which held nothing for them but What’s new. What’s new still opens from the top bar, and on a phone from the profile menu.

During shop installation and when unlinking the key in System → Licence, the panel promised that the shop works without a key. In fact, without a key the shop is closed to customers, and the panel now says so plainly.

A card with nothing but a heading no longer leaves an empty strip under it. In search settings, the “Search engine” field is now called “Search method”.

After updating

Update the Lightning-fast search and City autocomplete add-ons in Platform → Updates. After that, their progress messages will also appear in the language of whoever pressed the button.

2.132.0 24.10.2026

What’s new

The new Dropshipping add-on is out. Dropshippers find buyers and place orders in their own account on your website, and you ship the parcels. A dropshipper’s price is your retail price minus their level discount. The shop keeps their balance, credits the margin once the buyer collects the parcel, charges a fee for refused parcels and records payouts. You can install the add-on in “Platform → Installer”.

2.131.1 23.10.2026

What we fixed

After the menu was rebuilt in 2.131.0, some hints and messages in the panel sent you to sections that no longer exist or have a new name, such as Settings → Print forms instead of Settings → Store settings → Print forms. Paths in hints now match the menu.

2.131.0 23.10.2026

What’s new

The strip on the left has two new sections, Platform and System. What used to be tabs on one screen now has its own menu items.

Platform holds everything about add-ons, plus Shop API. Installer is the catalogue of add-ons and themes you can add to the shop, and the ones you already have are marked “Installed”. We gave it this name so it isn’t confused with Marketplaces, where Rozetka and Prom live. Updates shows only what can be updated: a CartiX card with your current and the new version, the update and “Make a backup” buttons, and one line saying whether the shop is ready to update. When there’s nothing to update, the screen says “Everything is up to date”. Install from file lets you add an add-on or theme from a ZIP archive and connect add-ons that sit in a folder on the server.

System brings together diagnostics, maintenance, backups, logs, system info, the licence and What’s new.

Installed add-ons have moved to Settings, under Plugins. Groups in the list fold away, and you can find an add-on by typing its name. If a plugin has no settings of its own, the screen says it’s installed and working and tells you which section to open. Old links and bookmarks lead to the new sections.

You can no longer delete a plugin from the panel. An add-on you don’t need can be switched off, and then it does nothing.

The scroll bars in the panel are now thin.

What we fixed

On the updates screen, the backup line always said there was no backup, even right after you’d made one. It now shows the date of the latest backup.

The shop now runs on fresh versions of its libraries. The one that checks uploaded SVG images had a vulnerability that let a specially crafted file slip past the check.

After updating

Update your add-ons in Platform → Updates. City autocomplete 1.5.0 can take city suggestions from the Nova Poshta directory. Customers then see only the places the carrier delivers to, spelled the way the carrier spells them. To turn it on, open Settings → Plugins → City autocomplete and pick it in the “Settlement directory” field. The option appears once the Nova Poshta add-on is switched on and has loaded its cities. Cloud backups 1.1.1 and Documents to cloud 1.2.6 are also out, with security fixes.

2.130.0 22.10.2026

What’s new

You can now add a tracking number to any order, whatever the shipping method. The order card has a new “Tracking number” line in the “Delivery” block. Click “Add number” and paste an Ukrposhta number, a courier service number or the number of a waybill you issued in the carrier’s account. You can correct or remove it, and every change stays in the order history. The customer sees the number in their account. It also goes into print forms and order exports, and into emails where you added the “Tracking number” variable to the template.

When the store issues a Nova Poshta waybill, its number goes into the same line. If you replace such a number with your own, the waybill stays in the carrier’s account, but you won’t be able to print or delete it from the store.

What we fixed

In the “Carrier waybill” block, an Ukrposhta order showed the “Where the parcel is” and “Delete the waybill” buttons, although Nova Poshta does not know that number. “Where the parcel is” now appears only where the number belongs to Nova Poshta, and “Delete the waybill” only for a waybill the store issued.

What to do after updating

If you use the “Nova Poshta waybills” add-on, update it to 1.6.2. The old version asks Nova Poshta about every number, Ukrposhta ones included. If in “Order status by parcel state” you gave a status to the “Waybill number not found” state, the order will change its status by itself and the customer will get an email. The “Where the parcel is” button for a number typed in by hand also comes only with the new version.

2.129.2 22.10.2026

What we fixed

The “Add a product” suggestions in an order showed no more than six rows, so a product with seven variants lost the last one, such as “100 pcs”. The suggestions now show everything the search found, and a long list scrolls. In a gift’s settings, the “What to give” field no longer stops the list at ten rows either.

The suggestions also threw away part of what the search found. If the query had a comma where the name had a dot, the product vanished: “lamp 7,5 W” did not show “Lamp 7.5 W”. A customer you searched for by email did not appear in the list either. Both now show up.

2.129.1 22.10.2026

What we fixed

When a manager added a product to an order in the panel, the search could miss the right product if products had many variants. A product with seven pack sizes could drop out of the suggestions even though it matched the query best.

Now the best match comes first, followed by all its variants in the same order as on the product page. If you type an exact SKU, it goes to the very top. A general query now shows several products in full instead of two or three. Picking a gift for an order works the same way.

2.129.0 21.10.2026

What’s new

If a partner connects to your shop, their developer can now get a description of the API in the OpenAPI format. The file lists every request to the shop and every field in the responses. The developer opens it in Postman or Swagger and gets ready-made requests, with no key needed. You will find the link in “Platform settings → Shop API”, in the “How to connect” block of the key. Details: https://cartixx.com/docs/api/overview

What we fixed

A partner’s program could fail on an order moved from another system or received from a marketplace. The city, shipment type and pickup point in such orders sometimes arrived in a form the program did not expect. These fields now always come as plain text, or empty when there is no value.

2.128.1 21.10.2026

Fixed

If a staff member places an order in the admin panel, the order history now shows their name next to the “Order created” entry. Previously the entry had no name, so you could not tell from the history which staff member had placed the order.

2.128.0 21.10.2026

What’s new

The order editor now shows promotion gifts below the order contents if you have the Free gifts add-on 1.9.0. The manager chooses them the same way a customer does in the cart.

Fixed

The “Payment and delivery” section again explains under its heading what it is for. Before, it mistakenly said “Description for customers”.

2.127.1 21.10.2026

Fixed

A wrong fiscal receipt can now be corrected. Issue a refund receipt for it, and once the cash register confirms the refund, issue the correct sale receipt with the “Issue a receipt” button in the order. Before, after a refund the shop refused to issue a second sale receipt for that order, so the wrong receipt was left with nothing but its refund.

The shop issues a new sale receipt after a refund only when a manager presses the button. It never issues one by itself on payment or on a status change, because moving an order out of “Refunded” does not mean the money has come in again. If you need another refund, issue it against the new sale receipt.

2.127.0 21.10.2026

What's new

The shop now adds the purchased variant in brackets to the product name on the fiscal receipt, for example “Shampoo (500 ml)”. Before, the receipt showed only “Shampoo”, and the customer could not tell which size they had bought. If the variant has no name of its own, or the product name already includes it, the receipt shows just the product name.

Add-ons can now show their own blocks on the order page, just below the payment block. Once you update Checkbox to 1.3.1, its “Fiscal receipts” block moves there, next to the payment details.

2.126.0 20.10.2026

Fixed

The shop now shows times in its own time zone. Before, times in the panel ran several hours behind, so an order placed at 22:39 Kyiv time appeared in the list and on the order page as 19:39. The same happened in the order history, contacts and customers, reviews and questions, and exports. An order placed after midnight got yesterday's date, and that date went into the customer's email, the printed documents and the customer account.

The “Order date” filter, the date filters in stock movements and the count of today's orders now start the day at midnight shop time. Before, an order placed at 00:30 counted towards the previous day. Bonus points now expire at the end of their last day shop time, not at three in the morning of the next day.

2.125.0 20.10.2026

What’s new

You can now add the tracking number to SMS and emails for customers. When a manager creates the shipment and moves the order to the “Shipped” status, the customer gets the number in the message and can track the parcel without calling the shop. To turn this on, open “Settings → Notification settings”, choose the “Order: Shipped” notification and add the “Tracking number” variable to the text. You can also insert the same number into a message you write to the customer from the order card and into an order automation message.

2.124.0 19.10.2026

Fixed

A purchased product no longer disappears from the cart when the same product is already there as a gift. If a promotion gave away, say, one pack and the customer added the same pack at full price, the store said "added", but the paid pack merged into the gift and vanished. The same happened when a customer signed in to their account with such a cart. The "in cart" mark on the product page now shows what the customer added themselves, not the gift.

A blog post written in only one language no longer shows up as an empty card in the blog feed for another language. Its page in that language used to open with no text; now the language switcher on the post leads to the blog feed. Search engines are told only about the languages the post is written in.

2.123.0 19.10.2026

What's new

When a customer signs in with a code and the Telegram message doesn't reach them, the shop can send the same code by SMS. This happens when the customer hasn't opened Telegram or the message wasn't delivered. You choose how long to wait, from 1 to 3 minutes. No SMS goes out if Telegram confirmed delivery or the customer has already signed in, and the shop revokes the late Telegram message.

You'll find the setting under Storefronts → your storefront → Registration and sign-in → Sign-in with a code. It needs codes by Telegram and by SMS turned on, and an SMS service connected in Notifications → Channels. Each such SMS is billed at the service's rate.

2.122.2 19.10.2026

Fixed

If a delivery method shows a note instead of a price, such as "By carrier tariff", the order in the customer's account listed delivery as "Free". It now shows the same note the customer saw at checkout. The note also appears on the order card in the panel and stays when you edit the order. This applies to orders placed after the update.

2.122.1 19.10.2026

What we fixed

Once a customer opened "Delivery to another country", there was no way back to delivery within Ukraine except finding Ukraine in the country list. Now a "Cancel country selection" link sits under the list.

When a customer switched delivery methods, the price of the selected method disappeared while the total was being recalculated. Now the previous price stays in place, with a loading spinner next to it.

2.122.0 19.10.2026

What's new

Your store now takes orders from other countries. Turn on “Delivery to other countries” in the checkout settings, and a “Delivery to another country” link appears under the city field. The customer picks a country from a list and types the city. The country is saved in the order and printed on the forms.

The display rules for shipping and payment methods have a new “Delivery country” condition. For example, you can show a method with your own price or “carrier rates” only to customers in Ukraine, and international delivery only to customers from other countries. If the customer didn't pick a country, the store treats the order as going within your store's country.

You can now format a shipping method's description with colour, bold text and line breaks. If your theme supports it, the customer sees this description above the fields of the selected method. In the method's row, the description is still plain text.

The method list in “Payment and delivery” now shows the logo you uploaded for each method.

What we fixed

If a method's description contained tags, the customer saw them as text at checkout, for example “”. Now they see only the description itself.

2.121.2 19.10.2026

What's new

You can now reorder payment and delivery methods in "Settings → Payment and delivery" by dragging them with the mouse in the list on the left. In release 2.121.1 this was done with arrows. Delivery address fields in a method's table are also reordered by dragging. Grab a field by the ☰ icon to the left of its name.

The "Method works" switch has moved to the method's header, next to the "Delete" and "Save" buttons. In the "In other languages" block, the "Name" and "Description" fields now sit one below the other, just like in the main block.

2.121.1 19.10.2026

What’s new

The address fields of a delivery method are now set up in one table. You tick which fields to ask for and which are required, and use the arrows to put them in the order the customer fills them in. Before, the order of the fields was always the same.

You can now rearrange payment and delivery methods. In “Settings → Payment and delivery”, each method in the list on the left has “up” and “down” arrows, and customers see the methods at checkout in the same sequence. Before, there was no way to change it.

When you move from Webasyst, a customer who has an email but no phone number now gets a customer account, as long as your shop lets customers sign in by email. They can reset the password by email. Before, such a customer was left without an account.

What we fixed

The rule “hide a payment method for a certain delivery method” did not work at checkout. If, for example, you turned off cash on delivery for courier delivery, the customer could still choose it. The rule works now. You’ll find your rules under “Settings → Payment and delivery → Display rules”.

If you installed or turned on an add-on without closing the panel, its captions showed up as technical placeholders and its screen did not open until you reloaded the page. Now the add-on shows its own texts and screen right away.

You can now upload the site icon as an ICO file. Before, the file picker did not show such files.

2.121.0 19.10.2026

What’s new

Running the Webasyst migration again now picks up only what has changed since the last run. That means new orders and orders that were edited, paid or moved to another status on the old site, plus new customers and the customers of those orders. Products and reference lists are still moved in full. Before, the final run before switching the domain re-read every customer and every order. In a shop with 28,000 orders that took 18 minutes; now customers and orders catch up in 14 seconds.

Sometimes old records do need to be read again. If you change the matches (for example, find a match for an order status), delete migrated orders or customers in the shop, or some of them failed to save last time, the shop moves all customers and all orders again by itself.

This works when the shop reads the old site’s database: with database credentials, from a folder on this server or through the bridge file. If you connected with an access key, the migration still reads everything.

If a customer changed their phone or email on the old site but placed no orders, a repeat run won’t notice. Webasyst does not record when a contact was edited.

What’s fixed

When a partner’s website did not accept the connection within 5 seconds, the message log in Shop API said “The partner’s website did not respond within 5 seconds”. That was confusing, because the shop waits 10 seconds for a reply. The log now says “The partner’s website did not accept the connection within 5 seconds”. All delivery failure reasons are listed in the documentation (Russian and Ukrainian only): https://cartixx.com/docs/api/webhooks

After updating

If you are moving from Webasyst, update the “Migration from other platforms” add-on to version 1.14.0. Without it, a repeat run still reads every order and every customer.

2.120.0 19.10.2026

What’s new

The shop now tells a partner connected through the API when something changes. The partner learns that the status of their order has changed or that a manager has edited the order, for example the delivery or the waybill number. The shop also reports that product prices may have changed and that stock levels have changed. The partner no longer has to keep polling the shop. A message carries only order or SKU numbers, and the partner fetches the data itself through the API, so it never sees more than its key allows. Developers call these messages webhooks.

To turn the messages on, open “Platform settings”, choose “API” in the “Platform” group, then the partner’s key, and find the “Messages to the partner” block. Enter the address the partner gives you, tick what to report, and give the partner the signing secret. The “Send a test” button shows whether the partner’s site accepts messages. The “Message log” block lists every message from the last 30 days and what the partner replied. How to connect a partner is described in the guide: https://cartixx.com/docs/api/webhooks

If the partner’s site stops accepting messages, the shop keeps resending them. After 12 hours it warns you in your notifications, and after three days it turns sending off. Once the partner has fixed their site, click “Turn on again”.

You can now request stock levels through the API for a list of SKU numbers, just like prices. These are the same numbers that arrive in the stock change message.

What we fixed

If a delivery address had a country and region, saving the order in the admin panel erased them, even when the manager had edited something else entirely. The address now stays as it was.

An order without the customer’s phone number or last name, such as one sent by a partner through the API, could not be saved in the admin panel until the manager filled in the missing field. Such an order now saves, and a field that is already filled in still cannot be cleared.

A rule in “Automations” with the “Send data to another program” action logged the data as delivered when the program answered with a redirect to another address and received nothing. The shop now treats this as a failure, retries, and notes in the “Run log” that the address needs checking.

2.119.0 19.10.2026

What’s new

Partners and dropshippers can now send orders to your shop through the API. The partner sends the products, using their numbers from the API catalog, and a comment. The order shows up in your Orders with the sales channel “API: key name”. The customer in it is the contact you issued the key to, and the shop calculates prices and discounts for that contact. Your manager assigns delivery, payment and the recipient in the panel, just like in any other order.

The shop reserves products for these orders in the warehouses chosen in the key. If no warehouses are chosen, it uses the warehouses the storefront sells from. If a quantity doesn’t match the sales step, or there isn’t enough stock and “Allow ordering when the goods are out” is off, the shop rejects the order and tells the partner the reason for each item. The partner sees their orders and their statuses but can’t change or cancel an order through the API.

To let a partner send orders, tick “Create new orders” in their key. To let them see the statuses too, also tick “See orders”. How to connect a partner: https://cartixx.com/docs/api/orders

The shop doesn’t send anything about API orders to the partner or their customers on its own. The only exception is the electronic receipt, if “Send the receipt to the customer” is on for the cash register. You can stop sending it to the partner in the key form, in the Partner orders block.

What we fixed

When a promotion gave away the same product the customer had put in the cart, the shop reserved more than was in stock. With two items in the warehouse, three went into the reserve, and the missing one was not marked as backordered. Now the reserve never goes above the stock, and the shortfall is backordered. The same happened when one product sat in an order as two items with different services.

Customers can no longer fake the sales channel of their order. Before, by changing the checkout form data, a customer could pass their order off as a marketplace order, and the shop then sent them no emails about it.

What to do after updating

Update the Free gifts add-on to 1.8.0 and Invoice to the customer by email to 1.1.4. Otherwise API orders won’t get promotion gifts, and an invoice that goes out automatically on a status change will be emailed to the partner.

2.118.0 18.10.2026

What’s new

Partners who pull your catalogue through the API now see your wholesale tiers: the unit price from 10 pieces, from 50 pieces and so on. Each tier shows the same price the partner will pay for that quantity in an order, including their customer category’s discount. Tiers come from the Wholesale pricing add-on, version 1.4.0.

Partners now get the minimum quantity and the order step for every product variant, and they match what the cart will apply. If a product is sold only in packs and a variant has its own pack, that variant has its own minimum and step too. Details for the partner’s developer: https://cartixx.com/docs/api/prices

What we fixed

Products sold only in packs went to Prom without their pack size, so Prom didn’t know your store won’t sell less than one pack. Prom now gets the same minimum order the cart applies: for candles in boxes of 6, that’s 6 pieces. The minimum goes to Prom only as a whole number, so a fractional one such as 1.4 m² isn’t sent.

If a product had no minimum of its own, partners using the API and Prom got the minimum from the product type, even though the cart ignores it. The minimum now matches the cart everywhere.

What to do after updating

To show wholesale tiers to partners, update the Wholesale pricing add-on to version 1.4.0. It works only with CartiX 2.118.0 or later, so update your store first and then the add-on.

2.117.0 18.10.2026

What’s new

A partner you have given an API key can now pull your catalog into their own website. They get products with descriptions, photos and attributes, categories and brands, as well as prices and stock. The API still cannot change anything in your store. The partner only reads data and sends new orders.

The partner gets prices with every discount that applies to their contact. If the contact belongs to a customer group with a discount, the price in the API already includes it.

The key settings have two new blocks. In the Catalog block you choose how product descriptions are sent: with formatting, which keeps lists, tables and images, or as plain text if the partner’s website does not accept formatting. In the Stock block you decide whether the partner sees one total or stock per warehouse, and you pick the warehouses. For a dropshipper you can set up a separate warehouse and open only that one to them.

The partner does not have to pull the whole catalog every time. They can ask for only what has changed since the last time. The partner’s developer will find the details in the help center: https://cartixx.com/docs/api/catalog-sync

What we fixed

The Free shipping and Cash on delivery methods that the store creates during installation were shown to customers in Russian, even on the Ukrainian and English storefronts. They now have names in every language of your store. If you have already renamed these methods, the store leaves your names alone.

A warehouse you never gave a colour no longer gets one on its own. The warehouse window used to fill in the first colour from the palette, and it was saved whenever you saved the warehouse. You can now pick No colour from the colours.

2.116.0 17.10.2026

A big update

This is a big update. Your shop now has an API, and to make room for it we rewrote how the panel saves products, categories, contacts and orders.

More and more often, partners and dropshippers want to pull your catalogue into their own sites, and the developer of your website or mobile app wants to fetch products and send orders to your shop. Their software needs its own way into the shop for that, without the panel and without export files. That way in is the API. Until now there wasn’t one, so every connection needed a separate add-on or an exchange of files.

This release is the API’s first step. You can already issue keys and see who is contacting your shop and how. Products, prices, stock, orders and customers will arrive in the API in upcoming releases.

What’s new

Settings now have a “Shop API” section in the “Platform” group. There you issue a key to everyone who connects to your shop and tick which sections they can reach. A key can have an expiry date, a limit on requests per minute and a list of IP addresses it works from. If someone no longer needs access, revoke their key. The other keys keep working. A staff member can only give a key what they can open in the panel themselves.

Each key is issued to a contact in your database, such as a dropshipper or a partner. Once prices and orders arrive in the API, the shop will calculate prices for that contact based on their customer group and record orders under their name. If you move a working key to another contact, the shop issues a new key and the old one stops working. If you delete a contact, their keys are deleted with it.

The API can only show your shop’s data and pass new orders to you, for example orders from customers on a dropshipper’s site. It can’t change products, prices, stock or orders that have already been placed.

The request log keeps the last 30 days of requests to your shop. Click a failed request to see what was sent and what the shop replied. This makes it easier to see why a connection isn’t working. Every reply from the shop carries a request code. If a partner sends you that code, type it into the “Request code” field above the log and you’ll see that request. Passwords and keys in the log are hidden behind asterisks.

Right now the API gives out the shop’s basic details (name, currencies with their rates, languages) and reference lists: storefronts, order statuses, payment and shipping methods, warehouses, customer groups, contact types and tax rates. The API hands out long lists in parts, 50 records at a time, and a developer can ask for up to 200. You can already tick the catalogue, prices, stock, orders, customers and new orders permissions on a key. They start working as those sections reach the API, and you won’t need to issue the key again.

Send whoever connects to your shop a link to the API guide at https://cartixx.com/docs/api. It explains how to issue and check a key, what data is available and what each error means.

Behind the scenes, we rewrote how products, categories, features, brands, contacts and orders are saved. They now all go through one shared process, and the next steps of the API will build on it. In the panel everything works as before.

What we fixed

Import moved a product to the top of a category whose products you had arranged by hand. Now the product stays where it was.

Import didn’t keep the original photos even with “Keep the originals” turned on. Now it does.

If a category import row tried to put a category inside one of its own subcategories, the shop replied with an unclear error and still changed the category’s name. Now it explains why the row was rejected and changes nothing. Uploading the same file again no longer moves categories to the end of the list.

The product form now rejects a SKU code with invisible characters, which often sneak in when you copy from Excel, and says exactly why. Import and moving from another platform strip such characters on their own.

Giving a new variant the code of a variant you were deleting in the same edit, or swapping the codes of two variants, used to end in a server error. Now these edits save, and the shop rejects duplicate codes with a clear explanation.

Deleting a theme no longer touches neighbouring themes with similar names or files outside the theme’s folder.

What to do after updating

At first, only administrators can open the “Shop API” section. If another staff member will handle connections, give their role the “Issue API keys” permission in “Roles and permissions”.

2.115.4 16.10.2026

What’s new

Your storefront now builds product pages noticeably faster. Previously the store prepared every product photo size again for each image on the page, and a card with variants picked the product photos separately for every variant. Sizes are now prepared once per page, product photos are picked once per card, and image addresses stay exactly the same. On the home page of a live store with three dozen products, the page now builds about twice as fast.

The store also no longer re-reads its list of addresses several times per request, so every page opens faster — both the storefront and the control panel.

A theme can now show a “from” price on the product card — the lowest price among the variants a customer can actually buy. Previously, to show that single price, the store prepared everything for every variant at once: price, stock, photos and the list of options.

2.115.1 16.10.2026

What we fixed

Minor fixes.

2.115.0 16.10.2026

What’s new

Mailing emails are now built in a visual builder. You see the email the way a customer will receive it, drag blocks from the set into place and edit the text right in the email. Click a block to open its settings next to it: text color and size, image width, button color, background and spacing. Background and spacing make colored panels, for example with a promo code or a holiday heading.

Emails now have columns: two or three side by side, stacking on phones. Products can go one, two or three per row with a “Buy” button under each. Undo works with a button or Ctrl+Z, including after saving, and the builder can be expanded to full screen.

The template library now has twelve ready-made emails. Six without products: welcome a subscriber, store news, promo code, review request, holiday greeting and “why customers choose us”. Five with products: sale, new arrivals, bestsellers, product of the week and an email for customers who haven’t bought in a while. Product templates show your latest products as an example, so you see right away how the email looks.

More about the builder and templates: https://cartixx.com/docs/customers/mailings

What we fixed

In a mailing report, the click map now puts one mark with the click count on a product card instead of three identical ones.

2.114.0 16.10.2026

What’s new

Delivery options at checkout appear only once the shopper has given a city. While the name is being typed, or a city has not been picked from the suggestions, the shop holds the options back: an unfinished “ki” no longer offers Nova Poshta courier delivery. If the city is not in the suggestion directory (for example, a foreign address for international delivery), the options appear as soon as the shopper finishes typing.

The coupon field at checkout appears only when the shop has at least one working promo code. If you do not run coupons, shoppers no longer see a field with nothing to enter.

In the “Your order” block, a delivery method priced “by carrier rates” now says so instead of showing 0. Before, a shopper could take the delivery for free.

The phone field in the checkout, registration and other-recipient forms can now be placed anywhere: just drag the row. The phone still cannot be removed or made optional, because it is how the shop recognises the customer.

Search links from an old Webasyst site (/search/?query=…) now open the results, and the search tab title matches the shopper’s query.

While the storefront is closed for maintenance, city suggestions at checkout now work for a staff member checking the shop. Before, they did not respond.

What we fixed

Marking a registration or other-recipient field as required moved it to the very end of the list. The field now keeps its place. For a recipient field marked “for companies”, the same tick dropped that mark, and the field was asked of everyone. The mark is now kept.

A stray character in the search address (for example, q[]=) opened the search page with an error. It now opens with empty results.

After updating

Update the Gifts and City autocomplete add-ons in the marketplace.

If you use your own theme, wrap the promo code field in a condition so that it disappears in a shop without coupons. How to do it: https://cartixx.com/docs/theme/behavior

2.113.0 16.10.2026

What’s new

Newsletter emails now have templates. The “Templates” button in the “Letter” block opens a library: four ready-made samples (“Store news”, “Sale”, “New arrivals” and a custom-layout sample) and your saved templates. The preview shows what the letter looks like, and “Use template” brings the subject, preview line and the letter itself into the newsletter. Any letter you’ve built can be saved with “Save as template”, so the next newsletter starts from it. Your own templates can be renamed and deleted. Details: https://cartixx.com/docs/customers/mailings

A letter can now be written as a custom layout — in HTML code, when the block builder isn’t enough. The “Builder / Custom layout” switch is in the “Letter” block, and the preview below the code editor shows how a customer will see the letter. The customer’s name and the store name are inserted just like in the builder, the store routes links through click tracking, and it adds an unsubscribe link at the bottom if you didn’t place one. Scripts, forms and embedded pages are removed from the letter. How to lay out a letter so Gmail, Outlook and phone mail apps show it the same way: https://cartixx.com/docs/customers/mailing-layout

What’s fixed

Validation messages in the newsletter form showed Ukrainian field names in the wrong grammatical case. They now read correctly.

2.112.0 16.10.2026

What’s new

The shop now sends email newsletters. You build a letter from blocks: a heading, text, an image, a button and product cards with prices. You can insert the customer’s name, preview the letter on desktop and phone, send yourself a test copy and schedule the send. Newsletters live in “Marketing → Campaigns”. A letter goes only to customers who agreed to receive newsletters, and every letter has a one-click unsubscribe link. Details: https://cartixx.com/docs/customers/mailings

The shop keeps a report for every newsletter. While emails go out, you see how many have been sent and when sending will finish, and you can pause, resume or stop it. Once sent, the report shows how many people opened the letter, clicked a link and unsubscribed, and how many orders and how much revenue the newsletter brought. Each figure is compared with your average for past newsletters. The report includes a click map showing how often each link in the letter was clicked, the recipient list with a spreadsheet export, the products bought, and delivery by mail provider. People who didn’t open the letter or didn’t click can get a resend with a new subject.

CRM now has customer segments. A segment picks people by conditions, for example “spent 5000 or more with you”, “abandoned a cart” or “no orders for three months”, and updates itself as customers start or stop matching. You can also make a plain list by hand. Segments are used in newsletters and automations, and any filter in “Customers” can be saved as a segment with one button. Details: https://cartixx.com/docs/customers/segments

Newsletter emails can go out separately from order emails, through your own mail server or a newsletter service. There you also set the sender, how many emails go out per hour and per day, and a gradual warm-up for a new address. The shop checks whether your mail domain is set up and keeps a suppression list of addresses you must not write to. Details: https://cartixx.com/docs/customers/mailing-settings

What to do after updating

Open “Platform settings → Notifications → Newsletter sending” and choose how newsletter emails are sent. If you keep “Same as order notifications”, newsletters go out from the same address as order emails. For large newsletters it’s better to set up a separate server or service, so complaints about promotions don’t hurt delivery of order emails.

2.111.0 16.10.2026

What’s new

The shop no longer places a guest order on a phone number or email it already knows. If the customer has an account or has ordered from that number before, a warning and a «Sign in» button appear under the field. Once signed in, the customer places the order as usual, and their addresses are filled in automatically. Before, anyone could type in someone else’s number, and the order landed on another person’s customer card together with their points and discounts.

A customer with a new number gets an account right after their first order, with no separate tick box. The password arrives in the registration notification, and further orders go through the account.

Sign-up on the site now confirms the phone number with a code sent via Telegram or SMS, if code login is enabled for the storefront. On the sign-in page the customer can log in with a code, not only with a password.

What we fixed

Points, customer group discounts and discounts for past purchases on the site now go only to a signed-in customer. Before, they could be claimed by typing someone else’s number at checkout.

What to do after updating

Turn on code login if it is off: without it, a customer who used to order as a guest cannot sign in and place a new order. Here is how: https://cartixx.com/docs/customers/code-login

If your customers often have no email, add an SMS to the «Customer registered» notification in the notification settings. Otherwise the customer never learns the password of the account the shop created after their order. A sample text with the password is already there.

If you award points for registration, note that every new customer now gets them after their first order.

Update the «One-click buy» and «Telegram: bot» add-ons: they follow the same rules.

2.110.0 15.10.2026

What’s new

A new add-on, «Copy product», is out. It makes copies of a product straight from its page, or for several products ticked in the catalogue at once. You choose how many copies you need and tick what to carry over: name, description, meta tags and SEO, SKUs, product photos, SKU photos and features. This way a few ready products turn into a whole catalogue for your niche in a couple of clicks.

Copies always start with zero stock, and barcodes are not copied. Copies are saved as drafts, but you can show them on the storefront right away. A large batch is created in the background, and the copies appear in the catalogue as they are ready.

What to do after updating

To make copies, install the «Copy product» add-on from the «Marketplace» section of the panel. Once it is installed, a «Copy product» button appears in the product page header and next to the products you tick in the catalogue.

2.109.0 15.10.2026

What’s new

Every calendar in the panel now shows today’s date with a frame and a highlight. Clicking the month name shows the months, and a second click shows the years, so a birth date or an old date takes just a few clicks. The calendar opens on the month of the chosen date, or on the current month if no date is set.

Date fields in the product card, the order filter, slides, the customer card and the waybill now open the same calendar as the rest of the panel instead of the browser’s built-in one.

The panel header is simpler: the line with the section and subsection is gone, and the screen title shows where you are. On tablets and narrow windows the section list moves under the menu button from a width of 1024 pixels.

A new characteristic value now appears at the top of the list with the cursor already in it. The number of products for a value is hidden in a tooltip behind an icon, so the rows in the list line up.

Fixed

Slide display dates set earlier looked empty in the slide settings. Now they are shown.

Numbers in the panel used a separate font and looked out of place next to the text. Now text and numbers use one font, and amounts in columns line up.

The installation page and the default themes now show the updated CartiX logo.

2.108.1 15.10.2026

What’s new

In “Banking”, each account now has an “Order status after payment” setting. When a payment to the account pays for an order, the shop moves the order to the chosen status itself, with a history entry and an email to the customer if one is set up. The setting works together with the “Banking” add-on 1.3.1. More: https://cartixx.com/docs/catalog/banking

Fixed

A new order status created in the order settings went to the very top of the list, above “New”. Now it goes to the end of the list, and you can always change its place by dragging.

The “Sync” button in “Banking” shrank to a narrow square and its label did not fit. Now the button is shown in full.

2.108.0 15.10.2026

What’s new

In the “Banking” section, a payment that paid for an order now shows that order’s number, and the order opens in one click. Before, there was only an “Order” mark without a number.

Under the account name in “Banking” you now see the reason if loading the statement failed, as well as warnings from the bank. Before, it said just “error”, and there was no way to tell what was wrong.

What we fixed

Updating the shop no longer overwrites the styles and scripts of installed add-ons. Before, the core update brought copies of them, sometimes older than yours, and after updating an add-on could look or work like its previous version.

What to do after updating

Update the “Banking” add-on to 1.3.0: with it, incoming payments pay for orders by themselves. How it works: https://cartixx.com/docs/catalog/banking

2.107.0 13.10.2026

What’s new

Your theme now gets everything about the blog, its categories and posts. Before, the blog category menu and the category label on a post card carried only a name and a link, so there was no way to show a category cover or banner. Now a category comes with its cover, banner, short and full description, parent and child categories, and a post in the feed comes with its banner, all its categories and tags. The blog list $shop->blogs() also returns the icon, cover and banner. In lists the full description is sent on the full parameter, because building it with all embedded blocks is costly. What a theme receives is described here: https://cartixx.com/docs/theme/data

What’s fixed

If your theme was written before the single filter list, the store showed a section’s filters in the wrong order. For example, a section was set to “Price, Volume, Neck type”, while the storefront showed “Price, On sale, Neck type, Volume”: volume moved down, and “On sale” appeared even though you had removed it from the section. Now such a theme shows only the filters you chose, in your order.

An old link with a filter you removed from a section no longer narrows the product list. Before, the customer saw fewer products and could not tell why: there was no checkbox left in the column to clear that filter.

How to set up filters in a section: https://cartixx.com/docs/catalog/filters

2.106.0 13.10.2026

What’s new

The cash register card now has a “Gifts on the receipt” switch. A gift that has a price set in its promotion (such as 0.01) is printed on the fiscal receipt as a separate line, like any other product. If you turn the switch off, the gift is left off the receipt and its cost is added to the other items, so the receipt total still matches the payment. A gift priced at zero never appears on the receipt: the register cannot sell an item priced at zero.

Gifts in an order are now marked “Gift” on the order card and on the order editing screen. Before, an item at zero price looked like a mistake, and it was unclear where it came from.

What we fixed

An order-wide discount or payment with bonus points no longer drops the gift from the receipt: the paid items now carry the gift’s kopeck.

When you edit an order, the gift price can no longer be changed by accident, and the gift no longer counts in the shipping recalculation. Before, the recalculation treated it as a regular product at the catalog price.

On the order editing screen the product name now shows on two lines, and the fields fit the width of the card. Before, on a laptop the name was cut off halfway, and products from one line were hard to tell apart. A product row with packaging no longer pushes the page sideways on a phone.

2.105.0 12.10.2026

What’s new

New notifications now pop up as a card in the bottom right corner of the panel, not just as a number on the bell. The card shows what happened: a new order, a call, a customer message. Clicking it opens the order or the conversation, the cross closes it, and if you leave it alone it disappears by itself after a few seconds. If the cards get in your way, turn off “Show new notifications in the corner of the screen” in “Notification sound”. Each staff member has their own setting, and events you turned off there do not pop up.

Checkout now remembers what the customer has already entered. If they chose delivery and a Nova Poshta branch and then went back to the catalogue for one more product, everything is still in place at checkout: contacts, city, delivery method, branch and payment. Once the order is placed, the form starts clean. The entered details are kept only in the customer’s browser while the tab or the shop in Telegram is open.

What we fixed

The “Often taken with this” window did not close after pressing “Add to cart” and reset the selection, so the customer could not tell whether anything had been added. Now the window closes, “Added to your cart” appears at the bottom and the cart icon bounces. If adding failed, the window stays open and the selection is kept.

The “Clear every cache” button on the maintenance screen and the rebuild after restoring a backup ended with an error. Now they work.

In the shop in Telegram, the note shown instead of a delivery price, such as “Calculated after selecting a point”, overlapped a long delivery method name. Now it sits on the line below. The “Enter the delivery city to continue” hint no longer stays once the city is entered, and the “Recipient is another person” switch no longer sticks to the surname field.

2.104.0 12.10.2026

What’s new

Customers can now open your shop right inside Telegram and place an order without leaving the chat with your bot. The shop in Telegram lives at your website address ending in /tg/, so there is nothing to set up with your hosting provider. It has a home page, catalogue, search, product pages, favourites, cart and checkout. Customers do not need to sign in: the shop recognises them by their Telegram account and fills in their name at checkout. The shop in Telegram comes with its own design made for a phone screen. You pick it for a storefront in the “Appearance in Telegram” field and set it up in “Design”, and the “Open as in Telegram” button shows the shop the way a customer sees it. Step-by-step setup guide: https://cartixx.com/docs/customers/telegram

Answering in “Conversations” is easier. A saved reply is added to the text you have already typed instead of replacing it. Buttons above the reply field insert values: the shop name, and in a conversation linked to an order also the order number, total, status, payment link and customer name. Each saved reply has a “Show in the conversation” switch. On a computer, a long conversation scrolls inside its own column, and the reply field always stays in view.

You can now listen to the standard notification signal. The shop accepts your own sound as MP3, WAV, OGG, M4A, AAC or WebM and saves it right after upload.

What we fixed

The order card has the “Write in the conversation” button again: it went missing when the panel was rebuilt in August. The button appears when the customer is subscribed to the bot or has written in the website chat, and it opens the conversation with them in “Conversations”. The order becomes the topic of the conversation: its number, total and payment link go into replies, and the manager responsible for the order is notified personally. Simply viewing an order card no longer moves the conversation to another order.

A manager who handles only their own orders could post into someone else’s order conversation if they knew the conversation’s number. Now they write only in conversations they can see: about their own orders and those not linked to an order. They now also get notified about new messages there; before, only staff who see all orders were notified.

Clicking a message notification opened the first conversation in the list instead of the one it was about. Now the right one opens, and reading a conversation clears its notification in the bell.

If a customer wrote in the same second as you, their message could stay hidden until you opened the conversation again. Now it appears right away. The new-message mark clears when you come back to the window with the conversation open.

If a reply with files reached a Telegram customer only in part, the panel said “The message was not sent” and left everything in the reply field. Pressing send again delivered the received part to the customer a second time. Now the field is cleared, and the shop names the file you still need to send.

Changed sound settings only took effect after reloading the panel, and the shop did not accept WAV files. If the first notification arrived before any click on the page, the standard signal stayed silent until the panel was reloaded. Now it comes back after the first click.

The “System information” screen showed shop version 1.0.0 whatever version was actually installed. Now it shows the real number. “Conversations” no longer shows an order number as “№#10079”.

What to do after updating

Update the add-ons “Telegram: bot” to 1.13.0, “Website chat” to 1.8.1 and “Redirects and 404 monitor” to 1.3.2. Without them the shop in Telegram will not work, website chat guests stay unlabelled, and redirects take customers out of Telegram to the website. To open your shop in Telegram, turn on “Open the shop in Telegram” in the bot settings. The shop picks a design by itself, and you can choose another one for the storefront in the “Appearance in Telegram” field.

2.103.0 09.10.2026

What’s new

The waybill window in an order can open at once, without waiting for the carrier: the delivery cost is then calculated with the “Calculate the cost” button, and cities, branches and streets are searched as you type. The “Nova Poshta waybills” add-on works this way from version 1.4.0; carrier add-ons of earlier versions keep working in the window as before. The waybill comment is now shown in the order next to the waybill number.

The shop passes the city and street codes and the region from the order to waybill add-ons, so a waybill no longer looks them up at the carrier again.

Fixed

The Add-ons page no longer receives settings that an add-on does not show on screen, including internal access keys. Saving an add-on’s settings from two tabs at once no longer overwrites one with the other.

Captcha hints in form settings now point to “General settings → Form protection” instead of a section that is not in the menu.

2.102.0 09.10.2026

What’s new

The CRM now has forms for your website. You build a form in “CRM → Forms”: start from the ready-made “Ask a question” or “Feedback” form or from a blank one, drag the fields into place and label them in every language of your shop. You put a form on a page or into a block with the “Form” button in the text editor. For each request the shop finds the customer by phone or email, or creates a new card, opens a deal, adds the request to the “Activity” feed, notifies your staff and runs your automations. Requests are collected in the same section, and suspicious ones go to “Spam”. How it works: https://cartixx.com/docs/customers/forms

A form protects itself from bots with an invisible trap, a fill-in time check and a limit on submissions from one address. If reCAPTCHA is set up in “General settings → Form protection”, you can turn it on for a form. Data from an anonymous form is never written into an existing customer card, and an opt-out from mailings always beats the “Send me news” checkbox.

Menu items in the panel are now shown only to staff who can open the screen itself. Before, some sections opened with an access error. Someone else’s order, customer or deal opened by a direct link now says “not available to you” instead of showing an empty form. The “Localization” right lets staff edit translations, a marketer can save their discount settings, and any employee can read “What’s new”.

Fixed

Staff who cannot see a customer no longer see their phone or email: when a customer has no name, the deal board, tasks and automation log show “Customer #15”. Old deal titles such as “Call back: +380…” get the customer’s name during the update.

The shop deletes old storefront statistics events on schedule again: since late August the nightly cleanup deleted nothing and the table kept growing. The first cleanup after the update runs in portions.

If reCAPTCHA is selected in “General settings → Form protection” but the keys are missing, sign-in, registration, reviews and forms no longer refuse every visitor: until you add the keys a simple bot trap works, and the screen warns you about it.

Points in the customer card open without an error, reports no longer show revenue to staff without the finance right, and an export file with customer data is deleted together with the export.

After the update

Update the “Callback request”, “Back in stock alerts”, “One-click buy” and “Push notifications and PWA app” add-ons: they fix errors on forged requests and the captcha without keys.

2.101.0 08.10.2026

What’s new

The store now has blocks — pieces of text and layout you write once and show on many pages: store benefits, delivery terms, a promo banner. Blocks live in “Storefronts and content → Blocks”. Edit a block once and it changes everywhere it is placed.

A block goes into a page text, product or category description with the “Block” button in the editor. Its text is written for each store language, and a single storefront can have its own text under the same block — for example, different delivery terms on two sites.

One block can show different things on different pages. Parameters are set in the insert window under “More options”: one block with a product list shows sale items on one page and new arrivals on another. How to use blocks in a theme: https://cartixx.com/docs/theme/tags

Fixes

The buttons for inserting blocks, products and code no longer appear in fields whose text the store outputs as is: the home page text from the SEO add-on and the short description of a blog category. Previously the insert was saved there, but the site showed nothing in its place.

2.100.0 08.10.2026

What’s new

You can now translate a variant name right in the product card. The “Variant properties” window has a name field for every store language under the code, and all fields go in one column. The store already kept these translations and showed them to customers, but there was nowhere in the panel to edit them.

A theme can show the whole catalog as one table — for example, on a price list page. Products follow section by section in the order you set in the panel, and new products appear in the table on their own. How to use it in a theme: https://cartixx.com/docs/theme/shop

Fixes

Until the customer enters a city, the store no longer picks a delivery method for them. Previously checkout started with the first method that does not need a city — international delivery, for example — and the total came out several times higher than the goods. Now the delivery line says “enter your city”, and the method is chosen once the city is entered.

If a customer picked a carrier and then cleared the city, the store no longer swaps in a different delivery method.

A gift disappears from the checkout cart right after its product is removed, without reloading the page. Quick “+” clicks are no longer lost.

The cart shows product and variant names in the page language, not the language the product was added in.

The variant picker on the product page shows the variant name instead of its code, even when there is no translation for the page language.

Staff working in the Ukrainian panel no longer overwrite the main variant name with Ukrainian text when saving a product.

Spreadsheet export and import write the variant name in the file language.

Search puts the product with the exact name first: “Sialis 20” comes before similar products. The order of results no longer changes between page loads.

The language switcher keeps the search query and the selected filters.

Thumbnails are now cut for PNG files with a damaged color profile too. Previously the product page loaded the heavy original in that case.

The “Storefront is closed” bar that staff see moved to the bottom of the screen. On phones it used to cover the theme header, and the mobile menu would not open.

Long section names in “Catalog → Categories” wrap to a second line instead of being cut off.

Before you update

Update the “Gifts” add-on to 1.6.1 together with the core.

2.99.2 07.10.2026

What’s new

A gift is now set as a product variant and a quantity. In “Gifts”, search shows variants right away — “Viagra 100 · 1 pcs” — you pick the one you need and set how much of it to give: two pieces, half a kilo or two metres, in the product’s own unit. Before, a gift was the whole product, and the shop always added its default variant, one piece.

What we fixed

Opening a campaign in “Gifts” and pressing “Save” reset every gift’s variant and quantity to one piece of the default variant. The campaign is now saved exactly as you see it.

What to do after updating

Update the “Free gifts” add-on to 1.6.0 so shoppers see which variant and how much of it they get.

2.99.1 07.10.2026

What we fixed

PNG photos saved by some image editors did not show in catalog cards and on the product page: an empty frame appeared instead. These files carry an incorrect colour profile, and on some servers the shop could not make a smaller copy of them. Smaller copies are now made, and the photos show everywhere.

2.99.0 07.10.2026

What’s new

Payment and delivery methods can now be translated into your shop’s languages. On the method card you write the name and description in the main language, and below, in the “In other languages” block, for the others; all languages are visible at once, without switching tabs. A customer on the Ukrainian page sees “Накладений платіж”, on the Russian one “Наложенный платёж”, and the method goes into the order, emails and account in the customer’s language. If a translation is empty, the customer sees the main name.

Payment and delivery methods also got a description: a short note under the name at checkout, such as “Pay on delivery”.

Product photos can be shown only in chosen languages and storefronts. In the product editor, under “Photos”, each photo has “Show in languages” and “Show on storefronts” fields. This helps when the packaging carries text in the page language: the photo with Russian text is seen on the Russian version, the one with Ukrainian text on the Ukrainian version. Empty fields mean the photo is shown everywhere.

Shop reviews now have a summary for the block header: the number of reviews and the average rating across all approved reviews, not only the ones shown. The shop’s reply is shown under a review, and the date is written in words, “1 April 2025”. How to show this in your theme: https://cartixx.com/docs/theme/shop

Themes now receive product variants as a list with names in the page language, so a theme can print them as rows like “Generic Viagra 5x100mg — 200 UAH — Buy” right on the page. The cart shows the name of the chosen variant next to the product. Details: https://cartixx.com/docs/theme/product

What we fixed

After editing a product photo or video, approving a review or adding a shop reply, customers saw the old page for up to a day. Pages now update right away.

On the Ukrainian version of the shop, article reads were not counted, and a guest opening the account was sent to the sign-in page in the main language. Both are fixed.

An order placed by a manager in the panel took the panel’s language: with an English panel, the customer got emails in English. Orders are now placed in the storefront’s main language.

After renaming a payment method, it jumped to the top of the list. It now keeps its place.

What to do after updating

If your shop has more than one language, open “Settings → Payment and delivery” and enter the method names in the other languages.

2.98.0 06.10.2026

What’s new

Your shop now accepts reviews about the shop itself, not only about products. A buyer writes about the purchase as a whole — delivery, packaging, the manager’s help — and can note what they bought. The Reviews section now lets you choose “About products” or “About the shop”, and shop reviews carry their own label. Shop reviews do not change product ratings. To show them on the site, your theme can use the $shop->storeReviews() list.

A shop with several storefronts can now have a page with the same address on each of them. For example, “Payment and delivery” at info/ can be different on every domain. Before, a second page with an address already in use could not be created.

Fixed

The page menu on the site listed pages of every storefront, including pages given to another storefront. Each storefront now lists only its own pages and the shared ones.

When a catalog section was moved into another section on a storefront whose addresses start with “category/”, no redirect was created from the old address, and it showed “page not found”. The same happened when a page was moved to another branch. The shop now sends visitors from the old address to the new one.

On a storefront that always shows the language in the address, redirects created when a product or section changed its address did not work at all. They now work and keep the visitor in their language.

2.97.0 06.10.2026

What’s new

The shop now works with a cloud PBX. A manager calls a customer with the button next to their phone number in an order, a customer profile, a deal or a callback request: the PBX first rings the manager and, once they pick up, dials the customer. When a customer calls in, the manager whose phone is ringing sees a caller card in the panel: the name, how much they have bought, the last order and open deals.

All calls gather in the new «CRM → Customer work → Calls» section, and conversations with their length and recording land in the customer card. Missed calls wait in the «Call back» list and leave it on their own once someone talks to the customer. A call from a new customer can open a deal by itself, and you can set up an automation on a missed call, for example a «Call back» task.

The PBX itself comes as an add-on. The first one is «Telephony: Zadarma». Until a PBX is connected, the «Calls» section does not appear in the menu. How to connect: https://cartixx.com/docs/customers/telephony

After updating

So that managers hear calls, install your PBX add-on, connect it in «Platform settings → Store settings → Telephony» and give your staff their extensions. Out of the box only the administrator can see everyone’s calls and listen to recordings: grant these permissions to other roles in «Roles and permissions» if needed.

2.96.2 06.10.2026

What we fixed

If you marked an order as paid while the customer still had the “Order placed” page open, the “Pay” button on it sent them to the shop home page. Now the customer lands on their order page and sees that the order is already paid. This applies to add-ons that put a payment button on “Order placed”, such as IBAN oplata.

A warning in the list of payment methods had an “Open plugin settings” button that led to a screen saying there was nothing to set up. Payment methods are set up in the method itself and in your seller details, so they no longer have this button. Shipping methods keep it, because the carrier connection is set up exactly there.

2.96.1 05.10.2026

Important

If you updated your shop to 2.96.0, the “Tasks”, “Deals” and “Automations” sections might not have worked, and saving a customer card could end with an error. During the update the shop did not prepare the database for the new CRM section. Version 2.96.1 fixes this by itself: after the update, the shop adds everything missing to the database the first time it is opened. You don’t need to do anything.

What we fixed

The “Activity” feed in the customer card showed staff the messages and internal comments of orders they are not allowed to open. Now only someone who can see the order sees its log in the feed.

A customer could put markup into their name, and in the shop’s email it became a real link — for example, “Pay” pointing to someone else’s address. Now the customer’s name, email and other details always appear in emails as plain text.

If your shop name contains an apostrophe or an ampersand (“Сім’я”, “Tom & Jerry”), it no longer shows extra characters in the email header.

In a new deal opened by a direct link, the “Responsible” field was sometimes empty — now it is always you. Entries of a deleted deal in the customer feed no longer lead to a “No such deal” page. Loss reasons are fully visible on a phone, and the deal amount is labelled with the currency sign.

2.96.0 05.10.2026

What’s new

The panel now has a CRM for working with customers before and after an order. Tasks, deals and automations are in the “Customer work” group — the people icon in the left column of the panel.

Tasks. You give a staff member a task about a customer or an order with a due date: call back, confirm a size, remind about payment. The shop reminds them when it is due with a personal notification that only they can see. Anyone who can see a customer also sees the tasks about them, so two managers don’t call the same person. You can now assign a responsible manager to a customer.

The “Activity” feed in the customer card. Orders, messages, tasks, points, notes and card changes are gathered into one timeline, so when you open a customer you see the whole history with them at once.

Deals and sales pipelines. A deal is what happens before an order: the customer asked about a product, requested a quote, is thinking it over. You move deals through pipeline stages by dragging them. A won deal becomes an order with one button, and the order stays linked to the deal. A lost deal records the reason. You set up pipelines, stages and loss reasons in “Settings → Sales pipelines”.

Deals from enquiries. The shop can open a deal by itself when a customer requests a callback, writes in chat for the first time or abandons a cart. If a deal with that customer is already open, the shop doesn’t open a second one. Everything is off by default; turn it on in “Settings → Sales pipelines → Deals from enquiries”.

Automations. You set a rule “when this happens — if this holds — do this”: for example, when an order of 5000 UAH or more is paid, give a manager a task to call the customer. A rule can create a task, move a deal to a stage, assign a manager, tag the customer, message the customer or send data to another program. Every run is recorded in a log. Only administrators can open “Automations”.

The conversation, callback request and abandoned cart lists now load to the end with “Show more” instead of stopping at the first 100 records (200 for conversations).

What we fixed

If the bank reported a payment in the same second the customer returned to the site, the order was marked as paid several times. The customer got several payment emails, and the shop sent several tax receipts for one purchase. The same happened when a manager moved an order with funds held on the card to “Shipped” while the bank was confirming the charge. Now a payment is recorded exactly once, and only one receipt is issued per order.

In “Conversations”, a reply sent right after switching to another customer could go to the wrong person, and searching conversations showed an error. Now a reply always goes to the customer whose conversation is on screen.

After updating

Update the “Checkbox” and “Abandoned carts” add-ons to their latest versions.

2.95.2 04.10.2026

What’s new

The documentation now has a step-by-step guide for each marketplace: what to do in the seller account, what to fill in the shop, how to receive orders and what to do if a product did not go. 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

What’s fixed

After stock was sent to a marketplace successfully, an empty red icon stood next to «Stock sent», as if something had failed. It is gone now. The hints «Only products in stock» and «Always upload» now say plainly that Hotline and Price.ua never get a product that is out of stock and cannot be ordered.

2.95.1 04.10.2026

What’s new

A marketplace is now a sales channel just like a storefront. In the Orders section, Rozetka or Prom.ua appears on the left next to your storefront with its own order count, and clicking it opens only that marketplace’s orders. The dashboard shows the marketplace’s own share of revenue too. The storefront counts only orders from your site, and the order card shows the marketplace as its sales channel. More: https://cartixx.com/docs/marketplaces/orders

The hint for the cancellation reason now explains what happens if you leave it empty: some marketplaces get «Another reason», while others will not accept the cancellation.

2.95.0 04.10.2026

What is new

The panel has a new «Marketplaces» section. The shop builds the file for Prom.ua, Rozetka, Hotline.ua and Price.ua itself, refreshes it on a schedule and serves it at a permanent link that you paste into the marketplace account once. You decide which products go, at what price and in which languages on the marketplace screen: the whole catalog or chosen categories, a markup, price rounding. Your categories and attributes are linked to the marketplace categories and parameters, and the shop shows in advance which products the marketplace will not accept and why.

One marketplace can have several uploads, each with its own link, rules and languages. For example, the whole catalog in Ukrainian and a separate sale file with another markup.

Marketplace orders arrive in the «Orders» section next to website orders. The shop picks them up every five minutes, records them at the marketplace price, finds the buyer by phone and reserves stock for the order. When you accept, cancel or ship an order, the marketplace learns its status and waybill number. A minute after a sale on the website the marketplace sees the new stock, so a sold product is not bought a second time. The order list has a new «Marketplace» filter, and the order card shows which marketplace the order came from and its number there.

Step-by-step setup guide: https://cartixx.com/docs/marketplaces/overview

What to do after the update

Each marketplace is connected with its own add-on: install it in the «Add-ons» section, and the marketplace appears in «Marketplaces». Receiving orders is turned on in the marketplace «Orders» tab and needs an access key to its account.

2.94.0 02.10.2026

What we fixed

New settings now take effect straight away in the work the shop does in the background too: sending orders to other services, emails, recalculating promotion prices. Before, background processing remembered the settings it read when it started and did not see changes until it was restarted. For example, after you chose the order source in KeyCRM, orders were still treated as «not connected».

Moving the catalogue again from another platform no longer creates copies. If you run the move from the same KeyCRM once more, the shop adds to what was already moved: it adds new products and updates the earlier ones. On the matching step, the product types, features and warehouses created last time are shown as linked to them, not as «will be created».

The progress line no longer says «Moved 16 of 3»: it counts only the stages whose size is known in advance, and a repeated move starts counting from zero.

2.93.2 02.10.2026

What’s new

The “Refund” status now returns the money also when an order was paid in several payments: a prepayment and the rest, partly in cash and partly by card, a prepayment and a hold on the card. Each payment goes back through the payment provider for its own amount. The part the customer paid in cash or by transfer is noted in the order history for you to return yourself. If the bank refuses in the middle of the refund, the history shows what has already been returned, and the payment becomes “Partially paid”.

What we fixed

After the bank declined a payment, the customer saw “Thank you! We have received your order” and believed the order was paid. Now they return to the payment page, which says the card was not charged and they can try again.

When an order had been deleted, the panel showed the technical line “No query results for model…”, and the order card silently opened another order. Now the panel says that the order was not found because it was deleted or the number is wrong.

When the bank refunds one payment out of several, the order’s paid amount goes down by exactly that payment. Previously a Monobank notice about a full refund could leave the order marked as paid.

2.93.1 02.10.2026

What we fixed

Editing an order no longer changes its delivery and payment method behind your back. If the method the order was placed with is not in the list (the order was moved from another platform or the method was turned off later), the editor picked the first available one, and after saving “InPost”, for example, became “Free delivery”. Now the field shows “Unchanged” with the previous method’s name, and the method changes only when you choose another one yourself.

Saving an order no longer cuts the customer’s name: the patronymic stays as it was entered at checkout. Previously any edit left only the last and first name.

If the customer has made a prepayment, the payment link now asks only for the rest. Previously the bank charged the whole total again and the customer overpaid. The extra payment is added to what was already paid, and the payment page shows how much is left to pay.

The payment description sent to the bank uses a single number sign: “Payment for order #100129” rather than a doubled sign.

If an order was paid in several payments (a prepayment and the rest), the “Refund” status no longer asks the payment provider to return the whole amount against the last payment, which the bank refused anyway. The order history now says which amount to refund to the customer in the provider’s dashboard.

2.93.0 02.10.2026

What’s new

The shop now keeps track of money held on the customer’s card with two-step payment. Once an hour it asks the payment provider about the hold. If the bank released it after the deadline (Monobank holds money for 9 days, WayForPay for 21) or the hold was released in the provider’s dashboard, the order goes back to “Awaiting payment” and the order history says so. Previously the bank released the hold silently, and the order stayed “Funds on hold” forever while the money was no longer there.

The order remembers how much money is on hold on the card. Such an order cannot be made more expensive than that amount, because the bank will not charge more anyway. The shop explains this when you save, and you place additional products as a separate order. You can reduce the order, and then the new total is charged.

In the order queue on the desk, the order number and amount are shown in the colour of the order status when status colours in the list are turned on in the order settings.

What we fixed

If the order became more expensive after payment, the bank refused to charge the held money: the shop asked for more than was on hold. The money stayed on the card until the deadline, and the goods left unpaid.

The “Refund” status released the hold for the current order total rather than the amount on hold. If the order had been changed, the bank could refuse. Now exactly the held amount is released.

Some orders moved from another platform could not be saved after editing: the shop reported an error about the customer.is_company field. Such orders now save like any other.

2.92.0 02.10.2026

What’s new

Payment providers now receive everything their documentation asks for from the shop: the order contents, the customer’s name, phone and e-mail, and the order language. The customer sees their items on the payment page instead of a single “Order No.…” line and does not have to enter their phone again. To get this, update the WayForPay, Monobank and LiqPay add-ons.

Monobank and WayForPay now offer two-step payment. If you turn it on in the payment method settings, the money is not charged at payment but held on the customer’s card, and the order gets the payment status “Funds on hold”. The shop charges it on its own once the order reaches the status you chose, for example “Shipped”. Canceling the order or moving it to “Refunded” releases the hold. The shop no longer asks a customer whose money is on hold to pay again, neither on the order page nor in e-mails.

What’s fixed

Invoices, delivery notes and the QR payment purpose no longer print the order number as “No. #100134”. The orders workspace fits the window on screens from 1360 pixels wide; on narrower ones it opens in two steps: first the queue, then the order.

If the bank declines a payment, the customer reads on the payment page that no money was taken from their card and they can try again. A return receipt is issued even when the sale receipt was still being processed at the time of the refund.

Code editors no longer show the code map on the right, which only took up space. The search at the top of the panel is now labelled “Global search”.

2.91.0 02.10.2026

What’s new

You can now adjust the look of the panel with your own styles. “Brand settings” has a new “Own styles” block where you write CSS rules, for example to change the button colour, spacing or font size. Your rules load last, on top of the panel styles, so they win; if a rule has no effect, add !important to the value. Changes show as you type and are saved with the “Save” button. Shop updates leave your styles untouched.

If your styles break something, open the panel at your shop address with /admin?nocss=1 at the end: it loads without your styles, so you can fix them.

2.90.0 02.10.2026

Before you update

An order’s number now matches its internal number in the shop, as in Webasyst: order 134 is shown as “#100134”. Previously orders had a separate number counter, and the number could differ from the one the order is stored under. After the update, existing orders show their number by the new rule, so some older orders will show a different number on screen, in e-mails and in documents. If you moved from Webasyst and your customers know their old numbers, contact us before updating.

What’s new

The “Refunded” order status returns money to the customer. When you move an order paid via LiqPay, Monobank or WayForPay to this status, the shop sends the money back to the customer’s card on its own, and the order payment becomes “Refunded”. Before that, the panel shows the amount and the payment method and asks you to confirm. If the bank refuses, the order keeps its previous status, and you see the reason right away and in the order history. An order paid in cash or by invoice can also be moved to “Refunded”: you return the money yourself, and the goods and bonus points go back just as with a cancellation.

The “Refunded” status appeared in your shop on its own and is added to the transitions of the other statuses. You can change its name, colour and icon, but you cannot delete it, because refunds depend on it.

The cash register issues receipts by order status. The register settings now have a table where you choose, for each status, whether to issue a sale receipt or a return receipt. For example, with cash on delivery you can issue the sale receipt on “Delivered”. By default, the “Refunded” status issues a return receipt.

What’s fixed

After paying via WayForPay, the customer returns to the shop’s “Thank you” page, and the order payment is marked right away. Previously they landed on an error page and lost their account sign-in and cart. An order that has been cancelled or refunded can no longer be paid through an old link from an e-mail.

You can now clear a selected value in drop-down lists with the cross. Previously, in the cash register, tax, wholesale price settings and the order filters, a value once selected could not be removed.

On a phone, the subscription warning takes two lines instead of six and opens in full when you tap it. It used to cover almost a third of the screen. The file editor in “Design” no longer runs past the edge of the window.

2.89.1 01.10.2026

Fixed

A closed storefront no longer asks for the shopper’s cart. The “The shop is temporarily closed” page used to request the cart anyway, get a refusal and leave an error in the shopper’s browser.

Add-ons in “Roles and permissions” are now sorted alphabetically in the panel language. Before, “SMS.RU” came before “SMS Fly”, and names starting with the Ukrainian Ґ, Є, І and Ї could end up at the bottom of the list.

2.89.0 01.10.2026

Important before updating

The shop works as long as the licence is in order. If the subscription ends and is not renewed, after a 21-day grace period the storefront and the panel close to shoppers and staff. The same happens if the shop cannot reach the licence server for longer than that, or has no key. Perpetual licences are not affected by the subscription date. Orders, payments and shop data are kept, and the panel keeps the “Renew subscription” button, a field for a new key and “Check now” — once renewed, the shop opens straight away. Details: https://cartixx.com/docs/engine/updates

The panel starts reminding you to renew 14 days before the subscription ends.

What’s new

“Roles and permissions” now has an “Add-ons” group: access to each add-on can be granted or removed separately. Without access a staff member sees none of the add-on’s sections, buttons and blocks. After the update every role keeps access to all add-ons, as before — remove it for those who do not need it.

Fixed

Contact and order exports no longer include fields the staff member cannot see on screen: internal notes, tax ID, bank and IBAN. They used to reach the file for anyone with the right to export data. A saved contact export is now visible and runnable only by the person who created it and by staff who manage roles.

The help centre, account and panel links are no longer tied to one address of our site: if it changes, the shop learns the new one by itself.

2.88.0 01.10.2026

Important before updating

The shop no longer keeps the paid edition sections forever when it cannot reach the licence server. Without a connection they keep working for 21 days and then close — for example warehouses, advanced marketing and reports. The shop, storefront and orders always keep working, and no data is lost. A week before the period ends, the panel shows a warning with a «Check now» button: if the connection is fine, the sections reopen at once. For your shop the count starts with this update. Details: https://cartixx.com/docs/engine/updates

Fixed

In the waybill window the city and branch are now found by the name you type. The list used to ask you to start typing, but it had no field to type in, so you could only pick from the ready-made hints under it. Clicking a city hint under the field now selects that city, and the branches of the chosen city show up without typing.

Filtering products by type now has a search box: in a long list of types the right one is found by its first letters.

The «What’s new» journal shows the whole release history. The oldest releases used to drop out of it without a word.

After updating

If the panel has ever complained about the task scheduler, check it using https://cartixx.com/docs/engine/cron — it is what keeps the connection to the licence server alive.

2.87.0 01.10.2026

What's new

Joining of storefront styles and scripts can now be turned off in the panel: “Store settings → General settings → Storefront speed”, the “Join styles and scripts” switch. Turn it off only when you are looking for the cause of a storefront problem, for example after installing your own theme or a new add-on. Without joining the storefront opens slower, so turn it back on after checking.

Be careful with this switch: after it the shop may behave unpredictably. Right after saving, open the storefront and check the home page, a product page, the cart and checkout. More: https://cartixx.com/docs/theme/assets

2.86.0 01.10.2026

What's new

The storefront opens faster, especially on phones. The shop now joins the page's styles and scripts into a few compressed files: the home page of the bundled CartiX theme loads 4 files instead of 23. Every file is a separate request to the server, and on a mobile connection the difference is noticeable right away.

There are two sets of joined files. The shared one holds what every page has: the theme's design, the cart and the search. It is the same across the whole site, so the customer's browser downloads it once and then takes it from its cache. The second set holds only what a particular page needs, and it is small.

Add-ons now attach their styles the same way the shop does, and they are joined together with the theme. Previously the chat, the cookie consent window and the notifications prompt were printed at the very bottom of the page, so their styling loaded last and the block flashed unstyled for a moment. Now their styles arrive with everything else. The slider library is no longer loaded twice when the theme already includes it.

Joining works in any theme and needs no setup. When you edit a style in the theme editor, customers get the new version immediately.

For theme and add-on developers

Styles and scripts can now be attached anywhere in a template, even in the footer: the shop prints the file list last, once the whole page is assembled. Add-ons attach files with a single call, modelled on Bitrix: Asset::addCss() and Asset::addJs(). What gets joined, how to make your own file suitable for joining and how to check the result is described with examples (in Russian and Ukrainian):

https://cartixx.com/docs/theme/assets https://cartixx.com/docs/plugins/storefront-assets

What to do after updating

Update the add-ons installed in your shop. Fifteen of them were released together with this version: their previous versions keep working, but their files load separately, outside the joined files. If you edited the chat, notifications or cookie window templates in the theme editor, your changes are kept. To have such a window's style joined too, remove the <link rel="stylesheet" …> line from the template and the shop will attach the file itself.

2.85.1 01.10.2026

Fixed

A shop that skipped several releases and updated straight to the latest one could be left with an outdated database. If the latest release did not change the database itself, the changes from the skipped releases were not applied, and after the update some sections failed: for example, saving a storefront showed "Server Error". Now after an update the shop checks whether all database changes are in place and applies the missing ones.

2.85.0 01.10.2026

What's new

Your store has a new design theme, CartiX. It has a compact header with a drop-down catalog, a promotions strip above the header and a bottom bar on phones with the catalog, favorites, cart and account. The theme has its own template for every page of the store, from the home page to checkout and the customer account. You set the color of the whole store with one of seven ready-made schemes, and you can put your own button and header colors on top of it. To try the theme, open “Design”, choose a storefront and switch its design to CartiX.

Theme settings in “Design” now appear in the language you chose for the admin panel: in Ukrainian and English the captions and hints no longer stay in Russian. The CartiX theme already comes with these translations.

What we fixed

In theme settings you could not remove a selected menu or slider: the list had no empty option, and the default menu came back on its own. Now these lists start with “No menu” or “No banner”, and your choice is saved.

After you edited theme styles, customers kept seeing the old design until the page cache refreshed, and a replaced logo could stay with them for up to a month. Now the customer's browser gets the new file right after your edit, and it takes unchanged styles from its own cache instead of downloading them again on every page.

On the English storefront, prices on the same page looked different: “UAH 50,991.50” on product cards and “₴50,991.50” in the order total. Now they look the same everywhere.

When the store was updated, your changes to add-on blocks inside the built-in themes were replaced with the original ones. Now the update leaves these blocks alone. It also leaves alone any theme you created yourself, even if its code matches a built-in theme.

2.84.0 30.09.2026

What's new

The storefront design panel is now enabled in the standard Default, Market and Promo themes. Sign in to the admin panel, open your store, and change colours, fonts and texts right on the page. Customers do not see the panel.

A theme can now show the amount left for free delivery and the minimum order warning on any page, not only in the cart: in the header, in the slide-out cart, on the product page. How to add this to your theme: https://cartixx.com/docs/theme/data

Fixed

The cart listed every matching promotion under a product, even ones that did not lower the price. A dress at 25% off also showed "Laminate 15% cheaper". Now the store names only the promotions that made it into the price.

Pressing Enter in the promo code or city field submitted the whole order before the customer had filled in the rest. Now Enter checks the promo code and shows the answer right away, and the order is placed only with the "Place order" button.

When delivery was switched off at checkout (pickup, digital goods), the "Place order" button never appeared. Now it is there.

Products sold by the metre or kilogram changed only by a whole unit in the checkout cart, and "1,5" was read as 1. Now the quantity changes by the product's step. Products sold in packs no longer go below the minimum order rounded up to whole packs.

The minimum order warning stayed on screen even after the customer reached the amount. Now it disappears.

A cancelled order showed "Awaiting payment" and an amount due in the customer account. Now a cancelled order says nothing about payment and has no pay button.

For theme authors

In the checkout cart, pass data-step and data-min on the quantity field: the standard themes already do.

2.83.2 25.09.2026

What we fixed

A service chosen on the product page, such as a warranty or gift wrapping, was also added to products from the similar-products strip on the same page: a customer added a case from the strip and got the phone's warranty with it. Now the service is added only to the product it was chosen for. The service price now uses the same currency sign as the product price next to it.

After updating to 2.83.1, the standard theme could show the design panel on the storefront even though you had not added it. Only staff saw it, customers did not. Update 2.83.2 returns the theme to how it was. If you want the panel, add the {theme_configurator} tag to your theme yourself.

2.83.1 25.09.2026

What we fixed

The heading from "SEO optimization" now appears on the page. If you set a heading template for categories, brands or tags, such as "{category} — buy with delivery", it used to be ignored by every theme and the page kept the plain name. Now the store shows the heading you set. Landing pages of the SEO filter still show their own headings and texts.

What's new

The phone login code can now be valid for one minute. You choose the lifetime in the customer login settings of the storefront.

2.83.0 25.09.2026

New

Shoppers can now sign in without a password, with a code sent to Telegram or by SMS. Turn it on in the storefront's Registration and sign-in tab, "Sign-in with a code". The code goes to Telegram via Telegram's official Gateway service (cheaper than SMS, no bot needed), and shoppers without Telegram get an SMS through your SMS service. If the number is new to the shop, an account is created after the right code. How to connect: https://cartixx.com/docs/customers/code-login

The shop protects your SMS budget: a new code can be requested no sooner than a minute later, codes per number and per address are limited, and a code is burned after five wrong attempts.

A shopper without a name (for example, one who signed in with a code) is now shown in the contact list by phone number instead of a dash.

Fixed

An SMS service connection can no longer be saved without a required field. Before, AlphaSMS without a sender name looked connected but sent nothing.

For theme authors

The registration form can be shown in a sign-in window on any page: the shop returns it as your theme's markup at /account/register/form. Sign-in data details: https://cartixx.com/docs/theme/data

2.82.0 25.09.2026

New

In the Registration and sign-in tab, Google, Facebook and Telegram now have a "How to get the keys" link. It opens a step-by-step guide: where to get the keys in the service's console and where to paste them and the return address. Guide: https://cartixx.com/docs/customers/social-login

Your theme can now show a sign-in window on any page, together with the social buttons. After signing in, the shopper stays on the page they were on instead of landing in their account.

For theme authors

Templates now receive the sign-in options ($auth) as well as cookies and page address parameters ($cookies, $get, $request). With them a theme can, for example, leave out a banner the shopper closed entirely, with no flicker on load. Details: https://cartixx.com/docs/theme/data

2.81.0 25.09.2026

Fixed

A notification about an incoming bank payment now opens the Banking section. Before, clicking it in the bell took you to the dashboard, and you had to find the payment yourself. Notifications that arrived before the update open correctly too.

New

If your theme offers ready-made color schemes, you pick a scheme by its color square, and the name of the selected scheme is shown below the squares. This works both in the storefront design panel and in the Design section.

Setting groups in the design panel are now collapsed, so you open only the one you are working on. An opened group stays open while you edit.

A color you have not set no longer looks black: its sample is crossed out, so you can see the theme's own color applies.

2.80.4 25.09.2026

What's fixed

The minimum order total is now available to the theme on every page of the shop, not only in the cart. Previously it could be shown only on the checkout page: in the header and the slide-out cart the value was empty, and if the theme printed it there as money, the page stopped opening.

For theme developers

The amount comes in the $min_order variable (0 means no limit), and scripts get it as window.CartiX.minOrder. Example: https://cartixx.com/docs/theme/data

2.80.3 25.09.2026

What's new

Orders now have "Message on Viber" and "Message on Telegram" buttons. Click one and a chat with the customer opens by the phone number from the order, in the Viber or Telegram app on your computer. The buttons are in the order actions, under "Message the customer".

The buttons appear when the customer's phone includes the country code, for example +380 67 123 45 67: without it the messenger cannot find the number. The Telegram chat opens if the customer allows being found by phone number.

2.80.2 25.09.2026

What's fixed

Panel notifications show again how much money came in and from whom. After the panel redesign, a payment notification showed only the account name, while the amount, payer and payment purpose were missing. They are back, and the amount is shown in the account's color, as in the Banking table, so payments to different accounts are told apart at a glance.

In the Banking operations table the payment purpose is shown in full. Previously it was cut to one line with an ellipsis, and the order or invoice number at the end could not be read.

What to do after updating

Update the Banking add-on to 1.2.1 so that the amount takes the account's color. Notifications received before the update show the amount in the default color.

2.80.1 25.09.2026

What's fixed

The buy button next to an accessory on the product page now shows that the item was added. Previously, if the theme had its own button, it stayed the same after a click ("Add"), and the only visible change was the number next to the cart in the header. Now the button takes the label the theme set for this case, for example "Added".

For theme developers

Set the label shown after purchase with the data-l-added attribute on the accessory button or on the root of the accessories block; style it with the is-added class the button receives after purchase. Details: https://cartixx.com/docs/theme/behavior

2.80.0 25.09.2026

What's fixed

When several warehouses are combined into a shared warehouse, the store now counts their stock together. Previously each warehouse was compared with its own threshold, so a product with 2,514 units in one warehouse and none in the other two was marked as "low" in the product list. Now a product is marked only when the combined stock of the whole group runs low.

The "Running out" filter in the product list and the "Running out" block on the panel home page use the same rule, so the number on the home page matches the list it opens.

What to do after updating

You don't need to set a threshold for the shared warehouse: the store takes the highest threshold among the warehouses in the group. If those warehouses have different thresholds, check them in the "Warehouses" section.

2.79.0 25.09.2026

What's new

A CartiX license now covers one domain together with all its subdomains: shop.example.com, www.example.com and example.com count as one site. If the key already runs on another domain, the store tells you so and names that domain instead of just saying the activation failed. To move your store, unlink the previous domain in your account at https://cartixx.com/account/licenses and activate the key again. Development addresses (localhost, *.local, *.test) still don't count.

Fixed

When a key was suspended or deleted, the store kept showing the license as active, and a mistyped key looked like "the license server is unavailable". Now the store says it plainly: "there is no such key" or "the key is suspended".

2.78.0 24.09.2026

What's new

The Redirects section has a new “Upload from file” button. You can now upload redirect rules as an XLSX or CSV table, and an export from the Webasyst “SEO redirects” plugin can be uploaded as is. The button appears once the “Redirects and 404 monitor” add-on is updated to version 1.3.0.

Cyrillic addresses in the list of rules and the list of missing pages are now shown as letters rather than codes like %D0%90.

What to do after updating

Update the “Redirects and 404 monitor” add-on to version 1.3.0, otherwise the upload button will not appear.

2.77.0 24.09.2026

What's new

The Storefronts and content section now has Menu management. Here you build menus for the header, the catalog and the footer: links, catalog sections, site pages, brands, products and shop pages such as the cart and the customer account. You nest items inside each other and drag them with the mouse, and for a touchpad or phone there are Up, Down and Nest buttons next to them. Every item has a name in all your shop languages, an icon, a badge such as "New" and a choice of who sees it: everyone, guests, signed-in customers or selected customer groups. You can add a catalog section as a single item together with its subsections, and new subsections appear in the menu on their own.

The menu reaches your site through the theme template. Press the "Code for your theme" button in the section, copy the ready code and paste it into the template where you want the menu: the items appear as a nested list, and you can change the markup and classes to suit your theme.

What we fixed

A theme made with the "Create theme" button in the Design section showed service keys such as storefront.catalog instead of captions like "Catalog", "Add to cart" and "Checkout". Now a new theme gets all the standard storefront captions in Russian, Ukrainian and English right away, and you no longer need to copy them over from another theme by hand.

2.76.0 24.09.2026

What's new

You can now adjust your store's appearance right on the storefront. When you are signed in to the admin panel and open your site in the same browser, a gear appears in the bottom-left corner. It opens a panel with the same theme settings as the Design section — colours, width, font, logo (chosen as a file from your computer) — and every storefront text in each language. At first only you see your appearance changes; customers see them after you press "Publish". Customers never see the gear or the draft.

You can add your own settings and setting groups to a theme: a line, text, a number with a unit, a colour, an image, a checkbox, a choice from a list or a font. A colour, size, image or font can be linked to the design, so the value goes into the page styles by itself and the template needs no changes. Every setting has an icon with ready-made code that shows how to add it to the theme. Your own settings and edited texts stay after the theme is updated.

What we fixed

A theme setting used to accept any value: a colour field took anything you typed, and it went straight into the page styles. Now a colour must be a colour, a number must be a number within its limits, and an image address must be an address.

What to do after updating

The storefront panel is turned on with one line in the theme. Open Design → Files, the templates/layout.html file, and insert the theme_configurator tag in curly braces before the line. If you do not need the panel, there is nothing to do.

2.75.0 24.09.2026

What's new

You can now start your own storefront theme from a clean slate. The Design section has a new “Create theme” button: enter a name, a code and a description, and the store creates every file a theme needs — catalog and product pages, cart and checkout, customer account, blog, places for your installed add-ons, styles and translations. The files are empty, and each one says what it is for and what data it receives, so your developer does not have to take apart someone else's theme to find their way around.

Before, a new theme could only start as a copy of a finished one, with its layout to clean out afterwards. Copying is still there — “Make a copy” works as before.

Important

Until the new theme is built, a storefront using it shows empty pages. Switch your storefront to your theme once it is ready.

2.74.1 23.09.2026

What we fixed

The store could not find a product when the query held both its name and its SKU. You type "Пляшка 1.286-S28-1-100" and the store looks for every word either in the name or in the SKU — and finds nothing, because together they sit nowhere. Yet that is exactly how shoppers type: the name plus the code. Words are now searched across everything the store knows about a product, while the name still weighs more than the SKU.

What to do after the update

Nothing. There is no need to rebuild search — the store does it during the update.

2.74.0 23.09.2026

What's new

Search in the admin panel finds a product by its number. Type the product number or the SKU number — the one that arrived in a customer's email or sits in an export file — and the product opens straight away, with no scrolling through the list. The same works while a manager is filling an order.

The "View on the storefront" button leads to the real address. The panel used to build it and got it wrong: a product lives inside its category, a subcategory inside its parent, and a tag at «/tag/…» — so the link pointed at a page the storefront does not have. The store now builds the address, and if you run several storefronts you get a link to each. This covers products, categories, tags, brands and shop pages.

What we fixed

The store could not find products whose code contains a dot. If your SKUs look like "1.286-S28-1-100", searching for "286" found the product but searching for "1.286" found nothing: what you typed was split into words differently from the way the search index splits them. You would copy your own product name out of the panel, paste it into search and get nothing back — in a store where every item carries such a code, there was no search at all.

The "Rebuild" button in search settings always answered "Could not rebuild search". The rebuild did run, but the panel asked about it at the wrong address and never got an answer. You now see how much has been indexed and when it finished, and the rebuild runs to the end even if your shop has no schedule set up.

What to do after the update

If the "Rebuild" button answered with an error, open Settings → Search and press it once more: the rebuild now runs to the end and shows a report.

2.73.0 23.09.2026

What's new

Before an update the shop shows every release you are getting — as a list, each with its version and date. Shops are updated rarely, and there are usually several releases between your version and the latest one: you used to read the notes of the last one only and had no idea the work of two or three more was arriving. The list appears both in «Installation and updates» and in the «What's new» section.

2.72.0 23.09.2026

What's new

Your add-ons now speak the shopper's language. Everything an add-on answered from the page — «thanks, we will call you back», gift labels, the invoice page — used to arrive in the shop's default language even when the shopper was browsing a localised storefront. It cost one-click buying the most: an order remembers the language it was placed in, and every later email to the shopper and the payment page follow that language.

A shopper returning from a forgotten-cart email now lands in that very cart. If the cart belongs to their account and they opened the email somewhere they are not signed in, the shop offers them to sign in and shows the cart right after. They used to find an empty cart, and the reminder was wasted.

What to do after the update

Update your add-ons: the ability to work with the language arrived in them together with this release.

2.71.0 23.09.2026

What's new

Your shop opens pages faster. The browser now asks for the cart, the favourites and the comparison in one go instead of three, and a calculated cart is remembered until it changes. Before that, every view of every page made the shop load the photos and features of each product in the cart again: for a shopper with fifty items that came to hundreds of database queries per click.

The shop now clears its stored storefront pages by itself when you update it. Previously a shopper could see the old theme markup for another day after an update.

What we fixed

The cart no longer disappears when a shopper steps away from the computer. After an hour of inactivity the shop marks a cart as abandoned so it can remind the shopper by email, but the storefront stopped showing such carts: the shopper came back from lunch to an empty cart while the products were still there. Now they find the cart as they left it, the mark is removed on its own, and the reminders stop.

A guest cart lives for 400 days, and the term is extended on every visit. It used to count from the day the shopper added the first product, so even a regular shopper lost the cart on the appointed day.

A shopper no longer sees someone else's item counter in the header. The shop keeps one copy of a catalogue page for everyone, and that copy carried the number of whoever opened it first: a guest with an empty cart saw «49» in the header. A stored page now holds no personal numbers and no trace of who opened it.

What to do after the update

Open «Settings → Shop maintenance» and press «Clear storefront pages»: pages stored before the update may keep showing someone else's numbers for another day. From now on the shop will do this itself on every update.

2.70.0 23.09.2026

What's new

Any delivery method that asks for an address can now suggest the street: the customer types the first letters and picks the name from a list. The street directory comes from the carrier add-on — Nova Poshta or Ukrposhta — and you choose it yourself, in the «Suggest the street as the customer types» setting of the method. The order holds the street exactly as the carrier knows it, so your manager does not have to correct the address before printing a waybill. The suggestion works both at checkout and in the order editor in your panel.

What we fixed

The suggestion list covered the label of the field: the customer started typing a street and stopped seeing the word «Street» above it. The list now sits below the field in every storefront design.

What to do after the update

Update Nova Poshta or Ukrposhta to the latest version and press «Update cities, branches and streets» in their settings. The «Suggest the street as the customer types» setting appears in your delivery method once the streets have been downloaded.

2.69.1 23.09.2026

What we fixed

The «Repeat order» button is no longer part of the bundled storefronts: the shop owner places it in the customer account themselves, with a line in the template. In version 2.69.0 it appeared in the order list and on the order page without being asked for, and that is your decision to make.

What to do after the update

Nothing, if you do not want the button. If you do, place it yourself: «Design» → «Files» tab → the customer account templates, the line {repeat_order id=$order.number_raw} on the order page and {repeat_order id=$o.number_raw} in the order list. The «Repeat order» add-on has to be installed for it to work.

2.69.0 23.09.2026

What's new

In the customer account an order now has a place for the «Repeat order» button — in the order list and on the order page. The button itself comes from the add-on of the same name in the marketplace: the customer taps it and the whole order goes into the cart at today's prices. Until the add-on is installed, nothing in your storefront changes.

The shop got faster at putting many items into a cart at once: it used to recalculate the whole cart after every single item. On an order of fifty lines that took about four and a half seconds; now it takes less than half a second.

What to do after the update

If you have edited the order list or the order page in your own storefront, the button will not appear there: copy the line {repeat_order id=$o.number} into the order list and {repeat_order id=$order.number} onto the order page from the updated storefront. You edit the storefront in the «Design» section, on the «Files» tab.

2.68.0 22.09.2026

What's new

Any shipping method can now ask the customer for an address. Open the method settings, turn on «Ask for the delivery address» and tick what you need — street, building, apartment, postcode — and, separately, what you will not accept an order without. The customer fills these in at checkout, and you see the address in the order, in the waybill and on the printed forms. Until now only one method could ask for an address, so city delivery and free delivery carried the order to the customer's door while nobody asked for the street and the building.

The customer now sees which fields are required: there is an asterisk next to their names. Before that they learned it from the store's refusal after pressing «Place the order».

The carriers — Nova Poshta, Ukrposhta, Meest — and «Pickup point» keep their own address: with them it depends on the chosen branch, parcel locker or courier, and the store does not interfere.

What to do after the update

Update the delivery add-ons — Nova Poshta, Ukrposhta, Meest, «Pickup point» and «Custom shipping rates». Until you do, the carriers will show an extra address switch in their settings that they do not need.

2.67.1 22.09.2026

What's new

The search in the panel header now finds plugins too: type “sitemap”, “redirects” or “bonuses” and you land in the settings of the right plugin without recalling its name. It searches both the name and the description.

Staff (by name and work email), warehouses, payment and delivery methods — with a link straight into the method's settings rather than the general list — and order statuses have been added.

What the search knows about settings has nearly doubled: seller details, minimum order amount, checkout fields, closing the storefront for maintenance, customer sign-up, image sizes, form protection, promo codes, mailings, product collections and more.

Fixed

Searching by order number no longer returns the whole shop. Typing just the number prefix — “#100” — used to mean “find anything”, and the shop showed five recent orders instead of the one you needed.

Percent and underscore are searched as characters. “10% off” or the promo code “SALE_20” used to match everything.

A customer is found by part of their phone number. A manager typed the operator code, saw that person's orders and not a single customer card — and created a duplicate.

Brands are found and opened. Only those with an uploaded logo used to appear in the search.

A setting from the search no longer throws you back to the home page: an employee only sees what they have access to.

The order total in the suggestion is visible only to those allowed to see the shop's money.

The page with all matches lets you see the list in full: it used to say “37 orders” and show thirty. Choosing a type no longer hides the others, the number agrees with the word, and the “Hidden” and “Off” marks now suit a page and an article as well.

The search obeys the keyboard: arrows walk your pinned pages too, Escape no longer leaves the field dead, Ctrl+K is not taken away from the text editor, and the suggestion closes itself when you move to another screen.

On a large shop the search no longer recounts every order on each keystroke.

After the update

Nothing. Pages you have starred stay where they are.

2.67.0 22.09.2026

What's new

The panel header now has a search across the whole shop. One line answers two questions at once: "where do I turn this on" and "where is that order". Type "tax" and you land on tax rates; type a customer's surname and you see their card along with all their orders, amounts and statuses.

The search finds panel sections and settings, orders by number, name, phone and email, products by name and code, customers, categories, brands, articles, site pages, discounts and promo codes. Products are searched the same way a customer searches them in the storefront — typos, wrong keyboard layout and synonyms included — only hidden ones come along too. Every employee sees their own: a manager entitled only to their orders will not see anyone else's.

Press Ctrl+K to open the search, use the arrows to move through the rows and Enter to open a result. When there are more matches than fit, open the page with all of them, sorted by kind. On a phone the search sits as an icon and opens across the full width of the screen.

Star a page you come back to every day and it joins the "At hand" block on the home page, next to your recent visits. The list belongs to each employee, and the block itself can be removed from the home page where you compose it: Settings → Brand settings.

Fixed

A link to an order used to open the order list if the employee had last viewed orders as a list. Now such a link — from the search, from an email, from a colleague — opens the order itself, and your usual list view stays yours.

A site page now opens by a direct link you can send to a colleague.

Searching customers and orders works the same in the lists and in the header: the same customer could previously be found in one place and not in the other.

After the update

Open the search and star what you use every day: those pages gather on the home page in the "At hand" block.

2.66.0 22.09.2026

What's new

You can now show your articles anywhere in the storefront — on the home page, in the footer, on a product page or right inside the text of an information page. Until now fresh posts appeared only where the theme had planned for them in advance.

The selection follows your conditions: posts from a chosen blog, from a chosen category, by tag, pinned only, newest, most read, alphabetical or shuffled — so every visit shows a different set.

In the bundled themes the block of fresh articles is already on the home page and shows your own posts. If you build the theme yourself, one line is enough: {posts limit=3}. All conditions with examples — https://cartixx.com/docs/theme/tags

A blog or a category in such a block can be named by its number — you will find it on the blog page and on the category page, next to a ready-made line with a Copy button. The number is convenient because it stays the same even if you change the blog address.

Fixed

In windows that ask for confirmation the Cancel button looked like the main action and pulled attention to itself. Now such a window highlights the action you are being asked about.

A block the shop builds from a theme card did not appear at all when the theme had no file for that card — articles or products left an empty space. The shop now takes the missing card from the bundled theme, the way it already does for whole pages.

After the update

If your home page uses the Basic theme and it was customised for you, open the home page and check the news block: it used to show made-up sample articles, now it shows your real posts. No posts yet — the block does not appear at all.

2.65.2 21.09.2026

What we fixed

The shop kept the records of its own work in a single file and never limited it. On a live shop that file grew to 209 megabytes in six weeks, and on hosting with a disk quota this ends with the shop going down. The records are now kept in a separate file for each day, the shop holds two weeks of them and deletes the older ones itself.

The nightly database backup was made the slow way around: the external program looked for the database connection somewhere other than where the shop itself works. The shop now tells it the right path, and the copy is made the usual fast way.

What is new

«System → Diagnostics» has a new «Shop logs» row: it shows how much space the records take and warns you when it is time to clear them. The clearing itself is in «System → Logging».

What to do after the update

If your shop has been running for a while, the records may still go into a single file: that setting lives on your server. Open «System → Diagnostics» and look at the «Shop logs» row — if it warns about the size, clear the old records in «System → Logging» and set LOG_STACK=daily in the .env file on the server.

2.65.1 21.09.2026

What we fixed

An invoice or a delivery note would not print for an order from a private customer when the template used the company name or any other field the customer had left empty: instead of the document the manager got a «The document could not be printed» page. An empty field now prints as blank and the rest of the document is built as usual. The same goes for the parcel recipient's fields.

2.65.0 20.09.2026

What we fixed

The «AI assistant» section was checked from four sides, and here is what turned up.

Deleting an agent broke the shop. The job stayed assigned to a worker who no longer existed, and every «Write» button and the whole «Edit selected» screen in the catalogue tripped over it — the owner got an error instead. Assignments are now removed together with the agent.

Texts for a group of products in the shop’s second language were not saved at all. The most ordinary case — «write Ukrainian descriptions for the whole catalogue» — was paid for in full, one request to the service per product, and produced nothing. The reason was the name: a new translation requires one, and nobody filled it in. The «Roll back» button refused to work after such an operation too.

A service refusing halfway through was reported as success. If the key stopped working on the three hundredth product out of five hundred, the owner read «Done, 299 of 500 changed» and not a word about the reason, while the shop kept calling the refusing service another two hundred times. Now several refusals in a row stop the work, and the operation history says what happened.

The «what we translate with» choice did not work by default. The owner connected a translation service, pressed «Translate» in «Localisation» and was told that no AI agent was assigned — the service they paid for was never called. Translators that cannot translate were removed from the list, along with the model field that affected nothing.

In the section itself the counter «0 of 17 assigned» showed zero even when the agents were in place, and the tooltip on the main connection’s star showed an internal name instead of text. A long page title written by an agent pushed the «Save» and «Delete» buttons off the screen, so they could not be pressed.

What’s new

The shop now explains a service refusal in plain words. It recognises the common causes itself: the account has run out of money, the model was renamed or retired, the request is longer than the model reads, the service does not work in the shop’s country, the key was not accepted. The owner used to read the service’s answer verbatim in English.

The search engine fields are named the same way across the shop — «Search engine title», «Search engine description», «Keywords». In the product card, in a brand and in a selection they were named one way, on pages and in articles another.

The instructions given to an agent became more precise. The «Fix what is written» button no longer asks to keep markup where there is none, holds the length limits of the search engine fields, and follows what you wrote to the agent in its card. The full product description now asks the model not to invent specifications, sizes and guarantees.

What to do after the update

If you have already created agents, open «Settings → AI assistant → Who does what» and check that the performers are in place: the counter now tells the truth.

2.64.0 20.09.2026

What’s new

Agents took on the rest of your shop’s texts. In the previous release the «Write» button appeared in the product card and the catalogue section — now it also stands on the text pages of your storefront, in articles, in a brand, in a service and in product selections. It works the same way everywhere: you press the button next to a field, the agent writes, the text lands in the form, and you decide whether to save it or edit it first. When the field already has text, the button offers to write a new one or fix what is written — typos and agreement, without touching the facts.

The shop tells the agent what the form does not contain. About an article — which blog and which category it belongs to; about a service — the options the customer chooses from; about a page — where it sits and at what address it opens. That is why the text comes out about your goods rather than about goods in general.

On the languages tab of pages, articles, brands and selections, one press translates the whole block at once: the heading, the text and the search engine fields together.

Texts for a whole group of products arrived. Tick the products in the catalogue, choose «Edit selected → Let an agent write the texts», pick the fields, the language and the agent — and the shop writes them one after another. The work runs in the background: you can close the window, the progress is in the operation history. What is written goes straight into the catalogue, so by default only empty fields are filled in, and the whole operation can be rolled back with one button.

What we fixed

A product selection could not be given a heading and a description for search engines in the shop’s main language: those fields existed only for the other languages, although in every other respect a selection page is no different from a section page. It now has its own SEO block.

In the «Edit selected» window the preview went stale silently. You looked at what would happen, then changed the condition — raised the price by 50% instead of 5%, say — and pressed «Apply», while the breakdown on the screen still belonged to the previous condition. The new one was applied. Now editing any field clears the stale breakdown, and you look again.

What to do after the update

Open «Settings → AI assistant» and look into «Who does what»: there are seventeen jobs now, and the new places are waiting for someone to do them. While a job has no agent assigned, no button appears in that place.

If you have not created any agents yet, start with a connection: you will need an access key from the service dashboard, and the button next to the field opens the right page. To see how it works without a key, pick the «Trial mode (no key)» service.

2.63.0 19.09.2026

What’s new

Your shop can now hand its texts to AI. A new section appeared in the settings — «AI assistant»: you connect a service (OpenAI, Claude or Gemini) and create agents. An agent is a worker played by a model: it has its own name, its own instructions («write short and to the point, no hype»), its own model and its own request for every field. The access key is entered once in the connection, and any number of agents can work on it.

Who does what is shown as one list. Several agents may share a job: keep a plain copywriter for spare parts and a persuasive one for gifts — the manager picks the right one in the product card. You can see how agents work before you set up paid access: the trial mode answers on its own and costs nothing.

Agents started with the catalogue. In the product card, next to the name, the short description, the full description and the search engine fields, there is now a «Write» button; when the field already has text, it offers to write a new one or fix what is written — typos and agreement, without touching the facts. On the «Localisation» tab one button translates the whole card into another language of your shop. The catalogue section can do the same: description, search engine texts and translation.

What is written goes into the form, not into the catalogue: you read it, edit it and save it yourself.

The «what we translate with» choice in the Localisation section finally works too — before it did nothing. Translation services now connect there: DeepL, Google Translate and the free LibreTranslate, which you can host yourself. A service translates word for word, costs less than an agent and answers faster — on a dictionary of three hundred values the difference is noticeable. Your AI agents stand in the same list: you choose who translates, and the «Translate the empty ones» button in specifications, services, contact fields and order statuses follows that choice. Translations you already typed are left alone.

What to do after the update

Open «Settings → AI assistant» and create a connection: you will need an access key from the service dashboard, and the button next to the field opens the right page. Note that a ChatGPT Plus or Claude Pro subscription does not work for a shop — access for applications is paid separately, per request.

If you would rather see how it works first, pick the «Trial mode (no key)» service: it shows the whole chain, answering with a sample instead of real text.

2.62.1 19.09.2026

What we fixed

A ticked checkbox in the filter came back empty. The customer ticked, say, 40 W, the list narrowed, the filter chip appeared on top, but the checkbox itself stayed empty as if nothing had been chosen. This happened only with whole numbers: 6.1 was ticked correctly, 40 was not.

Out-of-stock products showed up in three places. A storefront set to hide them still offered such products in search suggestions, in the related products block under a product card, and in the product blocks on the home page. The rule now applies there too, and the move-to-the-end mode works in the home page blocks as well.

The sitemap updates right after storefront settings change. Until now it kept the previous set of pages for up to an hour: you turned on hiding of out-of-stock products, and the sitemap kept sending search engines to hidden pages.

2.62.0 19.09.2026

What is new

Each storefront now decides what to do with products that are out of stock.

Open Storefronts, then the Main tab: there is a choice of three options. The setting belongs to the storefront, not to the store, so if you run retail and wholesale on one catalog, each can have its own rule.

Show as is — how the store has worked so far: sold-out products stay in the lists alongside the rest.

Move to the end of lists — products stay on the storefront but come after those in stock. The chosen catalog order is kept: if a section is sorted cheapest first or arranged by hand, that order survives inside the in-stock and out-of-stock groups.

Hide from the storefront — products disappear from catalog sections, search, search suggestions, collections on the home page and from the sitemap. The product page itself stays available: links from emails, ads and customer bookmarks lead there, and answering them with a not-found page would be wrong.

Two rules the store keeps on its own so the setting does not work against you:

If ordering at zero stock is on, hiding does not apply to such products: you are ready to sell them, so the customer has to see them. Only products that cannot be bought are hidden, for example those whose variants are all withdrawn from sale.

In the hide mode the In stock filter disappears from the filters: there are no other products on the storefront anyway, so the filter would change nothing.

What to do after the update

Nothing is required: every storefront keeps its previous behaviour, Show as is. To remove sold-out products from the storefront or move them down, open the storefront settings and choose the option you need.

2.61.0 18.09.2026

What is new

Products in a category can now be arranged with the mouse.

A category could already be set to the Manual order, but there was no way to set that order: the store listed products in the order they had been added, so the setting changed nothing. Now open Catalog, then Products, choose a category and drag the rows: pick up a product, drop it on another one and it takes that place. Tick several products and drag one of them, and all the ticked ones move together and stay side by side.

The order can be changed on any page of the list, even the fifth one: the store remembers where you put the product and leaves the rest alone. Customers see this order when the category is set to the Manual sorting.

The product list opens in the order of its category. Choose a category arranged by hand and you see it exactly as the customer does, and you edit it right there. Choose a category sorted by name, by price or newest first, and the list shows the same order as the site. Until now the panel and the storefront had to be compared in two windows.

A product added to the category later goes to the end of a hand-made listing instead of jumping in front of the arranged ones.

Moving in from an old store now brings the order of products in categories when the old store knows it. That happens when connecting to its database; over the network the order is not provided.

What to do after the update

Nothing is required: categories where the order was never set stay as they were. To arrange a listing by hand, set the category order to Manual in its settings and arrange the products in the product list.

2.60.1 18.09.2026

What we fixed

Shipping and payment logos did not show up at checkout.

You upload the carrier or payment logo in the method itself (Settings, then Payment and delivery), and the customer account showed it. The checkout page did not: the store never passed the logo to the theme, so the theme could not draw it even when it tried. The second reason was less visible: the list of methods is redrawn every time the customer names a city or changes the delivery, and that redraw had no logo in it, so the mark would disappear right after the first recalculation.

Now the logo sits to the left of the method name and stays there through any recalculation. The Default, Market and Promo themes show it right after the update.

If your theme is your own or bought elsewhere, the logo is available in the method data under the name logo, both for a delivery option and for a payment method. The store sets the size itself, so there is no height to adjust in the theme.

What to do after the update

If your methods have no logos yet, open Settings, then Payment and delivery, choose a method and upload a picture: the customer will see it at checkout.

2.60.0 18.09.2026

What is new

A numeric feature can now be picked with checkboxes, not only with a slider.

Until now the customer filtered volume, weight, power and any other number with a from-and-to slider. When there are few values and they are round numbers, such as 5, 10, 30, 50 and 100 ml, this is awkward: the customer hunts for the number with the mouse and still gets the neighbouring ones. Now you can switch such a feature to a list of values, and the customer picks the volume with a single checkbox.

How to switch it on: open Catalog, then Product types and features, choose the feature (Volume, for example) and make sure Used in storefront filters is on. Below it you will see how the customer picks a value: a slider from and to, or checkboxes from the list of values. Save, and the filter on the storefront changes right away.

The view is set for each feature separately, so one filter column can hold both: volume as checkboxes and height, which runs continuously from 5 to 200 mm, as a slider. Keep the slider where there are many values and they are not round.

Next to every value the store shows how many products are behind it. A value that is missing under the current selection does not disappear, it dims, so the customer sees that such a volume exists in the store and simply does not match the rest of the choice. The mark is removed with the same cross at the top as any other value.

The setting works everywhere filters appear: in a catalog section, in search, on a brand page and on a tag page. Your theme needs no changes, including your own or a purchased one: the 30 ml checkbox is built for the theme exactly like the Blue one.

What to do after the update

Nothing is required: every numeric feature stays on the slider, as before. If one of them has only a few values, open the feature and switch on the list of values; the storefront shows the result immediately.

2.59.1 18.09.2026

What is new

The order status is now visible by color: the status name takes the same color you gave it in the settings. Previously only the mark on the left was colored, and the status column read as a solid grey list.

The badge for pending work in the menu is now prominent. Instead of a pale number next to the section name, the store shows a red circle, so you will see a new order even while you work in another section.

2.59.0 18.09.2026

What's new

You now build the filter column of a catalogue section yourself. Open «Catalog → Categories → Filters», choose «Build the list by hand» and put the list together: characteristics are added through search, the order is set by dragging, anything extra goes away with the bin. The buyer sees the column exactly as you left it.

Price, «in stock», «on sale» and warehouse became rows of that same list. They used to sit on top no matter what — now you can take them out of the section or place them below the characteristics.

Next to a characteristic the shop says how many products of the section have it filled in, and marks the ones that have none. A filter with nothing to narrow down never shows up on the storefront, and now you can see that before saving.

What we fixed

The order you set by hand fell apart on the storefront. The theme drew every characteristic with a list of values first, then the sliders of numeric ones and only then «yes/no»: a section with «Volume» in second place showed it last. Filters now follow the order you gave them.

A section with every filter removed still showed the buyer an empty column. Now there is no column at all and the products take the space.

Dropdown lists in the panel had no search where they should have: picking a characteristic, a language, related products and three fields in the general settings. These lists are searchable now.

What to do after the update

If you run your own theme, move the filter markup over: the column is drawn from the new filters.all data, and without that change its order stays as before — list characteristics first, then numeric ones, then «yes/no». The three themes that ship with the shop are already updated. How to do it, with a markup example: https://cartixx.com/docs/theme/data

2.58.0 18.09.2026

What's new

A theme can print the page text that the owner writes in the "SEO optimization" plugin with a single line — {seo_text}. The bundled themes now use this tag for the text at the bottom of the home page: it used to be a placeholder in the theme files, and now it is your own text, separate in each language. Until the text is written the theme shows its previous placeholder, and the "Default" theme shows nothing at all so that no empty block appears.

The tag also works without the plugin: the shop declares it empty, so a theme using it does not break. For theme authors it is described in the reference: https://cartixx.com/docs/theme/data

After updating

To write the home page text, update the "SEO optimization" plugin to version 1.3.0.

2.57.1 17.09.2026

What we fixed

In the order editor with courier delivery the street is now suggested from the carrier's directory: you start typing and the shop offers the names, so the waybill gets the street exactly as the carrier knows it. Previously a manager typed the street by guess and corrected the address by hand when issuing the waybill.

The order address is filled into the carrier's fields: an order with courier delivery already has a street, building and apartment, yet those fields opened empty and the address looked lost. The same fields are also no longer shown twice — the carrier asks for them itself.

2.57.0 17.09.2026

Important before updating

The section setting "Show products from subsections" had no effect on the site: a section always showed the products of all its subsections. The setting now works, and updating switches it on for every section, so the shop looks exactly as before. Where you need only the section's own products, switch it off there.

What we fixed

Moving a section into another section no longer breaks its links. The old address used to answer "page not found" together with every subsection and product inside it, and search positions were lost. The shop now leads visitors from the old link to the new one, just as it does when an address changes.

The product count in the section tree shows what a customer will see: drafts, hidden and archived products are no longer counted, and a rule-based section counts the products of its subsections too.

Switching a rule-based section back to a regular one no longer wipes the conditions you entered — switch it back and they are still there.

A product without a price no longer lands in a "cheaper than 100" section: an empty price used to count as zero, so such a section collected the whole unfinished catalog.

The old price in conditions is compared in the shop's currency. A product priced at 150 dollars no longer lands in an "old price up to 200 ₴" section.

Two conditions on purchase options now meet on the same item variant: a "red, size 44" section collects products that actually have a red size 44, not red on one variant and 44 on another.

The numeric feature slider no longer drops products the customer never touched: its bounds are calculated from the same data the selection uses.

Section conditions are checked when saved: a value from another feature, a from-to range on a list feature and a negative price are no longer saved silently but explained in plain words.

The page address for other languages (hreflang) on the second and later result pages points to the same page instead of the first one.

The sitemap is rebuilt right after a section is created, edited or deleted, instead of an hour later.

In the "Default" theme the product count is written properly ("1 product", "2 products"), and an empty section no longer offers to reset filters the customer never set. The "manual" product order has been removed from rule-based sections: products there cannot be arranged by hand.

2.55.1 17.09.2026

What's new

The heading and description pattern for SEO filter pages is now saved by its own button — you no longer have to create pages to keep it. Below the fields you see the heading it produces, and a line saying the pattern is shared by the whole shop. If the search line pattern has no feature value, the shop warns you: every page would get the same heading and search would treat them as duplicates.

What we fixed

Works with version 1.3.1 of the "SEO filter" plugin — update it together with the shop.

A pattern that is too long no longer breaks page creation with an error: the text is trimmed to the field length, and the refusal is written in plain words, without internal field names.

After updating

Update the "SEO filter" plugin to 1.3.1.

2.55.0 17.09.2026

What's new

The "SEO → SEO filter" section now has patterns for the headings and descriptions of pages the shop creates automatically. The heading is built from the category name, the feature name and its value — "Bottles volume 300 ml" — followed by whatever you add yourself: "buy wholesale in Kyiv, prices from…". You write the pattern once per shop language and every created page gets such texts. Works with version 1.3.0 of the "SEO filter" plugin.

After updating

Update the "SEO filter" plugin to 1.3.0 — without it there is nothing to save the pattern fields.

2.54.0 17.09.2026

What's new

You can now edit the header, frame and footer of emails to customers. The Notifications section has a new "Email design" block with a shared email template: there you change the header colour, the logo and the footer text, and the "Email text" variable marks where the text of each notification goes. Previously the header with the shop name was added to every email automatically, and there was nowhere to change it.

A single email can use "Own email template". The shared template is then not added, and the email goes out exactly as written in the notification, with your own header and footer. When you switch it on, the shared template is inserted into the email so you have something to start from.

On a product collection page, the theme can show categories above the list: both the categories chosen in the collection's conditions and the categories its products belong to, with a product count for each. What the template can use is described in the reference: https://cartixx.com/docs/theme/data

After updating

Nothing to do: emails keep their current design. If you have already written an email in full, with your own header, that notification has "Own email template" switched on.

2.53.5 17.09.2026

What was fixed

Markup pasted into the text editor source code turned into a single line without line breaks or indentation after saving. Text you pasted and did not edit in the visual mode is now saved exactly as you pasted it. If the text was edited in the visual mode, the source code is laid out line by line with nested indentation.

Wrappers with classes, sections and embedded video were dropped on the first edit in the visual mode: a block with a class turned into plain paragraphs. Such a piece is now kept whole and shown in the text as a "Custom HTML" badge. Double-click the badge to open the source code and change it.

The "Products" button in the editor toolbar showed a technical label instead of its name. It now shows regular text.

2.53.4 17.09.2026

What is new

A "by conditions" category can now be built by price. Choose "Price" in the conditions and set the range, for example from 0.01 to 5: the section will show products sold within that range, promotions included.

The accessories block can show how many items are in stock: {$acc.count}. It is empty when stock is not tracked for the product.

What was fixed

A "by conditions" category was empty on the site even though the admin showed its product count. Its products now appear on the storefront, in search within the category, and in product lists and promotions that target it. Products linked to such a category by hand while it was a regular one no longer show up in it.

If your own theme had no template for the product list page or the blog, those pages returned an error. The store now takes the missing template from the standard theme, while the header and footer stay yours.

What to do after the update

If you use your own theme, check that its templates folder has product-list.html, blog.html, blog-category.html, blog-post.html and blog-tag.html, and that its partials folder has blog-card.html. Without them the list and blog pages use the standard theme markup. To match the rest of your site, copy these files from themes/default/templates into your theme and style them. Theme structure is described here: https://cartixx.com/docs/theme/structure?lang=en

2.53.3 17.09.2026

What was fixed

A customer edited their name in the account, clicked "Save" and nothing happened: the page did not refresh and no confirmation appeared. After saving, the page now reopens with the new details and a "Profile saved" message. A company customer can now also correct the contact name, not only the company name.

Instead of "Profile saved", "Password changed" and "Current password is incorrect", the account showed technical labels such as storefront.profile_saved. It now shows regular text in the storefront language.

The "Company name" column in the order export was empty for every company order. The name is now exported, including for orders placed earlier. Print templates can also use {$customer.company_name}.

2.53.2 17.09.2026

What is new

The SEO filter can now build a selection page from a numeric feature such as volume, weight or diameter. In the page editor such a feature has "from" and "to" fields. To show exactly one value, for example 30 ml bottles, enter the same number in both fields.

What was fixed

Saving a selection page in the editor used to erase its number, price or yes/no condition, and the page started showing the whole category. All conditions are now kept.

What to do after the update

Update the "SEO filter" add-on to version 1.2.0: numeric features will not appear in the editor without it.

2.53.1 17.09.2026

What is new

The warehouse badge in the order queue now shows the amount that warehouse is picking instead of the quantity of goods. The amount matches the warehouse total on the invoice: line totals minus line discounts. Quantity and the number of items appear in the tooltip when you hover over the badge.

What was fixed

Clearing a category meta title, meta description or description and saving kept the old text in the database. Translated fields of products, brands, pages, articles, features and services could not be cleared either. A cleared field is now erased.

Selecting another category in the tree changed only its name, while the description, meta, conditions and other fields stayed from the previous category. The form now opens the selected category completely.

What to do after the update

If you edited categories after switching between them, check their descriptions and meta: fields of the previous category may have been saved into the selected one.

2.53.0 17.09.2026

What is new

A checkout form field can now be hidden from the customer and given a default value. This is how the mandatory "Contract" line gets into invoices and delivery notes: the customer is not asked about a contract on the site, every company order gets the default value, and a manager sees the field in the order and enters the real contract when there is one. Both settings sit next to "required" in the storefront checkout settings.

Document templates can use every customer field by its code: the contract prints as {$customer.contract}, the payer as {$customer.payer}. If a field code contains a hyphen, write it with an underscore in the template: the "rnokpp-payer" field prints as {$customer.rnokpp_payer}. The variable hints in the template editor list these fields by name. An empty field prints its default value, including in orders placed before the field existed.

What was fixed

A document PDF is now built the same way the browser prints it. When a template prints several invoices in a row, for example one per warehouse, each invoice starts on a new page instead of running together with a break in the middle of a table.

Ticking "required" on a checkout field no longer moves the field to the end of the form.

2.52.0 17.09.2026

What is new

Order export has a new "Product as a line" column: each item is written as one phrase, the way it appears on a picking list, for example "Aluminium cap (Black, 28x18 mm)(0104) - 50 x 4,50 UAH". The picker no longer has to combine name, SKU, quantity and price from separate columns. Prices without cents are written as whole numbers.

For files that are printed or read by eye, there are now "Price with currency", "Warehouse total with currency" and "Total with currency" columns, so an amount can no longer be mistaken for a quantity. Choose the columns in the export set settings.

What was fixed

If your shop moved from Webasyst, transferred orders showed no warehouse letters in the order list, even with "Show shipping warehouse" turned on. Every such order now shows which warehouse it was picked from and how many items came from it. The warehouse is filled in automatically after the update; there is no need to transfer orders again.

2.51.0 11.09.2026

What is new

A document can now open with the print dialog already up. Until now the buyer clicked the invoice link, saw the paper and had to find a way to print it: on a phone printing hides in the «Share» menu. The theme can now say «open for printing», and the dialog appears by itself as soon as the page has loaded.

Printing is called after the page is fully loaded, not right away: otherwise the sheet goes to the printer without the logo and the stamp, which had not loaded yet.

How to add it to a theme, with ready-made code, including printing without leaving the page: https://cartixx.com/docs/theme/tags?lang=en

After the update

Nothing to do. The links to forms already in your theme keep working as before — the print dialog appears only where the theme asked for it.

2.50.0 11.09.2026

What is new

A print form now shows its code. It is written in the form itself, in Settings → Print forms, as the «Form code» line next to the switch, and a button copies it; in the list of forms it sits under the name. The theme refers to the form by this code when it shows the document to a buyer — until now there was nowhere to take it from.

A document for the buyer can be asked for in another language. By default the paper comes out in the language of the order: it was placed in Ukrainian, so the invoice is Ukrainian, even if the buyer is browsing the shop in Russian right now. The theme may say otherwise and give, say, an English invoice to a partner. Only languages your shop works in can be asked for.

Examples for the theme: https://cartixx.com/docs/theme/tags?lang=en

Fixed

The link to a print form in the customer account did not work: the theme wrote exactly what the documentation says and got nothing back. In the account the shop refers to an order by its number, not by the internal row code, and the helper did not recognise it. It now understands the number, the internal code, and a formatted number such as «№1024».

After the update

Nothing to do. If you already put a link to a form in your theme and it never appeared, it will now.

2.49.0 11.09.2026

What is new

Buyers can open their own paperwork for an order. Until now only the «Payment by invoice» add-on could show an invoice, and nobody could show a delivery note or a warranty card: a manager printed them and sent them by hand.

The theme now has a helper that puts a link to any of your forms from Settings → Print forms wherever you want it. What to show and where is up to you and whoever maintains your theme: the invoice in the customer account, the delivery note on the «Order placed» page, nothing at all. The link opens a print-ready page, and a PDF link can sit next to it.

The buyer gets exactly the paper the manager prints: the document number and date are issued once, so your accounting and your customer hold the same invoice no matter how often it is opened.

The shop takes care of two things so the theme cannot get them wrong: only the person the order belongs to gets a link, and a form that is switched off or empty gives no link at all — otherwise the buyer would click a button leading to «page not found».

How to add it to a theme, with examples: https://cartixx.com/docs/theme/tags?lang=en

After the update

Nothing to do: until the theme carries a link, nothing changes for buyers. If your theme was not written by us, show the documentation page above to your developer — one line in the order template is all it takes.

2.48.0 11.09.2026

What is new

The shop can now decide which delivery and payment methods each buyer sees. Until now a method could only be switched on or off as a whole: if you accept bank invoices, both companies and private buyers saw them, and cash on delivery was offered even on a twenty-thousand order. Now you write rules: «companies pay by invoice only», «cash on delivery up to 5000», «pickup for our own customers», «prepayment on the first order».

Rules live in Settings → Payment and delivery, as a third list under the methods. A rule is four things: what it applies to (delivery or payment), what to do (hide the chosen methods or keep only them), the methods themselves and the conditions. The conditions are the same ones the discount rules use: buyer type, cart total, weight, number of products, products in the cart, customer category, whether this is their first order, how much they bought before, a schedule by days and hours. A payment rule has one more condition — the chosen delivery method: that is how «cash on delivery with Nova Poshta only» is built.

A rule can be switched off without deleting it: it stays in the list and waits for the next season. Rules only remove methods and never bring back what another rule removed, so their order changes nothing. Orders created by a manager are not affected — they take orders over the phone and may pick any method.

How to set it all up, with examples and screenshots: https://cartixx.com/docs/engine/method-rules?lang=en

Order export got three warehouse columns: «Warehouse total», «Lines from warehouse» and «Units from warehouse». With a row for every product, every row of one warehouse carries the same number, so the picker sees their part of the order at once instead of adding rows up in their head. The totals of all warehouses add up to «Items total».

Fixed

Quantities in the order export were rounded to whole numbers: 8.4 m² of flooring left as «8», and the warehouse shipped something other than what was bought. Fractional quantities now arrive as they are, while whole ones look the same as before — «10», not «10.000». The same was fixed in the «Order contents» column.

Checkout accepted any payment method id that came in the request: neither the storefront it belongs to nor «switched off» was checked. The method must now be in the list the shop showed the buyer.

After the update

Nothing is required: there are no display rules after the update, and every buyer sees every method, as before.

Once you create a rule, open the checkout and look at it through the eyes of a buyer — especially if you chose «keep only the chosen ones». A rule that keeps only invoices, combined with invoices switched off, leaves the buyer with no payment method at all.

2.47.0 11.09.2026

What's new

Order export can now separate orders with a blank row. With a row for every product an order takes as many rows as it has items, and there was no way to see where one order ended. The setting sits in the export set, next to "A row for every product".

Order rows can be sorted by warehouse: the products of one warehouse go together instead of being mixed up, so the picker no longer hunts for their rows across the whole order. The setting is in the same export set.

A customer paying by invoice now sees a payment link in their account. Before, the link was only in your order card: the customer opened "My orders" and found neither a button nor an invoice, and you had to send the link by hand.

The shop shows unfinished work. Refreshing a carrier directory, moving the catalogue into search and loading the list of towns run for hours in small portions, and a run that broke off left no trace: the shop said "not running, not finished, no errors". Such work now appears in Settings → Diagnostics as "Unfinished work" — named after the button you started it with.

Fixed

On the order payment page, right under the "Invoice" button, the shop said "this order is paid on delivery". The line appeared for every method that does not lead to a bank page and plainly contradicted the button: the money comes by bank transfer, not from a courier.

The shop no longer offers to pay an order that is paid on delivery. The payment link used to be in the order card, in e-mail, in SMS and in the bot: the customer opened it, read "this order is paid on delivery" and called to ask what to do with it.

After the update

Update the "Payment by invoice" add-on to 1.2.0 — without it the payment link will not appear in the customer's account. If you use the "Telegram" and "Nova Poshta" add-ons, update them too: 1.12.3 and 1.4.3.

If you run your own theme, update the order payment page in it: the line about payment on delivery is now switched on by the $show_offline_note variable, and without that edit it stays where it was. What the page gives the template — https://cartixx.com/docs/theme/data?lang=en

2.46.2 10.09.2026

Что починили

Суммы, цены и количества в выгрузке заказов попадали в Excel текстом: итог по колонке не считался, а сортировка по сумме шла по алфавиту — «9» оказывалось больше «44990». Теперь число лежит числом, а денежная колонка показывается как «1 234,50».

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

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

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

2.46.1 10.09.2026

What we fixed

The order list filters no longer disappear. A manager would filter the orders, open one of them, refresh the page — and the list showed the whole store again. The chosen filters now live in the page address: they survive a refresh, and a link to the selection can be shared with a colleague.

In the export, product features were taken from the product only. For a product with variants they are usually filled in on the variant itself — the customer bought a 50 ml flask, while the file got the product's value or an empty cell. The value of the purchased variant is used now.

Address columns starved each other: with both "Where to deliver" and "Street" and "Region" in the same set, some columns came out empty.

Recipient fields in the file were named exactly like the customer's ones: "Phone" stood next to "Phone", and only the column order told you which was which. They are now labelled "Recipient: …".

A personal export set of a dismissed member of staff stayed in the store and showed up for everyone else. It now leaves together with them.

2.46.0 10.09.2026

What's new

An order export is now built from the fields you actually need. They are grouped: order, address and tags, customer, recipient, product, product features. Besides the usual number, total and status you can now export the update date and the payment date, the amount left to pay, the order rate, the address in parts — country, region, city, street, building, apartment and postcode — the carrier's branch, the promo code and the advertising tags.

Customer and recipient fields are exactly the ones your checkout asks for, including the ones you added yourself. Values come from the order itself rather than from the contact card: cards get edited, while the order remembers how it was on the day of the purchase.

There is a new "a row for every product" mode: an order with three products gives three rows in the file, with the order number and the customer repeated in each. That is how the warehouse and accounting read the file. Along with it come product fields — name, SKU, quantity, price, line total, discount, warehouse — and product features from your own directory: volume, length, weight, whatever is filled in.

An export set now has a note saying what it is for and a "my set only" mark: a manager's personal set is not shown to everyone else. Fields inside a set can be found by name — there are more than a hundred of them.

Five more filters are available for the order list: update date, payment date, waybill number, the customer's first order, and a product in the order — by name or SKU. You turn them on where the others live, in "Order settings → Filters in the list".

What to do after the update

Open "Order settings → Filters in the list" and turn on the new filters you need — the default set of filters has not changed. Export sets need no attention: the old ones keep working.

2.45.3 10.09.2026

What we fixed

The product photo in the order editor no longer breaks the line. Nobody had set a size for it, so on a narrow screen it took half the screen and the quantity and price fields landed on top of it.

The customer's initials in the order card sit in the middle of the circle. They used to drift up and to the left and were painted pale grey, like the caption under the name.

The order card no longer keeps a button for the current status among the transition buttons. It did nothing, and the status is already written next to the order number. Only the statuses the order can actually move to are left; a member of staff who may not change statuses does not see the row at all.

2.45.2 10.09.2026

What we fixed

The cart total in the header shows the cents again. The browser used to build that line itself, rounding the sum and writing its own currency sign: the header said "100 UAH" where the store printed "99.50 ₴". The line now comes from the store ready-made — the same one the cart and the checkout print.

If the header total should go without cents, the theme asks for the short line itself: put data-cart-total-header="short" on the total element. The "Market" and "Promo" themes do exactly that.

What's new

Customers can see and edit their patronymic in their account. The store asks for it at checkout, but the profile page knew nothing about it: the field in the theme showed an empty box and saving silently lost what was typed. The field is now in all three bundled themes. With your own theme, add a field named middle_name with the value {$profile.middle_name} to the profile form and the store will accept it; a theme without that field works as before and the patronymic in the contact card stays untouched.

2.45.1 10.09.2026

What we fixed

Products from the "Recommended" block on a product page can be added to the cart again. When a theme puts such a block inside the product card, neighbouring products were given the variant of the open product, and the store refused to add them. For the same reason the price of neighbouring cards changed whenever the customer switched a colour or a size.

The customer's patronymic is visible everywhere the store shows a name: in the order list, in the order card and in the customer's account. The order name was built from the surname and the first name only, so the patronymic the customer typed stayed invisible. Along with that, the order card now shows the manager every field the store asked for at checkout — previously only the name, company, tax number, phone and email were there. For a returning customer the patronymic now reaches their contact card as well.

An order status code accepts a hyphen. Statuses moved from another platform are named after their own titles — "udalit-admin"; such a status could be neither renamed nor recoloured, because the form rejected a code the store had written itself.

What changed in the way it works

A customer signed in to their account now edits their own card right at checkout: changed the surname or the patronymic in the order form, and the card says the same. Phones and emails are added to the existing ones rather than replacing them. For a customer without an account the rule stays as before: the store fills in only what the card does not have yet.

2.45.0 10.09.2026

What's new

Orders moved from another platform can now be linked to your own payment and delivery methods. The old store sends only the method name, so such an order did not know how it was paid for or shipped: the customer saw no "Pay" button in their account, the waybill knew nothing about cash on delivery, and filtering by method did not find these orders. You say once which of your methods matches the name from the old store, and the store applies it to every such order at once — order amounts stay untouched. The linking screen lives in the "Migration from other platforms" add-on: update it together with the store.

Your theme now knows which delivery and payment method an order actually uses. Names cannot tell them apart — you rename and translate them — so order data now carries the method ids: the theme can show its own note for pickup and a tracking link for a carrier. What the theme gets on the order page is described here: https://cartixx.com/docs/theme/data?lang=en

What we fixed

The status colour and icon you chose in "Order settings" are visible again in the order list, in the order card and in the print dialog. The list coloured statuses its own way, so your green "In progress" with its own icon looked like every other status — both settings changed nothing.

What to do after the update

If you moved your store from another platform, update the "Migration from other platforms" add-on to version 1.12.0, open the "Migration" section and link the payment and delivery methods — you will see the list of names from your moved orders there.

2.44.1 08.09.2026

What we fixed

A product that was sold out in the old shop arrived in the catalogue as a product whose stock is not tracked — it went on sale as always available, and the shop took orders for goods that were not in the warehouse. An empty stock value means exactly "we do not track stock here", while zero means "out of stock"; the migration confused the two and lost zero stock levels.

What to do after the update

If you have already moved a catalogue from an old shop, open the migration and run the Products step once more. It fills in the missing zero stock levels and touches nothing else: prices, photos and orders stay as they were, and no extra entries appear in the warehouse journal.

2.44.0 08.09.2026

What's new

Customers now see their whole order in the account area, not just its number, date and total. The order page shows the items with photos and links to the products, the services chosen for each item and the old price, and below that the full breakdown of the total: items, services, discount, delivery, tax and points spent. The lines add up to the total to the penny, so a customer can check the bill without writing to you.

Next to the order status there is now the payment state: Paid, Awaiting payment, Partially paid. It also appears in the order list and in the account summary together with the amount still due — customers used to open every order one by one to find out which one they still owed for. When an order is paid through a bank and the money has not arrived yet, a Pay button appears on the order page, so the customer does not have to hunt for the email with the link.

The shop also shows customers everything they entered at checkout: contact details, company details, another recipient together with their details, the full delivery address with the region, the postal code and the chosen branch, the callback request, the waybill number, and the times the order was placed and paid. The fields are named exactly as you named them in Checkout settings.

Customers see the names of the discounts that applied and the promo code as well, so they understand why the price went down instead of staring at an unexplained "Discount −150".

What to do after the update

If you run your own theme or a copy of one of the bundled themes, move the order page and the order list from the updated themes into it. Your own theme is updated separately, and without that the new details will not reach your customers.

Everything your theme now receives — the order fields, the items with photos, the customer, another recipient, the address with the branch and the status history — is listed with markup examples here: https://cartixx.com/docs/theme/data

2.43.0 07.09.2026

What's new

The store now shows how many products stand behind each characteristic and behind each of its values, and it can pick out the ones nothing stands behind. Reference books grow with every migration and every price list you load, and until now there was no way to tell what was created "just to try" from what the whole catalogue rests on.

Duplicates are now merged instead of deleted. Two characteristics about the same thing — "Colour" and "Product colour" — or two spellings of one value — "Red" and "red" — become a single record: the products move to it on their own, and the conditions of product lists, discount rules, section filters and similar-product matching move with them, while the brand page keeps its description and logo. You can merge characteristics of the same kind that take their values the same way; system characteristics are left alone.

The Product types and characteristics section has a new screen, Reference values. It searches for a value across every characteristic at once: you remember the word "Red", and the store shows which characteristics it lives in, which product types it appears in and how many products stand behind it. The same screen removes, in one go, the values that no product stands behind.

Values can be added as a list. Paste a column from a spreadsheet — one value per line — and the store creates them all at once, skipping empty lines and repeats. For a colour, the code can be written right in the line: "Red #ff0000".

The store writes the characteristic code itself, from its name, until you correct it by hand.

What we fixed

The store no longer offers to delete a value that products stand behind. The confirmation used to promise that no product stood behind the value, and only refused after you pressed the button. Now you see straight away how many products rely on it, and are offered to merge it into another value.

Numbers in messages agree with the words around them: "is set on 1 product", not "on 1 products".

2.42.0 05.09.2026

What's new

A product list or a dynamic section can now be built by a number: volume, weight, length — by any feature your products hold as a number. The condition is set with «from» and «to», and the feature's unit stands next to its name so nobody has to guess whether it is millilitres or litres. Promotion and catalogue-discount targets run on the same conditions, so a promotion «everything of 30 ml» can finally be written — before there was no way to state it at all.

The shop no longer asks a feature for its format before its kind. A numeric feature behaves as a number everywhere: in bulk editing, in a price-list upload, during a move from another platform, and when products are selected.

What we fixed

Bulk editing wrote a list value into a numeric feature instead of a number. The owner picked a hundred flacons, chose volume «10» — and the shop remembered a dictionary row rather than the number: millilitres disappeared from the shop front, and the accessory group «for 10 ml flacons» did not find those products. A numeric feature now gets a number field with its unit, and the shop refuses a dictionary reference no matter where the request comes from.

A price-list upload created new dictionary values out of numbers: after every upload the volume vanished from the shop front and the value list grew with rubbish like «10», «12.5». Such a cell is now read as a number.

A dynamic section with a volume condition stayed empty, and the catalogue filter showed one feature twice — as a value list where every value had zero products, and as a slider.

Undoing a bulk change did not work for numbers: the shop compared what it had written with what the product holds, the values differed in a trifle, and the undo silently skipped every product.

Volume and weight went into exports and marketplace files as «10.000000» and without a unit. The file now carries «10», and the unit travels in its own field, so the marketplace writes «10 ml» itself. The product list column and the printed label also show the value with its unit, and a yes/no feature shows a word instead of a tick.

Search found a product by a feature only when the value came from a list. A number was not indexed at all, and that hit the catalogue repair: while volume sat as a dictionary reference, a search for «30 ml» worked, and after the move to numbers it stopped.

What to do after updating

If your catalogue was moved from another platform, open «Settings → Diagnostics» and look at the numeric features check: it now finds the cases it used to miss. Press «Repair», then check the volume and weight conditions of your accessory groups, sections and product lists — they have to be set as numbers.

If you export to marketplaces, update the «Universal XML feed» add-on: the unit reaches the file only with it. Owners of «Price tags and labels» should look at their layouts after updating — the value grew by its unit, and a narrow label may run out of room.

2.41.0 05.09.2026

What's new

Diagnostics now checks numeric features. It finds features of the «number» kind whose values are set as a list — that is how a shop looks after moving from another platform, where volume or weight were picked from a ready-made list. The shop shows which features these are and how many product records it can turn into numbers, and repairs them with the «Repair» button: no console and no scheduled task needed.

Values that cannot be read as a number («no volume», «on request») are left alone, and the shop tells you how many are left. It will not invent a number for you — you edit such products yourself.

What we fixed

After a move from Webasyst a numeric feature arrived as a list of values, and the catalogue fell apart: some products kept volume as a number, others as a list value. On the product page the field stood empty and asked you to pick a value, and an accessory group with a volume condition showed up on no product at all. The move now matches the feature kind right away and creates a numeric feature with number input.

What to do after updating

If your catalogue was moved from another platform, open «Settings → Diagnostics» and look at the numeric features check. If it found trouble, press «Repair», then check the volume and weight conditions of your accessory groups.

2.40.1 05.09.2026

What we fixed

A numeric feature now shows its value in the product card. Volume, weight, length and power arrive from the shop as a decimal number, and the field would not take it: the storefront printed «Volume 10 ml» while the card stood empty, as if the feature had never been filled in.

A feature of the «number» kind that also has a list of values now asks for a number everywhere. The product card used to draw a dropdown for it and say «Choose a value» even though the product had one, and in the conditions of an accessory group such a feature could not be set as a number at all — the owner picked a list value no product carries, and the group appeared on no product.

What to do after the update

If you set an accessory group condition on volume, weight or another numeric feature, open the group and set it again: it now has «from» and «to» fields. To offer pipettes for 10 ml bottles, write 10 in both.

2.40.0 05.09.2026

What's new

An accessory group can now be attached by volume, length or weight — by any feature your products fill in with a number. To offer pipettes only for 30 ml bottles, pick the volume feature and write 30 in the «from» and «to» fields. One bound may stay empty: «from 50» means 50 and above. The condition used to accept list values only, so volume or weight could not be expressed at all.

A group can be removed for a single product, even when it arrives by a rule — by product type, category or feature. The shop remembers that decision for the product: the rule and the other products stay as they are, while the removed group is listed separately and comes back with one button.

What we fixed

A group with two conditions appeared on a product that matched at least one of them: pipettes for 30 ml bottles were offered for 50 ml and 100 ml ones too. Now a product has to match every condition at once. Values of one feature still stay alternatives — «volume 30 or 50».

What to do after the update

Open your accessory groups and check the conditions on volume and weight: they have to be set again as a number instead of a value from a list.

2.39.2 05.09.2026

Feature conditions of an accessory group narrow each other

A group of related products with two conditions — say «Volume 30» and «Neck type DIN18» — appeared on any product that matched at least one of them. Pipettes meant for 30 ml bottles were offered for 50 ml and 100 ml bottles too: the second condition narrowed nothing.

The conditions now work the way the screen describes them. Values of one feature stay alternatives («volume 30 or 50»), while different features add up: a product has to match both the volume and the neck type. A product that does not have such a feature at all no longer matches the condition.

2.39.1 05.09.2026

An accessory group can be removed for a single product

A group of related products reaches a product card in more ways than one: it can be attached to a product type, a category or a feature value. There was no way to remove such a group for one product — you either changed the rule for the whole catalogue or lived with the extra block.

Now the «Accessories» section of a product card lets you remove any group, no matter how it got there. The shop remembers the decision for that product: the rule and the other products stay as they are, and the removed group is shown separately so you can bring it back with one button.

2.39.0 05.09.2026

The shop migration tells you about languages

A move now remembers more than numbers («824 products found»): it also keeps what the source knows about the old shop — which languages the content is filled in and how many translations there are. You see this when the connection is checked and for as long as the move runs, even if you closed the tab and came back later.

Languages used to be guesswork: the move showed only «500 of 824 transferred», and whether the translations would arrive was impossible to tell.

2.38.0 05.09.2026

The shop migration takes photos from disk

Photos used to be downloaded from the old site during a move, and a site only serves a downscaled copy: the originals sit in a closed folder and are not available over the network. Now, when the files of the old shop are within reach — it stands on this same server, or a bridge file lies next to it — the migration takes the original straight from disk. Photos arrive in full size and noticeably faster.

Updating the shop now also updates the screens of installed add-ons: previously, after an update the add-on version in the list was new while its screen opened the old one.

2.37.0 05.09.2026

The shop needs PHP 8.4

The shop now states plainly which PHP version it runs on: 8.4 or newer. It is written in the requirements, on the installation screen and in the shop self-check. Previously the installation on an older version broke off with a technical message that explained neither what had happened nor what to do next.

If the shop is opened on an older version anyway, instead of a blank screen you get a page that explains it: which version the server runs now, which one is needed and how to switch it in your hosting panel. The shop data is fine — it simply does not start on the old version.

2.36.0 05.09.2026

The shop migration now shows what is happening

The migration screen said «migration in progress» and nothing else: which part the shop was on, how much had been moved and whether anything was working at all was impossible to tell. Above the buttons there is now the current step with its number («Step 4 of 7 — Products and articles»), a progress bar, how many records have been moved out of how many were found, how long the migration has been running and how many records did not make it. Below are all the stages: the finished ones with a tick, the current one and those waiting their turn, each with its own counter.

The shop learns the amount of work at the connection step — where you see «found 824 products, 78 categories». Those numbers used to be lost right after the connection test; now the migration remembers them and counts the share from them.

2.35.0 04.09.2026

Order history: filtering and pages

A regular customer accumulates hundreds of orders, and a single page turned the list into a wall of rows. Orders are now split into pages, and a filter sits above the list: delivery method, payment method, order status and a date range. The choices offered are only the ones that appear in the customer own orders — there is no point offering a carrier they have never used.

The list is redrawn in place, without reloading the page, and the choice stays in the address: the customer can save such a link or return to it with the Back button. The filtering is driven by the shop while the markup is drawn by the theme, so it works in a theme written by anyone.

2.34.0 04.09.2026

Orders in the customer account make more sense

The order list now answers the questions a customer comes for: the delivery and payment methods with their logos, the number of items, the waybill number and the comment they left, all next to the order number. The same on the order card. Order history names statuses in words — it used to show service codes such as «processing». The total in the list stays in the currency the customer paid in, and the extra hash sign is gone from the number. A text page icon is shown in the menu and in the footer.

Checkout explains its refusals in plain language

An empty city used to produce «The address.city field is required» — now it says «Please name the city». The same for the delivery method, the payment method and the agreement. Text that arrives in an unknown encoding is refused with a clear message instead of failing later while the order is saved.

Small things that got in the way

An article number belonging to another product no longer slips into the cart silently — the shop refuses it. A link to an offered accessory opens exactly the variant that was offered. The site icon is accepted in .ico as well, the format the panel offered to choose. The SQL, mail and notification logs became daily and clean themselves up: query logging left switched on used to grow by gigabytes and fill the disk.

2.33.0 04.09.2026

Orders in the customer account now tell their story

A customer opens their account with two questions: where is my order and how did I pay. The order list only had the number, the date, the status and the total — everything else meant opening each order. Both the list and the order card now carry delivery and payment (the method name and its logo), the comment the customer left at checkout, the number of items and the waybill number they use to follow the parcel with the carrier.

The logo is uploaded on the method itself, in «Payment and delivery»: a customer recognises a carrier or a payment system by a familiar mark faster than by its name. An SVG or a small PNG will do.

2.32.0 04.09.2026

The shop now accepts SVG for logos and icons

Icons and logos are usually drawn in SVG: it stays sharp on dense screens and weighs little. The shop used to reject such files: an SVG saved by a graphics editor starts with a service comment, and the server reads it as plain text — the owner saw «unsupported format» on a perfectly good picture. SVG is now accepted everywhere a shop image is uploaded: logos and branding, the category menu icon, the characteristic icon, the brand logo.

The file is stored cleaned: scripts and requests to third-party servers are removed, and if the editor did not write the namespace, the shop adds it — without it a browser simply will not draw the icon.

An icon for a text page

Pages such as «Delivery», «Payment» and «Contacts» now have their own icon, uploaded on the page card. A theme receives it along with the page and can use it for the menu item and the footer link.

2.31.2 04.09.2026

An offered accessory shows its article number

Names of related products can be nearly indistinguishable — «Twist lid 82» and «Twist lid 82 SL» differ by one mark. The article number of each accessory now sits under its name, both in the window the shop shows after a purchase from the catalogue and in the «build a set» block on the product page. It is the article number of the exact variant being offered.

A theme receives the article number along with the rest of the accessory data and can place it its own way.

2.31.1 04.09.2026

The accessories window shows the product it offers them for

A customer presses «Add to cart» in the product list and the accessories window covers the card — leaving nothing to tell what that lid or case is offered for. The window now carries the photo, the name and the article number of the product just added, in its header. It shows the exact variant chosen: take the blue one and the blue one appears, with its own photo and its own article number.

A theme receives this data and renders it its own way if it draws the window itself. The «You have added: …» line stays where there is nothing to show — when the product has neither a photo nor an article number.

2.31.0 04.09.2026

Getting back to a product from the cart

A customer adds a product from a listing and then wants to check what is inside it, look at the photos or read the reviews — and until now had to search for it all over again. The name and the photo of a cart line now lead to the product page, both in the cart that slides in from the side and in the one that pops up in the middle. The link opens the exact variant that was chosen: add the blue one and the blue one opens.

The same on the checkout page: the name of a line in the order is now a link, so the customer can check the purchase without losing the form they have filled in. A product withdrawn from sale stays in the cart as plain text, so no broken links appear.

2.30.0 04.09.2026

Accessory group names are now translated

The heading of the «build a set» block is something the customer reads right on the product page, yet a group had a single name for every language: a Ukrainian storefront showed the Russian one, and there was nowhere to fix it. Group names are now translated in «Settings → Localization» under the new «Accessories» section — the same place where you translate characteristics, services, customer fields and order statuses.

On the accessories screen the name is still a single field in your own language, and the other translations stay as they were. A group you have not translated yet is shown to the customer in the shop’s main language instead of an empty heading. The Localization section also stopped closing the open record after saving — it used to look as if the translation had not been saved.

2.29.1 04.09.2026

Orders no longer hit «too many attempts»

The shop counted request rate as a single number for the whole site: delivery recalculations, city suggestions and the order placement itself added up together, and the strictest limit was the one that fired. A customer would change the address and delivery method a dozen times — ordinary behaviour at checkout — press «Place order» and be refused. Now every action has its own count, and recalculations no longer stand in the way of placing an order. The rule covers add-ons too: their addresses are counted separately as well.

If there really were too many requests, the shop explains it in its own language and says how many seconds to wait, instead of an English technical line on the order button.

2.29.0 04.09.2026

Delivery method is no longer swapped silently

A customer picks a delivery method and it disappears on recalculation — this happens when the carrier does not serve the address or its service is down. The shop used to substitute the next method quietly and change the total, so the customer reached the «Place order» button with a delivery they never chose. Now the checkout shows a line explaining which method became unavailable and asking to check the choice. The text comes from the shop itself, so it appears in any theme, including ones written earlier.

An error inside a carrier add-on no longer breaks the checkout page. Only that method is withdrawn, the rest keep working, and the reason is written to the shop log.

2.28.0 04.09.2026

An add-on job starts right away

A button in an add-on queued the job and that was that. On ordinary hosting the queue is processed once a minute, and where the scheduler is not set up it is never processed at all, so the job never started. The job now runs from the same browser you pressed in, and you see the result at once. Close the tab and the scheduler finishes it, as before.

You can see what the add-on holds

Next to the button it now says how many records the directory holds and when they were loaded. An empty directory is called empty: city suggestions do not work at all in such a shop, and that is better read than guessed.

The add-on names the block itself: instead of a generic «Actions» you get «Settlement directory» and an explanation of what happens there.

2.27.3 04.09.2026

You can see what is happening with an add-on job

You pressed a button in an add-on — «Update the directory», «Load the rates» — and «Queued…» hung next to it with no explanation and no end. There was no way to tell whether to wait or to fix something.

Now you can see how long the job has been waiting for the queue, and when the wait drags on the shop says plainly that the queue is not being processed and where to look. While the job runs it tells you about itself: «12,000 written…».

2.27.2 04.09.2026

A transfer from another platform now notices deleted records

A transfer remembers what it has already moved and does not create the same records twice. If the moved data was later removed — the shop was reset, the catalogue cleaned, a product deleted by hand — that memory started to get in the way silently: dictionaries and products counted as transferred and were not created again, while everything referring to them did not transfer at all. From the outside the transfer looked fine.

Before starting, the transfer now checks its memory against the shop: a record that no longer exists is dropped from the memory and created again, as if for the first time. Nothing needs to be pressed for this.

2.27.1 04.09.2026

After a full reset the shop starts from the first number

The reset removed records but left the numbering counter where it was: a shop with eight hundred products and tens of thousands of orders created its first product as number 825 and its first order as 65925 after a full reset. You show the order number to the customer, and there is no reason to start in the middle.

A full reset now clears the tables outright and numbering starts from the first number. A selective reset works as before: there the links between records do the work — a reference to a deleted product is cleared in the remaining order, and stock follows the item it belonged to.

2.27.0 04.09.2026

Resetting the shop no longer takes other pictures with it

The reset cleared the whole media library, and it holds pictures of the entire shop: banner slides, brand logos, page images. An owner reset the catalogue and found the previously uploaded slides gone as well. Only the pictures of what you marked for the reset go now.

The reset also removes the memory of a transfer from another platform. It remembers what has already been transferred, and after a reset it got in the way: products were «already transferred» and the report showed zero, while orders did not arrive at all because their lines referred to deleted products. A transfer can now also be forgotten with a button, without waiting for a reset.

The notification sound is back

The «Notifications» section now has «Notification sound»: switch the signal on, choose what to be warned about and upload your own sound for each event — an order and a call request now sound different. The setting is personal, every member of staff has their own. The panel plays a signal again when a new event arrives.

2.26.0 03.09.2026

Carrier branches became visible

Delivery add-ons can now show the customer more than a single point name: a second line fits underneath — for example, how late the branch works today and its phone number. Delivery method fields learned to suggest values from the carrier directory as you type and to explain what they expect.

A missing page no longer takes the storefront down

If the theme has no page for a non-existent address, or that page is broken, the shop shows its own — with plain wording and the right answer for search engines. Before that the customer could get an error page, and the broken template surfaced nowhere; now it goes to the log.

2.25.1 03.09.2026

The theme knows the product type

Product cards can now be styled by product type: the theme receives the type name, its code and its id — both on the product page and on tiles in the catalogue, search, wishlist and comparison. Write the condition in your markup using the type code, the same one you set in the product type editor. Previously the theme got only the name, and markup that relied on the type could leave the customer without a product page.

The feature code arrived in the same places — in purchase options and in comparison rows. The theme can now tell colour from size and style them differently.

Theme edits show up right away

Saving a theme file in the Design section now clears the prepared templates and the storefront page cache by itself. Before that an edit could fail to appear on the site, which looked like a broken editor.

The source view in the text editor (the «</>» button) opens in a code editor with syntax highlighting again. It stays within the bounds of the field, wraps long lines and follows the light or dark look of the panel.

2.24.0 28.08.2026

Product photo in the cart

The cart that opens after «Add to cart» now shows a photo of every line — of the exact variant the customer picked. The same photo appears on the cart page and at checkout, so the picture does not change on the way to the order.

Show the cart the way you want

Appearance settings got a new option, «How to show the cart after adding»: a panel sliding in from the side, or a window in the middle of the screen. The contents and the buttons are the same, only the presentation differs. The cart itself is now drawn by ordinary theme templates, so its look is changed by editing markup rather than by programming.

Restoring from a backup finishes the job

If a restore fails, the shop returns to the state it was in and no longer stays closed for maintenance. Old backups are removed according to the retention you set, and when moving to another server the connection settings can be taken from the archive itself.

Health checks tell the truth

The «Diagnostics» section no longer alarms you with old records: the task queue is counted from recent ones, photo availability is checked with a real request, and the section opens even after the application key has been changed.

Small things

In the «Design» section the list of theme files scrolls again — the files at the bottom are reachable.

2.23.0 26.08.2026

Resetting the shop in parts

The reset button used to wipe everything at once, settings included — storefronts, payment and delivery methods, document layouts, seller details. Now you tick what to remove — catalogue, customers, orders, discounts, warehouses or statistics — and see how much each part holds before you press. The shop settings stay in place whatever you choose.

Restoring from a backup is safer

If restoring a large database ran out of time, the shop stayed closed behind a maintenance page and only the console could bring it back. Not any more. The backup is streamed from storage, so large copies no longer hit the memory limit, and after restoring the shop clears its storefront pages and restarts background jobs on its own.

Products and storefront

A product in the archive can now be deleted straight from the product list. Product type was added to the product filter. A storefront no longer refuses to save because of a language removed from the shop.

2.22.0 25.08.2026

The admin panel now works on phones and tablets

You can run the panel from any screen. Marketing, campaigns, promotions, gifts, wholesale prices, reports, banking, settings and the system pages are rebuilt for narrow screens: long rows fold into cards with the name on top and amounts, dates and buttons below it. The record you open scrolls into view by itself, so tapping a row no longer looks like nothing happened.

Editing SKUs in the product list fits a laptop screen in full: the stock and status columns used to stay off the edge, and on a phone only the name and the code were visible. On a narrow screen every SKU becomes a card with its code, prices and stock.

The banking ledger shows the amount right away, with no sideways scrolling. Reports place figures two per row and turn the table into cards with column labels. The add-on catalogue reads well on a phone: the full name, a description across the width, and the buttons underneath.

Chart labels are fixed as well: the sales funnel and the product report showed zeros instead of "Product view", "Add to cart" and product names. Labels under charts no longer merge into one solid line. The "Logging" section is now called "Logs", matching the heading inside it.

2.19.2 25.08.2026

The warehouse in the order row and the cache database number

In the order list row every warehouse now carries its own number — how much of the goods ships from that warehouse. Previously the row showed the total item count and bare warehouse letters, which told the person packing the order nothing about what to take from where. The overall counter is no longer shown when warehouses are on, and the tooltip gives the warehouse name, the quantity and how many order lines it covers.

The Redis database number and port are no longer rejected on save. The store answered «The settings.REDIS_CACHE_DB field must be a string» exactly when the owner edited the number himself — storage settings live in the environment file as strings, while the panel sent a number. The port also stopped being displayed as «6 379»: there is no reason to group digits in a port number.

2.19.1 25.08.2026

Source code in the editor, order list settings and the Redis check

The «</>» button in the text editor opened the markup in the panel code editor — the same one used for theme templates: it filled the whole field and stretched far beyond it. The markup is now shown in a plain field inside the editor, within exactly the same bounds as the text.

Order list settings now work in the order workspace too. Previously «Colour the row by status», the shipping warehouse, the delivery method and the payment method were read only by the table, while the workspace showed the same thing regardless. The open order and an order that needs attention are not coloured by status: their left stripe already carries its own meaning.

The Redis connection check answered «Redis is not responding» in a store already running on Redis. The check now raises its own connection and writes and reads the probe value on it, and an unreachable server replies with a clear error instead of silence. In the storage settings the fields are now in a single column, and a password that is set can be seen on the field itself.

2.19.0 25.08.2026

Customer-facing text is written in an editor

Category and product descriptions, page text, the brand story, product selections and tags are now written in an editor instead of a plain markup field. You get headings and lists, emphasis, alignment, tables and quotes, links with «open in a new tab» and «do not pass link weight» options. An image can be uploaded right from the editor window, with its caption for search, width and link set on the spot. If you are used to editing markup by hand, the «</>» button shows the source code with highlighting.

You can also drop a ready-made piece of the storefront into the text: a slider, a product selection, an add-on block. The snippet lives as a separate block, shows as a badge in the editor, and the customer sees the finished result.

Also fixed: the brand story, selection text and tag page text were shown as-is, markup included; the search description was taken from the page text together with its tags; and a product selection had nowhere to write its page text in the main store language.

2.18.1 25.08.2026

The shop adds the page key itself

For a request from the browser to go through, the page needs a key — without it the shopper clicks "Add to cart" and the shop stays silent. That key used to be placed by the theme, as a single line of markup, and forgetting it was easy: the theme looked fine while the cart stayed empty.

The shop now prints the key itself and passes it to scripts along with the rest of the storefront settings. Bundled themes no longer need the line, and a theme written to the old instructions keeps working. The guide describes what scripts receive: https://cartixx.com/docs/theme/behavior

2.18.0 25.08.2026

The theme draws the accessories window, and storefront settings arrive as one object

The "goes well with this" window the shop shows after a purchase from the catalogue can now be drawn by the theme itself: add templates/partials/accessories-popup.html to it, and the shop renders the window from your template while keeping the behaviour — selection, live total, adding to the cart. Styling and behaviour can be taken over with your own files too. No template in the theme means the shop builds the window as before, so a theme written by someone else loses nothing. The window's wording comes from the theme dictionary, so the owner edits it where the rest of the storefront texts live.

The theme no longer writes the shop's action URLs by hand. Fifteen data attributes used to sit on the body tag: half of them did nothing, and a forgotten one broke the cart silently. Now the shop prints a window.CartiX object — URLs already carrying the storefront language prefix, the currency, the page section and the accessories window settings. Themes written to the old instructions keep working. The guide explains how to use it: https://cartixx.com/docs/theme/behavior

Order export no longer runs out of memory on the "Order contents" column. Line items were all loaded at once, and in a shop with large orders the file was never produced. Contents are now assembled row by row, and only what the chosen columns ask for is read from the database — the export is three times faster and no longer depends on how many lines an order has.

The export set window no longer turns blank. Switching on a column near the bottom of the long list left you with an empty window you could not get out of; the window now stays put.

2.17.0 25.08.2026

The feature order set inside a product type is now respected on the site

You arrange features by hand inside a product type — "Purpose" second for jars, tenth for bottles — and until now that order stayed in the admin panel only: the site listed features in the global order of the feature directory. The type's order is now respected by the product page, the tiles in the catalogue and collections, the variant switcher and product comparison. Features marked "for all types" follow after them, exactly as the panel shows them at the end of the type's list.

Features can now carry an icon

The feature editor accepts a picture — a weight for "Weight", a shield for "Warranty". PNG, JPG, WebP and SVG up to 2 MB are supported; raster images are resized by the shop, while SVG stays sharp on any screen. The icon appears next to the feature name in the product card. If you build your own theme, the icon URL arrives in the icon field: https://cartixx.com/docs/theme/features

In this release the admin panel finally stopped scrolling sideways on a phone: the settings and system sections are fixed, and tile grids across the whole panel can no longer stretch the page.

2.16.0 25.08.2026

The catalogue and customers open on a phone

The product list was nearly useless on a phone: the page scrolled sideways by some five hundred points, and only the thumbnail and the name were visible — the price, the stock and the status had to be found by swiping right. On a narrow screen each row now folds into a card: the thumbnail, the name and the actions button on top, then one line per column with its own label. The columns stay yours: whatever you chose to show in the list appears in the card, product features included.

Customers and the orders inside a customer card fold the same way, and the stock movement log keeps what matters on a phone: when, what happened, by how much and what the balance became. The Categories screen no longer scrolls sideways together with the Save button while an item is open for editing.

2.15.0 25.08.2026

You decide how often accessories are offered

The accessories window shown after a purchase from the catalogue appeared once per product per visit, and there was no way to tell from the outside: you add a product and the window appears, you add the same one again and nothing happens. The accessories settings now let you choose: offer on every purchase, once per product per visit (the previous behaviour, still the default), or once per visit. When you are testing the window yourself, choose "on every purchase" and it will always appear.

The "Assign accessories" button in the product list no longer disappears once you press "Select all found": a group can now be assigned to the whole selection at once — every lamp in the catalogue, for example. The same button also removes the assignments from the whole selection. The handbook describes all of this in detail: https://cartixx.com/docs/catalog/accessories

2.14.0 25.08.2026

Contacts, staff and permissions open on a phone

The CRM sections continue the work on the panel for small screens. The lists of contacts, card fields and staff were tables about a thousand points wide: on a phone or a tablet they scrolled sideways, and reaching someone's phone number, a field switch or a person's role meant swiping right. Each row now folds into a card — everything is visible at once — and the full table comes back on a wide screen.

The header of every panel screen is also fixed: the buttons move below the title on their own once they no longer fit beside it. Previously on a tablet the title was squeezed into two lines, the line under it was cut in the middle, and a button label was broken in half. In Roles, the role you pick now scrolls into view: on a phone the permissions sit below the list, so tapping a role looked like nothing happened.

2.13.1 25.08.2026

The summary strip above the list is straight on a phone

In Abandoned carts, Call requests and Back-in-stock alerts the summary strip above the list fell apart on narrow screens: the headline took the left half and the figures next to it stacked into a narrow ladder. The strip now folds — the headline across the full width, three figures in a row underneath.

That headline is also no longer cut off with an ellipsis, which on a phone used to swallow the meaning of the sentence.

2.13.0 25.08.2026

The admin panel now works on tablets and phones

You can now run your shop from a tablet or a phone, not only from a desktop. On narrow screens the section list used to disappear: once you opened the dashboard on a tablet, there was no way to get to orders or customers. It now slides in from the button in the header and from the icon on the left, and closes as soon as you pick a section.

The sections of the Dashboard group have been rebuilt for small screens. The summary decides by itself how many tiles and columns fit in a row, so on a laptop with a narrow window it no longer looks like a phone screen. The order desk works in two steps — the queue first, then the open order with a way back to the list — instead of scrolling the whole desk sideways to find the order total. The order list fits a phone screen: the number with its status, the customer and the amount stay. In the order editor the quantity and the price now sit in one row and are no longer cut off. In sections with a list and details, the record you open scrolls into view by itself. Buttons on phones are more compact.

2.12.0 25.08.2026

Sections and warehouses appear only on the storefronts you chose

If your shop has several storefronts, you can choose where a section, brand, warehouse or product list appears. Until now that choice was saved and did nothing: every storefront showed everything, and on the second domain customers saw the sections of the first one. The choice now works, and the storefront is taken from the request itself.

Rename a section and the old link still leads to the new one

When the address of a section, product or page changes, the shop tells the Redirects add-on, and it creates a rule from the old address to the new one on its own. A section moves together with its subsections and products, and a second rename does not build a chain of hops: a visitor with the very first link lands straight on the latest address.

The buttons that were missing in the admin panel

Product photos are reordered with the mouse or the arrows, and every photo now has a caption for search and a tooltip. Duplicate tags can be merged into one: products move to the tag you keep and the extra ones are deleted. Warehouses and product types can be put in the order you need. In the recommendation settings you can see what a customer would be offered right now. Rule-based lists gained an "any of the conditions" choice, and the products found by the rules move into a manual list in portions — with the real total shown. The product list gained an order control: newest or oldest first, by name, cheapest or most expensive first.

The shop no longer shortens lists silently

Reviews and questions on the product page, and the product history in the admin panel, show the latest fifty entries. A line under the list now says "showing the latest 50 of 214" — before, the list simply stopped.

Filters and speed

A disabled brand is no longer offered in the section filters, and a visible one now shows its logo next to the name. The price used for sorting and for the price slider is stored as a ready number, so a large section is no longer scanned in full on every sort and every slider move.

Choosing a variant and filtering work in any theme

Switching colour and size, and filtering products in a section, used to be part of every theme. A theme written by someone else got a product page and a section where nothing worked. The shop now does this itself: price, old price, discount size, code, availability, the buy button and the variant's specifications, and in the section — checkboxes, the price slider, ordering, "show more" and the filter panel on the phone.

If your theme handles variant selection or filtering on its own, add data-sku-runtime="theme" or data-catalog-runtime="theme" to the markup and the shop will stay out of the way.

2.11.0 24.08.2026

The product card no longer loses data

Saving a card used to take away things nobody asked it to touch: the size and colour choice disappeared from the storefront, weight and dimensions were reset, and a variant lost its main photo and its currency — a product priced in dollars started selling for the same figure in hryvnia. Now everything the form stays silent about is left as it was, and a feature can be cleared by leaving it empty.

The same class of problem is closed next door. Saving a service no longer wipes the products it was attached to, turning off «sold by packs only» no longer deletes the packs you created, and switching a collection to manual mode no longer forgets the selection rules. A single-choice feature shows its value again and does not vanish when you try to change it. If a product has features its type does not list (that happens after a migration or an import), the card finally shows them.

The buyer gets what they see

Pick size 37 in the catalogue and that variant goes into the cart, not the default one. Availability on the card is counted for the picked variant too. A signed-in buyer no longer receives a page rendered for a guest: they see their own name in the header and their own prices.

A product can no longer appear on two pages of a section at once: sorting now has a final tiebreaker, and part of the catalogue stopped falling between pages.

Money

Timed promotions start and end by the shop clock, not the server one — «until 24 August» in Kyiv used to run until three in the morning. The «Similar products» block compares prices in one currency and shows the product price, not the variant price. Bulk price editing refuses a discount over one hundred percent: «minus 150%» used to make a batch of products free.

A warehouse that still holds goods cannot be deleted, and deleting an empty one recalculates stock. A feature value used by products is not deleted silently either — the shop tells you how many products it is set on. Deleted subcategories leave the storefront search together with their parent.

Settings that used to be saved and nothing more

«Choose manually» in section filters leaves the buyer exactly the features you ticked, in your order. «Manually, order in the category» arranges products the way you decided. «Products per page» and «Load more on scroll» reached the product list. «Low» and «critical» in the list are counted by your warehouse thresholds. A service can be made required. The brand story, the link to its website and the tag description are visible on their pages.

Videos and services work in any theme

The shop could store product videos and show them in the panel, but no theme showed them to the buyer. Now the clips sit under the gallery, and the player loads only when clicked. Extra services (packaging, warranty, installation) appeared in the default theme — before that two themes out of three drew them.

Note: the «View catalogue» permission now works

It has been granted to managers and stock keepers from the start, but it opened nothing — the section simply disappeared from the menu. Now it opens the catalogue for reading: lists, cards, dictionaries and stock. Changing the catalogue still requires the management permission. Check your staff roles if the catalogue was closed to somebody exactly this way.

2.10.1 24.08.2026

Accessory conditions now work the way they read

An accessory group is shown where you tell it to: product type, category, feature value. These conditions used to work separately — a match on any single one was enough. Filling in the category “Twist glass jars” and the volume “30”, an owner got the group on every jar, and the volume condition narrowed nothing.

Now the conditions you filled in must all match: category and feature and type. A condition left empty limits nothing — a group with only a category set works exactly as before. Inside a single condition nothing changed: any of the chosen categories and any of the listed values will do.

“Individual products” stay separate: a product you picked by hand ignores the other conditions.

Check your groups if they had more than one condition

If a group has several conditions filled in, it is now shown on their intersection rather than their union: fewer products will match, and that is usually exactly what is expected. Groups with a single condition are unaffected.

The hint under “Where to show” has been rewritten — it used to say nothing about this.

2.10.0 24.08.2026

Customers see when a product comes back

The product card now has a “Back in stock on” field. Fill it in, and the date shows itself to customers: as a line in the catalogue and next to availability on the product page. There is nothing else to set up.

It is shown only while the product is out of stock. Once it is back, the date disappears on its own — no need to clear the field. A date that has already passed is not shown either: “expected on 20 August” read in September pushes a customer away harder than silence.

If pre-orders are allowed in your shop, the date is visible next to the pre-order button as well — that is exactly when a customer needs it most.

The date belongs to the product as a whole, just like “out of stock” itself. How to show it in your own theme: https://cartixx.com/docs/theme/product

2.9.0 24.08.2026

Accessories are offered right in the catalogue

A customer adds a product from a tile in the list, and the shop shows a window with accessories for it: photo, price, and the ones you marked as default already ticked. Tick what is needed, press “Add to cart” — and they are in, with the group discount. Opening the product page for that is no longer necessary.

The feature is turned on in the accessories settings and is off by default. While it is off, the storefront pays nothing for it.

The shop draws the window itself, so it works in any theme — ours and your own alike. A theme needs no code for it. Details for a front-end developer: https://cartixx.com/docs/theme/behavior

Every accessory has its own buy button

Accessories used to be available only as a set. Now each one has its own button: a customer takes a single lid without assembling a set and without clearing the other ticks. The button appeared both in the catalogue window and in the configurator on the product page.

An accessory discount is a discount for buying it together with the product. Taken on its own, an accessory goes at its usual price, and as soon as the main product is in the cart the price recalculates itself. Accessories without a discount cost the same everywhere.

Small things that got in the way

A single-choice group can now be cleared by clicking the marked option again: a customer who changed their mind about the default offer is no longer obliged to buy it. The same product placed in two groups and ticked in both is added once, not twice.

Purchases made through the accessories configurator now reach the sales funnel and the analytics counters — they were not counted there at all before.

Storefront design fixes also reach customers immediately: the stylesheet was signed with the version of a neighbouring file, so browsers kept showing the previous design until something else changed.

2.8.0 24.08.2026

Taxation type in the seller requisites

The requisites profile now has a “Taxation type” field. It is a plain line of text, and you write it the way your accountant keeps it: “Single tax payer, group 3, 5%”, “VAT payer”, “Sole trader, no VAT”. Every profile has its own — if your storefronts trade under different companies, each one prints its own wording.

In print forms it is available as the seller taxation type variable and sits in the editor’s list of placeholders next to the tax number, so you can insert it into an invoice or a delivery note with one click. How to edit the forms: https://cartixx.com/docs/engine/print-templates

The bundled forms are unchanged: a taxation line is not needed by every shop, and you choose where it goes. An empty field still never reaches a document.

2.7.2 24.08.2026

The shop reports the version it actually runs

The “What’s new” section could show “currently 2.7.1” and “update 2.7.1 available” at the same time: the version sent to the marketplace came from the record of the last update made through the button. If the shop was updated by files — developers and hosting providers do exactly that — the record stayed old forever, and the shop announced itself as a year-old version.

The same skew got in the way of installing add-ons: the shop could refuse with “this add-on needs version 2.1.0, you have 1.9.0” while running 2.4. The version is now taken as the greater of the two — the recorded one and the one in the shop files — and every screen says the same thing.

2.7.1 24.08.2026

A feature with several values now takes one row

The spec table on a product page printed a separate row for every value: a phone with five connectivity options repeated “Internet” five times in a row, and a two-colour product listed “Colour” twice. Product listings never did that, so the same product looked different on its own page and on a tile in a collection. On our demo shop a phone had 41 rows for 36 features.

Now there is one row per feature, and the values are listed inside it: “Internet: WAP, 4G, 3G, EDGE, GPRS”. Nothing to configure — products look like this right after the update.

What this gives a theme

Values also reach the theme one by one, so you can show more than a comma-separated line. Every value carries its own label, its own colour from the dictionary and its own link to a collection: colour values are drawn as dots, and a customer who clicks “blue” lands on a collection of blue products rather than on the whole row.

How to mark this up in your own theme, with examples: https://cartixx.com/docs/theme/features

The base theme, “Market” and “Promo” are already updated — in all three the values are printed by a shared piece of markup you can copy.

Values that belong to a purchase option stay separate

If weight or another value is set for a specific variant, it still lives in its own row and changes together with the chosen variant: the customer switches the pack size and sees its own weight, not the neighbouring one.

Links in the release notes are clickable

The “What’s new” section and the update screen printed release notes as plain text, so an address had to be retyped by hand. Now a link from the notes simply opens.

2.7.0 24.08.2026

Customers see the weight of their cart

The shop can show the total weight of a purchase in the cart, and it changes as soon as the customer edits a quantity. You turn this on in the checkout settings, separately for each storefront; it is off by default.

Weight comes from the product feature “Weight” — the same one shipping is calculated from, so the cart and the waybill show the same number. Weight under one kilogram is shown in grams. Products without that feature filled in add no weight row.

2.6.0 19.08.2026

The shop is noticeably lighter on the server

Every storefront page made dozens of needless database calls: each installed add-on read its own settings with a separate query, the shop languages were asked for again from every place that needed them, and the value counters in filters took two queries per characteristic. On a shop with sixty add-ons that is fifty queries on every visit — regardless of catalogue size.

All of it is now read once per page. On hosting where the database sits on a separate machine, the difference shows immediately.

Where the shop keeps its cache is now your choice

«System → Maintenance» now lets you pick the store: files, database, Redis or Memcached. Each one says when it is worth choosing, and anything unavailable explains why. The connection is tested before saving: the shop will not let you switch to a store that does not respond.

New shops are set up with the file cache instead of the database. Existing shops are unaffected — your choice stays as it is until you decide otherwise.

A characteristic's kind is set once

The kind or format of an existing characteristic can no longer be changed, and the shop explains why. Previously switching the format from «list» to «single value» silently wiped the values on every product and variant, with no way back. If you need a different kind, create a new characteristic and move the values.

2.5.0 19.08.2026

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

2.4.6 18.08.2026

A failed update no longer leaves the shop closed

While updating, the shop closes with a "maintenance" notice and opens again when it is done. If an update did not go through, the shop rolled back to the previous version — but when the rollback itself failed, the shop could stay closed, which looked from outside like a site that had gone down. The shop now opens no matter how the update ends.

The rollback became sturdier as well: a single file that could not be restored no longer cancels the restoration of the rest, and the shop says plainly which files were left. There is also a safety net for updates that are cut off entirely — when the server runs out of memory, for example: the shop notices within a few minutes, opens itself and marks the update as failed.

2.4.5 18.08.2026

Updated charts in the panel

The charting library in the panel has moved to a new version: refreshed tooltips, smoother animation when the period changes, and gesture support on tablets. Vertical axis labels were fixed along the way — after the library update they started showing raw numbers such as "200000.00" instead of "200k", and they are shortened again now.

A library that nothing had been using for a long time was removed from the panel, making the package a little lighter.

2.4.4 18.08.2026

An update of what the shop runs on

The shop has moved to fresh versions of its foundations: Laravel 13.26, Symfony 8.1.4, along with updated libraries for images, phone numbers, spreadsheet exports and social sign-in. On the panel side, the Vite bundler and Vue with its surroundings were updated. Nothing changes for you visually — the same screens and the same settings — but the shop picks up the fixes and security patches released in those libraries recently.

You can update with the usual button: neither settings nor data are affected.

2.4.3 18.08.2026

Variables in letters are understood in both spellings

The shop writes variables in two ways: printed forms use one style, letters another. Mixing them up is easy, and customers received letters where the subject showed the variable name in braces instead of the order number. Letters now understand both spellings, and texts you have already set up need no rewriting.

The add-on settings also gained a list of what can be inserted, right under the text field: a human name and, next to it, how it looks in the text. Clicking inserts the variable into the field, so there is no need to remember its name by heart.

2.4.2 18.08.2026

You can see what an update brings and how it goes

In the updates section, the number of the new version now comes with a note on what appeared in it. The shop used to show only «2.4.1 available», and the decision whether to update had to be made blind. The same goes for add-ons: their release notes are now readable instead of one solid line with markup characters.

The update itself now shows its steps: checking the version, downloading, checking the signature, installing, done. Previously a toast appeared after the click and then everything went quiet — the update moved on its own no faster than once a minute. Now the work is driven by the tab where you pressed the button, and if an update is already running the screen shows it as soon as you open it. You can still close the tab: an update that has started will finish by itself.

2.4.1 18.08.2026

It is now visible that an order was placed by a company

On the order page, the «Buyer» block now says plainly that the order was placed as a company and shows its name and tax number. A manager used to see only the name, phone and email, and the details needed for an invoice had to be looked up in order editing.

A company no longer reaches an order from the customer card when the person ordered as a private buyer. For customers moved from another platform the «Company» field is filled in very often on person cards, and from there it travelled into every order of theirs, making the order look like a company order when it was not.

2.4.0 18.08.2026

Stock and customer details for themes, and a mark when a new version is out

Themes now know more about a product. A product carries its stock: how much there is in total and how much sits in each warehouse you agreed to show to customers. An empty value means "stock is not counted for this product", which is not the same as zero, so "0 left" will not appear on such a product. Accessories can be shown anywhere, not only on the product page: in a selection on the home page, in a list, in the cart. The customer's name arrives in parts — last, first and middle name separately — so you can address them by name and prefill forms without taking the full name apart.

A customer's phone number is no longer duplicated on their card. The same number written differently in the old shop turned into several identical rows after the move, and a manager could not tell which one to call; numbers are now compared after being brought to a single form, and the shop clears the accumulated duplicates itself during the update. In the panel header, a mark appears next to "What's new" when a new version of the shop is out, so you no longer have to open the updates section to find out.

2.3.2 18.08.2026

Signature and stamp now reach the PDF file

Invoices and delivery notes saved as PDF came out without the signature and the stamp: the form looked right in the browser, but the file had blank space in their place. The shop looked for the image on disk by matching its address against the shop address exactly, and a "www" or http instead of https was enough to lose it.

The address is now read the way a browser reads it: the domain is not compared, and the file is looked up both in the public folder and in the storage itself, in case no link to it was created. If a form image really is missing from the disk, the shop writes that to the log instead of quietly issuing a document without a stamp.

2.3.1 18.08.2026

Buyer in the order: who they are, what they bought and how to reach them

An order now remembers whether it was placed by a private person or by a company, and no longer contradicts the customer card. Order editing asks for the same fields as checkout, filtering by buyer kind finds such orders, and the company name in the form is no longer empty. Business details the buyer entered at checkout are added to their card when it has none, so next time they will not have to type them again.

From an order you can open the customer card, from the card you can open the contact, and "All orders of this customer" opens the list narrowed to that person. The number of purchases shown in an order counts the whole history: what the person bought as a guest and what they bought after registering. Contact search finds people by email address again — before, such a query returned nothing at all.

2.3.0 16.08.2026

Product sales chart and hand-picked recommendations

The "General" tab of the product card now has a chart: views, sales and revenue over the period you choose. The shop counts these the same way as in reports — amounts are converted to the base currency at the order's rate, and cancelled orders are left out of sales. The period is picked right above the chart: a week, a month or three months. If nobody viewed or bought the product in that time, you get a plain message instead of an empty grid. The change history and stock movements stay below the chart.

In the recommendation blocks the "Pick manually" mode finally does what it promises: below it there is a product picker with search by name and code. The customer sees the chosen products in the order you set.

2.2.0 16.08.2026

Customer consents and tags in the card

The customer card now shows real facts about the person: the product they buy most often, what sits in their unfinished cart and what they have allowed the shop to do. You can turn that cart into an order in one click, so a manager no longer has to reassemble it by hand.

The shop remembers two different consents. The "I agree to the terms" tick at checkout is finally stored: it was required before, but never recorded anywhere. Permission to receive emails about new arrivals is given by the customer — at checkout or during sign-up, if you enable the offer in the storefront settings — and taken back at any moment in their account. A member of staff can record a refusal in the card after hearing it on the phone. Campaigns skip everyone who asked to stop, and the promised recipient count is calculated the same way.

Customers can be tagged: "wholesale", "call in the evening", anything you need. A tag is created right in the card — type the name and press Enter — appears both in the contact card and in the customer card, and the customer list can filter by it.

2.1.3 16.08.2026

The journal shows the whole history

What's new used to show only the last couple of dozen versions of each add-on and of the shop itself, and the rest was quietly cut off — even though the engine has close to a hundred versions.

The whole history now reaches the journal. Forty recent releases are on the screen straight away and the rest is fetched with the button at the bottom — the page does not load hundreds of descriptions until you ask for them.

2.1.2 16.08.2026

What's new has become a real journal

The section used to show only the updates the shop lived through itself: a fresh copy opened an empty screen, even though the engine had dozens of versions behind it.

The journal now gathers the whole history — of the shop and of the installed add-ons — with a description of every version, month by month. For the versions you already run it also shows the date they arrived. Updates installed from a file do not disappear from the journal, and if there is no connection to the marketplace the section shows what it knows itself.

2.1.1 16.08.2026

The orders desktop no longer flickers

Opening another order made the list on the left reload and flash a placeholder for a moment, even though the orders in it were the same. The list now stays where it is, and the placeholder appears only where the content really changes.

The order controls on the right no longer show the previous order's data while a new one opens: the totals, the payment status and the buttons wait together with the order card. When you switch a group on the left, the placeholder covers all three columns — a different order will open in the new group.

2.1.0 16.08.2026

The shop's letters can carry a document

A letter to the customer used to be able only to tell them something and give a link. Now a file goes with it: an invoice, a delivery note, an instruction. The new «Invoice to the customer by email» add-on already works on this — it sends the customer an invoice straight from the order.

Add-on covers in the catalogue

In the Installer section every add-on now has a picture: the list shows what it is about before you open the description.

2.0.3 16.08.2026

Order export

The order list now has an Export orders button. The file is built from exactly the selection you have on screen: with no filters you get every order, inside a group you get that group, with filters you get what was found.

What goes into the file is up to you: presets are set up in Order settings. In a preset you pick the columns and their order, the file format (CSV, an Excel workbook or an OpenOffice spreadsheet), the separator and encoding for CSV, and whether the first row holds the column names. You can create as many presets as you need: a courier only needs the number, the customer and the phone, while accounting needs the whole order. When exporting, the manager picks a preset — the format does not need to be asked for, it is stored in the preset itself. Column names and content come in the language the employee works in.

The carrier waybill is filled in a window

The waybill is now created in a separate window: the carrier itself describes the fields, cities and pickup points are suggested as you type, and the delivery cost is recalculated straight away. The waybill number, its state and the print links are visible right in the order.

The What's new section

An update journal has appeared in the System section. You can see which shop and add-on updates have arrived, when that happened and what exactly changed in them.

The look of the panel

Add-on buttons and the row size in the queues now match: call requests, back-in-stock notifications and abandoned carts look the same, and the Set up button opens the add-on right on its settings.

2.0.2 16.08.2026

The Plugins section shows your whole shop

The section now lists every installed plugin, not only those with a settings form. Out of 59 plugins only 23 used to be visible — the rest simply did not exist for the owner, who then hunted for them on other screens. A plugin with nothing to configure now says so. Disabled ones are in the list too, marked as such, and you can switch them on right there. Plugins are grouped into sections, there is a search by name, and each one shows its version, what stops it from working and where it embeds itself into your storefront.

Work counters right in the menu

Sections now carry numbers: orders waiting for a manager, conversations with no reply, reviews pending moderation, unanswered product questions, callback requests and customers waiting for a product to come back. The numbers are live — the panel recalculates them every ten seconds, right after any change you make and when you return to the tab, and a badge goes out once the work is done. Each section counts according to your permissions: a manager who only handles their own orders sees only those. The bell now shows the number of unread notifications instead of a dot.

A plugin brings its own settings

A plugin describes its settings itself and the section draws the form from that description — the engine no longer needs a line of code for it, and a disabled plugin takes up nothing in the panel. Settings can be per storefront: a storefront picker appears above the form and the values are kept per storefront. A plugin learns that its settings were saved and refreshes whatever it prepared in advance, so a new analytics counter appears on the storefront at once instead of after the cache expires.

A plugin can also bring a whole screen when a form is not enough: form profiles, a bot menu, a migration wizard. Such a screen lives inside the plugin and travels with it.

Order list settings and product photos

Three switches in order settings were saved and changed nothing: load-more on scroll, tinting a row with the state colour and the warehouse column. They work now, and "Orders per page" also controls how many orders the shop returns at a time. When picking a product and in the order contents a box icon was drawn instead of the photo — the picture is there now.

2.0.1 15.08.2026

Work counters right in the menu

Sections now carry numbers: how many orders are waiting for a manager, how many conversations have no reply, how many reviews are pending moderation, how many product questions are unanswered, how many callback requests came in and how many customers are waiting for a product to come back in stock. You no longer have to open a section to find out whether there is work in it.

The numbers are live: the panel recalculates them every ten seconds, right after any change you make, and when you come back to the tab. A badge goes out once the work is done. Each section counts according to your permissions: a manager who only handles their own orders sees only those in the badge. Which order states to count is up to you in order settings. The bell now shows the number of unread notifications instead of a dot.

Order list settings actually work

Three switches in the settings were saved and changed nothing. "Load more while scrolling" — the list fetches further orders on its own, with no pages involved. "Tint the row with the state colour" — a row takes the colour you gave that state. "Show the shipping warehouse" — a column with warehouses and the amount from each. The "Orders per page" setting now also controls how many orders the shop returns at a time.

Product photos in the order

When picking a product and in the order contents a box icon was drawn instead of the photo. The picture is there now — a product is recognised by eye rather than by a ten-word name. The rule for choosing the photo became shop-wide: the variant's main photo, then a gallery photo tied to that variant, then the product's first photo.

Fiscal receipts moved into the plugin

The receipts panel in the order, the issue and refund buttons and all their wording now belong to the Checkbox plugin — the engine only provides the place in the order card. Plugins can now show their own blocks inside an order and run their actions straight from them.

2.0.0 15.08.2026

Shop money behind a permission

You now decide which staff members see money. A "Finance" section was added to permissions: revenue and average order value on the dashboard, money reports and product cost price are shown only to the people you allow. A manager without that permission works as before — orders, products and customers are all there, only the shop-wide figures are not.

Access to other people's orders was closed as well: a member of staff who only handles their own orders can no longer reach the rest anywhere — in customer emails, documents and receipts, not just in the list.

Orders behave correctly

Cancelling an order returns the goods to stock, drops the discounts and gives the customer back the points they spent. If the order is brought back from cancellation, the points are spent again, and when there are no longer enough of them the order is recalculated at the regular price. Changing the payment state no longer leaves amounts belonging to the previous one.

Finding an order got faster: type a number, a name, a phone or an email, the shop suggests what it found, and one click opens the order. The separate "search by" field is gone — it was not needed.

You build the list filters yourself

In order settings you choose what to filter by: state, payment and its method, delivery, customer type, storefront, assignee, date, total, city, warehouse. The "Filters" button shows how many filters are on, so orders never disappear unnoticed. Delivery and payment methods include the ones your existing orders were placed with, even if you removed them from the settings.

Printing documents for several orders at once and plugin buttons — label printing, for example — moved to the top of the list: you can reach them without opening an order.

Plugins can do more

A plugin button can now take a picture of the order into the clipboard, ask for confirmation before it acts, ask which orders to work with first, and take you to the right screen afterwards. Plugins show their own blocks right in the order card and their own buttons in the product card.

Storefront

Product features come from the shop itself — in the card, in listings and in collections. The theme no longer has to fetch them, and the features are available everywhere a product is shown. A product already in the cart stays marked on the storefront after the page is reloaded.

Numbers in the panel are declined properly in Russian and Ukrainian.

1.36.3 12.08.2026

Method settings now show what they actually do

A setting with a default opened switched off while working switched on: Nova Poshta showed «Delivery to a branch» as off, yet branches were offered to customers. Toggling it back and forth «to turn it on» was what actually turned it off, and switching off all three delivery types that way could remove the method from checkout entirely.

The form now fills in the defaults when it opens, and settings are saved in full: you see exactly what the shop works with. Your own choice is never overridden by a default — switched off stays switched off. This applies to shipping, payment, messaging channel and cash register settings.

1.36.2 12.08.2026

The requisite profile number is visible in its settings

A print form names the company by its profile number, and there was nowhere to get that number: you had to print a document and see whose details came out. The number now sits above the profile form with a copy button, and next to the name in the profile switcher.

Together with the warehouse number added earlier, these two numbers are what tie a warehouse to its legal entity: in a form with several sellers you set the pairing explicitly instead of counting profiles by their order.

1.36.1 12.08.2026

Preview a print form on the order you need

The editor used to show the paper on the latest order, while you edit a form because of a particular one: an order from a company, an order split across two warehouses, an order with a service in a line. The preview panel now has an order number field — type a number and the paper is built on that order.

Write the number the way it looks in the order list: both «#1005» and plain «1005» lead to the same order, even when the shop stores a different number and the rest comes from the number format. Leave the field empty and, as before, you get the latest order with items; if there is no such number, we say so in plain words.

1.36.0 12.08.2026

See what data a template actually has

While editing a theme or a print form you no longer have to guess what an order holds. Put {dump} into the template and you get a list of everything the template has: the name of each value, its kind and its size. {dump var=$order} prints one value in full, and {dumpc var=$order} sends it to the browser console instead of the paper. The print form hints now have a group of their own for this.

Only a staff member signed into the panel sees this: a customer gets nothing, even if you leave the tag in the theme by mistake. Passwords, keys and signatures are replaced with asterisks, and long lists and deep nesting are cut short.

1.35.5 12.08.2026

A real editor for print forms, and a page that no longer fails

You now edit a print form in a code editor: syntax highlighting, line numbers, search within the template, collapsible blocks and Ctrl+S to save. Drag the corner to make the editor taller, and a placeholder picked from the list lands where the cursor is instead of at the end of the template. The same fix applies to customer emails.

The shop no longer serves an error instead of a page when several visitors create the same working directory at once. It happened after maintenance and after an update: the first request created the directory and the rest failed because it already existed. The directories used for printing documents are fixed the same way — documents are often printed in batches and from several tabs at once.

1.35.4 12.08.2026

The print form decides which company the document comes from

The order screen used to offer a list of companies above the print buttons. It gave you nothing: a form that names its own seller ignored the choice, and the choice was never saved — reprinting the same invoice could issue it from a different legal entity, while the copy emailed to the customer always came from the storefront seller.

Now the company is the same everywhere: the order storefront sets it, and a form may name its own with the {profile id=…} tag. An invoice from your second legal entity is a separate form, and it looks the same on paper and in the email to the customer.

1.35.3 12.08.2026

The warehouse number is visible in the list

«Catalogue → Warehouses» shows the number next to every warehouse name. A print form tells warehouses apart by it when an order is split across several, so you no longer have to open a warehouse card just to look the number up.

1.35.2 12.08.2026

Carrier directory updates and the delivery address in documents

The «Update cities and branches» button in the add-on settings now shows what is happening: «Downloading cities: 1,200» and a summary with the number of cities and branches. Previously it stayed at «Queued…» even while the directory was loading, and for Nova Poshta the cities were never downloaded at all.

Print forms show the full delivery address again. When an order goes to a branch, no street is written into the order address, so the form printed just the city; now the chosen branch or pickup point is included, and there are new placeholders for separate fields: the branch, its number and the city. Customers see the same in their account.

The warehouse number is shown in its settings and copied with a button — a print form tells warehouses apart by it when an order is split across several. A saved access key now says «Saved» in words.

1.35.1 11.08.2026

A delivery method now says when it cannot work

You can install a carrier add-on, enter the key, switch the method on — and never press «Update cities and branches». The method looks ready, yet customers do not see it at checkout: there is nothing to pick a city or a branch from. Previously customers reported this; now the admin panel says what is missing — in the method list, in the storefront checkout and in the add-on settings, right next to the update button.

1.35.0 11.08.2026

Payment and shipping now have their own section

Shipping and payment methods moved out of the storefront card into «Settings → Payment and shipping». A method is set up once for the shop, and storefronts switch it on: either «on every storefront» or by name, each with its own display order. A shop with two storefronts no longer needs two Nova Poshta methods with the same keys.

Checkout is a section of its own too: storefronts are listed on the left, and the steps — Cart, Contacts, Shipping, Payment, Confirmation — open one at a time. The shipping step shows only what customers see and in what order.

Add-ons in the panel are grouped by section and can be searched by name.

An order can no longer be placed without a delivery address

A shipping method may require its own field: a pickup point, an address, a branch number. The customer cannot skip it any more — orders used to go through with the delivery priced and the address empty.

Print forms

Warehouses are now available in a form: each line shows where it ships from, and the order is available split by warehouse, each with its own lines and total. A shop whose warehouses belong to different legal entities prints the bill from the right company by declaring it with the {profile} tag. The editor hint carries a ready-made snippet for such a bill.

Hidden product features now reach the document too: customers do not see them in the shop, but the delivery note needs them. And there is a one-word way the order is received — branch, parcel locker or courier.

Settings you fill in as a table

An add-on can ask you for a list rather than a single value — the cities and addresses you deliver to. A row is added with a button, moved with arrows and removed with the bin.

Settings fields no longer accept browser hints and are not highlighted yellow by it.

1.34.0 11.08.2026

Discounts, cart and orders add up correctly

Testing discounts in a live shop turned up places where the shop showed one total and charged another. Rule limits («no more than 500», «not below 300») are no longer wiped when you save the rule again, a coupon discount survives an order edit by the manager, and the cart shows current totals: a promotion that has just started or ended is recalculated straight away. A discount is now spread only across the products it applies to, so returning such a product refunds the right amount. An order is no longer re-priced at todayʼs shipping rate just because you pressed Save.

Storefront settings save again: a language switched off in regional settings no longer locks the form, and a setting pointing at a deleted record no longer blocks the whole screen. When the server refuses, you see why instead of a silent button. Your shop name reaches the customer — browser tab, footer, emails and search-engine markup — and the delivery method name you wrote for customers is no longer replaced by the carrierʼs own.

1.33.0 08.08.2026

Sell products by the pack

You can now describe the packs a product is sold in: «Pack of 50», «Bundle, 1.4 sqm». On the product page the shopper switches between packs and units, enters the number of packs and immediately sees how many metres or pieces that is and what it will cost. If a product is only released in whole packs, the shop rounds the amount up to a whole pack itself. The pack is remembered in the order, so in the cart, in the customer letter and on the delivery note the line reads the way the shopper described it: «6 packs (8.4 sqm)».

Weight and dimensions now reach everywhere they are needed: print forms, delivery calculation, product export and shopping feeds. You can set them for the whole product or for a single purchase variant. Print forms can now include product characteristics — the whole list or any single one by its code — and units of measure are translated into every language of the shop. The customer letter now lists what was ordered instead of just «items: 2». Shipment details are shown in the order only if you turned them on, and the delivery note gets what the manager actually entered instead of a value filled in by default.

1.32.5 07.08.2026

Form placeholders now have plain-language labels

The «what you can insert» list used to be a solid ribbon of codes like $order.items_total, and you had to read them letter by letter. Now it is a grid of cards: a clear name like «Items total» on top and, under it, the code that goes into the form when you click. Recipient fields and data added by add-ons are labelled the same way.

The search settings sections now match the rest of the panel: the importance fields are laid out in a grid with the label on top, and the «Add» and «Clear» buttons moved into the section header — they used to sit in the same line as the explanation and read as part of the text.

1.32.4 07.08.2026

Delivery and payment method can now be used in a form

Print forms now carry the id and the code of the delivery and payment method: $shipping.id, $shipping.code, $payment.id, $payment.code. Use them for conditions in a form — for example, print bank details only when the customer chose payment by invoice. Until now there was nothing to check but the method name, and a name you rename or translate makes the condition quietly stop working.

The hint under the form editor also gained the internal order number, its state, the creation date and the document title. They were always available, but there was no way to learn about them.

1.32.3 07.08.2026

Dark mode in the admin panel fixed

In dark mode some elements stayed light — most visibly in the print form editor, where the list of placeholders looked like blank white chips. The cause was shared by the whole panel, so the fix covers all of it: lists, tables, the category tree, the design editor and the settings now keep one tone.

1.32.2 07.08.2026

The other recipient is visible in the order

When someone other than the buyer collects the order, you now see it at once: the order card has a highlighted «Other recipient» block with their surname, phone and the rest of the fields you ask for at checkout. Previously the workspace did not show the recipient at all — a manager entered them while editing, came back to the card and saw only the buyer.

The block carries a «Change» link that opens the order editor right at the recipient fields.

1.32.1 07.08.2026

Files are shown as a list

The «Files» section now opens as a list: name, size and date are visible at once, and the row you need is found faster than in a grid of pictures. The tile view with thumbnails is still there — it switches with the button next to the search box, and the shop remembers your choice.

1.32.0 07.08.2026

A section with your own files

The admin panel now has a screen for your own files: price lists, manuals, certificates and images for descriptions. Files live in folders, upload by dragging, and each one has a link you can paste into a product description or send to a customer.

The section itself is switched on by the «File manager» add-on — install it from the add-on catalogue.

1.31.1 07.08.2026

Release notes are readable now

Release notes in "Installer → Updates" were shown together with the markup characters: every heading came with hash signs in front of it and the text ran as one solid block. Headings, paragraphs and lists are now rendered properly, so the description actually tells you what the version was released for.

1.31.0 07.08.2026

Documents are printed on behalf of the right company

Seller details now come entirely from the set you picked. An empty field is no longer topped up from the shop's general settings: previously an invoice from your second company reached the customer carrying the phone and address of the first, and you only found out when they asked. Whatever the shop relied on through that substitution has been moved into the main set — there is nothing to fill in again.

A set now has a shop name of its own — the name your customers know the company by. The logo, the signature and the stamp are uploaded as files again; before that the field only accepted a link, while the hint below it offered to drop a picture.

A layout knows who it prints for

Put {profile id=2} at the top of a layout and it will be printed on behalf of that company. That turns "Invoice from the sole trader" and "Invoice from the company" into two separate layouts, so there is nothing to choose at print time — and in an emailed invoice there is nobody to choose at all. The editor suggests the company numbers itself.

Language and printing right on the document page

A bar appeared above the document: the languages the layout is filled in for, a print button and a "Download PDF" button. Previously a document opened only in the language of the order, so an invoice for a foreign customer had to be retyped by hand. The bar never reaches the paper.

A PDF file is now saved under a readable name; before it landed in downloads as a string of random characters with no extension at all.

You describe the other recipient yourself

What to ask the person who receives the order is up to you — in the "Checkout" tab next to the customer fields. Previously a recipient was described by two fields hard-wired into the shop: name and phone. Now you can add a surname on its own line (the carrier asks for it), a patronymic, an email for the delivery notice — whatever your shop needs. The phone is always there: the courier calls it.

If a company receives the order, mark the fields you need as "company only" and the customer sees them once they tick the box at checkout. A Nova Poshta waybill for such an order is issued to the organisation by its tax code, not to a private person.

The recipient is printed on the invoice and the delivery note as a separate block; in your own layout it is available as $recipient, and you can check whether it is there at all.

The print form editor

The document preview moved into a sliding panel — the editor got the full width of the screen and the paper stopped being shown as a fragment. The "what you can insert" list was missing a dozen and a half values that do reach the document, including ones already used by the factory layouts.

1.30.0 05.08.2026

Order documents as files, and an icon for every add-on

Any printed order document can now be downloaded as a PDF file, not just printed — from the order card and from the list of forms, including several orders at once. Add-on buttons on an order got smarter: an add-on can show its button only on the orders where it belongs, for example for certain payment methods.

In the «Plugins» section and in the list of installed items every add-on now has its own icon instead of identical boxes, so you find the one you need at a glance.

1.28.0 05.08.2026

First-run setup wizard

A fresh shop now greets you with a wizard: language, currency, name, country and time zone — and you can start working. The same wizard opens after a shop reset, because a reset copy is no different from a freshly installed one.

On the last step the shop offers to fill the catalogue with demo products: 194 products with photos, categories and features across five themes at once. You can see how the catalogue, the product page and the cart look before adding your first product. Those products can be removed with one button later or replaced with your own.

1.27.1 04.08.2026

A freshly installed add-on works right away

An add-on installed in the shop could open as an empty section: the shop kept answering from its previous list of addresses, so every request from the new section ended in a «page not found» error. It looked like a broken add-on even though the installation was correct. The shop now forgets the previous lists as soon as an add-on is installed.

1.27.0 04.08.2026

Prices now match everywhere in the shop

The compare-at price you set on a product variant now reaches the cart. Shoppers used to see the discount in the catalogue and then a product that looked full price once it was in the cart. Prices are calculated by one shared rule in listings, on the product page, in the cart and in documents, so the numbers can no longer drift apart between screens.

The sale unit is spelled out: shoppers see "pcs", "kg" and "m" instead of an internal code. Add-ons can now show a shopper their own price — wholesale for trade customers, a special one for regulars — and the shop charges exactly the amount it displayed.

Migration from other platforms

A category whose own products sit in its subcategories no longer opens empty: the "show products from subcategories" setting comes across with the catalogue. Units of ordinary numeric features are carried over too — "10 tablets" and "12-month warranty" used to arrive as a bare number.

1.26.2 04.08.2026

An update no longer brings the shop down because of an older add-on

A carrier add-on released before the waybill window switch stopped matching the updated core, and the whole site answered with an error — storefront and admin alike. The switch is now optional: an add-on that knows nothing about it keeps working. You can update in any order.

Errors now carry a reference code

The error page no longer shows a bare «500». It carries a reference code, and the same code goes into the shop log — give it to whoever runs the shop and the record is found by search. Visitors no longer see any technical details.

1.26.1 04.08.2026

The waybill check window can be switched off

When all your parcels are alike, the extra window only gets in the way: places and dimensions are already set in the order. The carrier add-on settings now have a switch — with the window off, the button issues the waybill straight away.

The branch and the city reach the waybill

The pick-up point chosen by the customer at checkout is now passed to the carrier together with its name, not as a bare code.

1.26.0 04.08.2026

You see the waybill before it goes to the carrier

The shop no longer issues a waybill in one click. The button opens a window showing everything that goes to the carrier: sender, recipient, destination, places, weight, dimensions and payment. The delivery date and price are shown there too and are recalculated while you edit the fields. The waybill is issued only by the button in that window.

Shipment details live with the order

Next to the issue button there are now the number of places, dimensions, total weight and pallet. Whoever packs the parcel fills them in; they are stored with the order, prefilled into the window and survive deleting and re-issuing the waybill.

1.25.0 04.08.2026

The waybill knows how much to collect

When the customer pays on receipt, the shop passes the outstanding order amount to the carrier as cash on delivery. It used to send a zero, so parcels were handed over for free. Partial prepayment counts: the recipient is charged only what is still due.

The order shows where the parcel is

The shop remembers the parcel state and shows it in the order card together with the time of the last check. An order placed by a company goes to the carrier as a shipment to a legal entity, and when someone else collects the parcel the waybill is issued to that person. Add-on settings now support mapping tables: the service states on the left, your own statuses on the right.

1.24.1 04.08.2026

The selected orders are always visible

In the «Several orders» dialog the ticks survive paging and filter changes — that is how a batch is put together. But as soon as the status was changed, the ticked orders left the screen: more was printed than could be seen.

The selected orders are now shown in a row above the list. Each one is removed with a click, with «Clear all» next to them.

1.24.0 04.08.2026

Order picking for add-ons

The «Several orders» dialog the shop uses to print forms in batches can now be opened by add-ons too. An add-on button inside an order asks which orders to work with: the order it was pressed from is ticked straight away and the rest are added to it. Such buttons also appeared in the order list header, next to form printing.

The first to use this is the «Price tags and labels» add-on: stickers for the day shipment print as a single batch. Only the orders the member of staff is allowed to see appear in the picker.

1.23.0 04.08.2026

Product barcode and the groundwork for label printing

Every product variant now has a «Barcode» field — until now there was nowhere to keep the code from the package. The product is found by it in search just like by its SKU: holding a scanner to the package is enough.

The groundwork for printing tags and labels is now in place: the catalogue and the product page can show add-on buttons. The printing itself arrives with the «Price tags and labels» add-on, installed separately from the marketplace.

1.22.1 04.08.2026

Variants are labelled the way the shop named them

When a product has several SKUs without buy options, the variant switcher is now labelled with their names (“black”, “white”) — the way the shop owner named them. Previously, if a numeric per-SKU feature was set up, the labels were silently replaced by its values (“275 g”, “290 g”). The feature is only used when the SKUs have no names.

1.22.0 04.08.2026

Per-SKU features and variant choice on the product page

A feature can now be set not only on the product but on each SKU — a number, text, date or yes/no. Previously the «set values for SKUs» switch only worked for list-based features: a numeric one was saved but there was nowhere to fill it in.

A product whose SKUs are not told apart by buy options now lets the shopper choose: the switcher is built from the SKU’s numeric feature (“10 pills” / “30 pills”), or from SKU names when there is none. Before that there was no choice at all and the product always sold as its default SKU. Per-SKU features are shown on the product page and follow the selected variant.

1.21.0 03.08.2026

Points are visible where people look for them

The order card now has a «Paid with points» line — before, a manager saw the total and could not tell how it added up. The customer card now shows the account: balance, movement history with links to orders and expiry dates, plus adding or taking points by hand — for a delay, for a review, as an apology. Every such move is signed by the employee.

Checkout

Typing an amount of points now recalculates the order immediately, not only the «All» button. Both fixes came from live testing: the field accepted a number while the total stayed the same.

1.20.0 03.08.2026

Customer bonus points

Shoppers now have a bonus account: they see the balance and history in their account and pay for part of an order with points right at checkout. What was spent is shown as its own line in the totals, and a cancelled order returns the points.

How much to earn and how much may be spent is set by the «Bonus points and loyalty» add-on. The shop itself makes sure points cannot exceed the balance and that the order total adds up to the last cent.

Small things

The order log no longer signs a shopper action with an employee name.

1.19.2 03.08.2026

Browser notifications and the shop on a phone

Your shop gets a free communication channel: a shopper allows notifications once and hears about their order, restocked items and discounts even with the site closed. Notifications sit next to email and SMS — same events, same texts, same log — and the same channel sends broadcasts.

The same add-on turns your storefront into an app: shoppers add it to the phone home screen.

Broadcasts no longer claim false success

A broadcast whose channel is unavailable now stops with a clear explanation. Previously it was marked as sent without delivering a single message. Installing an add-on also restarts the task worker, so a new channel works right away.

1.18.0 03.08.2026

An assistant answers common questions

You set the shopper's words and a ready answer — the shop replies by itself, shows matching products or calls a manager. The conversation shows the answer was automatic, so your manager never repeats it.

1.17.0 03.08.2026

An order straight from the conversation

A shopper lists product codes, the shop recognises them with quantities and offers to add everything at once, while the manager gets an order form already filled in.

1.16.0 03.08.2026

You can see what the shopper already picked

The card now shows what is in their cart — together with the question itself, not after it. Half of all chat questions are about exactly that.

1.15.0 03.08.2026

You can see who you are talking to

Every question now comes with a card about the person: a known shopper with their phone and purchases, a guest with the page, device and where they came from. A plain message is enough to reply — no need to use «reply».

1.14.0 03.08.2026

Website questions arrive in Telegram

A shopper's chat message is forwarded to whoever answers in Telegram, and their reply goes back to the shopper. You can answer from your phone without opening the shop.

1.13.0 03.08.2026

Admin sections now look the same

Section headers, buttons, panels and tabs now look and behave the same everywhere. Previously every screen was laid out on its own, and sections slowly drifted apart.

Add-on sections — «Callback requests», «Back-in-stock notifications», «Short links» — were brought to the same look: content sits in the section card, and filtering by state moved to the left panel with counters.

Product search in the admin works like the storefront

The product picker in an order used to search its own way — strict name matching. A manager could not find what a customer found on the storefront.

Now everywhere you pick a product — order contents, accessories, product lists, gifts, discounts, promotions, campaigns — the same search and the same settings apply as for customers: synonyms, wrong keyboard layout, latin and cyrillic, ranking by importance. Suggestions now show product photos. An exact article code is always found.

The order editor was rewritten

  • Editing has its own address: you can share the link, and «back» returns to viewing.
  • «Edit» from the workspace opens editing straight away — before you had to press the button a second time.
  • Customer on the left, order contents on the right, delivery and payment below.
  • A line item takes one row: quantity, price and sum on the right.
  • The shipping method is picked from a list, and carrier fields load after the choice.

Small things you notice

  • Dropdowns no longer sit empty with no hint — across the whole admin.
  • The «Shop name» field now explains where customers see it.
  • The product list code hint is written in plain language.
1.12.0 03.08.2026

Repeat an order

Your manager opens a new order pre-filled from the previous one, with prices and stock checked again.

1.11.0 03.08.2026

Gifts with an order

The shop can hand out a product as a gift: its price is not touched by discounts and stays at zero all the way to checkout.

1.10.4 02.08.2026

Order items grouped by warehouse

Order lines are sorted the way they are picked: by warehouse.

1.10.3 02.08.2026

A notification for any order status

An email or message to the shopper can be tied to any status, including the ones you created.

1.10.2 02.08.2026

Product columns in your own order

The column order in the product table stays exactly as you arranged it.

1.10.1 02.08.2026

Orders remember the customer fields you need

The fields you set up at checkout are stored in the order and shown to your manager.

1.10.0 02.08.2026

Install and reset never leave you without a storefront

After installation and after a reset the shop stays usable: storefront, theme and settings are in place.

1.9.1 31.07.2026

One customer, one card. Phone numbers are stored in international format everywhere, so a local number and its +380 form are no longer two different people, and the phone field no longer accepts arbitrary text. A guest whose number already has an account is asked to sign in instead of getting a third card. Registration and social sign-in pick up the card of someone who previously ordered as a guest, and editing a card in the admin now carries the phone and email over to their account. Existing duplicates are cleaned up with the Find duplicates button in Contacts: orders, conversations and field values move to the card you keep.

1.9.0 31.07.2026

Order status names are now translated into the shop languages. Customers see the status in their own language in the account and in emails, and the name for each language is set in Localization → Order statuses. Existing names are kept as the shop main language.

1.8.1 30.07.2026

Print several orders at once

Select orders on your desk and print waybills or forms as a batch instead of one by one.

1.8.0 30.07.2026

Scheduled catalog promotions start and end on their own again: the task responsible for it failed on every run, so an expired promotion kept discounting.

The password recovery e-mail moved into the Notifications section — its wording, language and channel are now configured like every other customer letter.

The E-mail channel got a «Do not verify the server certificate» switch, for a mail server of your own with a self-issued certificate.

The mail check in diagnostics now reads the shop settings instead of a configuration file and shows your mail server.

Fixed the test message in the channel settings: the recipient address was lost while saving.

1.7.1 30.07.2026

Links to your shop look tidy

A section gets its own social image and a page its own description, so a shared link shows exactly what it should.

1.7.0 30.07.2026

Make the shop look like yours

The browser tab icon is uploaded right in the settings instead of being pasted as a URL. You compose the admin menu yourself: your own set of items, separate menus for the shop and articles, a single-row top menu.

1.6.1 29.07.2026

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

1.6.0 28.07.2026

Seller details are now sets: if your storefronts trade under different legal entities, each prints documents with its own data, and at print time you can choose whose name the invoice goes out under. They live under the Company details tab of Print forms; anything filled in earlier moves across on its own. Order numbers: the shop stores the number itself, while a prefix such as «#100» is added when it is shown — so transferred orders carry it too, and the format can be changed at any time. After a move, new orders continue the old shop numbering. The badge next to Orders counts the statuses you pick in the order settings.

1.5.3 28.07.2026

Fixed category transfer: in the previous version categories did not move at all. The connection check no longer confuses an unreachable database with someone else\x27s — the reason now comes from the database server itself and stays on screen. Attribute values and the names of categories and products arrive filled in for every language of the shop, even when the old shop translated only some of them. The orders workspace now has print forms and add-on buttons, which used to live only on the full order page.

1.5.2 28.07.2026

Moving from another platform no longer depends on the scheduler: the transfer runs from the shop window, batch by batch, and two batches no longer step on each other — that is what used to lose individual products. Attribute values now arrive filled in for every language of the shop, even when the old shop translated only the names. Orders can be printed: an invoice and a delivery note, with layouts edited under Print forms. Add-ons can now put their own buttons and blocks right on the order page.

1.5.1 28.07.2026

Orders can now be printed: an invoice and a delivery note. The layouts are edited to suit your bookkeeping under Settings → Print forms, with a preview on a real order and a way back to the factory look. Seller details live under Settings → Company details. Linking directories during a move is clearer: blocks are collapsed, you can see what will be linked, and matching names can be linked in one click. Product types in an attribute are picked from a list.

1.5.0 28.07.2026

The Installer section brings the add-on and theme store, everything you have installed, updates and file installs together in one place. An update now starts the moment you press the button instead of waiting for a schedule. Before it runs you can see whether the server is ready, what might stop working and whether there is a recent backup. Settings for installed plugins moved to their own Plugins section.

1.4.1 28.07.2026

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

1.4.0 28.07.2026

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

1.3.8 27.07.2026

Order migration no longer stops at the ten-thousandth order and no longer passes itself off as finished.

For some numbers the old shop answers incorrectly and invents the record count; about 15% of orders actually arrived. Orders are now walked by record count, every batch is verified, and on failure the migration stops with a reason.

Option names are now translatable. Products, categories and features had translations while the purchase option («40 W», «Blue», «XL») did not, leaving half a card untranslated in a multilingual shop.

Purchase totals are recalculated by the shop itself: if the task queue stalled, the Customers section could show zeros for everyone.

Database backups work on hosting that forbids starting helper programs.

Diagnostics shows your hosting limits and explains what each one changes for your shop.

The button that opens access to photos explains what to do instead of showing a technical error.

1.3.7 27.07.2026

Migrating a shop from another platform in the background no longer stalls. It was not making a single step: the counter froze while the migration still counted as running.

Migrating customers is noticeably faster. Looking up people you already have scanned the whole contact list for every single person, so each thousand made the migration slower.

The Stop button now works: previously the migration resumed by itself after three minutes. And a migration stopped by a real problem is no longer revived endlessly — it stops and shows the reason.

Database backups work on hosting that forbids starting helper programs. On such hosting a backup could previously neither be made nor restored at all, and the owner saw a technical error.

Diagnostics now shows your hosting limits and explains what each one changes for your shop — before something breaks, not after.

The task queue no longer reports work it did not do: customer emails, exports and updates run to completion. Tasks also run during maintenance mode — previously the very update that switched the mode on could not finish.

The button that opens access to photos explains what to do instead of showing a technical error.

1.3.6 27.07.2026

The queue is now processed on hosts where pcntl functions are disabled: previously the worker crashed, so no emails were sent, no updates applied and background migration stood still.

1.3.5 27.07.2026

The schedule now works on hosts where proc_open and pcntl are disabled: previously not a single task ran — no emails, no queue, no migration — while cron reported success.

1.3.4 27.07.2026

Diagnostics no longer claims the scheduler is dead while cron is running. Background migration resumes by itself after a broken chain, and the on-screen counter stops freezing.

1.3.3 27.07.2026

Key fix: the scheduler crashed on hosts where pcntl functions are disabled, so neither the queue nor background migration ran even though cron was fine. An unfinished migration now reopens by itself after a page reload. Migrated customers appear in the section right away.

1.3.2 27.07.2026

Fixed: a single interrupted task run muted the whole schedule for a day, and diagnostics reported a dead scheduler while cron was fine. Added a «Release scheduler locks» button.

1.3.1 27.07.2026

The update now says what it is doing: queued, downloading, verifying, replacing files. All labels and the changelog arrive in the language of your admin panel.

1.3.0 27.07.2026

Shop migration now runs on the server: you can close the tab. Continue picks up where it stopped instead of starting over. Purchase totals are recalculated after the migration.

1.2.3 27.07.2026

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

1.2.2 27.07.2026

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

1.2.1 27.07.2026

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

1.2.0 27.07.2026

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

1.1.7 27.07.2026

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

1.1.6 27.07.2026

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

1.1.5 26.07.2026

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

1.1.4 26.07.2026

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

1.1.3 26.07.2026

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

1.1.2 26.07.2026

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

1.1.1 26.07.2026

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

1.1.0 26.07.2026

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

1.0.0 24.07.2026

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