Skip to main content

Changelog

All platform changes in one place. Filter by component or type to find what matters to you.

Component
Type

Updated account page to dashboard

Replaced the account details page with a dashboard layout featuring recent orders, quotes and a customizable content block.

Sorting improvements

Added support for secondary sorting options in the catalog and relevance-based sorting for search results with configurable field boosting.

Redesigned product list layout

Redesigned the catalog search results page to use a row-based list layout, better suited for B2B catalogs with technical products.

Migrated to localized short names

Migrated product short names to use localized values for proper multi-language support.

Improved cluster scrolling

Improved scrolling behavior on cluster detail pages so the specification list no longer blocks access to the cluster configuration.

Fixed visual issue with headers

Fixed a visual display issue with page headers.

Fixed shipments not appearing in order detail

Fixed an issue where shipment information was not displayed on the order detail page.

Fixed quote expiry date mismatch

Fixed a mismatch between the quote expiry date shown in the backoffice and the date displayed on the frontend.

Fixed quantity input digit limit

Fixed an error that occurred when entering more than 10 digits in the quantity input field.

Fixed product specifications not displaying

Fixed an issue where the specifications section was not showing on the product detail page.

Fixed product image overlay centering

Fixed an issue where the enlarged product image overlay was not centered on the page and appeared cut off at the bottom.

Fixed PHP 8.2+ deprecation errors

Fixed PHP deprecation errors that appeared when running on PHP 8.2 or higher.

Fixed out of stock products added to basket

Fixed an issue where out of stock products could still be added to the basket despite stock validation being enabled.

Fixed missing payment and carrier costs on quote

Fixed missing payment method costs, carrier and shipping costs on the quote overview page.

Fixed missing bulk prices on cluster page

Fixed an issue where bulk prices added to products in a cluster were not visible on the frontend cluster detail page.

Fixed missing address abbreviation in checkout

Fixed a missing gender field in the checkout address form, which could cause incorrect salutations in order confirmation emails.

Fixed favorite list rename visibility

Fixed an issue where renaming a favorite list was not immediately reflected in the add to favorites button.

Fixed duplicate delivery address display

Fixed an issue where the default delivery address was displayed twice on the addresses page.

Fixed default address change visibility

Fixed an issue where changes to the default delivery or invoice address were not immediately visible on the account overview page.

Fixed company switch addresses not visible

Fixed an issue where delivery addresses from the selected company were not displayed after switching companies.

Fixed column headers CSS

Fixed broken CSS styling on column headers.

Fixed cluster product favorites

Fixed an issue where cluster products could not be added to a favorites list.

Fixed catalogue filters

Fixed incorrect behavior of filters on the catalogue page.

Fixed cart visible after company switch

Fixed an issue where a cart created for one company remained visible after switching to another company.

Fixed cart buttons mobile alignment

Fixed misaligned buttons in the cart view on mobile devices.

Fixed cart and checkout summary

Fixed incorrect totals in the cart summary and checkout summary pages, including missing carrier and payment method line items.

Fixed basket mini account border radius

Fixed the basket item count badge border radius to maintain a circular shape regardless of the number of digits.

Fixed add to basket loader

Fixed an issue where the loading indicator remained visible after adding a product to the basket.

Expanded dashboard with favorites, authorization requests and invoices tiles

Added three new tiles to the contact dashboard: favorites, authorization requests and invoices.

Spare parts product filters now support input arguments

The sparePartProducts.filters field in the machine query now accepts an input argument, matching the behavior of product search filters elsewhere. Previously, the field returned all product attributes regardless of whether they were marked as searchable. You can now pass input: { isSearchable: true } to return only filterable attributes.

Order REST endpoint now returns sources for all items

Fixed an issue where GET /v2/orders/{id} with expands=SOURCES only returned sources for the first 12 order items. Orders with more than 12 items now correctly include source data for every item.

Fixed priority field error when applying incentives

Fixed an issue where tenderApplyIncentives returned an error when bonus items did not have a priority value set. The mutation no longer fails with "Cannot return null for non-nullable field TenderMainItem.priority" when incentive bonus items lack a priority.

Bulk attribute imports now upsert translations instead of replacing them

Bulk attribute text value imports (via REST and GraphQL CSV import) now upsert translation values instead of replacing all existing ones. Previously, importing attribute values for one language would overwrite values in other languages. Each language is now updated independently.

Fixed stock validation

Fixed an issue where stock validation showed incorrect popups on the product detail page.

Fixed portal login

Fixed an issue preventing users from logging into the portal.

Fixed unauthorized error when switching companies

Fixed an issue where switching companies returned Unauthorized use of companyId errors. This affected category page queries, the cartStart mutation and addressesByCompanyId queries when using an API key with an access token.

Fixed shopping cart accessories

Fixed an issue where clicking to add accessories in the shopping cart had no effect.

Fixed recaptcha configuration

Fixed an issue preventing recaptcha from being enabled in the plugin settings.

Fixed dropshipment shipping costs

Fixed incorrect shipping costs displayed when choosing dropshipment as the order type.

Fixed catalog page access

