What's new in nopCommerce 4.20?

What's new in nopCommerce 4.20?

With this blog post, we hope to get you as excited about the new nopCommerce 4.20 release, as we are. Yes, if you haven't heard yet, version 4.20 is officially out the door, and we are eager to share with you an overview of the most notable features in the new version. 

Before we continue, we wish to let you know that all our themes and plugins are compatible with the 4.20 nopCommerce version. 

NopCommerce runs on Linux.

Undoubtedly, the big news in the 4.20 release is that nopCommerce 4.20 runs on Linux. Up until now, nopCommere could only run on Windows machines. We believe that this is a huge step forward for nopCommerce as one of the benefits of using .NET Core is the multi-platform support it offers. If you plan to get a dedicated or virtual machine for your nopCommerce 4.20, now you have a choice between the cheaper Linux machines or, the more expensive Windows machines.

Unfortunately, even though nopCommerce can run on Linux, it still requires Microsoft SQL Server, which by the way could also be installed on Linux. Hopefully, in the next release of nopCommerce, we will see support for some open-source databases like PostgreSQL, MySQL, etc.

We are working on a detailed step by step guide on how to host your nopCommerce 4.20 on a Linux machine, so keep an eye on our blog for updates.

Docker support.

Another notable feature is that nopCommerce could be run in a Docker container.

Let’s first see what Docker is and why should we care about it.

Here is the definition of Docker from their website:

Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.

In other words, Docker is a new way of packaging and deploying nopCommerce.

One of the most significant advantages of Docker containers is that they are immutable, so to speak, which means that you can’t easily change them while they are running. In other words, it is much harder to break your nopCommerce installation by accidentally deleting or adding new files to it. If you want to change something in a container, you need to build a new one that will contain your changes and run it instead. This provides a high level of isolation and consistency between your deployments.

As everything new, Docker containers solve a lot of problems, but they also create new ones, so be careful if you decide to jump on using Docker containers.

If adequately utilized the Docker support could be a powerful tool in your development toolbox. We, at Nop-Templates.com, are still exploring the many possibilities the Docker support offers us and will share our experience with you in another post.

Upgraded to ASP.NET Core 2.2 and EF Core 2.2.

We have to admit that nopCommerce 4.10 tuned out to be a problematic release in terms of performance simply because it was using EF Core 2.1, which turned out to have a very nasty bug that caused a lot of performance issues.

The good news is that these issues are no longer present in nopCommerce 4.20 since it now uses the latest stable ASP.NET Core 2.2 and EF Core 2.2, which contain fixes for the aforementioned issues along with a lot of other fixes and improvements. In other words, nopCommerce 4.20 is much more reliable and stable than the previous version.

For the nopCommerce store owner - managing your 4.20 store made easy.

Re-designed admin area. UI/UX enhancements.

The first thing you will notice when you enter the 4.20 admin area is that it has a new look. In version 4.20, nopCommerce moves away from the outdated KendoUI Grid to DataTables library. Now the tab navigation in the administration is replaced with collapsible accordions resulting in smoother navigation and easier access to the information.

UI/UX Enhancements

New plugin architecture.

We are particularly happy with the next improvement in 4.20, and we are sure that many nopCommerce users will give thumbs up. Now, the uninstalled plugins will not be loaded in the memory, providing for better performance of the system.

There is one more thing worth mentioning; the store owner can select more than one plugin to install or uninstall simultaneously. This feature is a time saver, compared to the alternative - installing or uninstalling plugins one by one. The plugins will be installed/uninstalled on the next restart of the application.

For example, I want to uninstall the Ajax Filters and the Anywhere Sliders plugins in my store. All I need to do is click on the "uninstall" button for each plugin and then click on the "apply changes" button in the header of the local plugins page, as illustrated in the image below.

Plugins architecture

You can filter by warehouse or vendor on the order list report.

In nopCommerce 4.20, the store owner can sort orders by warehouses and vendors. This new feature comes handy when you work with many warehouses and vendors in your online store and want to easily keep track of the orders related to a particular warehouse or vendor.

Order list page - filter by vendor and warehouse

Filtering support for the shopping carts and wishlists.

Store owners will love this new feature. Finally, we get filtering support for the shopping carts and wishlists in the administration. Now, the store owner can filter by product, date, or billing country, something we all have been missing in the nopCommerce 4.10.

