Install Sitecore 9.3 using 3 Simple Commands

Sitecore 9.3 was announced at the Sitecore Symposium 2019 and I am excited to share 3 simple commands to get you going on your development machine or laptop. This release is now available from dev.sitecore.net to download.

Command 1 – Install Sitecore Pre-Requisites

As Sitecore moved from version 8.x to version 9.x, the installation process completely changed and required to install additional pre-requisites. There is a long list of pre-requisites and I have seen developers keeping a checklist of software that they need to install for a new instance of Sitecore on their machine or on client’s server. There is an alternative way, which has been part of the installation script since Sitecore 9.1 but not widely used. It is the Prerequisites.json file for installing pre-requisites. The easier and simpler way is to run this SIF command via PowerShell:

This command will not only download all of the required software but also install it on your behalf. I recently used this command on a vanilla VM and it took about 12 minutes to download and install everything. Notice in the screenshot below that it skips the already installed components:

Command 2 – Install Solr

For any Sitecore version 9.x to be installed locally, Solr (or Azure Search) is required to be installed and working correctly prior to installing Sitecore. Typically, a developer has to download and install Solr from a zip package, install it as a windows services and also install its SSL certificate (forgot to mention that you need to install Java SDK and setup its home path if you are on a brand new machine!).

Well, all of the above is now thing of the past, just open this Solr-SingleDeveloper.json file, update simple parameters like what version of Solr you want, what port number you would like to associate it with and what should be default install location and run this SIF command:

 

This is a MAGIC script and it did everything that would have taken anyone several hours to figure out, if it was their first time. Once the command was completed, I verified that the Solr was up and running over the specified SSL port!

 

Command 3 – Install Sitecore

Lastly, I opened up the XP0-SingleDeveloper.ps1 PowerShell script, change the essential parameters like site name and database parameters and ran the following script:

New Feature: By popular demand there is a new SIF parameter as SitePhysicalRoot.  If that is left empty, the default path will be \inetpub\wwwroot otherwise it will be the new path location.

If you have everything installed correctly then you will have a successful installation!!

Once the installation was complete, I was able to login (full marks for guessing the password)

I have started exploring the new features like the the new Experience Optimization Dashboard

 

Happy Sitecoring!

Sitecore Cortex – Getting Started with Auto-Tagging using Open Calais API

The latest release of Sitecore CMS 9.1 (initial release) ships with number of improvements and enhancements to the core platform. One of the key feature is introduction of the Sitecore CortexTM across the platform. Sitecore Cortex is a very broad topic and not the intent for the blog post, but in very short and non-tech words, Sitecore CortexTM can be described as the brain of Sitecore CMS that can analyze data and produce intelligent insights about the content.

One of the cool things that you can do right now with Sitecore CortexTM is auto-tagging. The integration with Open Calais API is out of the box, although you can integrate with any other provider by writing custom code. This post will show you to set up auto-tagging with Open Calais API provider.

What is Open Calais?

Open Calais analyzes the semantic content of input content using a combination of statistical, machine-learning, and custom pattern-based methods. The algorithms developed by the Text Metadata Services (TMS) group at Thomson Reuters output highly accurate and detailed metadata. For more detailed information, see the official Open Calais documentation FAQ.

Auto-Tagging Setup

Pre-requisites : You should have Sitecore 9.1 installed on your local machine or in Azure PaaS.

Step1 : Register a free account with Open Calais

Go to http://www.opencalais.com/opencalais-api/ and create a free account:

Step 2: Get your secret API Key

Click on the profile button and get your secret key. (Perm ID)

Step 3: The new Content Tagging Option

When you log-in to Sitecore 9.1, under the Home Tab, you will see a new Content Tagging option:

 

Step 4: Verify the initial tag field

Scroll down to the system defined Tagging section and verify there are no tags:

Step 5: Create a config patch

On your deployed folder, under location /site/App_Config/Sitecore/ContentTagging you will find files related to Open Calais settings. You can update the Sitecore.ContentTagging.OpenCalais.config file or a better option is to create a patch file as below and upload it to the /App_Config/Include folder location:

 

Step 6: Check the Tagging Tab

After you upload the file, you can go back to the content editor and check the ‘Content Tagging’ tab, it will be enabled

