The Episerver Commerce Database Explained - Hopefully...
Wed 16 December, 2015 / By Jon D Jones
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.