In this tutorial, you will learn some tips to help you spin up a brand new Episerver commerce website in code. When spinning up a new commerce database the default MetaClasses are not installed. Only after you compile and run your site will they be installed. If you want to add additional meta-data to these commerce objects in code, this can cause a problem (read this tutorial to learn how to do that).

If you tried to run a custom initialization module when the site first runs, the DataContext.Current.MetaClasses will return as null. This means any custom code/scripts that you include in your solution that replies on these classes will fail when you rebuild the database. Fear not, there is a solution and In this tutorial, you will learn the secret. If this sounds useful, read on 🔥🔥🔥

Within CustomerContext.Current.GetContactById() there's a check to see if the customer object has been created yet. If not, the API in the background will run a command to update the database script to create the Customer MetaData class. Basically, in your initialisation module, if you add this code snippet:

When the script runs all the meta-data classes will be created. Adding this snippet will mean your code never fails. A handy but useful tip. Happy Coding 🤘