Step 7: Start Tagging

Click on the ‘Tag Item’ button and it will start tagging your content

Step 8: Review Tag Field

Once the tagging process is finished, if you review the tagging field again, it will be populated with the tags.

(You may need to click on another item and then click back on the item to see the tags)

 

That’s it, you are all configured to do auto-tagging.

 

Awesome Tommy Boy GIF - Find & Share on GIPHY

 

Reference: https://doc.sitecore.com/developers/91/sitecore-experience-management/en/configure-open-calais-as-your-content-tagging-provider.html

 

Sitecore + Helix + Yeoman – Set up your Helix compliant project in less than 5 minutes!

If you are a Sitecore developer and still haven’t heard about Helix, then you must be living under a rock. Just to recap, Helix is a set of software design principles and conventions for Sitecore development. For more information visit the official Sitecore Helix website.

This post is about how to set up a project from scratch using Yeoman Helix generator  which is based on Yeoman. It will take you less than 5 minutes to setup your initial project.

Assumptions :

For the blog post, lets assume that I have to start working on a Sitecore 9 project for Acme Inc and I need to setup the following Sitecore projects:

  • Project
    • Common
    • Web
  • Foundation
    • IoC
    • Serialization
  • Feature
    • Navigation
    • PageContent
    • Search

If you have never used Yeoman before, this post is for you as I will be walking through the setup process step by step.

Step 1 – Open command line and install Yo

npm install -g yo

Stpe 2 – Install Helix generator

npm install generator-helix -g

Step 3 – Create your top level folders

I will create these 5 top level folders at location C:\Projects\Acme

  • etc
  • lib
  • tools
  • src
  • scripts

Step 4 Create Helix Solution

yo helix

Select > Empty Helix Solution and press enter

Enter name of your solution – Acme

(this will be name of your Solution file .sln)

Enter location for your source folder – src

(you can just press enter to get the default ‘src’)

Select the .NET framework

(the compatible version for Sitecore 9 is .NET 4.6.2 which is not listed as an option. This is not a problem as we can change this manually from project properties, for now select 4.6.1. As this is an open source project, I could see pull request for 4.6.2 option. Hopefully that will be merged soon by the admins after the review.)

Enter local URL location

Taadaa!. This will create your solution file and also the folder structure like below:

Step 5 Create Helix Feature, Foundation and Project layer projects

I will only show the screen shots for the Web project in Project layer, as the process for creating projects in other layers is similar. Start by typing in :

yo helix:add

Enter the name of project like Web or Common and press enter:

Serialization

(If you are using unicorn for serialization – just press enter)

For source code folder name – just press enter

Enter vendor prefix – Acme

Select Layer – Project (use arrow keys to move down)

Enter optional module group – (I left it blank and pressed enter)

Select .NET framework

That’s it, your project is created!

The folder structure after this step should look like this:

You can repeat the same steps for other projects, the only that should be different is the Project Name in the first step, rest of the steps should be same. After I completed all the projects, the final folder structure looked like this:

Lets open the visual studios 2017 to see all the projects:

That’s it. You have setup a fully Helix compliant solution for Sitecore.

If you still don’t believe me, watch all this in a video :

A big thanks to all the admins and contributors for Yeoman Helix generator project!

Happy Sitecoring

Naveed

 

Sitecore Email Experience Manager – Getting started with EXM

Sitecore Email Experience Manager or EXM has become part of the main installation package since v9 update 1 (just like Sitecore Forms). The overall purpose of EXM is very much similar to any other Email marketing client, and that is, sending emails to your subscribers or members. In addition to sending out millions of emails, EXM can do A/B testing, supports multi-lingual campaigns, shows detailed reports and analysis of your emails and much more fun stuff. Check out a sample report below:

If you have been in digital world as a marketer or as a developer, I can assume that you would have worked in some sort of email campaign either during the strategy process or during development process.  For any email campaign, you would recognize that the 2 main things that you will need are:

  1.  Subscribers list
  2.  Email content

This post is for any one who wants to know how to create a subscribers list and start sending email content with EXM.

Installation:

As mentioned earlier, EXM will be installed as part of Sitecore 9 update 1 process. When you login to the Sitecore Dashboard, you can navigate to it via by clicking ‘Email Experience Manager‘ as shown below:

