Documentation

Ucommerce includes full API reference documentation and lots of helpful articles to help you build your e-commerce site as effortlessly as possible.

Topics Payment Providers
v7.18

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.

Requirements

  • 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.

Uninstalling Ucommerce

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 adding "Ucommerce" as a connection string in web.config connection strings element
  • Web.config
  • 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 dealt with 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.

- RavenDB

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 have no value:

  • Orders
  • PurchasedNumberOfProduct
  • PurchasedProduct
  • PurchasedProducts

Activity types that are still present but have no value:

  • Product added to shopping cart
  • Product added to wishlist
  • Product removed from shopping cart
  • Purchase
  • Purchased Product
  • Shopping cart abandoned

Widgets that are still present but have no value:

  • All widgets placed under the E-commerce section

Web parts that are still present but have no value:

  • All web parts placed under the E-commerce section

Reporting

  • All reports placed under the E-commerce section

Settings

  • All settings under the E-commerce section have no effect

Kentico commerce macro rules that are still present but are disabled

  • CMSContactHasProductInWishlist
  • CMSContactHasAtLeastXProductsInWishlist
  • CMSContactHasPurchasedSpecifiedProduct
  • CMSContactHasPurchasedNumberOfProductsInTheLastXDays
  • CMSContactHasMadeAtLeastXOrders
  • CMSContactHasSpentMoneyInTheStoreInTheLastXDays
  • CMSVisitorHasProductInShoppingCart
  • CMSVisitorHasAtLeastXProductsInShoppingCart
  • CMSActivityProductAddedToShoppingCartPerformedForProduct
  • CMSActivityProductAddedToWishlistPerformedForProduct
  • CMSActivityProductRemovedFromShoppingCartPerformedForProduct
  • CMSActivityPurchasedProductPerformedForXUnitsOfProduct
  • CMSActivityPurchasePerformedWithAPriceValueBetween
  • CMSActivityPurchasedProductPerformedForProduct
  • CMSSKUName
  • CMSSKUNumbers
  • CMSSKUInStoreFrom
  • CMSSKUNeedsShipping
  • CMSSKUWeight
  • CMSSKUPriceInRange
  • CMSSKUPublicStatus
  • CMSSKUProductType
  • CMSSKUDepartment
  • CMSSKUManufacter
  • CMSSKUAvailableItems
  • CMSSKUInternalStatus
  • ProductIsOneOf
  • PaymentMethodIsASpecificMethod
  • ShippingOptionIsASpecificOption
  • BillingAddressCountryIsASpecificCountry
  • BillingAddressStateIsASpecificState
  • BillingAddressZIPIsASpecificZIP
  • ShippingAddressCountryIsASpecificCountry
  • ShippingAddressStateIsASpecificState
  • ShippingAddressZIPIsASpecificZIP
  • CurrencyIsASpecificCurrency
  • ShoppingCartContainsProducts
  • CustomerRegisteredWithinTheLastXDays
  • TotalWeightOfOrderIsUnder
  • OrderIsOneOfTheFirstXOrder_s_ThatTheRegisteredCustomerHasPlaced
  • ShoppingCartContainsAllOrAnyProduct