Fixed an issue where catalog pages could not be accessed on the frontend.

Fixed closed portal search leak

Fixed an issue where products were visible in the search bar even when closed portal mode was enabled and the user was not logged in.

Fixed carrier not displayed in order editor

Fixed an issue where newly created carriers were not displayed in the backoffice order editor.

Fixed product image overlay positioning

Fixed an issue where the product image overlay was not centered on the page and appeared cut off at the bottom.

Fixed add to cart failing for clusters with options

Fixed an issue where adding a cluster with options to the cart failed with a pricing error. The cart now correctly handles clusters that include option products.

CSV company import now correctly imports email and phone

Fixed an issue where importing companies via CSV did not populate the email and phone fields. These fields are now correctly imported from the CSV data.

Fixed cluster search filters

Fixed an issue where search filters did not take into account searchable attributes for products within clusters.

Fixed failing to fetch prices

Fixed an error that occurred when fetching prices for products and clusters added to the cart.

Fixed duplicate specifications on PDP

Fixed an issue where product specifications appeared twice on the product detail page.

Priority field for tender and order item reordering

Added a new priority field to TenderMainItem and OrderItem types. This field allows you to control the display order of line items within a tender or order, enabling custom sorting of items beyond the default insertion order.

Partial text search for attribute descriptions

Attribute description search now supports partial text matching on names and descriptions. Previously, searches required exact or prefix matches. You can now find attribute descriptions by searching for any part of their name or description text.

Image variants now created for all language images

Fixed an issue where uploading images for multiple languages only generated image variants (thumbnails and resized versions) for the last language processed. Image variants are now correctly created for all language versions of an image.

Fixed spare part products query for universal KType lookups

Fixed an issue where the sparePartProducts query returned null when looking up parts using a universal KType value. The query now correctly resolves spare parts for universal KType lookups.

Fixed company search validation for short IDs

Fixed an issue where searching for companies by a single-digit ID failed due to a minimum character validation constraint. Company search now correctly handles short search terms including single-character values.

Carts query now supports channel ID filtering

The carts query now accepts a channelId filter parameter. This allows you to retrieve only carts associated with a specific channel, which is useful for multi-channel setups where you need to manage carts per storefront or sales channel.

Localized short names for products

Products now support localized short names through a new shortNames field, similar to how names and descriptions already work. This allows you to define short product names per language.

The existing shortName field is now deprecated but continues to work. When creating or updating products, you can use either shortName or shortNames. If both are provided, shortNames takes precedence.

Fixed discount calculations on clusters with options

Fixed an issue where percentage discounts on clusters with options were incorrectly applied as absolute amounts on child items. This caused wrong totals when a percentage discount was active on a cluster that included option products. Discount calculations now correctly apply the percentage to each child item.

Implemented channel ID

Added channel ID support so carts, orders, quote requests and quotes are created with the correct channel assignment.

Quote status changes no longer create duplicate versions

Fixed an issue where changing a quote status to a non-public status (for example from "Quote" to "Draft quote") incorrectly created multiple additional quote versions. This occurred when products with surcharges were included in the order. Status changes now correctly create only the expected single version entry.

Order address code, quote versioning and channel filter fixes

Fixed an issue where creating orders or quotes failed when the address code exceeded 30 characters. The address code field now supports up to 64 characters, aligning with the allowed length in user and order address data. Also fixed an issue where the channelIds filter parameter in the orders query had no effect. Orders and quotes can now be correctly filtered by channel ID.

Fixed company switching

Fixed an issue where the company switch popup would keep spinning without completing the switch.

Fixed downloads section cut off

Fixed an issue where the downloads section on the product detail page was cut off.

Pricesheet product addition error in backoffice

Fixed an issue where adding products to a pricesheet in the backoffice resulted in an error. Products can now be successfully added to pricesheets for pricing configuration.

Orderlist product and cluster field errors

Fixed an issue where querying defaultLanguage and sources fields on products and clusters within orderlists resulted in errors. These fields now return the correct values when retrieving products and clusters through orderlist queries.

Attribute query errors on contacts, customers and products

Fixed an issue where querying the attributes field on contacts, customers and products returned errors for certain records. The attributes field now correctly returns results (or an empty array when no attributes are assigned) without causing errors.

`roleCreate` mutation returns null for roleDefinition

Fixed an issue where the roleCreate mutation returned a "Cannot return null for non-nullable field Role.roleDefinition" error. Role creation now correctly returns the full role definition object including id, name, descriptions and access settings.

REST API validation error responses now include details

Improved error responses for REST API validation errors. Validation failures now return detailed error information instead of generic error messages, making it easier to identify and resolve issues when integrating with the platform.

Unit conversion using product attributes

Added unit conversion functionality that uses product attributes to display additional pricing and quantity information on the frontend.

Order creation fails for long product names

Fixed validation error that prevented order creation when products had names longer than 150 characters. The character limit restriction on order item names has been removed, allowing orders to be created regardless of product name length.

Email template creation fails on empty ccs/bccs and Handlebars variables