EXM Dashbaord:

The EXM dashboard uses the main area for showing detailed reports of previous campaigns as default, while the left hand column shows menu links to different functionality available within EXM dashboard:

For more details you can always refer to the official documentation. So lets begin the fun and see how can we use EXM in our to send out newsletters!.

Step 1: Create Subscribers List:

Once inside EXM, there are various options to create a subscribers list as shown below:

For demo purposes, lets assume we want to create a list from a file. Clicking on the ‘Recipient list from file‘ will open up a modal asking to upload a CSV file. The file should contain names and email addresses of recipients (a common practice in email marketing) :

For demo purposes, I uploaded a CSV file with 3 fields in this order: First Name, Last Name, Email:

The next step asked me to map the fields from my CSV file. As my CSV file had different order of fields, I mapped them through drop-downs provided in the modal box:

After mapping the field, the modal should look like this:

Once the fields are mapped, I clicked Next and EXM started to import my recipients:

Once my our subscribers list was imported, I was ready to create a my email campaign.

Step 2 – Email Campaign:

To start creating my email HTML copy, I clicked on the ‘Create‘ button again and selected ‘Regular email campaign‘ as shown below:

For demo purposes, I choose ‘Sample Newsletter‘ template. You can also choose any other templates type or import static HTML.

I entered the name ‘demo newsletter‘ and clicked ‘create‘ button:

The newsletter was created and I was presented with different options to enter information about the campaign:

I clicked on the ‘Recipients‘ tabs and selected the list that I have just uploaded:

Note: You can select more that 1 subscribers list in production environments

On the ‘Message‘ tab, I clicked on the main body area to update the body of sample news letter. It presented me with very familiar experience editor mode to update the content:

 

I added the very popular Sitecore sample image to my newsletter and clicked Save and close:

On the ‘Review’ tab, I wanted to make sure that everything I have entered is coming out correctly. So I entered my Gmail address and clicked Send button:

Boom! I got the email (Note: At this point I have already configured my SMTP settings as I will be explaining in step 3)

I also tested in an outlook client and it looked perfect!

The last step int the email campaign process is about the ‘Delivery‘, I can either click Send Message now or scheduled it at for a later stage:

That’s it, my email newsletter was ready to send to my subscribers!

Step 3 – Configuration Settings:

To configure email delivery for EXM, open web.config and look for settings “eds:define“. This could be either CustomSmtp or EmailCloud as shown below:

If you are in development, you may want to use your internal company SMTP server (like smtp.yourcompany.com). You also have the option to choose Gmail or SendGrid as they both will provide enough quotas to send your testing emails. For production purposes, it is highly recommended to use the Sitecore Email Cloud Service provided by Sitecore to comprehensively manage your email campaign. A comparison between custom smtp or Sitecore Email Cloud is given here.

Any ways back to configuration, open Website\App_Config\Sitecore\EmailExperience\Sitecore.EDS.Providers.CustomSMTP.config file and update the <smtpSettings> block as you wish. If you choose to use Gmail, your settings should look like this:

Once you have configured your settings, make sure to test them. Open content editor and navigate to /sitecore/content/email item and click on test connection. If everything has been configured correctly, you will get the OK message:

If you don’t get the OK message, check the logs for Eds.* .txt and Exm.*.txt in the Data folder.

That’s it for now! Hope you liked it and will start using it for future projects.

Thanks

Naveed.

Sitecore Experience Commerce 9 – A public action method ‘ShoppingCartLines’ was not found on controller

This is quick post about an error that I encountered during the checkout process using Sitecore Experience Commerce 9 storefront. The error happened as I entered incorrect Braintree sandbox account values during the installation process. The installation was successful but the checkout process didn’t work as expected.

After installation, I added some products to the cart and tried to checkout using the standard process. On the Billing Page, when I clicked on ‘Validate Payment‘ button, I received this error:

“A public action method ‘ShoppingCartLines’ was not found on controller ‘Sitecore.Commerce.XA.Feature.Cart.Controllers.CartController’.

The Billing Page:

The Error Page:

Sitecore Slack community came to help and thanks to Kautilya Prasad who suggested to check the Braintree account values. Also, Sitecore support team came back with the same answer pointing towards incorrect Braintree sandbox values. If you are seeing this error as well then it means that either you have not entered the sandbox values for Braintree account or have entered them incorrectly during the installation process.

