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
4) Open PlugIn.MyEnv.CommerceAuthoring-1.0.0.json and change following properties
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
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.
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
- "PlugIn.Habitat.CommerceAuthoring-1.0.0.json"
- "PlugIn.Habitat.CommerceMinions-1.0.0"
- "PlugIn.Habitat.CommerceShops-1.0.0.json"
- "PlugIn.MyEnv.CommerceAuthoring-1.0.0.json"
- "PlugIn.MyEnv.CommerceMinions-1.0.0”
- "PlugIn.MyEnv.CommerceShops-1.0.0.json"
4) Open PlugIn.MyEnv.CommerceAuthoring-1.0.0.json and change following properties
- ArtifactStoreId - to a new GUID - this would be the same for a given set of environments (authoring, shops and minions)
- Id - to a new ID (the efe49ff743d34b649fffcof293615cd9MyEnv)
- Id - to a new name (the Entity-CommerceEnvironment-MyEnv)
- Name - a new environment name like "MyEnv"
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
2) Now select this environment in postman and make following calls
- GetToken - under authentication
- Bootstrap Sitecore Commerce - under SitecoreCommerce_DevOps
- 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
Post a Comment