Fixed validation issue when creating email templates that prevented templates from being saved. The ccs and bccs fields are now correctly allowed to be empty arrays, and the tos field now properly accepts Handlebars variables (for example {{data.passwordReset.email}}) instead of requiring static email addresses during template creation.

Spare parts category filter

Added categoryId filter to SparePartsMachineProductSearchInput GraphQL query, enabling users to filter spare parts by category. This allows for more precise spare parts searches by restricting results to specific product categories.

Backoffice product search errors

Fixed an issue where product search in the backoffice would fail with errors.

Fixed guest order confirmation email

Fixed an issue where order confirmation emails were not sent when ordering as a guest.

Attribute CSV import fails with sourceID not found

Fixed an issue where CSV import of attribute products would fail with "sourceID not found" errors even when products with the specified sourceID existed in the system. The attribute products CSV import now correctly locates products by their sourceID and successfully assigns attribute values.

Removed deprecated user management fields

Removed deprecated fields from the plugin to align with the new user management service.

Pagination for favorite lists

Added pagination support for favorite lists, improving usability when managing large numbers of favorites.

Hidden categories no longer shown in frontend

Categories set to hidden in Propeller are no longer displayed in the menu and sidebar on catalog pages.

Fixed translated cluster language

Fixed an issue where translated cluster content was not displayed in the correct language.

Fixed product track attribute

Fixed an issue with the product track attribute not working correctly.

Fixed no payment methods for dropshipment

Fixed an issue where no payment methods were displayed during checkout for dropshipment orders.

Fixed invoice address not updated on user level

Fixed an issue where updating the invoice address in the cart did not persist the change at the user level.

Fixed broken cluster display

Fixed an issue where certain clusters failed to display correctly on the frontend.

Sales Room Tickets system

Introducing a comprehensive Tickets System designed to help sales representatives and administrators stay on top of important events, opportunities and tasks that require attention.

Tickets can be created by automated systems including AI agents, business rules and external integrations. They flow through lifecycle states (OPENIN_PROGRESSCOMPLETED or ARCHIVED) and can be assigned to specific admin users.

Each ticket includes a specific action type: VIEW_CONTACT, VIEW_PRODUCT, VIEW_ORDER, VIEW_COMPANY, SEND_EMAIL, PHONE_CONTACT or VISIT_EXTERNAL_URL. Tickets track their origin through a sources array for traceability.

Full CRUD operations available via GraphQL with a REST creation endpoint for external integrations.

Tax export code max length increased to 50

Increased the maximum length of the tax exportCode field from 10 to 50 characters, providing greater flexibility for integrations with external systems that require longer tax code identifiers.

Cart query fails for deleted users

Fixed an issue where the carts query would fail with "Failed to fetch user data" errors when attempting to retrieve carts belonging to deleted users.

Custom cart prices reset on cartUpdate

Fixed an issue where custom prices set via cartAddItem were being reset to list prices when performing subsequent cartUpdate operations.

Business rule ExistsInArray operator matching incorrectly

Fixed an issue with the ExistsInArray operator in business rule conditions where rules were incorrectly applied even when values did not match any items in the configured array.

Currency based on company attribute

The plugin now supports setting the currency based on a company attribute, allowing different currencies per company.

Email template validation for empty ccs/bccs and Handlebars variables

Fixed validation issue when creating email templates that prevented templates from being saved. The ccs and bccs fields are now correctly allowed to be empty arrays, and the tos field now properly accepts Handlebars variables (for example {{data.passwordReset.email}}) instead of requiring static email addresses during template creation.

Template create mutations missing mandatory field validation

Fixed an issue where mandatory fields in documentTemplateCreate and emailTemplateCreate mutations were not validated. Empty arrays for required fields like names, subjects and contents now correctly throw validation errors instead of creating incomplete templates.

ORDER_CREATED event payload missing address data

Fixed a timing issue where the ORDER_CREATED event payload contained empty address data. The event is now triggered after address data is fully persisted, ensuring addresses are included in the event payload.

Fixed datetime attributes not shown in specifications

Fixed an issue where datetime attributes were not displayed in the product specifications section.

Bundle isLeader always returns false

Fixed an issue where the isLeader field in bundle product queries always returned false. Bundle items now correctly reflect their leader status when queried via Product Search V2.

Implemented SSO login

Added Single Sign-On (SSO) login support to the WordPress Plugin.

Fixed webshop pagination

Fixed pagination controls to hide the next button on the last page and the previous button on the first page.

Fixed reorder with clusters

Fixed an issue where reordering an order containing clusters would split items into individual order lines.

Fixed pricesheet validity dates treated as bulk prices

Fixed an issue where pricesheet prices with different validity dates were incorrectly displayed as bulk prices on the frontend.

Fixed cluster option price calculation

Fixed an issue where cluster option prices were not summed up correctly when selecting an option.

Fixed cluster option menu incorrect entry

Fixed an issue where the cluster option menu title was incorrectly selectable as an option.

Fixed bulk price visualization

Fixed incorrect bulk price visualization on product pages.

Fixed authorization request error

Fixed an error that occurred when sending authorization requests.