Why is this helpful? You can find specific behavioral abandoned shopping cart patterns, for example. You can easily find out which country has the most cart abandonments and decide to provide free shipping to this country. Or you can also offer a discount on the most frequently-added products to the wishlist.

Filtering on the wishlists and shopping carts

Pick up in store - additional shipping charge.

In nopCommerce 4.20, the store owner can choose whether to apply an additional charge for the “pick up in store” shipping option or not. If you wish to encourage clients to pick their items in store, you can decide to offer this option completely free of charge.

Pick up in store shipping charge

Password strength configuration.

In nopCommerce 4.20, store owners can configure password strength for better security. Now, you can choose from the following options:

  • Password must have at least one uppercase
  • Password must have at least one lowercase
  • Password must have at least one non-alphanumeric character
  • Password must have at least one digit

In previous nopCommerce versions, the store owners could only specify the length of the password.

Password Strength

ReCAPTCHA on the “forgot password” page.

Preventing abuse from “bots” or automated programs generating spam is essential for every website. NopCommerce has reCaptcha on the most important pages such as registration, login, contact us, etc. In nopCommerce 4.20 reCaptcha has been added to the forgot password page as well.

ReCAPTCHA on forgot password page

Support for multiple reCAPTCHAs on a single page.

Speaking of reCaptcha, we can’t miss the next improvement in nopCommerce 4.20 version. Now it is possible to have more than one reCaptchas on a single page. Multiple reCaptchas support is something we, as a company developing nopCommerce themes, have been anticipating.

We have the following conundrum with one of our best selling themes Emporium. There is a login popup on each page of the theme. Naturally, the login popup has reCaptcha. However, on the product pages of the Emporium theme, we have product tabs. One of them is a "contact us" tab which is supposed to have a reCaptcha as well. Unfortunately, this was not possible in previous versions and is only feasible now because of the multiple reCaptcha support introduced in nopCommerce 4.20.

“Custom text” of specification attributes is now localizable.

In nopCommerce 4.20, the "custom text" attribute type of product specifications can be localizable. To make use of this new feature, you need to go to specification attributes in the product administration and click add new. Then, select “custom text” for the attribute type. You will be able to enter the attribute value for the languages your store is using as illustrated in the image below: “leather” for English and “cuero” for Spanish for the product specification attribute "material."

Custom text” of specification attributes is localizable

“Default value” of checkout and product attributes is now localizable.

The best way to explain this feature is to illustrate it with an example.

Example One: Localization for product attributes

Let’s say you run a website for door signs, and you want your customers to be able to provide their custom text when buying a door sign. However, you also wish to give an example of the door sign text on the product page. For this purpose, you need to create a product attribute.

In previous versions of nopCommerce, the default value of the product attribute could be in one language only regardless of the languages the site uses. So, in the example with the door signs, the default "Welcome" text in English will be displayed at all times. In nopCommerce 4.20, you can have a different value for each language - “Welcome” for English, “Bienvenido” for Spanish, etc. Please make sure to select textbox for the control type when you create the product attribute, as shown in the example below.

“Default value” for product attributes is localizable

Example Two: Localization for checkout attributes

Again, I will use an example to illustrate how localization for checkout attributes works.

Let’s say you run an online flower shop, and you wish to offer your clients the option to add a greeting card to their order. You may also want to give an example of the text for the greeting card which to change depending on the language the site uses.

All you need to do is create a new checkout attribute and name it “greeting card.” Don't forget to select textbox for the control type. Then give a default text for each language in the default type settings of the attribute.

For example, you can have “Congratulations” for English, “Felicidades” in Spanish, etc. In previous nopCommerce versions, you could have only one value for all languages. 

“Default value” of checkout attributes is localizable

You can load the top menu using AJAX (disabled by default).

Enabling ajax for the main menu will make your page load faster. Once the page is loaded, a separate request will be sent to the server to load the menu. To enable this setting, go to
Settings -> All Settings (Advanced). Then search by catalogsettings.useajaxloadmenu and change the value from False to True. Once you do this, the main menu of your store will load using ajax.

Load top menu using ajax

GDPR: user change history

In nopCommerce 4.20, customers will receive a notification message when a change is made to their profile (in conformity with Art. 19 GDPR).

With this feature, we conclude our overview of nopCommerce 4.20. We hope you have found it useful. For the complete list of new features and improvements, refer to the official nopCommerce release note

Feel free to share your thoughts in the comments section below.