In order to fix the issue, please:

  1. Make sure that you use valid parameters for braintree policy in the PlugIn.Payments.Braintree.PolicySet-1.0.0 config file.
  2. Make sure that valid parameters for braintree policy are bootstrapped to Global database.

Confirm values are present and correct in the config file:

Bootstrap the values to global database:

 

If your Braintree account is configured correctly, you will see ‘Credit Card‘ form next to the validate payment button like this: (which I was not seeing it during the checkout process earlier)

The Billing Page with Credit Card Info:

Hope this helps!

Thanks

Naveed

Sitecore Experience Commerce – XC9 – Troubleshooting your installation

The installation of Sitecore Experience Commerce is a fairly easy process, but if you are new to it, you may end up with few installation issues. This blog aims to provide some workarounds and fixes if you encounter these errors.

This post assumes that you are installing Sitecore Experience Commerce 9 initial release on Sitecore 9 update 1

Error: The service cannot accept control messages at this time.

If you see this error message, you can either wait few minutes or do and ‘iisreset’  and start the installation process again. This error message happens temporarily from time to time if IIS is busy in starting or stopping operations.

Error: Get Token From Sitecore.IdentityServer – The remote server returned an error 500

If during the installation process you get the ‘Get Token From Sitecore.IdentityServer’ failed 500 error like below, then this error means that Server Identity has not been able to contact the SQL server and is throwing a 500 error exception. The most probable reason is that you will have multiple SQL server instances running on your machine and the correct value for the “Server:MACHINE-NAME\SQLEXPRESS” has not been passed through the scripts.

Install-SitecoreConfiguration : The remote server returned an error: (500) Internal Server Error.
At C:\Program Files\WindowsPowerShell\Modules\SitecoreInstallFramework\1.1.0\Public\Install-SitecoreConfiguration.ps1:253 char:21
+                     & $entry.Task.Command @paramSet | Out-Default
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
   + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Install-SitecoreConfiguration

 

There are 2 options to fix this:

Option 1 (During installation process)

To fix it if you have already started the installation process, open the following configuration JSON files and update the connection string SQL Server instance name manually to Server:”MACHINE\\SQLEXPRESS2016″, in some files you have to do it at 2 places:

1-\SitecoreIdentityServer\wwwroot\appsettings.json
2-\CommerceShops_Sc9\wwwroot\bootstrap\Global.json
3-\CommerceOps_Sc9\wwwroot\bootstrap\Global.json
4-\CommerceMinions_Sc9\wwwroot\bootstrap\Global.json
5-\CommerceAuthoring_Sc9\wwwroot\bootstrap\Global.json
6-\CommerceShops_Sc9\wwwroot\data\Environments\Plugin.SQL.PolicySet-1.0.0.json
7-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.Habitat.CommerceAuthoring-1.0.0.json
8-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.AdventureWorks.CommerceAuthoring-1.0.0.json

Once you have made these changes, please do an iisreset before running the script again from PowerShell.

If you have already come to this step you may want to update the

SIF.Sitecore.Commerce.1.0.1748\Configuration\Commerce\Master_SingleServer.json

file by removing the Tasks that have already been installed. For example you may want to remove the tasks till ImportRootCertificate and run the script again to just initialize commerce and bootstrap your environment.

Option 2 (Before starting the installation process)

