Released 06 Oct 2026
IM: Calculate ingredient weight based on base item weight and tara (RTC-63600)
Recipe Ingredient Weights
Ingredient weight calculations for recipes and prepared foods account for an item's packaging weight (tara), not just its total weight. Previously, an item's full weight — including any packaging — was used when calculating how much of it went into a recipe, which could overstate the actual usable product weight. Existing recipes have been automatically recalculated where a packaging weight was set, and the system now prevents a packaging weight from being entered greater than the item's total weight, whether set directly on the item or brought in through import.
IM: cannot import price with custom cost price elements when DefaultItemPrice ruleset (RTC-63581)
Price Import Validation
Prices carrying cost price elements — supplier discount, freight, retailer kickback, local discounts, calculated breakage, customs, and handling costs — import correctly, resolving a mismatch where the net cost was compared against the wholesale price before these discounts and charges were applied, causing valid prices to be rejected. Price import also no longer requires a recommended retail price; a price carrying only cost information is accepted without a sales price.
IM: outdated VAT rate in Price Suggestions job when creating store level price (RTC-63249)
Price Management
When a cost price change made at profile level is passed down to the individual stores, a new store price now uses the VAT rate that applies from the date that price takes effect. Previously it reused the VAT rate from the store's existing price, so a store price created after a VAT change was calculated on the old rate, giving an incorrect price excluding VAT, an incorrect margin, and incorrect prices sent to the checkouts and shelf labels. Such a store price now also follows a change of VAT code on the item, not only a change of rate, and takes effect at the intended time rather than a few hours late.
StoreGroup import permanently fails when a country's currency exists but has no default CountryCurrency link (RTC-63334)
Profile & Price Zone Country Updates
Changing a Profile's or Price Zone's country to one whose currency is already configured elsewhere in the system takes effect correctly, resolving cases where the change could fail repeatedly and stores under the affected Profile continued using the previous country's currency and VAT rates.
Member price (premium customer) used as sales price when sent to scale for printing. (RTC-63766)
Labels: Member Price vs. Campaign Price
Fixed an issue where a promotion reserved for loyalty members (member price, "Klubbpris") was treated as an ordinary campaign price for all customers. The member price could appear on scale labels, on electronic shelf labels, and on printed promotion labels, big promotion labels, shelf label 4 streamers and special deal labels, as if everyone could get it.
What has changed
- Scale labels, electronic shelf labels and the promotion label, big promotion label, shelf label 4 streamer and special deal labels now show only campaign prices that apply to all customers. If only a member price is active, these labels show the ordinary price.
- Labels with a member marking (shelf label 4, price signs A4/A5/A5-2/A5-5 and the small shelf label) are unchanged. They show the lower of the campaign price and the member price, and carry the "Klubbpris" marking when the member price is shown.
- The loyalty promotion label (KLUBBPRIS) now shows only the member price. When no member promotion is active, it shows the ordinary price. Previously it could print a campaign price for all customers as if it were a member price.
- A member promotion starting or ending no longer triggers new scale labels or electronic shelf label updates on its own, because the price shown to all customers has not changed.
Existing labels pick up the corrected price the next time they are recalculated, for example on the next price, promotion or item change. They are not all regenerated at release.
Also fixed: when a price expired and a removal label was issued for a label that had an active campaign, the removal label could be linked to the wrong campaign or fail to be created. This now works correctly.
IM: Delete unexported labels when removing label type from register (RTC-59427)
abel Type Register Cleanup
Removing a label type entry from the Label Type Register automatically removes unprinted labels of that type for the affected store scope; already-printed labels are retained. If a store inherits a label type from a chain-wide configuration, removing a store-level override restores the inherited labels for that store. Adding a store-specific label type to a store that inherits a different label type from the chain-wide configuration replaces the inherited labels with the new type.
Recurring SQL Execution Timeout in GenericExport (ItemServiceIntegration) - Gateway.ItemChanges ChangeTrackingQuery (RTC-63878)
Data Export
The scheduled data export for shelf labels completes reliably, resolving a recurring timeout that could interrupt the export when many item lists had changes waiting to update. If a single step of the export fails, the remaining steps still run, and changes that were not exported stay queued and are picked up in the next run.
Item-level import exceptions are neither logged nor returned to the caller (RTC-63241)
Item Import via API
When importing items through the API — whether submitting a single item, a batch of items, or a batch of prices — an unexpected failure on our side is now clearly told apart from a rejected item. Previously, if something went wrong unexpectedly while processing an item, it came back looking exactly like a normal rejection (e.g. missing required fields), with no error details and no way to tell the two apart.
Now:
- For single-item imports, the error response includes a flag indicating the failure was unexpected rather than a validation rejection.
- For batch imports (items and prices), affected items are marked with a distinct "Exception" status, and the response includes a count of how many items failed this way.
- These unexpected failures are now also recorded internally, so our support team can investigate them.
File-based imports (via the standard import feed) are unaffected — that channel already reports failed items in the Import overview and continues to work as before.
IM: Concurrent item imports fail with unique key violation when auto-creating registers (RTC-62450)
Item Import
Previously, if two item imports happened to reference the same new item information at the same time — for example, both introducing a brand new report category, brand, classification, or item group that didn't exist yet — one of the imports could fail outright with a generic error, and none of the items in that import batch would be saved, even items unrelated to the new value.
This has been fixed. The system now automatically detects this situation and retries the import, so both imports succeed and the new value is created only once. This applies broadly to all auto-created item information (report categories, brands, classifications, item groups, sizes, colours, and roughly two dozen other lookup values), for imports coming in through the item management screens as well as through automated integrations. In the rare case where the conflict still cannot be resolved after a few attempts, the import now fails with a clear message asking you to resubmit it, instead of an unclear error.
IM: Support decimals in bundle content (RTC-61414)
Bundle Content Decimal Quantities
Bundle content supports decimal quantities with up to three decimal places, in addition to whole numbers. This is useful for weight-based items sold in bulk, allowing a package quantity to be entered and saved exactly instead of being rounded. Existing bundles with whole-number quantities are unaffected. Import and export support decimal quantities, with export also returning the rounded whole-number quantity for backward compatibility.
During the migration to decimal quantities for bundle content, any existing Quantity values exceeding the supported range (±9999) are capped to ±9999
IM: Support decimals in bundle content upgrade script fix (RTC-63625)
Bundle Content Decimal Quantities Migration
Existing bundle content quantities exceeding the supported range (±9999) are capped to ±9999.999 as part of the migration to decimal quantities.
IM:Validate PLU-type alternative GTINs on manual entry (UI) (RTC-60742)
Alternative GTIN via PLU
A store-specific PLU code can be registered as an alternative GTIN on local items directly from Item Management, useful when an item has no real GTIN and needs a short, store-only number instead. The same PLU can be reused across different stores but not duplicated within the same store, and it won't conflict with the item's existing GTIN setup. Chains with reserved central PLU ranges are blocked from entering a value within those ranges, with a clear message; chains without reserved ranges see no change in how alternative GTINs work today.
IM: communicate removal of label (RTC-59179)
Label Export Status
Label export includes a status indicating whether a label is Active or Deleted. A label is exported as Active when a valid price exists for the item at any level of the price hierarchy — store, profile, or price zone. The hierarchy is respected: when a higher-level price is removed but a lower-level price remains valid, the label is exported as Active carrying that lower-level price; when a store price ends and a profile price is valid before that end date, the label is exported as Active with the profile price from the store price end date. When no valid price exists at any level, the label is exported once as Deleted and not re-sent on subsequent runs; if a price is later re-added, the label is exported again as Active. This applies to labels exported via BLOB export types.
Store Assortment not hidden at export (RTC-60298)
Excel Export Field Visibility
When "Hide store assortment" is enabled in System Parameters, the Export to Excel dialog hides the Label type, Order point min/max/valid from, Delete order point, and Active assortment fields. Stop sale and Stop sale reason code remain visible.
Label export crashes with EF identity conflict and can skip labels — OFFSET paging assumes a stable result set (RTC-63293)
Labels
The export of shelf labels to electronic shelf label systems and label files is more reliable. If labels were being created or updated while the export was running, some labels could be missed until a later export, and the export could finish with warnings. Now every pending label is exported, and a label that changes during an export is picked up by the next one. A label with incomplete item data no longer stops the rest of the labels from being exported. If sending one batch of labels fails, the export carries on with the remaining labels, and the failed labels are sent again next time.
IM: New permission for changing a store's assortment in the grid (RTC-63800)
Manage Items in Store Assortment Grid
A new permission, "manage items in store assortment grid," is available under the Item permission group and can be assigned to store-scoped roles in the role editor. This permission does not yet change behavior in Item Management, as no screen, menu, or action currently depends on it. It is introduced ahead of a future update that will let administrators separate the ability to bulk-change a store's assortment from the Store Assortment view from other everyday tasks store staff need, so that capability can be granted or withheld independently.