In this article, we will look at preparing for the installation Sitecore Experience Commerce, by making the minimal amount of necessary changes for a baseline installation and avoiding the pitfalls with the default configuration. From this point, modifying the configurations for project-specific should be simpler.
Pre-Installation
Before running the deployment script, we will correct the configuration and apply some workarounds in order to successfully install Sitecore Commerce.
Workarounds
- The <Identity Server web root>\Config\production\Sitecore.IdentityServer.Host.xml needs to be updated to include the new commerce site bindings from the $SiteHostHeaderName. (“sxa.storefront.com” from the deployment script).
<Clients> <DefaultClient> <AllowedCorsOrigins> <AllowedCorsOriginsGroup1>http://SC911.sc</AllowedCorsOriginsGroup1> <AllowedCorsOriginsGroup2>http://sxa.storefront.com</AllowedCorsOriginsGroup2> <AllowedCorsOriginsGroup3>https://sxa.storefront.com</AllowedCorsOriginsGroup3> </AllowedCorsOrigins> </DefaultClient> ... </Clients>
- Follow Installing Sitecore Experience Commerce 9.1 with Default Storefront Tenant and Site.
Configuration
For the installation step, we assume that Sitecore XP 9.1.1 has been installed already from XP Single packages (XP0). The only change to the configuration that is made is to reset the password $SitecoreAdminPassword to “b”.
Now, we need to reset the Deploy-Sitecore-Commerce.ps1 configurations to reasonable defaults.
To simplify the installation process, I place the Sitecore PowerShell Extensions zip file, Sitecore Experience Accelerator zip file, and Microsoft.Web.XmlTransform.dll file directly in the deployment folder.
The following parameters are reset back to XP 9.1.1 Single packages (XP0) configuration:
- $Sitename
- $SqlDbPrefix
- $IdentityServerSiteName
param( [string]$SiteName = "XP0", [string]$SiteHostHeaderName = "sxa.storefront.com", [string]$SqlDbPrefix = "$SiteName", [string]$CommerceSearchProvider = "SOLR", [string]$IdentityServerSiteName = "$SiteName.IdentityServer" )
The following parameters are reset back to XP 9.1.1 Single packages (XP0) configuration:
- SiteName
- InstallDir
- XConnectInstallDir
The following parameters are updated so that the evaluations return a single (and correct) string response, as opposed to an array of strings:
- SitecoreCommerceEnginePath
- SitecoreBizFxServicesContentPath
The following parameters are configured to point back to the deployment directory:
-
PowerShellExtensionsModuleFullPath
-
SXAModuleFullPath
-
MergeToolFullPath
The following parameters are modified to point to the correct release zip files, provided in the Commerce package:
-
SXACommerceModuleFullPath
-
SXAStorefrontModuleFullPath
$params = @{ Path = Resolve-Path '.\Configuration\Commerce\Master_SingleServer.json' BaseConfigurationFolder = Resolve-Path '.\Configuration' SiteName = "$SiteName.sc" SiteHostHeaderName = $SiteHostHeaderName InstallDir = "c:\inetpub\wwwroot\$SiteName.sc" XConnectInstallDir = "c:\inetpub\wwwroot\$SiteName.xconnect" CommerceInstallRoot = "c:\inetpub\wwwroot\" CommerceServicesDbServer = $($Env:COMPUTERNAME) #OR "SQLServerName\SQLInstanceName" CommerceServicesDbName = "SitecoreCommerce9_SharedEnvironments" CommerceServicesGlobalDbName = "SitecoreCommerce9_Global" SitecoreDbServer = $($Env:COMPUTERNAME) #OR "SQLServerName\SQLInstanceName" SitecoreCoreDbName = "$($SqlDbPrefix)_Core" SitecoreUsername = "sitecore\admin" SitecoreUserPassword = "b" CommerceSearchProvider = $CommerceSearchProvider SolrUrl = "https://solr:8992/solr" SolrRoot = "c:\\solr-7.2.1" SolrService = "solr-7.2.1" SolrSchemas = ( Join-Path -Path $DEPLOYMENT_DIRECTORY -ChildPath "SolrSchemas" ) CommerceServicesPostfix = "Sc9" CommerceServicesHostPostfix = "Sc9.qa" SearchIndexPrefix = "sitecore" EnvironmentsPrefix = "Habitat" Environments = @('AdventureWorksAuthoring', 'HabitatAuthoring') AzureSearchServiceName = "" AzureSearchAdminKey = "" AzureSearchQueryKey = "" CommerceEngineDacPac = Resolve-Path -Path "..\Sitecore.Commerce.Engine.SDK.*\Sitecore.Commerce.Engine.DB.dacpac" CommerceOpsServicesPort = "5015" CommerceShopsServicesPort = "5005" CommerceAuthoringServicesPort = "5000" CommerceMinionsServicesPort = "5010" SitecoreBizFxPort = "4200" SitecoreCommerceEnginePath = Resolve-Path -Path "..\Sitecore.Commerce.Engine.3.0.163.zip" SitecoreBizFxServicesContentPath = Resolve-Path -Path "..\Sitecore.BizFX.2.0.3" CommerceEngineCertificateName = "storefront.engine" SiteUtilitiesSrc = ( Join-Path -Path $DEPLOYMENT_DIRECTORY -ChildPath "SiteUtilityPages" ) HabitatImagesModuleFullPath = Resolve-Path -Path "..\Sitecore.Commerce.Habitat.Images-*.zip" AdvImagesModuleFullPath = Resolve-Path -Path "..\Adventure Works Images.zip" CommerceConnectModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Connect*.zip" CommercexProfilesModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce ExperienceProfile Core *.zip" CommercexAnalyticsModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce ExperienceAnalytics Core *.zip" CommerceMAModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Marketing Automation Core *.zip" CommerceMAForAutomationEngineModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Marketing Automation for AutomationEngine *.zip" CEConnectModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Engine Connect*.zip" PowerShellExtensionsModuleFullPath = Resolve-Path -Path "..\Sitecore PowerShell Extensions*.zip" SXAModuleFullPath = Resolve-Path -Path "..\Sitecore Experience Accelerator*.zip" SXACommerceModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Experience Accelerator 2.*.zip" SXAStorefrontModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Experience Accelerator Storefront 2.*.zip" SXAStorefrontThemeModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Experience Accelerator Storefront Themes*.zip" SXAStorefrontCatalogModuleFullPath = Resolve-Path -Path "..\Sitecore Commerce Experience Accelerator Habitat Catalog*.zip" MergeToolFullPath = Resolve-Path -Path "..\Microsoft.Web.XmlTransform.dll" UserDomain = $Env:COMPUTERNAME UserName = 'CSFndRuntimeUser' UserPassword = 'Pu8azaCr' BraintreeAccount = @{ MerchantId = '' PublicKey = '' PrivateKey = '' } SitecoreBizFxServerName = "SitecoreBizFx" SitecoreIdentityServerApplicationName = $IdentityServerSiteName SitecoreIdentityServerHostName = $IdentityServerSiteName }
Post Installation
- During the installation the original bindings for the Sitecore website, e.g. ‘XP0.sc’, are removed. Add these bindings back in IIS.
- If you add the Postman collections/environments to Postman, the
SitecoreIdServerHost will need to be updated to point to ‘XP0.identityserver’.