If you are planning to install XC9 with multiple instances of SQL servers running locally on your machine, then you may want to do this prior to the installation: (assuming the SQL server you are referring to can be accessed at “MACHINE\\SQLEXPRESS2016” or something similar

1- Unzip the Sitecore.Commerce.Engine.2.0.1922.zip file

2-Navigate to \Sitecore.Commerce.Engine.2.0.1922\wwwroot\bootstrap\Global.json

3-Update the Server value on line 48 and line 97 to match your SQL server instance name

4-Zip the folder again in a way that it doesn’t create any sub-folder and path \Sitecore.Commerce.Engine.2.0.1922.zip\wwwroot\bootstrap\Global.json exists, otherwise you will get an error again.

5-Place it back in the deploy folder

6-Unzip the Sitecore.IdentityServer.1.0.65.zip file

7-Navigate to Sitecore.IdentityServer.1.0.65\wwwroot\appsettings.json file

8-Update the value of SQL Server to match your SQL server instance name

9-Zip the folder contents again ensuring that it doesn’t create any sub-folders and path to Sitecore.IdentityServer.1.0.65.zip\wwwroot\appsettings.json exists

10-Place it back in the deploy folder

Run the script again and it should run without any issues. It will take approximately 50 minutes to do the installation.

This is a known deployment bug and it has been raised this with Sitecore with reference number 36299. This has also been raised on community forum 

Update March 2018: The above error is now fixed in Sitecore Commerce 9 – update 1

Error:HTTP Error 500.19

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

If you get this error, it meas that ASP.NET Core module is not installed correctly on you machine. You can download from here and read more about it from here

Error:HTTP Error 502.5

PS>TerminatingError(Invoke-RestMethod): " IIS 502.5 Error HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to start The application process started but then stopped The application process started but failed to listen on the configured port Troubleshooting steps: Check the system event log for error messages Enable logging the application process' stdout messages Attach a debugger to the application process and inspect For more information visit: https://go.microsoft.com/fwlink/?LinkID=808681 "
>> TerminatingError(Invoke-RestMethod): " IIS 502.5 Error HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to start The application process started but then stopped The application process started but failed to listen on the configured port Troubleshooting steps: Check the system event log for error messages Enable logging the application process' stdout messages Attach a debugger to the application process and inspect For more information visit: https://go.microsoft.com/fwlink/?LinkID=808681 "
Install-SitecoreConfiguration : IIS 502.5 Error HTTP Error 
502.5 - Process Failure Common causes of this issue: The application process 
failed to start The application process started but then stopped The application process 
started but failed to listen on the configured port Troubleshooting steps: 
 Check the system event log for error messages Enable logging the application process' stdout 
messages Attach a debugger to the application process and inspect For more information 
visit: https://go.microsoft.com/fwlink/?LinkID=808681 
At C:\Program 
Files\WindowsPowerShell\Modules\SitecoreInstallFramework\1.0.2\Public\Install-SitecoreConfiguration.ps1:253 char:21
+ & $entry.Task.Command @paramSet | Out-Default
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
 + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Install-SitecoreConfiguration
Install-SitecoreConfiguration : IIS 502.5 Error HTTP Error 502.5 - Process Failure Common causes of this issue: The application process
failed to start The application process started but then stopped The application process started but failed to listen on the configured port Troubleshooting steps:
 Check the system event log for error messages Enable logging the application process' stdout messages Attach a debugger to the application process and inspect For more information
visit: https://go.microsoft.com/fwlink/?LinkID=808681
At C:\Program Files\WindowsPowerShell\Modules\SitecoreInstallFramework\1.0.2\Public\Install-SitecoreConfiguration.ps1:253 char:21
+ & $entry.Task.Command @paramSet | Out-Default
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
 + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Install-SitecoreConfiguration


This error is also related to incorrect SQL server values (as mentioned above) double check them in the configuration json files and do an iisreset:

1-\SitecoreIdentityServer\wwwroot\appsettings.json
2-\CommerceShops_Sc9\wwwroot\bootstrap\Global.json
3-\CommerceOps_Sc9\wwwroot\bootstrap\Global.json
4-\CommerceMinions_Sc9\wwwroot\bootstrap\Global.json
5-\CommerceAuthoring_Sc9\wwwroot\bootstrap\Global.json
6-\CommerceShops_Sc9\wwwroot\data\Environments\Plugin.SQL.PolicySet-1.0.0.json
7-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.Habitat.CommerceAuthoring-1.0.0.json
8-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.AdventureWorks.CommerceAuthoring-1.0.0.json

Error: InitiazlieHabitatCommerceServices 502.3 – Bad Gateway error

Initializing Shops: https://localhost:5005/commerceops/InitializeEnvironment(environment='HabitatShops')
PS>TerminatingError(Invoke-RestMethod): " 

IIS 10.0 Detailed Error - 502.3 - Bad Gateway 
  HTTP Error 502.3 - Bad Gateway 
  The specified CGI application encountered an error and the server terminated the process. 
 Most likely causes: 
   	The CGI application did not return a valid set of HTTP errors. 	A server acting as a proxy or gateway was unable to process the request due to an error in a parent gateway.  
 Things you can try: 
   	Use DebugDiag to troubleshoot the CGI application. 	Determine if a proxy or gateway is responsible for this error.  
 Detailed Error Information: 
    Module   AspNetCoreModule 
    Notification   ExecuteRequestHandler 
    Handler   aspNetCore 
    Error Code   0x80072ee2 
     
  

This error is also related to incorrect SQL server values (as mentioned above) in the configuration json files:

1-\SitecoreIdentityServer\wwwroot\appsettings.json
2-\CommerceShops_Sc9\wwwroot\bootstrap\Global.json
3-\CommerceOps_Sc9\wwwroot\bootstrap\Global.json
4-\CommerceMinions_Sc9\wwwroot\bootstrap\Global.json
5-\CommerceAuthoring_Sc9\wwwroot\bootstrap\Global.json
6-\CommerceShops_Sc9\wwwroot\data\Environments\Plugin.SQL.PolicySet-1.0.0.json
7-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.Habitat.CommerceAuthoring-1.0.0.json
8-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.AdventureWorks.CommerceAuthoring-1.0.0.json

Error: Message=Arithmetic operation resulted in an overflow

ERROR SQL:block:findentity.Error: Message=Arithmetic operation resulted in an overflow..|Trace= v System.Data.ProviderBase.TimeoutTimer.StartMillisecondsTimeout(Int64 milliseconds)
v System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
v System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
v System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
v System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
v System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
v System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
v System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
v System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
v System.Data.ProviderBase.DbConnectionPool.WaitForPendingOpen()

This error is also related to incorrect SQL server values in the configuration json files:

1-\SitecoreIdentityServer\wwwroot\appsettings.json
2-\CommerceShops_Sc9\wwwroot\bootstrap\Global.json
3-\CommerceOps_Sc9\wwwroot\bootstrap\Global.json
4-\CommerceMinions_Sc9\wwwroot\bootstrap\Global.json
5-\CommerceAuthoring_Sc9\wwwroot\bootstrap\Global.json
6-\CommerceShops_Sc9\wwwroot\data\Environments\Plugin.SQL.PolicySet-1.0.0.json
7-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.Habitat.CommerceAuthoring-1.0.0.json
8-\CommerceShops_Sc9\wwwroot\data\Environments\PlugIn.AdventureWorks.CommerceAuthoring-1.0.0.json

 Error: sxa.storefront.com is visible in experience editor but not as the published site

If you have used a different HostName value in your installation script then ‘sxa.storefront.com‘ like ‘sitecore901.commerce‘ and wondering why this is not coming up after you have published the webiste multiple times then you need to do the following:

1-Open content editor

2-Navigate to ‘/sitecore/content/Sitecore/Storefront/Settings/Site Grouping/Storefront‘ item

3-Update the value for Host Name field to your host header and publish again

I hope this post will be helpful to you guys while you are installing Sitecore Experience Commerce, any comments/feedback is welcome.

 

Thanks

Naveed

Reference:

https://www.linkedin.com/pulse/installing-sitecore-xc-90-kautilya-prasad

Sitecore Experience Commerce – XC9 – The Uninstall Script

Sitecore Experience Commerce is the new offering from Sitecore in the commerce arena and it is getting lot of attraction. This blog presents a PowerShell script to help out developers during the uninstall process.

I have posted a reference installation script that I have used during installation, (originally taken from the documentation and then added actual version for the packages) so you can always refer to it and compare it with your own script.

It may happen that during your installation, you have entered an incorrect value for a parameter or path to one of the packages. Then you may want to uninstall the the module before you can re-install it again.  Or may be you just want to uninstall the XC9 module to start from scratch. The process of uninstalling XC9 module can be difficult to do manually, so I present a a simple PowerShell script to automate it!

All you need to do is update the Param values (between line 3 and 15) to suit your installation variables and then run from the PS console:

Copy it locally in the deploy folder and run it like .\uninstall-commerce.ps1

All the script is doing is un-installing the SolrIndexes, IIS websites, website physical files and databases.

If you want to completely uninstall Sitecore 9 update 1 version, then use this script

Enjoy!

Naveed