Ucommerce for Kentico Accelerator Installation Guide
Ucommerce for Kentico replaces the built-in commerce capabilities of Kentico with a richer set of e-commerce features. To use Ucommerce for Kentico it is recommended to set up Kentico without Kentico Commerce during installation to avoid having duplicated tooling inside the CMS.
- Using SQL Server 2017/ SQL Express 2017. SQL CE not supported.
- If you're using IIS, make sure you have the URL Rewrite module installed for your server. This is a requirement for the URLs generated by Ucommerce to work.
After installing Ucommerce you will be set with a lot of assets and database modifications. Currently, we do not support an automatic uninstallation of the platform once installed. This is the case for the platform itself.
Installing Ucommerce NuGet package
Ucommerce is installed into Kentico as a NuGet package. You can find information about the package on NuGet
Once installed and the app is started Ucommerce installation module will run and modify the following elements:
- Database. Ucommerce installs its own set of database tables in the same database as Kentico CMS is connected to.
- Ucommerce can be installed separately in its own database by add "Ucommerce" as a connection string in web.config connection strings element
- the route "/ucommerceapi" will be ignored by Kentico by modifying their 'CMSExcludedURLs' collection.
Ucommerce for Kentico in MVC
Installing Ucommerce for an MVC solution doesn't differ from a regular installation, however, there are a few extra hurdles that need to be overcome due to the way an MVC site is set up using Kentico. Having two separate applications for the frontend and backend requires Ucommerce to be running on both - which causes a few complications for some of our environment roles detailed below.
Firstly, when working with Kentico and MVC, it is not possible to use RavenDB in an embedded mode which is the default set-up when installing Ucommerce. Having separate sites as mentioned before would cause the creation of two separate embedded databases which in turn won't communicate.
Solution: Setting up RavenDB to run as an external application is a trivial task using Ucommerce. All it takes is installing Raven on the server and with a swift configuration change redirecting Ucommerce to it. For further information on this and a step-by-step guide please see this article regarding scaling RavenDB. It is also a great option to host your solution in RavenHQ.
- NHibernate 2nd Level Cache
The issue here is very similar to the one mentioned above, only for caching. The default cache provider in Ucommerce (SysCache) won't handle this as it uses the web server's memory.
Solution: It is possible to swap the cache provider and move the cache to its own machine. For further information see this article regarding scalability options specifically the "Moving NHibernate 2nd Level Cache to its own machine" article.
Furthermore, we have an open-source POC project that demonstrates using swapping the cache provider in favor of Redis, including a readme that contains a short guide as well.
- Ucommerce Apps and Configuration
Ucommerce apps located under the /CMSModules/Ucommerce/Apps folder and all Castle Windsor configuration located under the /CMSModules/Ucommerce/Configuration folder needs to be present in both sites and they need to be entirely matching, otherwise, you might end up with unexpected behavior or errors.
Solution: Apps and configuration files are seldom modified after the site is deployed, so it's important to make sure that when deploying changes to these files they will be updated in both places.
UI Items Affected by Installing Ucommerce
Since Ucommerce is a replacement of the default Kentico commerce module, many UI elements will cease to exist in the application and some will exist without any provided value.
Kentico commerce UI elements that are no longer present:
- Kentico E-commerce section in the main application navigation
- Invoice details under activities in contact management area
Kentico commerce macro conditions that are still present but has no value:
Kentico commerce macro rules that are still present but has no value:
- Contact has at least X products in wishlist
- Contact has product in wishlist
- Contact has purchased a number of products in the last X days
- Contact has purchased the specified product
Activity types that are still present but has no value:
- Product added to shopping cart
- Product added to wishlist
- Product removed from shopping cart
- Purchased Product
- Shopping cart abandoned
Widgets that are still present but has no value:
- All widgets placed under the E-commerce section
Web parts that are still present but has no value:
- All web parts placed under the E-commerce section
- All reports placed under the E-commerce section
- All settings under the E-commerce section has no effect