Skip to main content

Create a new environment in business tool of sitecore commerce

Hello Friends,

Recently, We have been working with the project which has sitecore commerce functionalities, One of the object in sitecore commerce is it's environment, It comes up with some default environments like

"AdventureWorksAuthoring","AdventureWorksShops,"HabitatAuthoring","HabitatShops"


Now it is obvious need of a project to have its own environment, So that all e-Commerce entities can be defined for that project in its own environment, Consider you are creating e-commerce site for electronic items for one of your client, you will need your own environment here so you can have catalogs, inventory, customers separately.

By default sitecore commerce does not provide a way to create the new environment or nor have a post man API call via which we can create these new environments.

How
Let's quickly see the steps how can you have your own environment set up, These are  manual steps but can be automated using proxy APIs but lets see the manual steps below

1)  Go to wwwroot folder where commerce is installed you will see four folder for their roles like following


2)      Now go to CommerceAuthering_Sc9 folder on following path (names will be different as per your environment)
C:\inetpub\wwwroot\CommerceAuthoring_Sc9\wwwroot\data\Environments

3)      Copy
  1. "PlugIn.Habitat.CommerceAuthoring-1.0.0.json"
  2. "PlugIn.Habitat.CommerceMinions-1.0.0"
  3. "PlugIn.Habitat.CommerceShops-1.0.0.json"
And paste it in the same folder so you will have copy of these files now rename this file to the desire name for example
  1. "PlugIn.MyEnv.CommerceAuthoring-1.0.0.json"
  2. "PlugIn.MyEnv.CommerceMinions-1.0.0”
  3. "PlugIn.MyEnv.CommerceShops-1.0.0.json"

4)      Open PlugIn.MyEnv.CommerceAuthoring-1.0.0.json and change following properties
  1. ArtifactStoreId - to a new GUID - this would be the same for a given set of environments (authoring, shops and minions)
  2. Id - to a new ID (the efe49ff743d34b649fffcof293615cd9MyEnv)
  3. Id - to a new name (the Entity-CommerceEnvironment-MyEnv)
  4. Name - a new environment name like "MyEnv"
InitialArtifactSets - as follows


 NOTE: if you observe and compare our files with default habitat files, we have removed some artifact so that we can have completely blank environment.

5)  Make sure to change the GUID and id for other two files too, those two files should also have the same GUID and id but names should be different.
6)  Once the files are changed, you can copy those three files over to other three folders on wwwroot , On step-1 we showed four folders and one of them we did all above changes, so remaining three folders should also have those files which we created.
7)  Edit the global.json file situated on

C:\inetpub\wwwroot\CommerceAuthoring_Sc9\wwwroot\bootstrap\global.json
C:\inetpub\wwwroot\CommerceMinions_Sc9\wwwroot\bootstrap\global.json
C:\inetpub\wwwroot\CommerceOps_Sc9\wwwroot\bootstrap\global.json
C:\inetpub\wwwroot\CommerceShops_Sc9\wwwroot\bootstrap\global.json

Add the new environment to the list of existing environments like following




 Make the changes in all above global.json file

Making an API calls
Aafter above steps there is a need to make some calls to commerce API so that we can bootstrap, and initialize the environment, those steps are following
1)      In postman where you already configured the habitat environment, duplicate the environment and call it something else of your choice and change the global variable to match it with our new environment like following



Above values should match against what you configured in the .json file

2)      Now select this environment in postman and make following calls
  1. GetToken - under authentication
  2. Bootstrap Sitecore Commerce - under SitecoreCommerce_DevOps
  3. Initialize Environment - under SitecoreCommerce_DevOps

3)      All the calls should succeeded and should return 200 OK result, else you will need to troubleshoot the errors by looking into the logs on following folders.

You might get 500 internal errors for the calls if you are making it via postman, in that case you will need to turn “AntiForgeryEnabled=false” in “config.json” file inside wwwroot folder.

C:\inetpub\wwwroot\CommerceShops_Sc9\wwwroot\logs
C:\inetpub\wwwroot\CommerceOps_Sc9\wwwroot\logs
C:\inetpub\wwwroot\CommerceMinions_Sc9\wwwroot\logs
C:\inetpub\wwwroot\CommerceAuthoring_Sc9\wwwroot\logs

4)      If all calls are fine, you should see the new clean environment like following



You can start creating catalogs and customers specific to your environment now

Hope it help.

Comments

Popular posts from this blog

Sitecore Technical Workshops - Top FAQs customers asked on XM Cloud

Hi Readers, I want to talk to you about interesting things which we have been doing which is "Technical Workshops" for our customers, so here goes the scenarios. So, we have been doing multiple types of technical workshops.  1) Training customer and their Sitecore technical team on latest and the greatest technologies like XM Cloud & Another composable stack and try enabling them for new Sitecore tech stack. 2) Customers / Potential Customers have their agenda of existing pain points, and we take a workshop on topics around them with best practices etc. little on new technologies, so they also know the future. Basically, we prepare custom targeted presentations & demos for individual workshops, and make sure it helps them answer their questions and they get insights of where Sitecore eco systems has to offer from their versatile toolset and try to keep them up to date with it. So, Purpose of this blog is, because in all these customer & their technical team's

An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

You have noticed many times that everything was working fine and suddenly the below error starts coming and you find no way to work it out An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details. The reason for this is the receiving size of WCF service is smaller then the data which is coming from service It was working before because it was small,So you will have to try to increase the receiving setting in your end point,Possible settings can be following maxStringContentLength="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxArrayLength="2147483647" That would definately help you!!!

Set up leprechaun code generation with Sitecore XM Cloud Starterkit

Hi Sitecorians, It has been amazing learning year so far and with the change in technology and shift of the focus on frontend frameworks and composable products, it has been market demand to keep learning and exploring new things. Reasons behind this blog Today's topic is something that was in my draft from April-May, and I always thought that there is already a good documentation out there for  Leprechaun  and a blog post is not needed, Until I realized that there was so many of us facing same kind of issues and same kind of problems and spending same amount of time, That is where I thought, if I could write something which can reduce that repetitive troubleshooting time, That would really help the community. 1)  In a project environment, if we get into some configuration issues, we resolve them, we make sure we are not blocked and continue, but if you think same issue, same step and same scenario will come to other people, so if we can draft it online, it will help other people 2