This post introduces Virto Storefront and Platform enhancements as of August 2023.
Today’s highlights are:
New Platform features:
- Refactored and simplified CRUD Services.
- Enhanced security.
- Improved Catalog and Notification module management.
- New Order and Payment modules scenarios.
Storefront updates:
- New Cart and Catalog handling features.
- Enhanced behaviour of SPA regarding the handling of URLs.
Breaking changes
We are excited to announce a significant improvement in this release with the refactoring and simplification of the CRUD (Create, Read, Update, Delete) Services. These changes bring enhanced performance and a more streamlined experience for platform users.
- Crud Services were refactored and simplified. To optimize the codebase and improve maintainability, we have removed obsolete methods from the CRUD Services. Use IList Interface (System.Collections.Generic) for input and output parameters.
- Refactored CrudService: The VirtoCommerce.Platform.Data.GenericCrud.CrudService has undergone a refactoring process, making it more efficient and easier to work with.
- Refactored SearchService: Similarly, the VirtoCommerce.Platform.Data.GenericCrud.SearchService has been refactored, resulting in improved search functionality.
- Simplified Interfaces: To enhance usability, the IXXXService interfaces have been restructured to inherit from ICrudService and ISearchService. This simplification streamlines the usage of these services. For instance,
public interface ICustomerOrderService : ICrudService<CustomerOrder>
- Introducing GetNoCloneAsync: To optimize performance and retrieval of raw or read-only objects, we have introduced the GetNoCloneAsync method. This addition allows for faster access to specific data when cloning is not necessary.
This improvement brings breaking changes, if you are installing version 3.400 and later of the platform, you will need to follow Update Path for Virto Commerce 3.400
If you are planning the update, we recommend updating to the latest stable release.
Platform
The security enhancement option has been implemented: the deleted administrator account will not be recreated with the default password. This requires more user attention but prevents unauthorized access to production credentials.
Download and install the Platform
Elastic Search 8.x
A preview version of VirtoCommerce Elasticsearch 8.x module that uses the new .NET client for Elasticsearch has been presented. The module implements Elasticsearch CRUD operations defined in ISeachProvider
interface.
Download and install the preview version of the Elasticsearch module
Catalog
-
The language and properties management blade has been redesigned to control the order (priority) of languages. Now you can drag and drop the required item to the desired position. The first element in the list becomes the default one.
-
The option to partially update product properties using the Virto Commerce Rest API has been added.
Download and install the Catalog module
Notification
The option to mark any notification layout as default has been added. This layout will be used by default when generating notifications.
Download and install the Notification module
xAPI
The mutation to delete multiple items from the cart at once has been added.
mutation removeCartItems($command: InputRemoveItemsType!) {
removeCartItems(command: $command) {
…
}
}
{
"command": {
"userId": "c8a47ce5-cf5c-457f-b5a8-e987fbd28ac1",
"storeId": "B2B-store",
"lineItemIds": ["7b4761e9-4fee-47bf-9426-e51b6e5c2537","96404583-4cca-42f9-9517-3a22720d7428"],
"cultureName": "en-US",
"currencyCode": "USD",
"cartId": "1ccf4b23-5af0-4909-988f-23a5205e84e9"
}
}
Download and install the XApi module
Order and Payment
Orders paid in cash or by payment orders can now be processed even if payment has not been received. For orders paid by credit card, payment receipt is required to start processing the order. The order statuses can now be set in accordance with this scenarios:
- Customer order initial status if payment is required.
- Initial status for orders with terminated payment if the order can be paid later.
In the Settings, you can choose if the status for terminated payment should be applied:
Download and install the Order module
Download and install the Payment module
Storefront
-
The amount of products added to the cart is now automatically updated, even when products are added from multiple tabs.
-
A button for editing the roles of company members has been added to the Settings. By pressing the Edit Role button, you can select a role to be assigned to the company member.
-
Removing products from the compare list now requires an additional confirmation, excluding unwanted deletions.
-
The result of adding a wishlist to cart can now be printed.
This can be useful for getting a third party’s approval on the list of items to be purchased or for agreeing on the alternative items if some items in the list are unavailable and were not added to the cart.
-
Multiselect checkboxes have been added to cart. Now you can select all the items in your cart at once or one at a time. Once the desired items are selected, the Delete selected button becomes active.
-
Some changes in the behavior of a Single Page Application (SPA) regarding the handling of URLs and the corresponding HTTP status codes have been introduced. In the past, regardless of the requested URL, the SPA application would always return a 404 status code if the page was not found. Now the SPA application has a more precise way of handling URLs and status codes based on specific conditions.
The conditions for returning the 200 status code are:
- If the path exists in the predefined URLs or routes.
- If the path is defined as an SPA route in the theme.
- If the path is connected with PageBuilder.
For all other cases where the path does not meet the specified conditions, the SPA application will return a 404 status code, indicating that the requested page or resource was not found.
-
See more/See less footers have been added to expand/collapse long lists of items in the facets.
View the enhancements on public demo site
Read more and install Storefront.
Marketplace
- The first official Marketplace release has been introduced.
- Marketplace was made DB agnostic. It is not tied now to a particular database management system and can work seamlessly with different types of databases without requiring significant changes to its codebase.
For more information, request a demo.
Documentation
The following sections have beed updated:
New Profile section has been added.