The Episerver Commerce Database Explained – Hopefully…

When we work with Episerver and Episerver commerce, all the data we work with is stored within two back-end databases.  When we build projects, you should never write any form of code that talks to the database directly. Everything should always go via the Episerver API.  If you don’t, you can corrupt your installation and completely kill your website.

There are certain times when you come across one of those annoying bugs that don’t seem to make any sense that taking a peak in the database to check that the data you expect to see is there in the correct format.  In today’s tutorial, I’m going to cover some of the most useful tables that I’ve needed to use over the years.  The point of this article is to grow and expand over time, so if you want any knowledge about the Episerver database, please leave a comment or email me.

The Tables Explained


This is the table that stores your PIM / product catalogs.  This is the top level item for your product catalog and contains things like default currency and default language.


This table stores your Episerver commerce admin/editor user details.  Look in here to check which accounts exists in the system, the email address specified, the user id.  This can be handy when you have to implement your own custom membership provider.


This is the table that’s used to store any additional meta fields that you create the line item class.  Each custom meta field that you add will be displayed in an appropriate column.


This is the table that’s used to store the items specific to the IOrderGroup.  In here you will find data like your carts subtotal, currency, market id and total.


This is where the purchase order information will be stored.  If you add any custom fields to the Purchase order, these will also be created within here.


This is the table that stores the data against the Episerver cart.  Any custom fields you add to the cart will be displayed in a column in this table.


This table lists the available payment providers that are available within your project. The IsActive property is useful if you need to switch a payment gateway on or off.


This is the table that’s used to store any promotions that are applicable to the cart.  In your promotions processor, you return a ‘PromotionsInformation’ object. Data that’s stored in here includes the promotions ContentReference, the SavedAmoun, the Description and the IsActive state.

Jon D Jones

Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge

More Posts

2 replies
  1. Paul Alkema
    Paul Alkema says:

    If I’m not mistaken, the LineItemEx is no longer is used to store product meta data or any product information. The primary table for the latest version of commerce that stores product data is [dbo].[CatalogEntry], and all meta properties are stored in the table [dbo].[CatalogContentProperty].

    In addition, a versioning copy of these data values are stored in [dbo].ecfVersionProperty, which is the actual version that the Episerver admin pulls out when pulling out this data. If updating these values, which isn’t recommended, you’ll need to update the values for both the CatalogContentProperty and the ecfVersionProperty tables.



Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *