Updated account page to dashboard
Replaced the account details page with a dashboard layout featuring recent orders, quotes and a customizable content block.
All platform changes in one place. Filter by component or type to find what matters to you.
Replaced the account details page with a dashboard layout featuring recent orders, quotes and a customizable content block.
Added support for secondary sorting options in the catalog and relevance-based sorting for search results with configurable field boosting.
Redesigned the catalog search results page to use a row-based list layout, better suited for B2B catalogs with technical products.
Migrated product short names to use localized values for proper multi-language support.
Improved scrolling behavior on cluster detail pages so the specification list no longer blocks access to the cluster configuration.
Fixed a visual display issue with page headers.
Fixed an issue where shipment information was not displayed on the order detail page.
Fixed a mismatch between the quote expiry date shown in the backoffice and the date displayed on the frontend.
Fixed an error that occurred when entering more than 10 digits in the quantity input field.
Fixed an issue where the specifications section was not showing on the product detail page.
Fixed an issue where the enlarged product image overlay was not centered on the page and appeared cut off at the bottom.
Fixed PHP deprecation errors that appeared when running on PHP 8.2 or higher.
Fixed an issue where out of stock products could still be added to the basket despite stock validation being enabled.
Fixed missing payment method costs, carrier and shipping costs on the quote overview page.
Fixed an issue where bulk prices added to products in a cluster were not visible on the frontend cluster detail page.
Fixed a missing gender field in the checkout address form, which could cause incorrect salutations in order confirmation emails.
Fixed an issue where renaming a favorite list was not immediately reflected in the add to favorites button.
Fixed an issue where the default delivery address was displayed twice on the addresses page.
Fixed an issue where changes to the default delivery or invoice address were not immediately visible on the account overview page.
Fixed an issue where delivery addresses from the selected company were not displayed after switching companies.
Fixed broken CSS styling on column headers.
Fixed an issue where cluster products could not be added to a favorites list.
Fixed incorrect behavior of filters on the catalogue page.
Fixed an issue where a cart created for one company remained visible after switching to another company.
Fixed misaligned buttons in the cart view on mobile devices.
Fixed incorrect totals in the cart summary and checkout summary pages, including missing carrier and payment method line items.
Fixed the basket item count badge border radius to maintain a circular shape regardless of the number of digits.
Fixed an issue where the loading indicator remained visible after adding a product to the basket.
Added three new tiles to the contact dashboard: favorites, authorization requests and invoices.
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.
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 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 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 an issue where stock validation showed incorrect popups on the product detail page.
Fixed an issue preventing users from logging into the portal.
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 an issue where clicking to add accessories in the shopping cart had no effect.
Fixed an issue preventing recaptcha from being enabled in the plugin settings.
Fixed incorrect shipping costs displayed when choosing dropshipment as the order type.
Fixed an issue where catalog pages could not be accessed on the frontend.
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 an issue where newly created carriers were not displayed in the backoffice order editor.
Fixed an issue where the product image overlay was not centered on the page and appeared cut off at the bottom.
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.
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 an issue where search filters did not take into account searchable attributes for products within clusters.
Fixed an error that occurred when fetching prices for products and clusters added to the cart.
Fixed an issue where product specifications appeared twice on the product detail page.
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.
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.
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 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 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.
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.
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 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.
Added channel ID support so carts, orders, quote requests and quotes are created with the correct channel assignment.
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.
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 an issue where the company switch popup would keep spinning without completing the switch.
Fixed an issue where the downloads section on the product detail page was cut off.
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.
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.
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.
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.
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.
Added unit conversion functionality that uses product attributes to display additional pricing and quantity information on the frontend.
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.
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.
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.
Fixed an issue where product search in the backoffice would fail with errors.
Fixed an issue where order confirmation emails were not sent when ordering as a guest.
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 fields from the plugin to align with the new user management service.
Added pagination support for favorite lists, improving usability when managing large numbers of favorites.
Categories set to hidden in Propeller are no longer displayed in the menu and sidebar on catalog pages.
Fixed an issue where translated cluster content was not displayed in the correct language.
Fixed an issue with the product track attribute not working correctly.
Fixed an issue where no payment methods were displayed during checkout for dropshipment orders.
Fixed an issue where updating the invoice address in the cart did not persist the change at the user level.
Fixed an issue where certain clusters failed to display correctly on the frontend.
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 (OPEN → IN_PROGRESS → COMPLETED 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.
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.
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.
Fixed an issue where custom prices set via cartAddItem were being reset to list prices when performing subsequent cartUpdate operations.
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.
The plugin now supports setting the currency based on a company attribute, allowing different currencies per company.
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.
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.
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 an issue where datetime attributes were not displayed in the product specifications section.
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.
Added Single Sign-On (SSO) login support to the WordPress Plugin.
Fixed pagination controls to hide the next button on the last page and the previous button on the first page.
Fixed an issue where reordering an order containing clusters would split items into individual order lines.
Fixed an issue where pricesheet prices with different validity dates were incorrectly displayed as bulk prices on the frontend.
Fixed an issue where cluster option prices were not summed up correctly when selecting an option.
Fixed an issue where the cluster option menu title was incorrectly selectable as an option.
Fixed incorrect bulk price visualization on product pages.
Fixed an error that occurred when sending authorization requests.