Virto’s Release Notes | August 2025

:sun: Welcome to the August 2025 release notes from Virto Commerce!
This month’s update brings a host of impactful improvements across Frontend, Platform, Marketplace, and VC-Shell. Below are some of the key highlights we’re excited to share with you:

  • Options selector and search history added to Frontend
  • Automatic links generation added for Catalog
  • Marketplace State Machines module enhanced
  • VC-Shell optimization perfromed

Options selector added. Frontend 2.27.0

Customers now can click on individual option values (e.g., color, size, material) to configure their desired product. Once a customer selects an option, the remaining options are refreshed to reflect what’s available based on that selection. Unavailable combinations are visibly disabled. When only one value is available for a specific option, it is automatically selected to streamline the process:

options-selector

Search history support. Frontend 2.26.0

Clicking the search input field opens a dropdown that displays the user’s 5 most recent search queries:

Search history query added. xRecommend 3.904.00

A new searchHistory query has been added to the GraphQL schema, allowing clients to retrieve past search terms:

Localizable payment methods. xOrder 3.911.0

Payment methods can now be localized for order-related steps:

Quotes for configurable products. Frontend 2.27.0

Quotes for configurable products can now be submitted:

ADA and WCAG complaince. Frontend 2.27.0

In response to recent legislative changes in the EU requiring compliance with ADA and WCAG accessibility guidelines, we are continuously adapting the Virto Commerce homepage to better support these standards. While full compliance is still a work in progress, we are actively reviewing, adjusting, and improving the site to move closer to meeting all accessibility requirements.

Pickup status displayed for BOPIS orders. Frontend 2.27.0

Customers can now see real-time status updates and pickup details for their BOPIS (Buy Online, Pick Up In Store) orders:

  • Processing: Order is being prepared by the store.
  • Ready for pickup: Order is ready at the store.
  • Completed: Order has been picked up.
  • Cancelled: Order was cancelled.

When clicking on the Pick-up address widget, a Google Map opens, allowing you to generate a route to the pickup point and view its opening hours and contact information:

pickup-directions

pickupLocations query added. xCart 3.926.0

This query has been added to retrieve a list of pickup locations for the specified store along with detailed information for each location, including basic attributes (ID, name, description, status), contact details, availability (working hours, delivery and storage days), geographic coordinates, and full address data with related metadata such as city, postal code, region, and communication details.

Highlighted navigation scope. Frontend 2.26.0

The active category in the menu is now automatically highlighted, helping you instantly see where you are in the catalog and navigate more confidently through the hierarchy:

highlighted-scope

Enhanced broken link detection management. SEO 3.805.0

  • If the broken links management feature is enabled, the widget displays the number of active broken links, not the total number:

  • If disabled, the widget displays the following:

  • The links can be sorted, for example, alphabetically, by status, or by hit count.

  • The Hit count column is now visible by default to help prioritize link resolution.

  • Broken links are now processed asynchronously using Hangfire tasks via SeoInfoNotFoundEventHandler, aligning with the no-direct-write strategy in query operations.

Automatic links added. Catalog 3.876.0

A new feature has been added that allows products to be automatically linked to categories based on defined filters. Users can now efficiently manage product categorization without manual updates, ensuring the right products are always displayed as inventory, pricing, or attributes change. Both automatic and manual linking options are supported:

automatic-links

Marketing promotions applicable to all product’s variations. Marketing 3.819.0

Now, users can Apply to all product variants condition to all the product variations. By default, it is set to no , meaning that the condition applies only to the selected product variation:

Embedded mode for VC-Shell instances in Platform. 3.901.0

Vue-based external modules (such as VC-SHELL apps like Push Messages) can now be launched directly from the AngularJS-based Virto Commerce back office using embedded mode. This enhancement allows module developers to open a new VC Shell instance from the VC Platform menu, providing a more seamless and unified user experience across both AngularJS and VueJS applications.

To enable this feature:

  1. Update VC-Shell to 1.1.61+.​
  2. Define support in module manifest:

Push messages displayed in the main menu. Platform 3.901.0

Push messages can now be accessed from main menu, which is a more logical placement compared to the previous location under the applications menu. The interface and functionality remain unchanged:

Improved user account security and data integrity. Platform 3.901.0

We have introduced several important enhancements to strengthen Platform security and prevent unintended data manipulation. System fields such as CreatedBy, ModifiedBy, CreatedDate, ModifiedDate, PasswordExpired, LockoutEnabled, LockoutEnd, LastLoginDate, and LastPasswordChangedDate are now protected from unauthorized mass assignment.

Additionally, the user lock feature now immediately blocks both frontend and backend access for locked users, and a lockout policy has been applied to prevent repeated password change attempts, further securing user accounts from abuse.

Geo-replicated solution load test performed

Geo-replicated load testing has been successfully performed on our system to simulate traffic from multiple regions. The results confirmed the system’s stability, scalability, and integrity under distributed load conditions, validating its readiness for high-performance use in global environments.

Marketplace

The Marketplace State Machines module has been significantly improved with the following updates:

  • Support for state machine transitions and state attributes has been added, enhancing workflow customization and management.
  • Transition icons have been converted into attributes for improved flexibility and easier customization within the state machine.
  • Context menu item is now shown if Conditions have been registered for current entity type.

For more information, request a demo

VC-Shell

Bundle and chunk optimization in VC-Shell and applications

  • Previous Vite setup created large monolithic JS and CSS bundles, including all vendor, framework, and app code together, causing slow page loads. Multiple icon libraries added thousands of unused icons, bloating CSS and slowing rendering.

    • We applied a manual chunking strategy to split the app into smaller, cacheable pieces:

      • Separate chunks per node_modules library (e.g., vue, lodash)
      • Core framework bundled separately (vc-shell-framework.js)
      • API clients split into their own chunks
      • Remaining app code in a final core chunk

      This benefits in faster initial loads by parallel downloading smaller chunks.

    • We replaced multiple icon libraries with Iconify to remove unused icons and drastically reduce CSS size. This led to significantly smaller CSS bundles and faster rendering.

  • The useExternalWidgets composable enables modular VC-Shell apps by allowing UI widgets from one module to be automatically discovered and rendered in another module’s blades without direct dependencies.

    • Blade provides data: A blade (e.g., product-details) uses useExternalWidgets to offer reactive context data.

    • Widget declares needs: External modules register widgets with registerExternalWidget, specifying required data.

    The key benefits are as follows:

    • True decoupling - modules extend UIs without imports or hard dependencies.
    • Reusable generic widgets that adapt to any blade with matching data.
    • Simplified development - blades and widgets remain unaware of each other’s specifics.
    • Dynamic, pluggable UI that adjusts based on installed modules.
  • The vc-editor library has been switched to TipTap:


Explore the new features and capabilities

Virto Commerce webpage

Documentation

1 Like