├── .nuke
├── .gitignore
├── .env
├── scripts
├── Install-SIF.ps1
├── Import-Certificate.ps1
├── WatchDirectoryMultiple.ps1
└── Watch-Directory.ps1
├── commerce
├── WatchDefaultDirectories.ps1
├── UpdateIdentityServerUrl.ps1
├── UpdateSitecoreUrl.ps1
├── UpdateConnectionString.ps1
├── WatchDirectoryMultiple.ps1
└── Dockerfile
├── CreateLogDirs.ps1
├── solr
├── sxa
│ ├── Dockerfile
│ └── sxa-solr.json
└── DockerFile
├── config
└── EnableItemServices.config
├── Generate-Self-Signed-Certificate.ps1
├── docker-compose.sxa.yml
├── docker-compose.build-sxa.yml
├── Generate-Certificates.ps1
├── sitecore
├── Sitecore.Commerce.Engine.Connectors.Index.Solr.InitializeOnAdd.config
├── sxa
│ ├── InstallSXA.ps1
│ └── install-sxa.json
├── Dockerfile
└── InstallCommercePackages.ps1
├── xconnect
├── Dockerfile
└── Sitecore.Commerce.Connect.XConnect.Models.json
├── mssql
└── Dockerfile
├── docker-compose.yml
├── CopyCores.ps1
├── CopyDatabases.ps1
└── README.md
/.nuke:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | build/bin
2 | build/obj
3 | cores
4 | databases
5 | files
6 | logs
7 | tmp
8 | .tmp
9 | *.log
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | # Variables that are used in docker-compose files
2 | IMAGE_PREFIX=sxc-
3 | TAG=9.0.3
4 |
5 | SQL_SA_PASSWORD=my_Sup3rSecret!!
6 |
7 | SITECORE_SITE_NAME=sitecore
--------------------------------------------------------------------------------
/scripts/Install-SIF.ps1:
--------------------------------------------------------------------------------
1 | # Install SIF
2 | Install-PackageProvider -Name NuGet -Force; `
3 | Register-PSRepository -Name SitecoreGallery -SourceLocation https://sitecore.myget.org/F/sc-powershell/api/v2; `
4 | Install-Module SitecoreInstallFramework -RequiredVersion 1.2.1 -Force
5 |
--------------------------------------------------------------------------------
/commerce/WatchDefaultDirectories.ps1:
--------------------------------------------------------------------------------
1 | C:\Scripts\WatchDirectoryMultiple.ps1 -Path C:\Workspace -Destinations @('C:\\inetpub\\wwwroot\\CommerceAuthoring_Sc9', 'C:\\inetpub\\wwwroot\\CommerceMinions_Sc9', 'C:\\inetpub\\wwwroot\\CommerceOps_Sc9', 'C:\\inetpub\\wwwroot\\CommerceShops_Sc9')
--------------------------------------------------------------------------------
/CreateLogDirs.ps1:
--------------------------------------------------------------------------------
1 | mkdir -p .\logs\sitecore
2 | mkdir -p .\logs\xconnect
3 | mkdir -p .\logs\commerce\CommerceAuthoring_Sc9
4 | mkdir -p .\logs\commerce\CommerceMinions_Sc9
5 | mkdir -p .\logs\commerce\CommerceOps_Sc9
6 | mkdir -p .\logs\commerce\CommerceShops_Sc9
7 | mkdir -p .\logs\commerce\SitecoreIdentityServer
8 |
--------------------------------------------------------------------------------
/solr/sxa/Dockerfile:
--------------------------------------------------------------------------------
1 | # escape=`
2 | FROM sxc-solr:9.0.3
3 |
4 | SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop';"]
5 |
6 | ADD sxa-solr.json /Files/Config/
7 |
8 | RUN /Scripts/WaitForSolr.ps1 "solr"; `
9 | Install-SitecoreConfiguration -Path "C:\\Files\\Config\\sxa-solr.json"
10 |
--------------------------------------------------------------------------------
/scripts/Import-Certificate.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $certificateFile = "",
3 | $secret = "",
4 | $storeName = "Root",
5 | $storeLocation = "LocalMachine"
6 | )
7 |
8 | $pwd = ConvertTo-SecureString -String $secret -Force -AsPlainText; `
9 | Import-PfxCertificate -FilePath $certificateFile -CertStoreLocation Cert:\$storeLocation\$storeName -Password $pwd
10 |
--------------------------------------------------------------------------------
/config/EnableItemServices.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Generate-Self-Signed-Certificate.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $dnsName = "",
3 | $file = "",
4 | $secret = "secret"
5 | )
6 |
7 | $cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname $dnsName -KeyExportPolicy Exportable -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider'
8 |
9 | $pwd = ConvertTo-SecureString -String $secret -Force -AsPlainText
10 |
11 | Export-PfxCertificate -cert $cert -FilePath $file -Password $pwd
12 |
--------------------------------------------------------------------------------
/docker-compose.sxa.yml:
--------------------------------------------------------------------------------
1 | # Overlay file for Aviva Solutions SXA specific Docker image names
2 | version: '2.4'
3 |
4 | services:
5 | commerce:
6 | image: "${IMAGE_PREFIX}commerce:${TAG}"
7 |
8 | mssql:
9 | image: "${IMAGE_PREFIX}mssql-sxa:${TAG}"
10 |
11 | sitecore:
12 | image: "${IMAGE_PREFIX}sitecore-sxa:${TAG}"
13 |
14 | solr:
15 | image: "${IMAGE_PREFIX}solr-sxa:${TAG}"
16 |
17 | xconnect:
18 | image: "${IMAGE_PREFIX}xconnect:${TAG}"
19 |
--------------------------------------------------------------------------------
/commerce/UpdateIdentityServerUrl.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $folder,
3 | $hostName
4 | )
5 |
6 | $pathToConfigJson = $(Join-Path -Path $folder -ChildPath wwwroot\config.json);
7 | $json = Get-Content $pathToConfigJson -raw | ConvertFrom-Json;
8 |
9 | $sitecoreIdentityServerUrl = 'http://{0}:5050' -f $hostName;
10 | $json.AppSettings.SitecoreIdentityServerUrl = $sitecoreIdentityServerUrl;
11 | $json = ConvertTo-Json $json -Depth 100;
12 | Set-Content $pathToConfigJson -Value $json -Encoding UTF8;
--------------------------------------------------------------------------------
/docker-compose.build-sxa.yml:
--------------------------------------------------------------------------------
1 | version: '2.4'
2 |
3 | services:
4 | sitecore:
5 | volumes:
6 | - .\logs\sitecore:c:\inetpub\wwwroot\${SITECORE_SITE_NAME}\App_Data\logs
7 | - .\wwwroot\sitecore:C:\Workspace
8 | - .\sitecore\sxa:C:\sxa
9 | - .\files:C:\files-mount
10 | environment:
11 | PSE_PACKAGE: ${PSE_PACKAGE}
12 | SXA_PACKAGE: ${SXA_PACKAGE}
13 | SCXA_PACKAGE: ${SCXA_PACKAGE}
14 |
15 | solr:
16 | image: "${IMAGE_PREFIX}solr-sxa:${TAG}"
17 |
--------------------------------------------------------------------------------
/Generate-Certificates.ps1:
--------------------------------------------------------------------------------
1 | .\Generate-Self-Signed-Certificate.ps1 -dnsName 'commerce.client' -file '.\Files\commerce.pfx' -secret 'secret'
2 |
3 | $cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname 'DO_NOT_TRUST_SitecoreRootCert' -KeyUsage DigitalSignature,CertSign -KeyExportPolicy Exportable -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider';
4 | $pwd = ConvertTo-SecureString -String 'secret' -Force -AsPlainText;
5 | Export-PfxCertificate -cert $cert -FilePath '.\Files\root.pfx' -Password $pwd;
6 |
--------------------------------------------------------------------------------
/commerce/UpdateSitecoreUrl.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $folder,
3 | $hostName
4 | )
5 |
6 | $pathToConfigJson = $(Join-Path -Path $folder -ChildPath wwwroot\data\Environments\PlugIn.Content.PolicySet-1.0.0.json);
7 | $json = Get-Content $pathToConfigJson -raw | ConvertFrom-Json;
8 |
9 | foreach ($p in $json.Policies.'$values') {
10 | if ($p.'$type' -eq 'Sitecore.Commerce.Plugin.Management.SitecoreConnectionPolicy, Sitecore.Commerce.Plugin.Management') {
11 | $p.Host = $hostName
12 | }
13 | }
14 |
15 | $json = ConvertTo-Json $json -Depth 100
16 | Set-Content $pathToConfigJson -Value $json -Encoding UTF8
--------------------------------------------------------------------------------
/sitecore/Sitecore.Commerce.Engine.Connectors.Index.Solr.InitializeOnAdd.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | true
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/sitecore/sxa/InstallSXA.ps1:
--------------------------------------------------------------------------------
1 | # Use Commerce SIF modules to install packages
2 | [Environment]::SetEnvironmentVariable('PSModulePath', $env:PSModulePath + ';/Files/CommerceSIF/Modules');
3 |
4 | # Copy utilities to install packages (this is taken from Sitecore Commerce SIF)
5 | Copy-Item -Path /Files/CommerceSIF/SiteUtilityPages -Destination c:\\inetpub\\wwwroot\\sitecore\\SiteUtilityPages -Force -Recurse
6 |
7 | # Install PSE and SXA packages
8 | Install-SitecoreConfiguration -Path '/sxa/install-sxa.json' `
9 | -PowershellExtensionPackageFullPath "/files-mount/$env:PSE_PACKAGE" `
10 | -SXAPackageFullPath "/files-mount/$env:SXA_PACKAGE" `
11 | -SCXAPackageFullPath "/files-mount/$env:SCXA_PACKAGE"
12 |
--------------------------------------------------------------------------------
/xconnect/Dockerfile:
--------------------------------------------------------------------------------
1 | # escape=`
2 | ARG BASE_IMAGE
3 | FROM ${BASE_IMAGE}
4 |
5 | ARG COMMERCE_MA_FOR_AUTOMATION_ENGINE_PACKAGE
6 |
7 | SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
8 |
9 | ADD files/ /Files/
10 |
11 | # Extract Marketing Automation, see InstallAutomationEngineModule SIF task
12 | RUN Expand-Archive -Path "/Files/$Env:COMMERCE_MA_FOR_AUTOMATION_ENGINE_PACKAGE" -DestinationPath C:\inetpub\wwwroot\xconnect
13 |
14 | # Copy XConnect Models for SC9 Commerce, see Connect.Copy.Models SIF task
15 | COPY xconnect/Sitecore.Commerce.Connect.XConnect.Models.json /Files/
16 | RUN cp /Files/Sitecore.Commerce.Connect.XConnect.Models.json C:\inetpub\wwwroot\xconnect\App_data\jobs\continuous\IndexWorker\App_data\Models\; `
17 | cp /Files/Sitecore.Commerce.Connect.XConnect.Models.json C:\inetpub\wwwroot\xconnect\App_data\Models\
18 |
--------------------------------------------------------------------------------
/solr/DockerFile:
--------------------------------------------------------------------------------
1 | # escape=`
2 | ARG BASE_IMAGE
3 | FROM ${BASE_IMAGE}
4 |
5 | SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop';"]
6 |
7 | ARG HOST_NAME
8 | ARG PORT=8983
9 | ARG SERVICE_NAME="Solr-6"
10 | ARG SITECORE_CORE_PREFIX="xp0"
11 | ARG COMMERCE_SIF_PACKAGE
12 |
13 | ADD files/$COMMERCE_SIF_PACKAGE /Files/
14 |
15 | RUN Expand-Archive -Path /Files/$Env:COMMERCE_SIF_PACKAGE -DestinationPath /Files/CommerceSIF
16 |
17 | # Set longer timeout after Solr start
18 | RUN $config = Get-Content "C:\\Files\\CommerceSIF\\Configuration\\Commerce\\Solr\\sitecore-commerce-solr.json" | Where-Object { $_ -notmatch '^\s*\/\/'} | Out-String | ConvertFrom-Json; `
19 | $config.Tasks.StartSolr.Params.PostDelay = 30000; `
20 | ConvertTo-Json $config -Depth 50 | Set-Content -Path "C:\\Files\\CommerceSIF\\Configuration\\Commerce\\Solr\\sitecore-commerce-solr.json"
21 |
22 | RUN $solrUrl = 'https://{0}:{1}/solr' -f $Env:HOST_NAME, $Env:PORT; `
23 | /Scripts/WaitForSolr.ps1 $Env:HOST_NAME; `
24 | Install-SitecoreConfiguration -Path "C:\\Files\\CommerceSIF\\Configuration\\Commerce\\Solr\\sitecore-commerce-solr.json" `
25 | -SolrUrl $solrUrl `
26 | -SolrRoot "c:\\solr\\solr-6.6.2" `
27 | -SolrService $Env:SERVICE_NAME `
28 | -CorePrefix $Env:SITECORE_CORE_PREFIX `
29 | -SolrSchemas "C:\\Files\\CommerceSIF\\SolrSchemas"
30 |
--------------------------------------------------------------------------------
/mssql/Dockerfile:
--------------------------------------------------------------------------------
1 | # escape=`
2 |
3 | # Stage 0: prepare files
4 | ARG BASE_IMAGE
5 | FROM microsoft/aspnet:4.7.1-windowsservercore-1709 AS prepare
6 |
7 | ARG COMMERCE_SDK_PACKAGE
8 | ARG COMMERCE_SIF_PACKAGE
9 |
10 | SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop';"]
11 |
12 | ADD files/ /Files/
13 |
14 | RUN Expand-Archive -Path /Files/$Env:COMMERCE_SDK_PACKAGE -DestinationPath /Files/Commerce
15 | RUN Expand-Archive -Path /Files/$Env:COMMERCE_SIF_PACKAGE -DestinationPath /Files/CommerceSIF
16 |
17 |
18 | # Stage 1: create actual image
19 | FROM ${BASE_IMAGE}
20 |
21 | SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop';"]
22 |
23 | ARG DB_PREFIX
24 |
25 | ENV SQL_PACKAGE_EXE='C:\Program Files (x86)\Microsoft SQL Server\*\DAC\bin\SqlPackage.exe'
26 |
27 | # Add files
28 | COPY --from=prepare /Files/Commerce /Files/Commerce/
29 | COPY --from=prepare /Files/CommerceSIF /Files/CommerceSIF/
30 |
31 | # Install commerce engine databases
32 | RUN & $Env:SQL_PACKAGE_EXE /a:Publish /sf:'c:/Files/Commerce/Sitecore.Commerce.Engine.DB.dacpac' /tdn:SitecoreCommerce9_SharedEnvironments /tsn:$Env:COMPUTERNAME
33 | RUN & $Env:SQL_PACKAGE_EXE /a:Publish /sf:'c:/Files/Commerce/Sitecore.Commerce.Engine.DB.dacpac' /tdn:SitecoreCommerce9_Global /tsn:$Env:COMPUTERNAME
34 |
35 | RUN sqlcmd -Q \"EXEC sp_MSforeachdb 'IF charindex(''Sitecore'', ''?'' ) = 1 BEGIN EXEC [?]..sp_changedbowner ''sa'' END'\"
--------------------------------------------------------------------------------
/commerce/UpdateConnectionString.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $folder,
3 | $userName,
4 | $password,
5 | $server
6 | )
7 |
8 | $pathToGlobalJson = $(Join-Path -Path $folder -ChildPath "wwwroot\bootstrap\Global.json")
9 | $json = Get-Content $pathToGlobalJson -raw | ConvertFrom-Json;
10 |
11 | foreach ($p in $json.Policies.'$values') {
12 | if ($p.'$type' -eq 'Sitecore.Commerce.Plugin.SQL.EntityStoreSqlPolicy, Sitecore.Commerce.Plugin.SQL') {
13 | $p.Server = $server
14 | $p.UserName = $userName
15 | $p.Password = $password
16 | $p.TrustedConnection = $false
17 | }
18 | }
19 |
20 | $json = ConvertTo-Json $json -Depth 100
21 | Set-Content $pathToGlobalJson -Value $json -Encoding UTF8
22 |
23 | $pathToEnvironmentFiles = $(Join-Path -Path $folder -ChildPath "wwwroot\data\Environments")
24 | $environmentFiles = Get-ChildItem $pathToEnvironmentFiles -Filter *.json
25 |
26 | foreach ($jsonFile in $environmentFiles) {
27 | $json = Get-Content $jsonFile.FullName -Raw | ConvertFrom-Json
28 | $updated = $false
29 |
30 | foreach ($p in $json.Policies.'$values') {
31 | if ($p.'$type' -eq 'Sitecore.Commerce.Plugin.SQL.EntityStoreSqlPolicy, Sitecore.Commerce.Plugin.SQL') {
32 | $p.Server = $server
33 | $p.UserName = $userName
34 | $p.Password = $password
35 | $p.TrustedConnection = $false
36 |
37 | $updated = $true
38 | }
39 | }
40 |
41 | if($updated -eq $true) {
42 | $json = ConvertTo-Json $json -Depth 100
43 |
44 | Set-Content $jsonFile.FullName -Value $json -Encoding UTF8
45 | }
46 | }
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '2.4'
2 |
3 | services:
4 | commerce:
5 | image: "${IMAGE_PREFIX}commerce:${TAG}"
6 | volumes:
7 | - .\logs\commerce\CommerceAuthoring_Sc9:C:\inetpub\wwwroot\CommerceAuthoring_Sc9\wwwroot\logs
8 | - .\logs\commerce\CommerceMinions_Sc9:C:\inetpub\wwwroot\CommerceMinions_Sc9\wwwroot\logs
9 | - .\logs\commerce\CommerceOps_Sc9:C:\inetpub\wwwroot\CommerceOps_Sc9\wwwroot\logs
10 | - .\logs\commerce\CommerceShops_Sc9:C:\inetpub\wwwroot\CommerceShops_Sc9\wwwroot\logs
11 | - .\logs\commerce\SitecoreIdentityServer:C:\inetpub\wwwroot\SitecoreIdentityServer\wwwroot\logs
12 | - .\wwwroot\commerce:C:\Workspace
13 | depends_on:
14 | - xconnect
15 | - mssql
16 | - solr
17 | - sitecore
18 | mem_limit: 4096m
19 | cpu_count: 6
20 |
21 | mssql:
22 | image: "${IMAGE_PREFIX}mssql:${TAG}"
23 | environment:
24 | ACCEPT_EULA: "Y"
25 | sa_password: ${SQL_SA_PASSWORD}
26 | mem_limit: 4096m
27 | cpu_count: 4
28 |
29 | sitecore:
30 | image: "${IMAGE_PREFIX}sitecore:${TAG}"
31 | volumes:
32 | - .\logs\sitecore:c:\inetpub\wwwroot\${SITECORE_SITE_NAME}\App_Data\logs
33 | - .\wwwroot\sitecore:C:\Workspace
34 | depends_on:
35 | - xconnect
36 | - mssql
37 | - solr
38 | mem_limit: 8192m
39 | cpu_count: 6
40 |
41 | solr:
42 | image: "${IMAGE_PREFIX}solr:${TAG}"
43 | mem_limit: 4096m
44 | cpu_count: 4
45 |
46 | xconnect:
47 | image: "${IMAGE_PREFIX}xconnect:${TAG}"
48 | volumes:
49 | - .\logs\xconnect:C:\inetpub\wwwroot\xconnect\App_data\Logs
50 | depends_on:
51 | - mssql
52 | - solr
53 | mem_limit: 2048m
54 | cpu_count: 4
55 |
--------------------------------------------------------------------------------
/scripts/WatchDirectoryMultiple.ps1:
--------------------------------------------------------------------------------
1 |
2 | [CmdletBinding()]
3 | param(
4 | # Path to watch for changes
5 | [Parameter(Mandatory=$true)]
6 | [ValidateScript({Test-Path $_ -PathType 'Container'})]
7 | $Path,
8 | # Array Destination path to keep updated
9 | [Parameter(Mandatory=$true)]
10 | [array]$Destinations,
11 | # Array of filename patterns (-like operator) to ignore
12 | [Parameter(Mandatory=$false)]
13 | [array]$Ignore = @("*\obj\*", "*.cs", "*.csproj", "*.user")
14 | )
15 |
16 | function Sync
17 | {
18 | Foreach($destination in $Destinations) {
19 | $dirty = $false
20 | $raw = (robocopy $Path $destination /E /XX /MT:1 /NJH /NJS /FP /NDL /NP /NS /R:5 /W:1 /XD obj /XF *.user /XF *ncrunch* /XF *.cs)
21 | $raw | ForEach-Object {
22 | $line = $_.Trim().Replace("`r`n", "").Replace("`t", " ")
23 | $dirty = ![string]::IsNullOrEmpty($line)
24 |
25 | if ($dirty)
26 | {
27 | Write-Host ("{0}: {1}" -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $line) -ForegroundColor DarkGray
28 | }
29 | }
30 |
31 | if ($dirty)
32 | {
33 | Write-Host ("{0}: Done syncing..." -f [DateTime]::Now.ToString("HH:mm:ss:fff")) -ForegroundColor Green
34 | }
35 | }
36 | }
37 |
38 | # Initial sync
39 | Sync | Out-Null
40 |
41 | Foreach($destination in $Destinations) {
42 | Write-Host ("{0}: Watching '{1}' for changes, will copy to '{2}' while ignoring '{3}'." -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $Path, $destination, ($Ignore -join ", "))
43 | }
44 |
45 | # Start
46 | while($true) {
47 | Sync | Write-Host
48 |
49 | Sleep -Milliseconds 500
50 | }
--------------------------------------------------------------------------------
/CopyCores.ps1:
--------------------------------------------------------------------------------
1 | # Script to copy Solr cores
2 | # Start and stop the Solr container and run this script.
3 | [CmdletBinding()]
4 | param(
5 | [Parameter(Mandatory=$false)]
6 | [string]$Container = 'sitecore-commerce-docker_solr_1',
7 | [Parameter(Mandatory=$false)]
8 | [string]$FromCoresFilePath = 'C:\solr\solr-6.6.2\server\solr',
9 | [Parameter(Mandatory=$false)]
10 | [string]$ToCoresFilePath = 'cores/'
11 | )
12 |
13 | mkdir -Force -Path ${ToCoresFilePath}
14 |
15 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_fxm_master_index ${ToCoresFilePath}
16 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_fxm_web_index ${ToCoresFilePath}
17 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_marketingdefinitions_master ${ToCoresFilePath}
18 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_marketingdefinitions_web ${ToCoresFilePath}
19 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_marketing_asset_index_web ${ToCoresFilePath}
20 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_marketing_asset_index_master ${ToCoresFilePath}
21 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_suggested_test_index ${ToCoresFilePath}
22 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_testing_index ${ToCoresFilePath}
23 |
24 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_core_index ${ToCoresFilePath}
25 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_master_index ${ToCoresFilePath}
26 | docker cp ${Container}:${FromCoresFilePath}\Sitecore_web_index ${ToCoresFilePath}
27 |
28 | docker cp ${Container}:${FromCoresFilePath}\xp0_xdb ${ToCoresFilePath}
29 | docker cp ${Container}:${FromCoresFilePath}\xp0_xdb_rebuild ${ToCoresFilePath}
30 |
31 | # LCOW mount binds do not yet support locking
32 | # Replace native locking by simple locking
33 | gci ${ToCoresFilePath} -recurse -filter "solrconfig.xml" | ForEach { (Get-Content $_.PSPath | ForEach {$_ -replace "solr.lock.type:native", "solr.lock.type:simple"}) | Set-Content $_.PSPath }
34 |
35 | # Fix wrong path configuration
36 | gci ${ToCoresFilePath} -recurse -filter "core.properties" | ForEach { (Get-Content $_.PSPath | ForEach {$_ -replace "config=conf\\solrconfig.xml", "config=solrconfig.xml"}) | Set-Content $_.PSPath }
37 |
38 | # Remove all lock files
39 | Remove-Item -Recurse -Path ${ToCoresFilePath} -include *.lock
40 |
--------------------------------------------------------------------------------
/sitecore/sxa/install-sxa.json:
--------------------------------------------------------------------------------
1 | {
2 | "Parameters": {
3 | "PowershellExtensionPackageFullPath": {
4 | "Type": "string",
5 | "Description": "The path to the Sitecore Powershell Extensions zip.",
6 | "DefaultValue": "/files-mount/pse-package.zip"
7 | },
8 | "SXAPackageFullPath": {
9 | "Type": "string",
10 | "Description": "The path to the SXA zip.",
11 | "DefaultValue": "/files-mount/sxa-package.zip"
12 | },
13 | "SCXAPackageFullPath": {
14 | "Type": "string",
15 | "Description": "The path to the SCXA zip.",
16 | "DefaultValue": "/files-mount/scxa-package.zip"
17 | },
18 | "PackagesDirDst": {
19 | "Type": "string",
20 | "Description": "The path to packages directory.",
21 | "DefaultValue": "C:\\inetpub\\wwwroot\\sitecore\\sitecore\\admin\\Packages\\"
22 | },
23 | "BaseUrl": {
24 | "Type": "string",
25 | "Description": "The utility pages base url.",
26 | "DefaultValue": "http://sitecore/SiteUtilityPages"
27 | }
28 | },
29 | "Modules": [ "SitecoreUtilityTasks" ],
30 | "Tasks": {
31 | "CheckPaths": {
32 | "Type": "EnsurePath",
33 | "Params": {
34 | "Exists": [
35 | "[parameter('PowershellExtensionPackageFullPath')]",
36 | "[parameter('SXAPackageFullPath')]",
37 | "[parameter('SCXAPackageFullPath')]",
38 | "[parameter('PackagesDirDst')]"
39 | ]
40 | }
41 | },
42 | "InstallPSEPackage": {
43 | "Type": "InstallPackage",
44 | "Params": {
45 | "PackageFullPath": "[parameter('PowershellExtensionPackageFullPath')]",
46 | "PackagesDirDst": "[parameter('PackagesDirDst')]",
47 | "BaseUrl": "[parameter('BaseUrl')]"
48 | }
49 | },
50 | "InstallSXAPackage": {
51 | "Type": "InstallPackage",
52 | "Params": {
53 | "PackageFullPath": "[parameter('SXAPackageFullPath')]",
54 | "PackagesDirDst": "[parameter('PackagesDirDst')]",
55 | "BaseUrl": "[parameter('BaseUrl')]"
56 | }
57 | },
58 | "InstallSCXAPackage": {
59 | "Type": "InstallPackage",
60 | "Params": {
61 | "PackageFullPath": "[parameter('SCXAPackageFullPath')]",
62 | "PackagesDirDst": "[parameter('PackagesDirDst')]",
63 | "BaseUrl": "[parameter('BaseUrl')]"
64 | }
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/commerce/WatchDirectoryMultiple.ps1:
--------------------------------------------------------------------------------
1 |
2 | [CmdletBinding()]
3 | param(
4 | # Path to watch for changes
5 | [Parameter(Mandatory=$true)]
6 | [ValidateScript({Test-Path $_ -PathType 'Container'})]
7 | $Path,
8 | # Array Destination path to keep updated
9 | [Parameter(Mandatory=$true)]
10 | [array]$Destinations,
11 | # Array of filename patterns (-like operator) to ignore
12 | [Parameter(Mandatory=$false)]
13 | [array]$Ignore = @("*\obj\*", "*.cs", "*.csproj", "*.user")
14 | )
15 |
16 | function Sync
17 | {
18 | Get-ChildItem -Path $Path -Recurse -File | % {
19 | $sourcePath = $_.FullName
20 |
21 | Foreach($destination in $Destinations) {
22 | $targetPath = ("{0}\{1}" -f $destination, $sourcePath.Replace("$Path\", ""))
23 | $ignored = $false
24 |
25 | if($Ignore -ne $null -and $Ignore.Length -gt 0) {
26 | :filter foreach($filter in $Ignore) {
27 | if($sourcePath -like $filter)
28 | {
29 | $ignored = $true
30 | break :filter
31 | }
32 | }
33 | }
34 |
35 | if($ignored -eq $false)
36 | {
37 | $triggerReason = $null
38 |
39 | if(Test-Path -Path $targetPath -PathType Leaf)
40 | {
41 | Compare-Object (Get-Item $sourcePath) (Get-Item $targetPath) -Property Name, Length, LastWriteTime | % {
42 | $triggerReason = "Different"
43 | }
44 | }
45 | else
46 | {
47 | $triggerReason = "Missing"
48 | }
49 |
50 | if($triggerReason -ne $null)
51 | {
52 | New-Item -Path (Split-Path $targetPath) -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
53 |
54 | Copy-Item -Path $sourcePath -Destination $targetPath -Force
55 |
56 | Write-Output ("{0}: {1, -9} -> {2, -9}" -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $triggerReason, ($sourcePath.Replace("$Path\", "")))
57 | }
58 | }
59 | }
60 | }
61 | }
62 |
63 | Write-Host ("{0}: Warming up..." -f [DateTime]::Now.ToString("HH:mm:ss:fff"))
64 |
65 | # Initial sync
66 | Sync | Out-Null
67 |
68 | # Warm up
69 | try
70 | {
71 | Invoke-WebRequest -Uri "http://localhost:80" -UseBasicParsing -TimeoutSec 20 -ErrorAction "SilentlyContinue" | Out-Null
72 | }
73 | catch
74 | {
75 | # OK
76 | }
77 |
78 | Write-Host ("{0}: Watching '{1}' for changes, will copy to '{2}' while ignoring '{3}'." -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $Path, $Destinations, ($Ignore -join ", "))
79 |
80 | # Start
81 | while($true)
82 | {
83 | Sync | Write-Host
84 |
85 | Sleep -Milliseconds 500
86 | }
--------------------------------------------------------------------------------
/scripts/Watch-Directory.ps1:
--------------------------------------------------------------------------------
1 | [CmdletBinding()]
2 | param(
3 | # Path to watch for changes
4 | [Parameter(Mandatory = $true)]
5 | [ValidateScript( {Test-Path $_ -PathType 'Container'})]
6 | $Path,
7 | # Destination path to keep updated
8 | [Parameter(Mandatory = $true)]
9 | [ValidateScript( {Test-Path $_ -PathType 'Container'})]
10 | $Destination
11 | )
12 |
13 | function Sync
14 | {
15 | param(
16 | [Parameter(Mandatory = $true)]
17 | $Path,
18 | [Parameter(Mandatory = $true)]
19 | $Destination
20 | )
21 |
22 | $dirty = $false
23 | $raw = (robocopy $Path $Destination /E /XX /MT:1 /NJH /NJS /FP /NDL /NP /NS /R:5 /W:1 /XD obj /XF *.user /XF *ncrunch* /XF *.cs)
24 | $raw | ForEach-Object {
25 | $line = $_.Trim().Replace("`r`n", "").Replace("`t", " ")
26 | $dirty = ![string]::IsNullOrEmpty($line)
27 |
28 | if ($dirty)
29 | {
30 | Write-Host ("{0}: {1}" -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $line) -ForegroundColor DarkGray
31 | }
32 | }
33 |
34 | if ($dirty)
35 | {
36 | Write-Host ("{0}: Done syncing..." -f [DateTime]::Now.ToString("HH:mm:ss:fff")) -ForegroundColor Green
37 | }
38 | }
39 |
40 | Write-Host ("{0}: Watching '{1}' for changes, will copy to '{2}'..." -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $Path, $Destination)
41 |
42 | # Cleanup old event if present in current session
43 | Get-EventSubscriber -SourceIdentifier "FileDeleted" -ErrorAction "SilentlyContinue" | Unregister-Event
44 |
45 | # Setup
46 | $watcher = New-Object System.IO.FileSystemWatcher
47 | $watcher.Path = $Path
48 | $watcher.IncludeSubdirectories = $true
49 | $watcher.EnableRaisingEvents = $true
50 |
51 | Register-ObjectEvent $watcher Deleted -SourceIdentifier "FileDeleted" -MessageData $Destination {
52 | $destinationPath = Join-Path $event.MessageData $eventArgs.Name
53 | $delete = !(Test-Path $eventArgs.FullPath) -and (Test-Path $destinationPath)
54 |
55 | if ($delete)
56 | {
57 | try
58 | {
59 | Remove-Item -Path $destinationPath -Force -Recurse -ErrorAction "SilentlyContinue"
60 |
61 | Write-Host ("{0}: Deleted '{1}'..." -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $destinationPath) -ForegroundColor Green
62 | }
63 | catch
64 | {
65 | Write-Host ("{0}: Could not delete '{1}'..." -f [DateTime]::Now.ToString("HH:mm:ss:fff"), $destinationPath) -ForegroundColor Red
66 | }
67 | }
68 | } | Out-Null
69 |
70 | try
71 | {
72 | # Main loop
73 | while ($true)
74 | {
75 | Sync -Path $Path -Destination $Destination | Write-Host
76 |
77 | Start-Sleep -Milliseconds 200
78 | }
79 | }
80 | finally
81 | {
82 | # Cleanup
83 | Get-EventSubscriber -SourceIdentifier "FileDeleted" | Unregister-Event
84 |
85 | if ($watcher -ne $null)
86 | {
87 | $watcher.Dispose()
88 | $watcher = $null
89 | }
90 |
91 | Write-Host ("{0}: Stopped." -f [DateTime]::Now.ToString("HH:mm:ss:fff")) -ForegroundColor Red
92 | }
--------------------------------------------------------------------------------
/sitecore/Dockerfile:
--------------------------------------------------------------------------------
1 | # escape=`
2 |
3 | # Stage 0: prepare files
4 | ARG BASE_IMAGE
5 | FROM microsoft/aspnet:4.7.1-windowsservercore-1709 AS prepare
6 |
7 | ARG COMMERCE_SIF_PACKAGE
8 | ARG COMMERCE_CONNECT_PACKAGE
9 | ARG COMMERCE_MA_PACKAGE
10 | ARG COMMERCE_MA_FOR_AUTOMATION_ENGINE_PACKAGE
11 | ARG COMMERCE_XPROFILES_PACKAGE
12 | ARG COMMERCE_XANALYTICS_PACKAGE
13 |
14 | SHELL ["powershell", "-NoProfile", "-Command", "$ErrorActionPreference = 'Stop';"]
15 |
16 | ADD files/ /Files/
17 |
18 | RUN Expand-Archive -Path "/Files/$Env:COMMERCE_SIF_PACKAGE" -DestinationPath /Files/CommerceSIF -Force; `
19 | Expand-Archive -Path "/Files/$Env:COMMERCE_CONNECT_PACKAGE" -DestinationPath /Files/SitecoreCommerceConnectCore -Force; `
20 | Expand-Archive -Path "/Files/$Env:COMMERCE_MA_PACKAGE" -DestinationPath /Files/CommerceMACore -Force; `
21 | Expand-Archive -Path "/Files/$Env:COMMERCE_MA_FOR_AUTOMATION_ENGINE_PACKAGE" -DestinationPath /Files/CommerceMACoreForAE -Force; `
22 | Expand-Archive -Path "/Files/$Env:COMMERCE_XPROFILES_PACKAGE" -DestinationPath /Files/CommerceXProfiles -Force; `
23 | Expand-Archive -Path "/Files/$Env:COMMERCE_XANALYTICS_PACKAGE" -DestinationPath /Files/CommerceXAnalytics -Force
24 |
25 | # Stage 1: perform actual build
26 | FROM ${BASE_IMAGE}
27 |
28 | SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
29 |
30 | ARG COMMERCE_CERT_PATH
31 | ARG ROOT_CERT_PATH
32 | ARG WEB_TRANSFORM_TOOL
33 | ARG COMMERCE_CONNECT_ENGINE_PACKAGE
34 |
35 | COPY --from=prepare /Files/CommerceSIF /Files/CommerceSIF/
36 | COPY --from=prepare /Files/SitecoreCommerceConnectCore /Files/SitecoreCommerceConnectCore
37 | COPY --from=prepare /Files/CommerceMACore /Files/CommerceMACore
38 | COPY --from=prepare /Files/CommerceMACoreForAE /Files/CommerceMACoreForAE
39 | COPY --from=prepare /Files/CommerceXProfiles /Files/CommerceXProfiles
40 | COPY --from=prepare /Files/CommerceXAnalytics /Files/CommerceXAnalytics
41 | COPY --from=prepare /Files/${WEB_TRANSFORM_TOOL} /Files/Microsoft.Web.XmlTransform.dll
42 | COPY --from=prepare /Files/${COMMERCE_CONNECT_ENGINE_PACKAGE} /Files/Sitecore.Commerce.Engine.Connect.update
43 | COPY --from=prepare /Files/${ROOT_CERT_PATH} /Files/${ROOT_CERT_PATH}
44 |
45 | ADD sitecore/InstallCommercePackages.ps1 /Scripts/
46 | ADD files/$COMMERCE_CERT_PATH /Files/
47 | ADD scripts/Import-Certificate.ps1 /Scripts/
48 |
49 | # Trust Self signed certificates
50 | RUN /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:COMMERCE_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'; `
51 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:ROOT_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'
52 |
53 | # Import XConnect certificate
54 | RUN /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:COMMERCE_CERT_PATH -secret 'secret' -storeName 'My' -storeLocation 'LocalMachine'; `
55 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:ROOT_CERT_PATH -secret 'secret' -storeName 'My' -storeLocation 'LocalMachine'
56 |
57 | # Patch Solr config, set initializeOnAdd = true
58 | # See: https://sitecore.stackexchange.com/questions/11523/index-sitecore-marketingdefinitions-master-was-not-found-exception-in-sitecore
59 | ADD sitecore/Sitecore.Commerce.Engine.Connectors.Index.Solr.InitializeOnAdd.config /Files/
60 | RUN cp /Files/Sitecore.Commerce.Engine.Connectors.Index.Solr.InitializeOnAdd.config /inetpub/wwwroot/sitecore/App_Config/Include/zSitecore.Commerce.Engine.Connectors.Index.Solr.InitializeOnAdd.config
61 |
62 | ENTRYPOINT /Scripts/Watch-Directory.ps1 -Path C:\Workspace -Destination c:\inetpub\wwwroot\sitecore
63 |
--------------------------------------------------------------------------------
/CopyDatabases.ps1:
--------------------------------------------------------------------------------
1 | [CmdletBinding()]
2 | param(
3 | [Parameter(Mandatory=$false)]
4 | [string]$Container = 'sitecore-commerce-docker_mssql_1',
5 | [Parameter(Mandatory=$false)]
6 | [string]$FromDatabaseFilePath = 'C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA',
7 | [Parameter(Mandatory=$false)]
8 | [string]$ToDatabaseFilePath = 'databases/'
9 | )
10 |
11 | mkdir -Force -Path ${ToDatabaseFilePath}
12 |
13 | docker cp ${Container}:${FromDatabaseFilePath}\SitecoreCommerce9_Global_Primary.mdf ${ToDatabaseFilePath}
14 | docker cp ${Container}:${FromDatabaseFilePath}\SitecoreCommerce9_Global_Primary.ldf ${ToDatabaseFilePath}
15 |
16 | docker cp ${Container}:${FromDatabaseFilePath}\SitecoreCommerce9_SharedEnvironments_Primary.mdf ${ToDatabaseFilePath}
17 | docker cp ${Container}:${FromDatabaseFilePath}\SitecoreCommerce9_SharedEnvironments_Primary.ldf ${ToDatabaseFilePath}
18 |
19 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Core_Primary.mdf ${ToDatabaseFilePath}
20 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Core_Primary.ldf ${ToDatabaseFilePath}
21 |
22 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_ExperienceForms_Primary.mdf ${ToDatabaseFilePath}
23 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_ExperienceForms_Primary.ldf ${ToDatabaseFilePath}
24 |
25 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_MarketingAutomation_Primary.mdf ${ToDatabaseFilePath}
26 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_MarketingAutomation_Primary.ldf ${ToDatabaseFilePath}
27 |
28 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Master_Primary.mdf ${ToDatabaseFilePath}
29 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Master_Primary.ldf ${ToDatabaseFilePath}
30 |
31 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Processing.Pools_Primary.mdf ${ToDatabaseFilePath}
32 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Processing.Pools_Primary.ldf ${ToDatabaseFilePath}
33 |
34 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Processing.Tasks_Primary.mdf ${ToDatabaseFilePath}
35 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Processing.Tasks_Primary.ldf ${ToDatabaseFilePath}
36 |
37 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_ReferenceData_Primary.mdf ${ToDatabaseFilePath}
38 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_ReferenceData_Primary.ldf ${ToDatabaseFilePath}
39 |
40 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Master_Primary.mdf ${ToDatabaseFilePath}
41 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Master_Primary.ldf ${ToDatabaseFilePath}
42 |
43 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Reporting_Primary.mdf ${ToDatabaseFilePath}
44 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Reporting_Primary.ldf ${ToDatabaseFilePath}
45 |
46 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Web_Primary.mdf ${ToDatabaseFilePath}
47 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Web_Primary.ldf ${ToDatabaseFilePath}
48 |
49 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Xdb.Collection.Shard0.mdf ${ToDatabaseFilePath}
50 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Xdb.Collection.Shard0_log.ldf ${ToDatabaseFilePath}
51 |
52 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Xdb.Collection.Shard1_Primary.mdf ${ToDatabaseFilePath}
53 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Xdb.Collection.Shard1_Primary.ldf ${ToDatabaseFilePath}
54 |
55 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Xdb.Collection.ShardMapManager.mdf ${ToDatabaseFilePath}
56 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Xdb.Collection.ShardMapManager_log.ldf ${ToDatabaseFilePath}
57 |
58 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Messaging_Primary.mdf ${ToDatabaseFilePath}
59 | docker cp ${Container}:${FromDatabaseFilePath}\Sitecore_Messaging_Primary.ldf ${ToDatabaseFilePath}
60 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > THIS REPO IS NO LONGER MAINTAINED.
2 | >
3 | > The Sitecore XC Docker configuration is now available in [sitecore-docker](https://github.com/avivasolutionsnl/sitecore-docker).
4 |
5 | Run Sitecore Commerce 9 using Docker and Windows containers.
6 |
7 | # Disclaimer
8 | This repository contains experimental code that we use in development setups. We do not consider the current code in this repository ready for production.
9 | Hopefully this will help you to get up and running with Sitecore and Docker. By no means we consider ourselves Docker experts and thus expect these images to still contain a lot of bugs. Great help for creating this setup was provided by the [sitecoreops](https://github.com/sitecoreops/sitecore-images) and [sitecore-nine-docker](https://github.com/pbering/sitecore-nine-docker) repos. Please feel free to provide feedback by creating an issue, PR, etc.
10 |
11 | # Requirements
12 | - Windows 10 update 1709 (with Hyper-V enabled)
13 | - Docker for Windows (version 1712 or better): https://docs.docker.com/docker-for-windows/
14 | - Visual Studio 15.5.3
15 | - Sitecore Commerce 9 installation files
16 | - [Nuke.build](https://nuke.build)
17 |
18 |
19 | # Build
20 | As Sitecore does not distribute Docker images, the first step is to build the required Docker images.
21 |
22 | ## Pre-build steps
23 | For this you need the Sitecore installation files and a Sitecore license file. Plumber is installed to inspect Commerce pipelines, download it [here](https://github.com/ewerkman/plumber-sc/releases) and save it as `files/plumber.zip`. What files to use are set in the [build configuration](./build/Build.cs).
24 |
25 | As this Sitecore Commerce Docker build relies on Sitecore Docker, first build the Sitecore Docker images: https://github.com/avivasolutionsnl/sitecore-docker
26 | From the Sitecore Docker `files` directory copy all `.pfx` certificate files to the `files/` directory.
27 |
28 | The Commerce setup requires by default SSL between the services, for this we need (more) self signed certificates. You can generate these by running the `./Generate-Certificates.ps1` script (note that this requires an Administrator elevated powershell environment and you may need to set the correct execution policy, e.g. `PS> powershell.exe -ExecutionPolicy Unrestricted`).
29 |
30 | ## Build step
31 | Build all images using:
32 | ```
33 | PS> nuke
34 | ```
35 |
36 | The build results in the following Docker images:
37 | - commerce: ASP.NET
38 | - mssql: MS SQL + Sitecore databases
39 | - sitecore: IIS + ASP.NET + Sitecore
40 | - solr: Apache Solr
41 |
42 | and three SXA images:
43 | - sitecore-sxa
44 | - solr-sxa
45 | - mssql-sxa
46 |
47 | ### Push images
48 | Push the Docker images to your repository, e.g:
49 | ```
50 | PS> nuke push
51 | ```
52 |
53 |
54 | # Run
55 | Docker compose is used to start up all required services.
56 |
57 | Place the Sitecore source files in the `.\wwwroot\sitecore` directory and Commerce source files in `.\wwwroot\commerce`.
58 |
59 | Create the log directories which are mounted in the Docker compose file:
60 | ```
61 | PS> ./CreateLogDirs.ps1
62 | ```
63 |
64 | To start Sitecore;
65 | ```
66 | PS> docker-compose up
67 | ```
68 |
69 | or to start Sitecore with SXA:
70 | ```
71 | PS> docker-compose -f docker-compose.yml -f docker-compose.sxa.yml up
72 | ```
73 |
74 | Run-time parameters can be modified using the `.env` file:
75 |
76 | | Field | Description |
77 | | ------------------------- | ------------------------------------------------ |
78 | | SQL_SA_PASSWORD | The password to use for the SQL sa user |
79 | | SITECORE_SITE_NAME | Host name of the Sitecore site |
80 | | IMAGE_PREFIX | The Docker image prefix to use |
81 | | TAG | The version to tag the Docker images with |
82 |
83 |
84 | ## Plumber
85 | Plumber is available at: http://commerce:4000
86 |
87 | ## DNS
88 | To set the Docker container service names as DNS names on your host edit your `hosts` file.
89 | A convenient tool to automatically do this is [whales-names](https://github.com/gregolsky/whales-names).
90 |
91 | ## Log files
92 | Logging is set up to log on the host under the logs folder of this repository.
93 |
94 | # Known issues
95 | Docker for Windows can be unstable at times, some troubleshooting tips are listed below and [here](https://github.com/avivasolutionsnl/sitecore-docker)
96 |
97 | ## Commerce setup
98 | - We have quite a lot of custom powershell scripts for trivial installation tasks. This is because the commerce SIF scripts contain hardcoded values. For example, it is not possible to use hostnames other than localhost. We should be able to remove this custom code when those scripts get fixed.
99 | - During the installation of the commerce server instances, it tries to set permissions on the log folder. For some reason, this results in an exception saying the access control list is not in canonical form. This can be ignored, because the log folders are mounted on the host. However, it does cause an annoying delay in the installation.
100 |
--------------------------------------------------------------------------------
/sitecore/InstallCommercePackages.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $certificateFile = 'c:\\Files\\commerce.pfx',
3 | $shopsServiceUrl = 'https://commerce:5000/api/',
4 | $commerceOpsServiceUrl = 'https://commerce:5000/commerceops/',
5 | $identityServerUrl = 'https://commerce:5050/',
6 | $defaultEnvironment = 'HabitatShops',
7 | $defaultShopName = 'CommerceEngineDefaultStorefront',
8 | $sitecoreUserName = 'sitecore\admin',
9 | $sitecorePassword = 'b'
10 | )
11 |
12 | Function GetIdServerToken {
13 | param(
14 | [Parameter(Mandatory = $true)]
15 | [string]$userName,
16 | [Parameter(Mandatory = $true)]
17 | [string]$password,
18 | [Parameter(Mandatory = $true)]
19 | [string]$urlIdentityServerGetToken
20 | )
21 |
22 | $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
23 | $headers.Add("Content-Type", 'application/x-www-form-urlencoded')
24 | $headers.Add("Accept", 'application/json')
25 |
26 | $body = @{
27 | password = $password
28 | grant_type = 'password'
29 | username = $userName
30 | client_id = 'postman-api'
31 | scope = 'openid EngineAPI postman_api'
32 | }
33 |
34 | Write-Host "Get Token From Sitecore.IdentityServer" -ForegroundColor Green
35 | $response = Invoke-RestMethod $urlIdentityServerGetToken -Method Post -Body $body -Headers $headers
36 |
37 | return "Bearer {0}" -f $response.access_token
38 | }
39 |
40 | Function BootStrapCommerceServices {
41 | param(
42 | [Parameter(Mandatory = $true)]
43 | [string]$urlCommerceShopsServicesBootstrap,
44 | [Parameter(Mandatory = $true)]
45 | [string]$bearerToken
46 | )
47 |
48 | Write-Host "BootStrapping Commerce Services: $($urlCommerceShopsServicesBootstrap)" -ForegroundColor Yellow
49 | $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
50 | $headers.Add("Authorization", $bearerToken)
51 | Invoke-RestMethod $urlCommerceShopsServicesBootstrap -TimeoutSec 1200 -Method PUT -Headers $headers
52 | Write-Host "Commerce Services BootStrapping completed" -ForegroundColor Green
53 | }
54 |
55 | Function InitializeCommerceServices {
56 | param(
57 | [Parameter(Mandatory = $true)]
58 | [string]$urlCommerceShopsServicesInitializeEnvironment,
59 | [Parameter(Mandatory = $true)]
60 | [string]$bearerToken
61 | )
62 |
63 | $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
64 | $headers.Add("Authorization", $bearerToken);
65 | Write-Host "Initializing Shops: $($urlCommerceShopsServicesInitializeEnvironment)" -ForegroundColor Yellow
66 |
67 | Invoke-RestMethod $urlCommerceShopsServicesInitializeEnvironment -TimeoutSec 1200 -Method PUT -Headers $headers
68 |
69 | Write-Host "Shops initialization complete..." -ForegroundColor Green
70 | }
71 |
72 | [Environment]::SetEnvironmentVariable('PSModulePath', $env:PSModulePath + ';/Files/CommerceSIF/Modules');
73 |
74 | Copy-Item -Path /Files/CommerceSIF/SiteUtilityPages -Destination c:\\inetpub\\wwwroot\\sitecore\\SiteUtilityPages -Force -Recurse
75 |
76 | Install-SitecoreConfiguration -Path '/Files/CommerceSIF/Configuration/Commerce/Connect/Connect.json' `
77 | -ModuleFullPath '/Files/SitecoreCommerceConnectCore/package.zip' `
78 | -ModulesDirDst c:\\inetpub\wwwroot\\sitecore\\App_Data\\packages `
79 | -BaseUrl 'http://sitecore/SiteUtilityPages'
80 |
81 | Install-SitecoreConfiguration -Path '/Files/CommerceSIF/Configuration/Commerce/Connect/Connect_xProfiles.json' `
82 | -ModuleFullPath '/Files/CommerceXProfiles/package.zip' `
83 | -ModulesDirDst c:\\inetpub\wwwroot\\sitecore\\App_Data\\packages `
84 | -BaseUrl 'http://sitecore/SiteUtilityPages'
85 |
86 | Install-SitecoreConfiguration -Path '/Files/CommerceSIF/Configuration/Commerce/Connect/Connect_xAnalytics.json' `
87 | -ModuleFullPath '/Files/CommerceXAnalytics/package.zip' `
88 | -ModulesDirDst c:\\inetpub\wwwroot\\sitecore\\App_Data\\packages `
89 | -BaseUrl 'http://sitecore/SiteUtilityPages'
90 |
91 | Install-SitecoreConfiguration -Path '/Files/CommerceSIF/Configuration/Commerce/Connect/Connect_MarketingAutomation.json' `
92 | -ModuleFullPath '/Files/CommerceMACore/package.zip' `
93 | -ModulesDirDst c:\\inetpub\wwwroot\\sitecore\\App_Data\\packages `
94 | -BaseUrl 'http://sitecore/SiteUtilityPages' `
95 | -AutomationEngineModule 'none' `
96 | -XConnectSitePath 'none' `
97 | -Skip 'InstallAutomationEngineModule' # Automation Engine is installed in XConnect
98 |
99 | Install-SitecoreConfiguration -Path '/Files/CommerceSIF/Configuration/Commerce/CEConnect/CEConnect.json' `
100 | -PackageFullPath /Files/Sitecore.Commerce.Engine.Connect.update `
101 | -PackagesDirDst c:\\inetpub\wwwroot\\sitecore\\sitecore\\admin\\Packages `
102 | -BaseUrl 'http://sitecore/SiteUtilityPages' `
103 | -MergeTool '/Files/Microsoft.Web.XmlTransform.dll' `
104 | -InputFile c:\\inetpub\\wwwroot\\sitecore\\MergeFiles\\Sitecore.Commerce.Engine.Connectors.Merge.Config `
105 | -WebConfig c:\\inetpub\\wwwroot\\sitecore\\web.config
106 |
107 | # Modify the commerce engine connection
108 | $engineConnectIncludeDir = 'c:\\inetpub\\wwwroot\\sitecore\\App_Config\\Include\\Y.Commerce.Engine'; `
109 | $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2; `
110 | $cert.Import($certificateFile, 'secret', 'MachineKeySet'); `
111 | $pathToConfig = $(Join-Path -Path $engineConnectIncludeDir -ChildPath "\Sitecore.Commerce.Engine.Connect.config"); `
112 | $xml = [xml](Get-Content $pathToConfig); `
113 | $node = $xml.configuration.sitecore.commerceEngineConfiguration; `
114 | $node.certificateThumbprint = $cert.Thumbprint; `
115 | $node.shopsServiceUrl = $shopsServiceUrl; `
116 | $node.commerceOpsServiceUrl = $commerceOpsServiceUrl; `
117 | $node.defaultEnvironment = $defaultEnvironment; `
118 | $node.defaultShopName = $defaultShopName; `
119 | $xml.Save($pathToConfig);
120 |
121 | # Initialize the commerce engine
122 | $bearerToken = GetIdServerToken -userName $sitecoreUserName -password $sitecorePassword -urlIdentityServerGetToken "${identityServerUrl}connect/token"
123 |
124 | BootStrapCommerceServices -urlCommerceShopsServicesBootstrap "${commerceOpsServiceUrl}Bootstrap()" -bearerToken $bearerToken
125 | InitializeCommerceServices -urlCommerceShopsServicesInitializeEnvironment "${commerceOpsServiceUrl}InitializeEnvironment(environment='$defaultEnvironment')" -bearerToken $bearerToken
126 |
127 | $commerceConfigFolder = 'C:\inetpub\wwwroot\sitecore\App_Config\Include\Y.Commerce.Engine'
128 | Rename-Item $commerceConfigFolder\Sitecore.Commerce.Engine.DataProvider.config.disabled $commerceConfigFolder\Sitecore.Commerce.Engine.DataProvider.config
129 | Rename-Item $commerceConfigFolder\Sitecore.Commerce.Engine.Connectors.Index.Common.config.disabled $commerceConfigFolder\Sitecore.Commerce.Engine.Connectors.Index.Common.config
130 | Rename-Item $commerceConfigFolder\Sitecore.Commerce.Engine.Connectors.Index.Solr.config.disabled $commerceConfigFolder\Sitecore.Commerce.Engine.Connectors.Index.Solr.config
131 |
--------------------------------------------------------------------------------
/solr/sxa/sxa-solr.json:
--------------------------------------------------------------------------------
1 | // -------------------------------------------------------------------------- //
2 | // Sitecore Install Framework - Sitecore Solr Configuration //
3 | // //
4 | // Run this configuration on your Solr instance to configure the cores for //
5 | // an Sitecore deployment. If the cores exist, they will be overwritten. //
6 | // //
7 | // NOTE: Only single line comments are accepted in configurations. //
8 | // -------------------------------------------------------------------------- //
9 |
10 | {
11 | "Parameters": {
12 | // Parameters are values that may be passed when Install-SitecoreConfiguration is called.
13 | // Parameters must declare a Type and may declare a DefaultValue and Description.
14 | // Parameters with no DefaultValue are required when Install-SitecoreConfiguration is called.
15 |
16 | "SolrUrl": {
17 | "Type": "string",
18 | "DefaultValue": "https://solr:8983/solr",
19 | "Description": "The Solr instance url."
20 | },
21 | "SolrRoot": {
22 | "Type": "string",
23 | "DefaultValue": "c:\\solr\\solr-6.6.2",
24 | "Description": "The file path to the Solr instance."
25 | },
26 | "SolrService": {
27 | "Type": "string",
28 | "DefaultValue": "Solr-6",
29 | "Description": "The name of the Solr service."
30 | },
31 | "BaseConfig": {
32 | "Type": "string",
33 | "DefaultValue": "basic_configs",
34 | "Description": "The configset to copy as a base for each core."
35 | },
36 | "CorePrefix": {
37 | "Type": "string",
38 | "DefaultValue": "sitecore",
39 | "Description": "The prefix for each of the created indexes."
40 | }
41 | },
42 | "Variables": {
43 | // Variables are values calculated in a configuration.
44 | // They can reference Parameters, other Variables, and config functions.
45 |
46 | // Resolves the full path to Solr on disk in case a relative path was passed.
47 | "Solr.FullRoot": "[resolvepath(parameter('SolrRoot'))]",
48 |
49 | // Resolves the full solr folder path on disk.
50 | "Solr.Server": "[joinpath(variable('Solr.FullRoot'), 'server', 'solr')]",
51 |
52 | // Resolves the full path for the base configset to use for each core.
53 | "Solr.BaseConfigs": "[joinpath(variable('Solr.Server'), 'configsets', parameter('BaseConfig'))]",
54 |
55 | // Solr schema file to be modified.
56 | "Solr.SchemaFileName": "managed-schema",
57 |
58 | // Solr schema xpaths to be modified.
59 | "Solr.Xpath.SchemaRoot": "//schema",
60 | "Solr.Xpath.UniqueKey": "[concat(variable('Solr.Xpath.SchemaRoot'), '/uniqueKey')]",
61 |
62 | // The solr unique field info.
63 | "Solr.UniqueField" : "_uniqueid",
64 | "Solr.UniqueField.Attributes": {
65 | "name" : "[variable('Solr.UniqueField')]",
66 | "type": "string",
67 | "indexed": "true",
68 | "required": "true",
69 | "stored": "true"
70 | },
71 |
72 | // The names of the cores to create.
73 | "SXAMaster.Name": "[concat(parameter('CorePrefix'), '_sxa_master_index')]",
74 | "SXAWeb.Name": "[concat(parameter('CorePrefix'), '_sxa_web_index')]",
75 |
76 | // The destination paths of the cores to create.
77 | "SXAMaster.Root": "[joinpath(variable('Solr.Server'), variable('SXAMaster.Name'))]",
78 | "SXAWeb.Root": "[joinpath(variable('Solr.Server'), variable('SXAWeb.Name'))]",
79 |
80 | // The destination paths for the base configurations of each core.
81 | "SXAMaster.Conf": "[joinpath(variable('SXAMaster.Root'), 'conf')]",
82 | "SXAWeb.Conf": "[joinpath(variable('SXAWeb.Root'), 'conf')]"
83 | },
84 | "Tasks": {
85 | // Tasks are separate units of work in a configuration.
86 | // Each task is an action that will be completed when Install-SitecoreConfiguration is called.
87 | // By default, tasks are applied in the order they are declared.
88 | // Tasks may reference Parameters, Variables, and config functions.
89 |
90 | "StopSolr": {
91 | // Stops the Solr service if it is running.
92 | "Type": "ManageService",
93 | "Params":{
94 | "Name": "[parameter('SolrService')]",
95 | "Status": "Stopped",
96 | "PostDelay": 1000
97 | }
98 | },
99 | "CleanCores": {
100 | // Creates/clears core paths.
101 | "Type": "EnsurePath",
102 | "Params":{
103 | "Clean": [
104 | "[variable('SXAMaster.Root')]",
105 | "[variable('SXAWeb.Root')]"
106 | ]
107 | }
108 | },
109 | "PrepareCores": {
110 | // Copies base configs into the core paths.
111 | "Type": "Copy",
112 | "Params":[
113 | { "Source": "[joinpath(variable('Solr.BaseConfigs'), '*')]", "Destination": "[variable('SXAMaster.Root')]" },
114 | { "Source": "[joinpath(variable('Solr.BaseConfigs'), '*')]", "Destination": "[variable('SXAWeb.Root')]" }
115 | ]
116 | },
117 | "AddSchemaUniqueKeyField": {
118 | // Amends the core managed schema uniqueKey element
119 | "Type": "SetXml",
120 | "Params": [
121 | { "FilePath": "[joinpath(variable('SXAMaster.Conf'), variable('Solr.SchemaFileName'))]", "Xpath":"[variable('Solr.Xpath.SchemaRoot')]", "Element": "field", "Attributes": "[variable('Solr.UniqueField.Attributes')]" },
122 | { "FilePath": "[joinpath(variable('SXAWeb.Conf'), variable('Solr.SchemaFileName'))]", "Xpath":"[variable('Solr.Xpath.SchemaRoot')]", "Element": "field", "Attributes": "[variable('Solr.UniqueField.Attributes')]" }
123 | ]
124 | },
125 | "UpdateSchemaUniqueKey": {
126 | // Amends the core managed schema uniqueKey element
127 | "Type": "SetXml",
128 | "Params": [
129 | { "FilePath": "[joinpath(variable('SXAMaster.Conf'), 'managed-schema')]", "Xpath":"[variable('Solr.Xpath.UniqueKey')]", "Value": "[variable('Solr.UniqueField')]" },
130 | { "FilePath": "[joinpath(variable('SXAWeb.Conf'), 'managed-schema')]", "Xpath":"[variable('Solr.Xpath.UniqueKey')]", "Value": "[variable('Solr.UniqueField')]" }
131 | ]
132 | },
133 | "StartSolr": {
134 | // Starts the Solr service.
135 | "Type": "ManageService",
136 | "Params":{
137 | "Name": "[parameter('SolrService')]",
138 | "Status": "Running",
139 | "PostDelay": 8000
140 | }
141 | },
142 | "CreateCores":{
143 | // Tells Solr to create the new cores.
144 | "Type": "ManageSolrCore",
145 | "Params": [
146 | { "Action": "Create", "Address": "[parameter('SolrUrl')]", "Arguments": { "Name": "[variable('SXAMaster.Name')]" } },
147 | { "Action": "Create", "Address": "[parameter('SolrUrl')]", "Arguments": { "Name": "[variable('SXAWeb.Name')]" } }
148 | ]
149 | }
150 | }
151 | }
152 |
--------------------------------------------------------------------------------
/commerce/Dockerfile:
--------------------------------------------------------------------------------
1 | # escape=`
2 |
3 | # Stage 0: prepare files & build prerequisites
4 | FROM microsoft/aspnet:4.7.1-windowsservercore-1709 AS prepare
5 |
6 | SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
7 |
8 | ARG COMMERCE_SIF_PACKAGE
9 | ARG COMMERCE_SDK_PACKAGE
10 | ARG SITECORE_BIZFX_PACKAGE
11 |
12 | WORKDIR /Files
13 |
14 | ADD files /Files
15 | ADD scripts /Scripts
16 |
17 | # Expand installation files
18 | RUN Expand-Archive -Path "/Files/$Env:COMMERCE_SDK_PACKAGE" -DestinationPath '/Files/Sitecore.Commerce.SDK';
19 | RUN Expand-Archive -Path "/Files/$Env:COMMERCE_SIF_PACKAGE" -DestinationPath '/Files/SIF.Sitecore.Commerce';
20 | RUN Expand-Archive -Path "/Files/$Env:SITECORE_BIZFX_PACKAGE" -DestinationPath '/Files/Sitecore.BizFX';
21 |
22 | # Stage 1: create actual image
23 | FROM microsoft/aspnet:4.7.1-windowsservercore-1709
24 |
25 | ARG HOST_NAME="commerce"
26 | ARG SITECORE_HOSTNAME="sitecore"
27 | ARG SHOP_NAME="CommerceEngineDefaultStorefront"
28 | ARG ENVIRONMENT_NAME="HabitatAuthoring"
29 | ARG COMMERCE_ENGINE_PACKAGE
30 | ARG SITECORE_IDENTITY_PACKAGE
31 | ARG PLUMBER_FILE_NAME="plumber.zip"
32 |
33 | ARG SQL_USER="sa"
34 | ARG SQL_SA_PASSWORD
35 | ARG SQL_DB_PREFIX
36 | ARG SQL_SERVER="mssql"
37 | ARG SOLR_PORT=8983
38 | ARG SOLR_CORE_PREFIX="xp0"
39 |
40 | ARG XCONNECT_CERT_PATH
41 | ARG SOLR_CERT_PATH
42 | ARG SITECORE_CERT_PATH
43 | ARG COMMERCE_CERT_PATH
44 | ARG ROOT_CERT_PATH
45 |
46 | SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
47 |
48 | WORKDIR /Files
49 |
50 | # Copy required files
51 | ADD scripts /Scripts
52 |
53 | COPY files/*.pfx /Files/
54 | COPY --from=prepare /Files/Sitecore.Commerce.SDK /Files/Sitecore.Commerce.SDK/
55 | COPY --from=prepare /Files/SIF.Sitecore.Commerce /Files/SIF.Sitecore.Commerce/
56 | COPY --from=prepare /Files/Sitecore.BizFX /Files/Sitecore.BizFX/
57 | COPY --from=prepare /Files/${COMMERCE_ENGINE_PACKAGE} /Files/
58 | COPY --from=prepare /Files/${SITECORE_IDENTITY_PACKAGE} /Files/
59 | COPY --from=prepare /Files/${PLUMBER_FILE_NAME} /Files/
60 |
61 | # Trust Self signed certificates
62 | RUN /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:SOLR_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'; `
63 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:XCONNECT_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'; `
64 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:SITECORE_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'; `
65 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:COMMERCE_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'; `
66 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:ROOT_CERT_PATH -secret 'secret' -storeName 'Root' -storeLocation 'LocalMachine'
67 |
68 | # Import certificate
69 | RUN /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:COMMERCE_CERT_PATH -secret 'secret' -storeName 'My' -storeLocation 'LocalMachine'; `
70 | /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:ROOT_CERT_PATH -secret 'secret' -storeName 'My' -storeLocation 'LocalMachine'
71 |
72 | # Import XConnect certificate
73 | RUN /Scripts/Import-Certificate.ps1 -certificateFile /Files/$Env:XCONNECT_CERT_PATH -secret 'secret' -storeName 'My' -storeLocation 'LocalMachine'
74 |
75 | RUN net user /add commerceuser 'Pa$$w0rd'; `
76 | Set-LocalUser -Name 'commerceuser' -PasswordNeverExpires:$true
77 |
78 | # Install SIF
79 | RUN /Scripts/Install-SIF.ps1
80 |
81 | # Configure
82 | RUN [Environment]::SetEnvironmentVariable('PSModulePath', $env:PSModulePath + ';/Files/SIF.Sitecore.Commerce/Modules'); `
83 | $solrUrl = 'https://solr:{0}/solr' -f $Env:SOLR_PORT; `
84 | $engineZip = '/Files/{0}' -f $Env:COMMERCE_ENGINE_PACKAGE; `
85 | Install-SitecoreConfiguration -Path '/Files/SIF.Sitecore.Commerce/Configuration/Commerce/CommerceEngine/CommerceEngine.Deploy.json' `
86 | -CommerceServicesDbServer $Env:SQL_SERVER `
87 | -CommerceServicesDbName SitecoreCommerce9_SharedEnvironments `
88 | -CommerceServicesGlobalDbName SitecoreCommerce9_Global `
89 | -CommerceServicesPostfix Sc9 `
90 | -SitecoreDbServer $Env:SQL_SERVER `
91 | -SitecoreCoreDbName "${$Env:SQL_DB_PREFIX}_Core"`
92 | -SolrUrl $solrUrl `
93 | -SearchIndexPrefix $Env:SOLR_CORE_PREFIX `
94 | -CommerceOpsServicesPort 5015 `
95 | -CommerceShopsServicesPort 5005 `
96 | -CommerceAuthoringServicesPort 5000 `
97 | -CommerceMinionsServicesPort 5010 `
98 | -SiteHostHeaderName 'sitecore' `
99 | -UserAccount @{ Domain = $Env:COMPUTERNAME; UserName = 'commerceuser'; Password = 'Pa$$w0rd' } `
100 | -CommerceEngineDacPac '/Files/Dacpac.dacpac' `
101 | -SitecoreCommerceEngineZipPath $engineZip `
102 | -CommerceSearchProvider 'SOLR' `
103 | -CertificateName 'commerce' `
104 | -Skip "DeployCommerceDatabase", "AddCommerceUserToCoreDatabase"
105 |
106 | RUN [Environment]::SetEnvironmentVariable('PSModulePath', $env:PSModulePath + ';/Files/SIF.Sitecore.Commerce/Modules'); `
107 | Install-SitecoreConfiguration -Path '/Files/SIF.Sitecore.Commerce/Configuration/Commerce/SitecoreBizFx/SitecoreBizFx.json' `
108 | -SitecoreBizFxServicesContentPath './Sitecore.BizFX' `
109 | -CommerceAuthoringServicesPort 5000 `
110 | -UserAccount @{ Domain = $Env:COMPUTERNAME; UserName = 'commerceuser'; Password = 'Pa$$w0rd' }
111 |
112 | RUN [Environment]::SetEnvironmentVariable('PSModulePath', $env:PSModulePath + ';/Files/SIF.Sitecore.Commerce/Modules'); `
113 | $zip = '/Files/{0}' -f $Env:SITECORE_IDENTITY_PACKAGE; `
114 | Install-SitecoreConfiguration -Path '/Files/SIF.Sitecore.Commerce/Configuration/Commerce/SitecoreIdentityServer/SitecoreIdentityServer.json' `
115 | -SitecoreIdentityServerZipPath $zip `
116 | -SitecoreIdentityServerName 'SitecoreIdentityServer' `
117 | -SitecoreDbServer $Env:SQL_SERVER `
118 | -SitecoreCoreDbName "${$Env:SQL_DB_PREFIX}_Core" `
119 | -UserAccount @{ Domain = $Env:COMPUTERNAME; UserName = 'commerceuser'; Password = 'Pa$$w0rd' }
120 |
121 | # The Commerce SSL bindings are created with DNS localhost in a harcoded way
122 | # Update these to match the host name
123 | RUN $certificates = Get-ChildItem -Path 'cert:\localmachine\my' -DnsName 'DO_NOT_TRUST_SitecoreRootCert'; `
124 | $rootCert = $certificates[0]; `
125 | $certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname 'commerce' -Signer $rootcert -KeyExportPolicy Exportable -Provider 'Microsoft Enhanced RSA and AES Cryptographic Provider'; `
126 | Get-WebBinding -Name 'CommerceOps_Sc9' -Protocol 'https' | Remove-WebBinding; `
127 | New-WebBinding -Name 'CommerceOps_Sc9' -HostHeader $Env:HOST_NAME -Protocol 'https' -SslFlags 1 -Port 5015; `
128 | $binding = Get-WebBinding -Name 'CommerceOps_Sc9' -Protocol 'https'; `
129 | $binding.AddSslCertificate($certificate.GetCertHashString(), 'My'); `
130 | Get-WebBinding -Name 'CommerceShops_Sc9' -Protocol 'https' | Remove-WebBinding; `
131 | New-WebBinding -Name 'CommerceShops_Sc9' -HostHeader $Env:HOST_NAME -Protocol 'https' -SslFlags 1 -Port 5005; `
132 | $binding = Get-WebBinding -Name 'CommerceShops_Sc9' -Protocol 'https'; `
133 | $binding.AddSslCertificate($certificate.GetCertHashString(), 'My'); `
134 | Get-WebBinding -Name 'CommerceAuthoring_Sc9' -Protocol 'https' | Remove-WebBinding; `
135 | New-WebBinding -Name 'CommerceAuthoring_Sc9' -HostHeader $Env:HOST_NAME -Protocol 'https' -SslFlags 1 -Port 5000; `
136 | $binding = Get-WebBinding -Name 'CommerceAuthoring_Sc9' -Protocol 'https'; `
137 | $binding.AddSslCertificate($certificate.GetCertHashString(), 'My'); `
138 | Get-WebBinding -Name 'CommerceMinions_Sc9' -Protocol 'https' | Remove-WebBinding; `
139 | New-WebBinding -Name 'CommerceMinions_Sc9' -HostHeader $Env:HOST_NAME -Protocol 'https' -SslFlags 1 -Port 5010; `
140 | $binding = Get-WebBinding -Name 'CommerceMinions_Sc9' -Protocol 'https'; `
141 | $binding.AddSslCertificate($certificate.GetCertHashString(), 'My'); `
142 | Get-WebBinding -Name 'SitecoreBizFx' -Protocol 'https' | Remove-WebBinding; `
143 | New-WebBinding -Name 'SitecoreBizFx' -HostHeader $Env:HOST_NAME -Protocol 'https' -SslFlags 1 -Port 4200; `
144 | $binding = Get-WebBinding -Name 'SitecoreBizFx' -Protocol 'https'; `
145 | $binding.AddSslCertificate($certificate.GetCertHashString(), 'My'); `
146 | Get-WebBinding -Name 'SitecoreIdentityServer' -Protocol 'https' | Remove-WebBinding; `
147 | New-WebBinding -Name 'SitecoreIdentityServer' -HostHeader $Env:HOST_NAME -Protocol 'https' -SslFlags 1 -Port 5050; `
148 | $binding = Get-WebBinding -Name 'SitecoreIdentityServer' -Protocol 'https'; `
149 | $binding.AddSslCertificate($certificate.GetCertHashString(), 'My');
150 |
151 | ADD commerce/UpdateConnectionString.ps1 /Scripts
152 |
153 | RUN /Scripts/UpdateConnectionString.ps1 -folder c:\inetpub\wwwroot\CommerceAuthoring_Sc9 `
154 | -userName 'sa' `
155 | -password $Env:SQL_SA_PASSWORD `
156 | -server $Env:SQL_SERVER; `
157 | /Scripts/UpdateConnectionString.ps1 -folder c:\inetpub\wwwroot\CommerceMinions_Sc9 `
158 | -userName 'sa' `
159 | -password $Env:SQL_SA_PASSWORD `
160 | -server $Env:SQL_SERVER; `
161 | /Scripts/UpdateConnectionString.ps1 -folder c:\inetpub\wwwroot\CommerceOps_Sc9 `
162 | -userName 'sa' `
163 | -password $Env:SQL_SA_PASSWORD `
164 | -server $Env:SQL_SERVER; `
165 | /Scripts/UpdateConnectionString.ps1 -folder c:\inetpub\wwwroot\CommerceShops_Sc9 `
166 | -userName 'sa' `
167 | -password $Env:SQL_SA_PASSWORD `
168 | -server $Env:SQL_SERVER
169 |
170 | # Install hosting
171 | RUN Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')); `
172 | choco install -y --params="Quiet" dotnetcore-windowshosting
173 |
174 | # Install IIS URL Rewrite
175 | RUN choco install -y --params="Quiet" urlrewrite
176 |
177 | RUN $pathToAppSettings = $(Join-Path -Path c:\inetpub\wwwroot\SitecoreIdentityServer\wwwroot -ChildPath "appsettings.json"); `
178 | $json = Get-Content $pathToAppSettings -raw | ConvertFrom-Json; `
179 | $connectionString = 'Data Source={0};Initial Catalog=Sitecore_Core;Integrated Security=False;User Id={1};Password={2};' -f $Env:SQL_SERVER, 'sa', $Env:SQL_SA_PASSWORD; `
180 | $json.AppSettings.SitecoreMembershipOptions.ConnectionString = $connectionString; `
181 | $json = ConvertTo-Json $json -Depth 100; `
182 | Set-Content $pathToAppSettings -Value $json -Encoding UTF8;
183 |
184 | RUN $hostFileName = 'c:\\windows\\system32\\drivers\\etc\\hosts'; '\"`r`n127.0.0.1`t$Env:HOST_NAME\"' | Add-Content $hostFileName
185 |
186 | ADD commerce/UpdateIdentityServerUrl.ps1 /Scripts
187 |
188 | RUN /Scripts/UpdateIdentityServerUrl.ps1 -folder c:\inetpub\wwwroot\CommerceAuthoring_Sc9 `
189 | -hostName $Env:HOST_NAME; `
190 | /Scripts/UpdateIdentityServerUrl.ps1 -folder c:\inetpub\wwwroot\CommerceMinions_Sc9 `
191 | -hostName $Env:HOST_NAME; `
192 | /Scripts/UpdateIdentityServerUrl.ps1 -folder c:\inetpub\wwwroot\CommerceOps_Sc9 `
193 | -hostName $Env:HOST_NAME; `
194 | /Scripts/UpdateIdentityServerUrl.ps1 -folder c:\inetpub\wwwroot\CommerceShops_Sc9 `
195 | -hostName $Env:HOST_NAME;
196 |
197 | ADD commerce/UpdateSitecoreUrl.ps1 /Scripts
198 |
199 | RUN /Scripts/UpdateSitecoreUrl.ps1 -folder c:\inetpub\wwwroot\CommerceAuthoring_Sc9 `
200 | -hostName $Env:SITECORE_HOSTNAME; `
201 | /Scripts/UpdateSitecoreUrl.ps1 -folder c:\inetpub\wwwroot\CommerceMinions_Sc9 `
202 | -hostName $Env:SITECORE_HOSTNAME; `
203 | /Scripts/UpdateSitecoreUrl.ps1 -folder c:\inetpub\wwwroot\CommerceOps_Sc9 `
204 | -hostName $Env:SITECORE_HOSTNAME; `
205 | /Scripts/UpdateSitecoreUrl.ps1 -folder c:\inetpub\wwwroot\CommerceShops_Sc9 `
206 | -hostName $Env:SITECORE_HOSTNAME
207 |
208 | # Set the certificate details of the certificate sitecore will connect with
209 | RUN $CommerceServicesPathCollection = @('C:\\inetpub\\wwwroot\\CommerceAuthoring_Sc9', 'C:\\inetpub\\wwwroot\\CommerceMinions_Sc9', `
210 | 'C:\\inetpub\\wwwroot\\CommerceOps_Sc9', 'C:\\inetpub\\wwwroot\\CommerceShops_Sc9'); `
211 | $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2; `
212 | $cert.Import('c:\\Files\\commerce.pfx', 'secret', 'MachineKeySet'); `
213 | foreach($path in $CommerceServicesPathCollection) { `
214 | $pathToJson = $(Join-Path -Path $path -ChildPath "wwwroot\config.json"); `
215 | $originalJson = Get-Content $pathToJson -Raw | ConvertFrom-Json; `
216 | $certificateNode = $originalJson.Certificates.Certificates[0]; `
217 | $certificateNode.Thumbprint = $cert.Thumbprint; `
218 | $appSettingsNode = $originalJson.AppSettings; `
219 | $appSettingsNode.SitecoreIdentityServerUrl = 'https://commerce:5050'; `
220 | $appSettingsNode.AllowedOrigins = @('https://commerce:4200','http://commerce:4200','http://sitecore'); `
221 | $appSettingsNode.AntiForgeryEnabled = $False; `
222 | $originalJson | ConvertTo-Json -Depth 100 -Compress | set-content $pathToJson; `
223 | }
224 |
225 | # Configure the business tools
226 | RUN $pathToJson = $(Join-Path -Path 'C:\\inetpub\\wwwroot\\SitecoreBizFx' -ChildPath "assets\\config.json"); `
227 | $originalJson = Get-Content $pathToJson -Raw | ConvertFrom-Json; `
228 | $originalJson.EnvironmentName = $Env:ENVIRONMENT_NAME; `
229 | $originalJson.EngineUri = ('https://{0}:5000' -f $Env:HOST_NAME); `
230 | $originalJson.IdentityServerUri = ('https://{0}:5050' -f $Env:HOST_NAME); `
231 | $originalJson.BizFxUri = ('https://{0}:4200' -f $Env:HOST_NAME); `
232 | $originalJson.ShopName = $Env:SHOP_NAME; `
233 | $originalJson | ConvertTo-Json -Depth 100 -Compress | set-content $pathToJson;
234 |
235 | # Configure the business tools with the correct settings in Identity server
236 | RUN $pathToAppSettings = $(Join-Path -Path c:\inetpub\wwwroot\SitecoreIdentityServer\wwwroot -ChildPath "appsettings.json"); `
237 | $json = Get-Content $pathToAppSettings -raw | ConvertFrom-Json; `
238 | $json.AppSettings.Clients[0].RedirectUris[0] = ('https://{0}:4200' -f $Env:HOST_NAME); `
239 | $json.AppSettings.Clients[0].RedirectUris[1] = ('https://{0}:4200/?' -f $Env:HOST_NAME); `
240 | $json.AppSettings.Clients[0].PostLogoutRedirectUris[0] = ('https://{0}:4200' -f $Env:HOST_NAME); `
241 | $json.AppSettings.Clients[0].PostLogoutRedirectUris[1] = ('https://{0}:4200/?' -f $Env:HOST_NAME); `
242 | $json.AppSettings.Clients[0].AllowedCorsOrigins[0] = ('https://{0}:4200/' -f $Env:HOST_NAME); `
243 | $json.AppSettings.Clients[0].AllowedCorsOrigins[1] = ('https://{0}:4200' -f $Env:HOST_NAME); `
244 | $json = ConvertTo-Json $json -Depth 100; `
245 | Set-Content $pathToAppSettings -Value $json -Encoding UTF8;
246 |
247 | # Install plumber
248 | RUN Expand-Archive -Path "/Files/$Env:PLUMBER_FILE_NAME" -DestinationPath 'c:\\inetpub\\plumber'; `
249 | Import-Module -Name WebAdministration; `
250 | $iisApp = New-Item IIS:\Sites\Plumber -bindings @{protocol='http';bindingInformation='*:4000:' + $Env:HOST_NAME} -physicalPath 'c:\inetpub\plumber'; `
251 | $pathToJson = $(Join-Path -Path 'C:\\inetpub\\plumber' -ChildPath "static\\config.json"); `
252 | $originalJson = Get-Content $pathToJson -Raw | ConvertFrom-Json; `
253 | $originalJson.EngineUri = ('https://{0}:5000' -f $Env:HOST_NAME); `
254 | $originalJson.IdentityServerUri = ('https://{0}:5050' -f $Env:HOST_NAME); `
255 | $originalJson.PlumberUri = ('http://{0}:4000' -f $Env:HOST_NAME); `
256 | $originalJson | ConvertTo-Json -Depth 100 -Compress | set-content $pathToJson; `
257 | $pathToAppSettings = $(Join-Path -Path c:\inetpub\wwwroot\SitecoreIdentityServer\wwwroot -ChildPath "appsettings.json"); `
258 | $json = Get-Content $pathToAppSettings -raw | ConvertFrom-Json; `
259 | $client = @{}; `
260 | $client.ClientId = 'Plumber'; `
261 | $client.ClientName = 'Plumber'; `
262 | $client.AccessTokenType = 0; `
263 | $client.AccessTokenLifetimeInSeconds = 3600; `
264 | $client.IdentityTokenLifetimeInSeconds = 3600; `
265 | $client.AllowAccessTokensViaBrowser = $true; `
266 | $client.RequireConsent = $false; `
267 | $client.RequireClientSecret = $false; `
268 | $client.AllowedGrantTypes = @('implicit'); `
269 | $client.AllowedScopes = @('openid', 'dataEventRecords', 'dataeventrecordsscope', 'securedFiles', 'securedfilesscope', 'role', 'EngineAPI'); `
270 | $client.RedirectUris = @(('http://{0}:4000' -f $Env:HOST_NAME), ('http://{0}:4000/?' -f $Env:HOST_NAME)); `
271 | $client.PostLogoutRedirectUris = @(('http://{0}:4000' -f $Env:HOST_NAME), ('http://{0}:4000/?' -f $Env:HOST_NAME)); `
272 | $client.AllowedCorsOrigins = @(('http://{0}:4000' -f $Env:HOST_NAME), ('http://{0}:4000' -f $Env:HOST_NAME)); `
273 | $json.AppSettings.Clients += $client; `
274 | $json = ConvertTo-Json $json -Depth 100; `
275 | Set-Content $pathToAppSettings -Value $json -Encoding UTF8; `
276 | $CommerceServicesPathCollection = @('C:\\inetpub\\wwwroot\\CommerceAuthoring_Sc9', 'C:\\inetpub\\wwwroot\\CommerceMinions_Sc9', `
277 | 'C:\\inetpub\\wwwroot\\CommerceOps_Sc9', 'C:\\inetpub\\wwwroot\\CommerceShops_Sc9'); `
278 | foreach($path in $CommerceServicesPathCollection) { `
279 | $pathToJson = $(Join-Path -Path $path -ChildPath "wwwroot\config.json"); `
280 | $originalJson = Get-Content $pathToJson -Raw | ConvertFrom-Json; `
281 | $appSettingsNode = $originalJson.AppSettings; `
282 | $appSettingsNode.AllowedOrigins += ('http://{0}:4000' -f $Env:HOST_NAME); `
283 | $originalJson | ConvertTo-Json -Depth 100 -Compress | set-content $pathToJson; `
284 | }
285 |
286 | # Expose Plumber port
287 | EXPOSE 4000
288 |
289 | ADD commerce/WatchDirectoryMultiple.ps1 /Scripts
290 | ADD commerce/WatchDefaultDirectories.ps1 /Scripts
291 |
292 | ENTRYPOINT /Scripts/WatchDefaultDirectories.ps1
293 |
--------------------------------------------------------------------------------
/xconnect/Sitecore.Commerce.Connect.XConnect.Models.json:
--------------------------------------------------------------------------------
1 | {
2 | "Name": "RegisterConnectEventModel",
3 | "Version": "0.1",
4 | "References": [
5 | {
6 | "Name": "XConnect",
7 | "Version": "1.0"
8 | },
9 | {
10 | "Name": "Sitecore.XConnect.Collection.Model",
11 | "Version": "9.0"
12 | }
13 | ],
14 | "Types": {
15 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRParty": {
16 | "Type": "Complex",
17 | "Annotations": [
18 | {
19 | "Type": "DoNotIndexAttribute"
20 | }
21 | ],
22 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRParty, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
23 | "Properties": {
24 | "Id": {
25 | "Type": "Guid"
26 | },
27 | "HashValue": {
28 | "Type": "String"
29 | },
30 | "FirstName": {
31 | "Type": "String"
32 | },
33 | "LastName": {
34 | "Type": "String"
35 | },
36 | "Email": {
37 | "Type": "String"
38 | },
39 | "Company": {
40 | "Type": "String"
41 | },
42 | "Address1": {
43 | "Type": "String"
44 | },
45 | "Address2": {
46 | "Type": "String"
47 | },
48 | "ZipPostalCode": {
49 | "Type": "String"
50 | },
51 | "City": {
52 | "Type": "String"
53 | },
54 | "State": {
55 | "Type": "String"
56 | },
57 | "Country": {
58 | "Type": "String"
59 | },
60 | "PhoneNumber": {
61 | "Type": "String"
62 | }
63 | }
64 | },
65 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRString": {
66 | "Type": "Complex",
67 | "Annotations": [
68 | {
69 | "Type": "DoNotIndexAttribute"
70 | }
71 | ],
72 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRString, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
73 | "Properties": {
74 | "Id": {
75 | "Type": "Guid"
76 | },
77 | "Value": {
78 | "Type": "String"
79 | }
80 | }
81 | },
82 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCustomerPaymentInfo": {
83 | "Type": "Complex",
84 | "Annotations": [
85 | {
86 | "Type": "DoNotIndexAttribute"
87 | }
88 | ],
89 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCustomerPaymentInfo, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
90 | "Properties": {
91 | "Id": {
92 | "Type": "Guid"
93 | },
94 | "HashValue": {
95 | "Type": "String"
96 | },
97 | "CreditCardType": {
98 | "Type": "String"
99 | },
100 | "CardholderName": {
101 | "Type": "String"
102 | },
103 | "CardNumber": {
104 | "Type": "String"
105 | },
106 | "ExpireMonth": {
107 | "Type": "String"
108 | },
109 | "ExpireYear": {
110 | "Type": "String"
111 | }
112 | }
113 | },
114 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCommerceUser": {
115 | "Type": "Complex",
116 | "Annotations": [
117 | {
118 | "Type": "DoNotIndexAttribute"
119 | }
120 | ],
121 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCommerceUser, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
122 | "Properties": {
123 | "Id": {
124 | "Type": "Guid"
125 | },
126 | "HashValue": {
127 | "Type": "String"
128 | },
129 | "UserName": {
130 | "Type": "String"
131 | },
132 | "FirstName": {
133 | "Type": "String"
134 | },
135 | "LastName": {
136 | "Type": "String"
137 | },
138 | "Email": {
139 | "Type": "String"
140 | },
141 | "Comment": {
142 | "Type": "String"
143 | },
144 | "Customers": {
145 | "Type": [
146 | "String"
147 | ]
148 | }
149 | }
150 | },
151 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRPartyList": {
152 | "Type": "Facet",
153 | "BaseType": "Sitecore.XConnect.Facet",
154 | "Annotations": [
155 | {
156 | "Type": "PIISensitiveAttribute"
157 | },
158 | {
159 | "Type": "DoNotIndexAttribute"
160 | }
161 | ],
162 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRPartyList, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
163 | "Properties": {
164 | "PartyList": {
165 | "Type": {
166 | "String": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRParty"
167 | }
168 | }
169 | }
170 | },
171 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRStringList": {
172 | "Type": "Facet",
173 | "BaseType": "Sitecore.XConnect.Facet",
174 | "Annotations": [
175 | {
176 | "Type": "PIISensitiveAttribute"
177 | },
178 | {
179 | "Type": "DoNotIndexAttribute"
180 | }
181 | ],
182 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRStringList, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
183 | "Properties": {
184 | "StringList": {
185 | "Type": {
186 | "String": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRString"
187 | }
188 | }
189 | }
190 | },
191 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCustomerPaymentInfoList": {
192 | "Type": "Facet",
193 | "BaseType": "Sitecore.XConnect.Facet",
194 | "Annotations": [
195 | {
196 | "Type": "PIISensitiveAttribute"
197 | },
198 | {
199 | "Type": "DoNotIndexAttribute"
200 | }
201 | ],
202 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCustomerPaymentInfoList, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
203 | "Properties": {
204 | "CustomerPaymentInfoList": {
205 | "Type": {
206 | "String": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCustomerPaymentInfo"
207 | }
208 | }
209 | }
210 | },
211 | "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCommerceUserList": {
212 | "Type": "Facet",
213 | "BaseType": "Sitecore.XConnect.Facet",
214 | "Annotations": [
215 | {
216 | "Type": "PIISensitiveAttribute"
217 | },
218 | {
219 | "Type": "DoNotIndexAttribute"
220 | }
221 | ],
222 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCommerceUserList, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
223 | "Properties": {
224 | "UserList": {
225 | "Type": {
226 | "String": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCommerceUser"
227 | }
228 | }
229 | }
230 | },
231 | "Sitecore.Commerce.CustomModels.Facets.CurrentCartFacet": {
232 | "Type": "Facet",
233 | "BaseType": "Sitecore.XConnect.Facet",
234 | "Annotations": [
235 | {
236 | "Type": "PIISensitiveAttribute"
237 | },
238 | {
239 | "Type": "DoNotIndexAttribute"
240 | }
241 | ],
242 | "ClrType": "Sitecore.Commerce.CustomModels.Facets.CurrentCartFacet, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
243 | "Properties": {
244 | "CartJson": {
245 | "Type": "String"
246 | },
247 | "Count": {
248 | "Type": "Decimal"
249 | },
250 | "Total": {
251 | "Type": "Decimal"
252 | }
253 | }
254 | },
255 | "Sitecore.Commerce.CustomModels.Models.Entity": {
256 | "Type": "Complex",
257 | "Abstract": true,
258 | "Annotations": [
259 | {
260 | "Type": "DoNotIndexAttribute"
261 | }
262 | ],
263 | "ClrType": "Sitecore.Commerce.CustomModels.Models.Entity, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
264 | "Properties": {}
265 | },
266 | "Sitecore.Commerce.CustomModels.Models.MappedEntity": {
267 | "Type": "Complex",
268 | "Abstract": true,
269 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
270 | "Annotations": [
271 | {
272 | "Type": "DoNotIndexAttribute"
273 | }
274 | ],
275 | "ClrType": "Sitecore.Commerce.CustomModels.Models.MappedEntity, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
276 | "Properties": {
277 | "ExternalId": {
278 | "Type": "String"
279 | }
280 | }
281 | },
282 | "Sitecore.Commerce.CustomModels.Models.EnumType": {
283 | "Type": "Complex",
284 | "Abstract": true,
285 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
286 | "Annotations": [
287 | {
288 | "Type": "DoNotIndexAttribute"
289 | }
290 | ],
291 | "ClrType": "Sitecore.Commerce.CustomModels.Models.EnumType`1[[Sitecore.Commerce.CustomModels.Models.StockStatus, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null]], Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
292 | "Properties": {
293 | "Value": {
294 | "Type": "Int32"
295 | },
296 | "Name": {
297 | "Type": "String"
298 | }
299 | }
300 | },
301 | "Sitecore.Commerce.CustomModels.Models.StockStatus": {
302 | "Type": "Complex",
303 | "BaseType": "Sitecore.Commerce.CustomModels.Models.EnumType",
304 | "Annotations": [
305 | {
306 | "Type": "DoNotIndexAttribute"
307 | }
308 | ],
309 | "ClrType": "Sitecore.Commerce.CustomModels.Models.StockStatus, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
310 | "Properties": {}
311 | },
312 | "Sitecore.Commerce.CustomModels.Models.Total": {
313 | "Type": "Complex",
314 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
315 | "Annotations": [
316 | {
317 | "Type": "DoNotIndexAttribute"
318 | }
319 | ],
320 | "ClrType": "Sitecore.Commerce.CustomModels.Models.Total, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
321 | "Properties": {
322 | "Amount": {
323 | "Type": "Decimal"
324 | },
325 | "CurrencyCode": {
326 | "Type": "String"
327 | },
328 | "Description": {
329 | "Type": "String"
330 | },
331 | "TaxTotal": {
332 | "Type": "Sitecore.Commerce.CustomModels.Models.TaxTotal"
333 | }
334 | }
335 | },
336 | "Sitecore.Commerce.CustomModels.Models.TaxTotal": {
337 | "Type": "Complex",
338 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
339 | "Annotations": [
340 | {
341 | "Type": "DoNotIndexAttribute"
342 | }
343 | ],
344 | "ClrType": "Sitecore.Commerce.CustomModels.Models.TaxTotal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
345 | "Properties": {
346 | "Amount": {
347 | "Type": "Decimal"
348 | },
349 | "Description": {
350 | "Type": "String"
351 | },
352 | "Id": {
353 | "Type": "String"
354 | },
355 | "TaxSubtotals": {
356 | "Type": [
357 | "Sitecore.Commerce.CustomModels.Models.TaxSubtotal"
358 | ]
359 | }
360 | }
361 | },
362 | "Sitecore.Commerce.CustomModels.Models.TaxSubtotal": {
363 | "Type": "Complex",
364 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
365 | "Annotations": [
366 | {
367 | "Type": "DoNotIndexAttribute"
368 | }
369 | ],
370 | "ClrType": "Sitecore.Commerce.CustomModels.Models.TaxSubtotal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
371 | "Properties": {
372 | "BaseUnitMeasure": {
373 | "Type": "String"
374 | },
375 | "Description": {
376 | "Type": "String"
377 | },
378 | "Percent": {
379 | "Type": "Decimal"
380 | },
381 | "PerUnitAmount": {
382 | "Type": "Decimal"
383 | },
384 | "TaxSubtotalType": {
385 | "Type": "String"
386 | }
387 | }
388 | },
389 | "Sitecore.Commerce.CustomModels.Models.Price": {
390 | "Type": "Complex",
391 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
392 | "Annotations": [
393 | {
394 | "Type": "DoNotIndexAttribute"
395 | }
396 | ],
397 | "ClrType": "Sitecore.Commerce.CustomModels.Models.Price, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
398 | "Properties": {
399 | "Amount": {
400 | "Type": "Decimal"
401 | },
402 | "Conditions": {
403 | "Type": [
404 | "Sitecore.Commerce.CustomModels.Models.PriceCondition"
405 | ]
406 | },
407 | "CurrencyCode": {
408 | "Type": "String"
409 | },
410 | "Description": {
411 | "Type": "String"
412 | },
413 | "PriceType": {
414 | "Type": "String"
415 | }
416 | }
417 | },
418 | "Sitecore.Commerce.CustomModels.Models.PriceCondition": {
419 | "Type": "Complex",
420 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
421 | "Annotations": [
422 | {
423 | "Type": "DoNotIndexAttribute"
424 | }
425 | ],
426 | "ClrType": "Sitecore.Commerce.CustomModels.Models.PriceCondition, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
427 | "Properties": {
428 | "ConditionType": {
429 | "Type": "String"
430 | },
431 | "Description": {
432 | "Type": "String"
433 | },
434 | "Operator": {
435 | "Type": "String"
436 | },
437 | "Sequence": {
438 | "Type": "Int32"
439 | },
440 | "Value": {
441 | "Type": "String"
442 | },
443 | "Price": {
444 | "Type": "Decimal?"
445 | }
446 | }
447 | },
448 | "Sitecore.Commerce.CustomModels.Models.Party": {
449 | "Type": "Complex",
450 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
451 | "Annotations": [
452 | {
453 | "Type": "DoNotIndexAttribute"
454 | }
455 | ],
456 | "ClrType": "Sitecore.Commerce.CustomModels.Models.Party, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
457 | "Properties": {
458 | "PartyId": {
459 | "Type": "String"
460 | },
461 | "FirstName": {
462 | "Type": "String"
463 | },
464 | "LastName": {
465 | "Type": "String"
466 | },
467 | "Email": {
468 | "Type": "String"
469 | },
470 | "Company": {
471 | "Type": "String"
472 | },
473 | "Address1": {
474 | "Type": "String"
475 | },
476 | "Address2": {
477 | "Type": "String"
478 | },
479 | "ZipPostalCode": {
480 | "Type": "String"
481 | },
482 | "City": {
483 | "Type": "String"
484 | },
485 | "State": {
486 | "Type": "String"
487 | },
488 | "Country": {
489 | "Type": "String"
490 | },
491 | "PhoneNumber": {
492 | "Type": "String"
493 | },
494 | "Facet": {
495 | "Type": "Guid"
496 | },
497 | "IsPrimary": {
498 | "Type": "Boolean"
499 | }
500 | }
501 | },
502 | "Sitecore.Commerce.CustomModels.Models.ShippingInfo": {
503 | "Type": "Complex",
504 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
505 | "Annotations": [
506 | {
507 | "Type": "DoNotIndexAttribute"
508 | }
509 | ],
510 | "ClrType": "Sitecore.Commerce.CustomModels.Models.ShippingInfo, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
511 | "Properties": {
512 | "LineIDs": {
513 | "Type": [
514 | "String"
515 | ]
516 | },
517 | "ShippingMethodID": {
518 | "Type": "String"
519 | },
520 | "ShippingProviderID": {
521 | "Type": "String"
522 | },
523 | "PartyID": {
524 | "Type": "String"
525 | }
526 | }
527 | },
528 | "Sitecore.Commerce.CustomModels.Models.PaymentInfo": {
529 | "Type": "Complex",
530 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
531 | "Annotations": [
532 | {
533 | "Type": "DoNotIndexAttribute"
534 | }
535 | ],
536 | "ClrType": "Sitecore.Commerce.CustomModels.Models.PaymentInfo, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
537 | "Properties": {
538 | "LineIDs": {
539 | "Type": [
540 | "String"
541 | ]
542 | },
543 | "PaymentMethodID": {
544 | "Type": "String"
545 | },
546 | "PaymentProviderID": {
547 | "Type": "String"
548 | },
549 | "PartyID": {
550 | "Type": "String"
551 | }
552 | }
553 | },
554 | "Sitecore.Commerce.CustomModels.Models.CartParty": {
555 | "Type": "Complex",
556 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
557 | "Annotations": [
558 | {
559 | "Type": "DoNotIndexAttribute"
560 | }
561 | ],
562 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartParty, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
563 | "Properties": {
564 | "PartyID": {
565 | "Type": "String"
566 | },
567 | "Name": {
568 | "Type": "String"
569 | }
570 | }
571 | },
572 | "Sitecore.Commerce.CustomModels.Models.CartAdjustment": {
573 | "Type": "Complex",
574 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
575 | "Annotations": [
576 | {
577 | "Type": "DoNotIndexAttribute"
578 | }
579 | ],
580 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartAdjustment, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
581 | "Properties": {
582 | "Amount": {
583 | "Type": "Decimal"
584 | },
585 | "Description": {
586 | "Type": "String"
587 | },
588 | "IsCharge": {
589 | "Type": "Boolean"
590 | },
591 | "LineNumber": {
592 | "Type": "Int32"
593 | },
594 | "Percentage": {
595 | "Type": "Single"
596 | }
597 | }
598 | },
599 | "Sitecore.Commerce.CustomModels.Models.CartOption": {
600 | "Type": "Complex",
601 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
602 | "Annotations": [
603 | {
604 | "Type": "DoNotIndexAttribute"
605 | }
606 | ],
607 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartOption, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
608 | "Properties": {
609 | "Description": {
610 | "Type": "String"
611 | },
612 | "OptionId": {
613 | "Type": "String"
614 | },
615 | "Value": {
616 | "Type": "String"
617 | }
618 | }
619 | },
620 | "Sitecore.Commerce.CustomModels.Models.CartProduct": {
621 | "Type": "Complex",
622 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
623 | "Annotations": [
624 | {
625 | "Type": "DoNotIndexAttribute"
626 | }
627 | ],
628 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartProduct, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
629 | "Properties": {
630 | "Adjustments": {
631 | "Type": [
632 | "Sitecore.Commerce.CustomModels.Models.CartAdjustment"
633 | ]
634 | },
635 | "LineNumber": {
636 | "Type": "Int32"
637 | },
638 | "Options": {
639 | "Type": [
640 | "Sitecore.Commerce.CustomModels.Models.CartOption"
641 | ]
642 | },
643 | "ProductId": {
644 | "Type": "String"
645 | },
646 | "Price": {
647 | "Type": "Sitecore.Commerce.CustomModels.Models.Price"
648 | },
649 | "SitecoreProductItemId": {
650 | "Type": "Guid"
651 | },
652 | "StockStatus": {
653 | "Type": "Sitecore.Commerce.CustomModels.Models.StockStatus"
654 | },
655 | "InStockDate": {
656 | "Type": "DateTime?"
657 | },
658 | "ShippingDate": {
659 | "Type": "DateTime?"
660 | },
661 | "ProductName": {
662 | "Type": "String"
663 | }
664 | }
665 | },
666 | "Sitecore.Commerce.CustomModels.Models.CartBase": {
667 | "Type": "Complex",
668 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
669 | "Annotations": [
670 | {
671 | "Type": "DoNotIndexAttribute"
672 | }
673 | ],
674 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartBase, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
675 | "Properties": {
676 | "UserId": {
677 | "Type": "String"
678 | },
679 | "UserIdFacet": {
680 | "Type": "Guid"
681 | },
682 | "CustomerId": {
683 | "Type": "String"
684 | },
685 | "CustomerIdFacet": {
686 | "Type": "Guid"
687 | },
688 | "Name": {
689 | "Type": "String"
690 | },
691 | "ShopName": {
692 | "Type": "String"
693 | },
694 | "CurrencyCode": {
695 | "Type": "String"
696 | },
697 | "IsLocked": {
698 | "Type": "Boolean?"
699 | },
700 | "Status": {
701 | "Type": "String"
702 | },
703 | "CartType": {
704 | "Type": "String"
705 | },
706 | "BuyerCustomerParty": {
707 | "Type": "Sitecore.Commerce.CustomModels.Models.CartParty"
708 | },
709 | "AccountingCustomerParty": {
710 | "Type": "Sitecore.Commerce.CustomModels.Models.CartParty"
711 | },
712 | "LoyaltyCardID": {
713 | "Type": "String"
714 | },
715 | "Email": {
716 | "Type": "String"
717 | },
718 | "EmailFacet": {
719 | "Type": "Guid"
720 | }
721 | }
722 | },
723 | "Sitecore.Commerce.CustomModels.Models.WishListLine": {
724 | "Type": "Complex",
725 | "Annotations": [
726 | {
727 | "Type": "DoNotIndexAttribute"
728 | }
729 | ],
730 | "ClrType": "Sitecore.Commerce.CustomModels.Models.WishListLine, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
731 | "Properties": {
732 | "ProductId": {
733 | "Type": "String"
734 | },
735 | "Quantity": {
736 | "Type": "Decimal"
737 | },
738 | "Price": {
739 | "Type": "String"
740 | }
741 | }
742 | },
743 | "Sitecore.Commerce.CustomModels.Models.WishListEmailed": {
744 | "Type": "Complex",
745 | "Annotations": [
746 | {
747 | "Type": "DoNotIndexAttribute"
748 | }
749 | ],
750 | "ClrType": "Sitecore.Commerce.CustomModels.Models.WishListEmailed, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
751 | "Properties": {
752 | "ExternalId": {
753 | "Type": "String"
754 | },
755 | "UserId": {
756 | "Type": "String"
757 | },
758 | "UserIdFacet": {
759 | "Type": "Guid"
760 | },
761 | "WishListName": {
762 | "Type": "String"
763 | },
764 | "ShopName": {
765 | "Type": "String"
766 | },
767 | "WishListObject": {
768 | "Type": "Sitecore.Commerce.CustomModels.Models.WishList"
769 | }
770 | }
771 | },
772 | "Sitecore.Commerce.CustomModels.Models.WishList": {
773 | "Type": "Complex",
774 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
775 | "Annotations": [
776 | {
777 | "Type": "DoNotIndexAttribute"
778 | }
779 | ],
780 | "ClrType": "Sitecore.Commerce.CustomModels.Models.WishList, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
781 | "Properties": {
782 | "ShopName": {
783 | "Type": "String"
784 | },
785 | "Name": {
786 | "Type": "String"
787 | },
788 | "CustomerId": {
789 | "Type": "String"
790 | },
791 | "CustomerIdFacet": {
792 | "Type": "Guid"
793 | },
794 | "UserId": {
795 | "Type": "String"
796 | },
797 | "UserIdFacet": {
798 | "Type": "Guid"
799 | },
800 | "IsFavorite": {
801 | "Type": "Boolean"
802 | },
803 | "Lines": {
804 | "Type": [
805 | "Sitecore.Commerce.CustomModels.Models.WishListLine"
806 | ]
807 | }
808 | }
809 | },
810 | "Sitecore.Commerce.CustomModels.Models.CustomerPaymentInfo": {
811 | "Type": "Complex",
812 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
813 | "Annotations": [
814 | {
815 | "Type": "DoNotIndexAttribute"
816 | }
817 | ],
818 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CustomerPaymentInfo, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
819 | "Properties": {
820 | "Name": {
821 | "Type": "String"
822 | },
823 | "PaymentMethodID": {
824 | "Type": "String"
825 | },
826 | "PaymentProviderID": {
827 | "Type": "String"
828 | },
829 | "CardToken": {
830 | "Type": "String"
831 | },
832 | "CreditCardType": {
833 | "Type": "String"
834 | },
835 | "CardholderName": {
836 | "Type": "String"
837 | },
838 | "CardNumber": {
839 | "Type": "String"
840 | },
841 | "ExpireMonth": {
842 | "Type": "String"
843 | },
844 | "ExpireYear": {
845 | "Type": "String"
846 | },
847 | "Facet": {
848 | "Type": "Guid"
849 | }
850 | }
851 | },
852 | "Sitecore.Commerce.CustomModels.Models.CustomerParty": {
853 | "Type": "Complex",
854 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
855 | "Annotations": [
856 | {
857 | "Type": "DoNotIndexAttribute"
858 | }
859 | ],
860 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CustomerParty, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
861 | "Properties": {
862 | "PartyID": {
863 | "Type": "String"
864 | },
865 | "Name": {
866 | "Type": "String"
867 | },
868 | "PartyType": {
869 | "Type": "Int32"
870 | }
871 | }
872 | },
873 | "Sitecore.Commerce.CustomModels.Models.CommerceCustomer": {
874 | "Type": "Complex",
875 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
876 | "Annotations": [
877 | {
878 | "Type": "DoNotIndexAttribute"
879 | }
880 | ],
881 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CommerceCustomer, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
882 | "Properties": {
883 | "Name": {
884 | "Type": "String"
885 | },
886 | "NameFacet": {
887 | "Type": "Guid"
888 | },
889 | "IsDisabled": {
890 | "Type": "Boolean"
891 | },
892 | "Shops": {
893 | "Type": [
894 | "String"
895 | ]
896 | },
897 | "Parties": {
898 | "Type": [
899 | "Sitecore.Commerce.CustomModels.Models.CustomerParty"
900 | ]
901 | },
902 | "Payments": {
903 | "Type": [
904 | "Sitecore.Commerce.CustomModels.Models.CustomerPaymentInfo"
905 | ]
906 | },
907 | "Users": {
908 | "Type": [
909 | "String"
910 | ]
911 | }
912 | }
913 | },
914 | "Sitecore.Commerce.CustomModels.Models.CommerceUser": {
915 | "Type": "Complex",
916 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
917 | "Annotations": [
918 | {
919 | "Type": "DoNotIndexAttribute"
920 | }
921 | ],
922 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CommerceUser, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
923 | "Properties": {
924 | "UserDataFacet": {
925 | "Type": "Guid"
926 | },
927 | "UserName": {
928 | "Type": "String"
929 | },
930 | "FirstName": {
931 | "Type": "String"
932 | },
933 | "LastName": {
934 | "Type": "String"
935 | },
936 | "Email": {
937 | "Type": "String"
938 | },
939 | "Comment": {
940 | "Type": "String"
941 | },
942 | "IsDisabled": {
943 | "Type": "Boolean"
944 | },
945 | "CreationDate": {
946 | "Type": "DateTime"
947 | },
948 | "LastActivityDate": {
949 | "Type": "DateTime"
950 | },
951 | "LastLoginDate": {
952 | "Type": "DateTime"
953 | },
954 | "LastDisabledDate": {
955 | "Type": "DateTime"
956 | },
957 | "LastPasswordChangedDate": {
958 | "Type": "DateTime"
959 | },
960 | "Shops": {
961 | "Type": [
962 | "String"
963 | ]
964 | },
965 | "Customers": {
966 | "Type": [
967 | "String"
968 | ]
969 | }
970 | }
971 | },
972 | "Sitecore.Commerce.CustomModels.Models.EnumType": {
973 | "Type": "Complex",
974 | "Abstract": true,
975 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
976 | "Annotations": [
977 | {
978 | "Type": "DoNotIndexAttribute"
979 | }
980 | ],
981 | "ClrType": "Sitecore.Commerce.CustomModels.Models.EnumType`1[[Sitecore.Commerce.CustomModels.Models.RewardPointType, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null]], Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
982 | "Properties": {
983 | "Value": {
984 | "Type": "Int32"
985 | },
986 | "Name": {
987 | "Type": "String"
988 | }
989 | }
990 | },
991 | "Sitecore.Commerce.CustomModels.Models.RewardPointType": {
992 | "Type": "Complex",
993 | "BaseType": "Sitecore.Commerce.CustomModels.Models.EnumType",
994 | "Annotations": [
995 | {
996 | "Type": "DoNotIndexAttribute"
997 | }
998 | ],
999 | "ClrType": "Sitecore.Commerce.CustomModels.Models.RewardPointType, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1000 | "Properties": {}
1001 | },
1002 | "Sitecore.Commerce.CustomModels.Models.LoyaltyRewardPoint": {
1003 | "Type": "Complex",
1004 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
1005 | "Annotations": [
1006 | {
1007 | "Type": "DoNotIndexAttribute"
1008 | }
1009 | ],
1010 | "ClrType": "Sitecore.Commerce.CustomModels.Models.LoyaltyRewardPoint, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1011 | "Properties": {
1012 | "Description": {
1013 | "Type": "String"
1014 | },
1015 | "RewardPointType": {
1016 | "Type": "Sitecore.Commerce.CustomModels.Models.RewardPointType"
1017 | },
1018 | "CurrencyCode": {
1019 | "Type": "String"
1020 | },
1021 | "IssuedPoints": {
1022 | "Type": "Decimal"
1023 | },
1024 | "UsedPoints": {
1025 | "Type": "Decimal"
1026 | },
1027 | "ExpiredPoints": {
1028 | "Type": "Decimal"
1029 | },
1030 | "ActivePoints": {
1031 | "Type": "Decimal"
1032 | }
1033 | }
1034 | },
1035 | "Sitecore.Commerce.CustomModels.Models.LoyaltyCard": {
1036 | "Type": "Complex",
1037 | "BaseType": "Sitecore.Commerce.CustomModels.Models.MappedEntity",
1038 | "Annotations": [
1039 | {
1040 | "Type": "DoNotIndexAttribute"
1041 | }
1042 | ],
1043 | "ClrType": "Sitecore.Commerce.CustomModels.Models.LoyaltyCard, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1044 | "Properties": {
1045 | "CustomerId": {
1046 | "Type": "String"
1047 | },
1048 | "CustomerIdFacet": {
1049 | "Type": "Guid"
1050 | },
1051 | "UserId": {
1052 | "Type": "String"
1053 | },
1054 | "UserIdFacet": {
1055 | "Type": "Guid"
1056 | },
1057 | "ShopName": {
1058 | "Type": "String"
1059 | },
1060 | "CardNumber": {
1061 | "Type": "String"
1062 | },
1063 | "ProgramIds": {
1064 | "Type": [
1065 | "String"
1066 | ]
1067 | },
1068 | "RewardPoints": {
1069 | "Type": [
1070 | "Sitecore.Commerce.CustomModels.Models.LoyaltyRewardPoint"
1071 | ]
1072 | }
1073 | }
1074 | },
1075 | "Sitecore.Commerce.CustomModels.Models.CartLine": {
1076 | "Type": "Complex",
1077 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
1078 | "Annotations": [
1079 | {
1080 | "Type": "DoNotIndexAttribute"
1081 | }
1082 | ],
1083 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartLine, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1084 | "Properties": {
1085 | "Adjustments": {
1086 | "Type": [
1087 | "Sitecore.Commerce.CustomModels.Models.CartAdjustment"
1088 | ]
1089 | },
1090 | "SubLines": {
1091 | "Type": [
1092 | "Sitecore.Commerce.CustomModels.Models.CartSubLine"
1093 | ]
1094 | },
1095 | "Id": {
1096 | "Type": "Guid"
1097 | },
1098 | "Total": {
1099 | "Type": "Sitecore.Commerce.CustomModels.Models.Total"
1100 | },
1101 | "Product": {
1102 | "Type": "Sitecore.Commerce.CustomModels.Models.CartProduct"
1103 | },
1104 | "ExternalCartLineId": {
1105 | "Type": "String"
1106 | },
1107 | "LineNumber": {
1108 | "Type": "Int32"
1109 | },
1110 | "Quantity": {
1111 | "Type": "Decimal"
1112 | }
1113 | }
1114 | },
1115 | "Sitecore.Commerce.CustomModels.Models.CartSubLine": {
1116 | "Type": "Complex",
1117 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
1118 | "Annotations": [
1119 | {
1120 | "Type": "DoNotIndexAttribute"
1121 | }
1122 | ],
1123 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartSubLine, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1124 | "Properties": {
1125 | "Adjustments": {
1126 | "Type": [
1127 | "Sitecore.Commerce.CustomModels.Models.CartAdjustment"
1128 | ]
1129 | },
1130 | "Id": {
1131 | "Type": "Guid"
1132 | },
1133 | "ParentId": {
1134 | "Type": "Guid"
1135 | },
1136 | "Total": {
1137 | "Type": "Sitecore.Commerce.CustomModels.Models.Total"
1138 | },
1139 | "Product": {
1140 | "Type": "Sitecore.Commerce.CustomModels.Models.CartProduct"
1141 | },
1142 | "ExternalCartLineId": {
1143 | "Type": "String"
1144 | },
1145 | "LineNumber": {
1146 | "Type": "Int32"
1147 | },
1148 | "Quantity": {
1149 | "Type": "Decimal"
1150 | }
1151 | }
1152 | },
1153 | "Sitecore.Commerce.CustomModels.Models.CartLineContainer": {
1154 | "Type": "Complex",
1155 | "Annotations": [
1156 | {
1157 | "Type": "DoNotIndexAttribute"
1158 | }
1159 | ],
1160 | "ClrType": "Sitecore.Commerce.CustomModels.Models.CartLineContainer, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1161 | "Properties": {
1162 | "ProductId": {
1163 | "Type": "String"
1164 | },
1165 | "Quantity": {
1166 | "Type": "Decimal"
1167 | },
1168 | "Price": {
1169 | "Type": "String"
1170 | },
1171 | "ProductName": {
1172 | "Type": "String"
1173 | },
1174 | "CartLine": {
1175 | "Type": "Sitecore.Commerce.CustomModels.Models.CartLine"
1176 | }
1177 | }
1178 | },
1179 | "Sitecore.Commerce.CustomModels.Models.Cart": {
1180 | "Type": "Complex",
1181 | "BaseType": "Sitecore.Commerce.CustomModels.Models.CartBase",
1182 | "Annotations": [
1183 | {
1184 | "Type": "DoNotIndexAttribute"
1185 | }
1186 | ],
1187 | "ClrType": "Sitecore.Commerce.CustomModels.Models.Cart, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1188 | "Properties": {
1189 | "Adjustments": {
1190 | "Type": [
1191 | "Sitecore.Commerce.CustomModels.Models.CartAdjustment"
1192 | ]
1193 | },
1194 | "CartLines": {
1195 | "Type": [
1196 | "Sitecore.Commerce.CustomModels.Models.CartLine"
1197 | ]
1198 | },
1199 | "Total": {
1200 | "Type": "Sitecore.Commerce.CustomModels.Models.Total"
1201 | },
1202 | "Parties": {
1203 | "Type": [
1204 | "Sitecore.Commerce.CustomModels.Models.Party"
1205 | ]
1206 | },
1207 | "Shipping": {
1208 | "Type": [
1209 | "Sitecore.Commerce.CustomModels.Models.ShippingInfo"
1210 | ]
1211 | },
1212 | "Payment": {
1213 | "Type": [
1214 | "Sitecore.Commerce.CustomModels.Models.PaymentInfo"
1215 | ]
1216 | }
1217 | }
1218 | },
1219 | "Sitecore.Commerce.CustomModels.Models.Order": {
1220 | "Type": "Complex",
1221 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Cart",
1222 | "Annotations": [
1223 | {
1224 | "Type": "DoNotIndexAttribute"
1225 | }
1226 | ],
1227 | "ClrType": "Sitecore.Commerce.CustomModels.Models.Order, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1228 | "Properties": {
1229 | "OrderID": {
1230 | "Type": "String"
1231 | },
1232 | "OrderDate": {
1233 | "Type": "DateTime"
1234 | },
1235 | "TrackingNumber": {
1236 | "Type": "String"
1237 | },
1238 | "IsOfflineOrder": {
1239 | "Type": "Boolean?"
1240 | }
1241 | }
1242 | },
1243 | "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent": {
1244 | "Type": "Event",
1245 | "BaseType": "Sitecore.XConnect.Event",
1246 | "Annotations": [
1247 | {
1248 | "Type": "DoNotIndexAttribute"
1249 | }
1250 | ],
1251 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1252 | "Properties": {}
1253 | },
1254 | "Sitecore.Commerce.CustomModels.PageEvents.CultureChosenPageEvent": {
1255 | "Type": "Event",
1256 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1257 | "Annotations": [
1258 | {
1259 | "Type": "DoNotIndexAttribute"
1260 | }
1261 | ],
1262 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CultureChosenPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1263 | "Properties": {
1264 | "ShopName": {
1265 | "Type": "String"
1266 | },
1267 | "Culture": {
1268 | "Type": "String"
1269 | }
1270 | }
1271 | },
1272 | "Sitecore.Commerce.CustomModels.PageEvents.CurrencyChosenPageEvent": {
1273 | "Type": "Event",
1274 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1275 | "Annotations": [
1276 | {
1277 | "Type": "DoNotIndexAttribute"
1278 | }
1279 | ],
1280 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CurrencyChosenPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1281 | "Properties": {
1282 | "ShopName": {
1283 | "Type": "String"
1284 | },
1285 | "CurrencyCode": {
1286 | "Type": "String"
1287 | }
1288 | }
1289 | },
1290 | "Sitecore.Commerce.CustomModels.PageEvents.SearchPageEvent": {
1291 | "Type": "Event",
1292 | "BaseType": "Sitecore.XConnect.Collection.Model.SearchEvent",
1293 | "Annotations": [
1294 | {
1295 | "Type": "DoNotIndexAttribute"
1296 | }
1297 | ],
1298 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.SearchPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1299 | "Properties": {
1300 | "ShopName": {
1301 | "Type": "String"
1302 | },
1303 | "SearchTerm": {
1304 | "Type": "String"
1305 | },
1306 | "NumberOfHits": {
1307 | "Type": "Int32"
1308 | }
1309 | }
1310 | },
1311 | "Sitecore.Commerce.CustomModels.PageEvents.FacetAppliedPageEvent": {
1312 | "Type": "Event",
1313 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1314 | "Annotations": [
1315 | {
1316 | "Type": "DoNotIndexAttribute"
1317 | }
1318 | ],
1319 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.FacetAppliedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1320 | "Properties": {
1321 | "ShopName": {
1322 | "Type": "String"
1323 | },
1324 | "Facet": {
1325 | "Type": "String"
1326 | },
1327 | "IsApplied": {
1328 | "Type": "Boolean"
1329 | }
1330 | }
1331 | },
1332 | "Sitecore.Commerce.CustomModels.PageEvents.ProductSortingPageEvent": {
1333 | "Type": "Event",
1334 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1335 | "Annotations": [
1336 | {
1337 | "Type": "DoNotIndexAttribute"
1338 | }
1339 | ],
1340 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.ProductSortingPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1341 | "Properties": {
1342 | "ShopName": {
1343 | "Type": "String"
1344 | },
1345 | "SortKey": {
1346 | "Type": "String"
1347 | },
1348 | "SortDirection": {
1349 | "Type": "Int32"
1350 | }
1351 | }
1352 | },
1353 | "Sitecore.Commerce.CustomModels.PageEvents.VisitedCategoryPageEvent": {
1354 | "Type": "Event",
1355 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1356 | "Annotations": [
1357 | {
1358 | "Type": "DoNotIndexAttribute"
1359 | }
1360 | ],
1361 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.VisitedCategoryPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1362 | "Properties": {
1363 | "ShopName": {
1364 | "Type": "String"
1365 | },
1366 | "CategoryId": {
1367 | "Type": "String"
1368 | },
1369 | "CategoryName": {
1370 | "Type": "String"
1371 | }
1372 | }
1373 | },
1374 | "Sitecore.Commerce.CustomModels.PageEvents.VisitedProductDetailsPageEvent": {
1375 | "Type": "Event",
1376 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1377 | "Annotations": [
1378 | {
1379 | "Type": "DoNotIndexAttribute"
1380 | }
1381 | ],
1382 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.VisitedProductDetailsPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1383 | "Properties": {
1384 | "ShopName": {
1385 | "Type": "String"
1386 | },
1387 | "ProductId": {
1388 | "Type": "String"
1389 | },
1390 | "ProductName": {
1391 | "Type": "String"
1392 | },
1393 | "ParentCategoryId": {
1394 | "Type": "String"
1395 | },
1396 | "ParentCategoryName": {
1397 | "Type": "String"
1398 | },
1399 | "Amount": {
1400 | "Type": "Decimal?"
1401 | },
1402 | "CurrencyCode": {
1403 | "Type": "String"
1404 | }
1405 | }
1406 | },
1407 | "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent": {
1408 | "Type": "Event",
1409 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1410 | "Annotations": [
1411 | {
1412 | "Type": "DoNotIndexAttribute"
1413 | }
1414 | ],
1415 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1416 | "Properties": {
1417 | "ExternalId": {
1418 | "Type": "String"
1419 | },
1420 | "UserId": {
1421 | "Type": "String"
1422 | },
1423 | "UserIdFacet": {
1424 | "Type": "Guid"
1425 | },
1426 | "CartName": {
1427 | "Type": "String"
1428 | },
1429 | "CartStatus": {
1430 | "Type": "String"
1431 | },
1432 | "ShopName": {
1433 | "Type": "String"
1434 | },
1435 | "Cart": {
1436 | "Type": "Sitecore.Commerce.CustomModels.Models.Cart"
1437 | }
1438 | }
1439 | },
1440 | "Sitecore.Commerce.CustomModels.PageEvents.CartCreatedPageEvent": {
1441 | "Type": "Event",
1442 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent",
1443 | "Annotations": [
1444 | {
1445 | "Type": "DoNotIndexAttribute"
1446 | }
1447 | ],
1448 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartCreatedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1449 | "Properties": {}
1450 | },
1451 | "Sitecore.Commerce.CustomModels.PageEvents.CartDeletedPageEvent": {
1452 | "Type": "Event",
1453 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent",
1454 | "Annotations": [
1455 | {
1456 | "Type": "DoNotIndexAttribute"
1457 | }
1458 | ],
1459 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartDeletedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1460 | "Properties": {}
1461 | },
1462 | "Sitecore.Commerce.CustomModels.PageEvents.CartLockedPageEvent": {
1463 | "Type": "Event",
1464 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent",
1465 | "Annotations": [
1466 | {
1467 | "Type": "DoNotIndexAttribute"
1468 | }
1469 | ],
1470 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartLockedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1471 | "Properties": {}
1472 | },
1473 | "Sitecore.Commerce.CustomModels.PageEvents.CartResumedPageEvent": {
1474 | "Type": "Event",
1475 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent",
1476 | "Annotations": [
1477 | {
1478 | "Type": "DoNotIndexAttribute"
1479 | }
1480 | ],
1481 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartResumedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1482 | "Properties": {
1483 | "PreviousStateName": {
1484 | "Type": "String"
1485 | }
1486 | }
1487 | },
1488 | "Sitecore.Commerce.CustomModels.PageEvents.CartUnlockedPageEvent": {
1489 | "Type": "Event",
1490 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartPageEvent",
1491 | "Annotations": [
1492 | {
1493 | "Type": "DoNotIndexAttribute"
1494 | }
1495 | ],
1496 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartUnlockedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1497 | "Properties": {}
1498 | },
1499 | "Sitecore.Commerce.CustomModels.PageEvents.CartUpdatedPageEvent": {
1500 | "Type": "Event",
1501 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1502 | "Annotations": [
1503 | {
1504 | "Type": "DoNotIndexAttribute"
1505 | }
1506 | ],
1507 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartUpdatedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1508 | "Properties": {
1509 | "CustomerId": {
1510 | "Type": "String"
1511 | },
1512 | "CartName": {
1513 | "Type": "String"
1514 | },
1515 | "ShopName": {
1516 | "Type": "String"
1517 | },
1518 | "Cart": {
1519 | "Type": "Sitecore.Commerce.CustomModels.Models.Cart"
1520 | }
1521 | }
1522 | },
1523 | "Sitecore.Commerce.CustomModels.PageEvents.CartLinesPageEvent": {
1524 | "Type": "Event",
1525 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1526 | "Annotations": [
1527 | {
1528 | "Type": "DoNotIndexAttribute"
1529 | }
1530 | ],
1531 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CartLinesPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1532 | "Properties": {
1533 | "CartLines": {
1534 | "Type": [
1535 | "Sitecore.Commerce.CustomModels.Models.CartLineContainer"
1536 | ]
1537 | },
1538 | "ShopName": {
1539 | "Type": "String"
1540 | },
1541 | "Cart": {
1542 | "Type": "Sitecore.Commerce.CustomModels.Models.Cart"
1543 | },
1544 | "CustomCartJson": {
1545 | "Type": "String"
1546 | }
1547 | }
1548 | },
1549 | "Sitecore.Commerce.CustomModels.PageEvents.LinesAddedToCartPageEvent": {
1550 | "Type": "Event",
1551 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartLinesPageEvent",
1552 | "Annotations": [
1553 | {
1554 | "Type": "DoNotIndexAttribute"
1555 | }
1556 | ],
1557 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LinesAddedToCartPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1558 | "Properties": {}
1559 | },
1560 | "Sitecore.Commerce.CustomModels.PageEvents.LinesRemovedFromCartPageEvent": {
1561 | "Type": "Event",
1562 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartLinesPageEvent",
1563 | "Annotations": [
1564 | {
1565 | "Type": "DoNotIndexAttribute"
1566 | }
1567 | ],
1568 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LinesRemovedFromCartPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1569 | "Properties": {}
1570 | },
1571 | "Sitecore.Commerce.CustomModels.PageEvents.LinesUpdatedOnCartPageEvent": {
1572 | "Type": "Event",
1573 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CartLinesPageEvent",
1574 | "Annotations": [
1575 | {
1576 | "Type": "DoNotIndexAttribute"
1577 | }
1578 | ],
1579 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LinesUpdatedOnCartPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1580 | "Properties": {}
1581 | },
1582 | "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountPageEvent": {
1583 | "Type": "Event",
1584 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1585 | "Annotations": [
1586 | {
1587 | "Type": "DoNotIndexAttribute"
1588 | }
1589 | ],
1590 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1591 | "Properties": {
1592 | "CustomerName": {
1593 | "Type": "String"
1594 | },
1595 | "ShopName": {
1596 | "Type": "String"
1597 | },
1598 | "Customer": {
1599 | "Type": "Sitecore.Commerce.CustomModels.Models.CommerceCustomer"
1600 | }
1601 | }
1602 | },
1603 | "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountDeletedPageEvent": {
1604 | "Type": "Event",
1605 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountPageEvent",
1606 | "Annotations": [
1607 | {
1608 | "Type": "DoNotIndexAttribute"
1609 | }
1610 | ],
1611 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountDeletedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1612 | "Properties": {}
1613 | },
1614 | "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountDisabledPageEvent": {
1615 | "Type": "Event",
1616 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountPageEvent",
1617 | "Annotations": [
1618 | {
1619 | "Type": "DoNotIndexAttribute"
1620 | }
1621 | ],
1622 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountDisabledPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1623 | "Properties": {}
1624 | },
1625 | "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountEnabledPageEvent": {
1626 | "Type": "Event",
1627 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountPageEvent",
1628 | "Annotations": [
1629 | {
1630 | "Type": "DoNotIndexAttribute"
1631 | }
1632 | ],
1633 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountEnabledPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1634 | "Properties": {}
1635 | },
1636 | "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountUpdatedPageEvent": {
1637 | "Type": "Event",
1638 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountPageEvent",
1639 | "Annotations": [
1640 | {
1641 | "Type": "DoNotIndexAttribute"
1642 | }
1643 | ],
1644 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.CustomerAccountUpdatedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1645 | "Properties": {}
1646 | },
1647 | "Sitecore.Commerce.CustomModels.PageEvents.AddToCartStockStatusPageEvent": {
1648 | "Type": "Event",
1649 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1650 | "Annotations": [
1651 | {
1652 | "Type": "DoNotIndexAttribute"
1653 | }
1654 | ],
1655 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.AddToCartStockStatusPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1656 | "Properties": {
1657 | "ExternalId": {
1658 | "Type": "String"
1659 | },
1660 | "UserId": {
1661 | "Type": "String"
1662 | },
1663 | "UserIdFacet": {
1664 | "Type": "Guid"
1665 | },
1666 | "ShopName": {
1667 | "Type": "String"
1668 | },
1669 | "CartLines": {
1670 | "Type": [
1671 | "Sitecore.Commerce.CustomModels.Models.CartLine"
1672 | ]
1673 | },
1674 | "Cart": {
1675 | "Type": "Sitecore.Commerce.CustomModels.Models.Cart"
1676 | }
1677 | }
1678 | },
1679 | "Sitecore.Commerce.CustomModels.PageEvents.BackInStockSubscriptionPageEvent": {
1680 | "Type": "Event",
1681 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1682 | "Annotations": [
1683 | {
1684 | "Type": "DoNotIndexAttribute"
1685 | }
1686 | ],
1687 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.BackInStockSubscriptionPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1688 | "Properties": {
1689 | "InventoryProduct": {
1690 | "Type": "Sitecore.Commerce.CustomModels.Models.InventoryProduct"
1691 | },
1692 | "Email": {
1693 | "Type": "String"
1694 | },
1695 | "EmailFacet": {
1696 | "Type": "Guid"
1697 | },
1698 | "Location": {
1699 | "Type": "String"
1700 | },
1701 | "InterestDate": {
1702 | "Type": "DateTime"
1703 | },
1704 | "ShopName": {
1705 | "Type": "String"
1706 | }
1707 | }
1708 | },
1709 | "Sitecore.Commerce.CustomModels.Models.InventoryProduct": {
1710 | "Type": "Complex",
1711 | "BaseType": "Sitecore.Commerce.CustomModels.Models.Entity",
1712 | "Annotations": [
1713 | {
1714 | "Type": "DoNotIndexAttribute"
1715 | }
1716 | ],
1717 | "ClrType": "Sitecore.Commerce.CustomModels.Models.InventoryProduct, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1718 | "Properties": {
1719 | "ProductId": {
1720 | "Type": "String"
1721 | }
1722 | }
1723 | },
1724 | "Sitecore.Commerce.CustomModels.PageEvents.BackInStockUnsubscriptionPageEvent": {
1725 | "Type": "Event",
1726 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1727 | "Annotations": [
1728 | {
1729 | "Type": "DoNotIndexAttribute"
1730 | }
1731 | ],
1732 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.BackInStockUnsubscriptionPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1733 | "Properties": {
1734 | "InventoryProduct": {
1735 | "Type": "Sitecore.Commerce.CustomModels.Models.InventoryProduct"
1736 | },
1737 | "Location": {
1738 | "Type": "String"
1739 | },
1740 | "ShopName": {
1741 | "Type": "String"
1742 | },
1743 | "VisitorId": {
1744 | "Type": "String"
1745 | },
1746 | "VisitorIdFacet": {
1747 | "Type": "Guid"
1748 | }
1749 | }
1750 | },
1751 | "Sitecore.Commerce.CustomModels.PageEvents.ProductsAreBackInStockPageEvent": {
1752 | "Type": "Event",
1753 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1754 | "Annotations": [
1755 | {
1756 | "Type": "DoNotIndexAttribute"
1757 | }
1758 | ],
1759 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.ProductsAreBackInStockPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1760 | "Properties": {
1761 | "RequestJson": {
1762 | "Type": "String"
1763 | }
1764 | }
1765 | },
1766 | "Sitecore.Commerce.CustomModels.PageEvents.VisitedProductStockStatusPageEvent": {
1767 | "Type": "Event",
1768 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1769 | "Annotations": [
1770 | {
1771 | "Type": "DoNotIndexAttribute"
1772 | }
1773 | ],
1774 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.VisitedProductStockStatusPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1775 | "Properties": {
1776 | "ShopName": {
1777 | "Type": "String"
1778 | },
1779 | "InventoryProduct": {
1780 | "Type": "Sitecore.Commerce.CustomModels.Models.InventoryProduct"
1781 | },
1782 | "Location": {
1783 | "Type": "String"
1784 | },
1785 | "StockStatus": {
1786 | "Type": "String"
1787 | },
1788 | "AvailabilityDate": {
1789 | "Type": "DateTime?"
1790 | },
1791 | "StockCount": {
1792 | "Type": "Double"
1793 | }
1794 | }
1795 | },
1796 | "Sitecore.Commerce.CustomModels.PageEvents.GiftCardPurchasePageEvent": {
1797 | "Type": "Event",
1798 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1799 | "Annotations": [
1800 | {
1801 | "Type": "DoNotIndexAttribute"
1802 | }
1803 | ],
1804 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.GiftCardPurchasePageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1805 | "Properties": {
1806 | "ExternalId": {
1807 | "Type": "String"
1808 | },
1809 | "CustomerId": {
1810 | "Type": "String"
1811 | },
1812 | "CustomerIdFacet": {
1813 | "Type": "Guid"
1814 | },
1815 | "ShopName": {
1816 | "Type": "String"
1817 | },
1818 | "OrderId": {
1819 | "Type": "String"
1820 | },
1821 | "Total": {
1822 | "Type": "Sitecore.Commerce.CustomModels.Models.Total"
1823 | },
1824 | "GiftCardAmount": {
1825 | "Type": "Decimal"
1826 | },
1827 | "Order": {
1828 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
1829 | },
1830 | "Balance": {
1831 | "Type": "Decimal?"
1832 | }
1833 | }
1834 | },
1835 | "Sitecore.Commerce.CustomModels.PageEvents.LoyaltyCardPurchasePageEvent": {
1836 | "Type": "Event",
1837 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1838 | "Annotations": [
1839 | {
1840 | "Type": "DoNotIndexAttribute"
1841 | }
1842 | ],
1843 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LoyaltyCardPurchasePageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1844 | "Properties": {
1845 | "ExternalId": {
1846 | "Type": "String"
1847 | },
1848 | "CustomerId": {
1849 | "Type": "String"
1850 | },
1851 | "CustomerIdFacet": {
1852 | "Type": "Guid"
1853 | },
1854 | "ShopName": {
1855 | "Type": "String"
1856 | },
1857 | "OrderId": {
1858 | "Type": "String"
1859 | },
1860 | "Total": {
1861 | "Type": "Sitecore.Commerce.CustomModels.Models.Total"
1862 | },
1863 | "LoyaltyCardAmount": {
1864 | "Type": "Decimal"
1865 | },
1866 | "Order": {
1867 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
1868 | }
1869 | }
1870 | },
1871 | "Sitecore.Commerce.CustomModels.PageEvents.OfflineOrdersSynchronizedPageEvent": {
1872 | "Type": "Event",
1873 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1874 | "Annotations": [
1875 | {
1876 | "Type": "DoNotIndexAttribute"
1877 | }
1878 | ],
1879 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.OfflineOrdersSynchronizedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1880 | "Properties": {
1881 | "UserId": {
1882 | "Type": "String"
1883 | },
1884 | "UserIdFacet": {
1885 | "Type": "Guid"
1886 | },
1887 | "ShopName": {
1888 | "Type": "String"
1889 | },
1890 | "ExternalSystem": {
1891 | "Type": "String"
1892 | },
1893 | "LastOrderSynchronizedDate": {
1894 | "Type": "DateTime?"
1895 | },
1896 | "NumberOfOrdersSynchronized": {
1897 | "Type": "Int32"
1898 | },
1899 | "SynchronizedOrderIdsList": {
1900 | "Type": [
1901 | "String"
1902 | ]
1903 | }
1904 | }
1905 | },
1906 | "Sitecore.Commerce.CustomModels.PageEvents.OrderStatusChangedPageEvent": {
1907 | "Type": "Event",
1908 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1909 | "Annotations": [
1910 | {
1911 | "Type": "DoNotIndexAttribute"
1912 | }
1913 | ],
1914 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.OrderStatusChangedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1915 | "Properties": {
1916 | "OrderId": {
1917 | "Type": "String"
1918 | },
1919 | "OrderStatus": {
1920 | "Type": "String"
1921 | }
1922 | }
1923 | },
1924 | "Sitecore.Commerce.CustomModels.PageEvents.ReorderRequestedPageEvent": {
1925 | "Type": "Event",
1926 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1927 | "Annotations": [
1928 | {
1929 | "Type": "DoNotIndexAttribute"
1930 | }
1931 | ],
1932 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.ReorderRequestedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1933 | "Properties": {
1934 | "ShopName": {
1935 | "Type": "String"
1936 | },
1937 | "ItemsReorderedCount": {
1938 | "Type": "Int32"
1939 | },
1940 | "OrderLinesReordered": {
1941 | "Type": [
1942 | "String"
1943 | ]
1944 | },
1945 | "SourceOrder": {
1946 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
1947 | },
1948 | "ResultCart": {
1949 | "Type": "Sitecore.Commerce.CustomModels.Models.Cart"
1950 | }
1951 | }
1952 | },
1953 | "Sitecore.Commerce.CustomModels.PageEvents.VisitorOrderCancelPageEvent": {
1954 | "Type": "Event",
1955 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1956 | "Annotations": [
1957 | {
1958 | "Type": "DoNotIndexAttribute"
1959 | }
1960 | ],
1961 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.VisitorOrderCancelPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1962 | "Properties": {
1963 | "CustomerId": {
1964 | "Type": "String"
1965 | },
1966 | "CustomerIdFacet": {
1967 | "Type": "Guid"
1968 | },
1969 | "ShopName": {
1970 | "Type": "String"
1971 | },
1972 | "OrderId": {
1973 | "Type": "String"
1974 | },
1975 | "TotalAmount": {
1976 | "Type": "Decimal"
1977 | },
1978 | "Order": {
1979 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
1980 | },
1981 | "CancellationStatus": {
1982 | "Type": "Int32"
1983 | }
1984 | }
1985 | },
1986 | "Sitecore.Commerce.CustomModels.PageEvents.VisitorViewedOrderDetailPageEvent": {
1987 | "Type": "Event",
1988 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
1989 | "Annotations": [
1990 | {
1991 | "Type": "DoNotIndexAttribute"
1992 | }
1993 | ],
1994 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.VisitorViewedOrderDetailPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
1995 | "Properties": {
1996 | "CustomerId": {
1997 | "Type": "String"
1998 | },
1999 | "CustomerIdFacet": {
2000 | "Type": "Guid"
2001 | },
2002 | "ShopName": {
2003 | "Type": "String"
2004 | },
2005 | "OrderId": {
2006 | "Type": "String"
2007 | },
2008 | "TotalAmount": {
2009 | "Type": "Decimal"
2010 | },
2011 | "Order": {
2012 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
2013 | }
2014 | }
2015 | },
2016 | "Sitecore.Commerce.CustomModels.PageEvents.VisitorViewedOrderHistoryPageEvent": {
2017 | "Type": "Event",
2018 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2019 | "Annotations": [
2020 | {
2021 | "Type": "DoNotIndexAttribute"
2022 | }
2023 | ],
2024 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.VisitorViewedOrderHistoryPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2025 | "Properties": {
2026 | "CustomerId": {
2027 | "Type": "String"
2028 | },
2029 | "CustomerIdFacet": {
2030 | "Type": "Guid"
2031 | },
2032 | "ShopName": {
2033 | "Type": "String"
2034 | }
2035 | }
2036 | },
2037 | "Sitecore.Commerce.CustomModels.PageEvents.OrderedProductStockStatusPageEvent": {
2038 | "Type": "Event",
2039 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2040 | "Annotations": [
2041 | {
2042 | "Type": "DoNotIndexAttribute"
2043 | }
2044 | ],
2045 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.OrderedProductStockStatusPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2046 | "Properties": {
2047 | "ProductId": {
2048 | "Type": "String"
2049 | },
2050 | "StockStatus": {
2051 | "Type": "Int32"
2052 | },
2053 | "InStockDate": {
2054 | "Type": "DateTime?"
2055 | },
2056 | "ShippingDate": {
2057 | "Type": "DateTime?"
2058 | },
2059 | "PreOrderable": {
2060 | "Type": "Boolean"
2061 | },
2062 | "ProductName": {
2063 | "Type": "String"
2064 | }
2065 | }
2066 | },
2067 | "Sitecore.Commerce.CustomModels.PageEvents.UserAccountPageEvent": {
2068 | "Type": "Event",
2069 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2070 | "Annotations": [
2071 | {
2072 | "Type": "DoNotIndexAttribute"
2073 | }
2074 | ],
2075 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2076 | "Properties": {
2077 | "UserName": {
2078 | "Type": "String"
2079 | },
2080 | "UserNameFacet": {
2081 | "Type": "Guid"
2082 | },
2083 | "ShopName": {
2084 | "Type": "String"
2085 | },
2086 | "CommerceUser": {
2087 | "Type": "Sitecore.Commerce.CustomModels.Models.CommerceUser"
2088 | }
2089 | }
2090 | },
2091 | "Sitecore.Commerce.CustomModels.PageEvents.UserAccountDeletedPageEvent": {
2092 | "Type": "Event",
2093 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountPageEvent",
2094 | "Annotations": [
2095 | {
2096 | "Type": "DoNotIndexAttribute"
2097 | }
2098 | ],
2099 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountDeletedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2100 | "Properties": {}
2101 | },
2102 | "Sitecore.Commerce.CustomModels.PageEvents.UserAccountDisabledPageEvent": {
2103 | "Type": "Event",
2104 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountPageEvent",
2105 | "Annotations": [
2106 | {
2107 | "Type": "DoNotIndexAttribute"
2108 | }
2109 | ],
2110 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountDisabledPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2111 | "Properties": {}
2112 | },
2113 | "Sitecore.Commerce.CustomModels.PageEvents.UserAccountEnabledPageEvent": {
2114 | "Type": "Event",
2115 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountPageEvent",
2116 | "Annotations": [
2117 | {
2118 | "Type": "DoNotIndexAttribute"
2119 | }
2120 | ],
2121 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountEnabledPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2122 | "Properties": {}
2123 | },
2124 | "Sitecore.Commerce.CustomModels.PageEvents.UserAccountUpdatedPageEvent": {
2125 | "Type": "Event",
2126 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountPageEvent",
2127 | "Annotations": [
2128 | {
2129 | "Type": "DoNotIndexAttribute"
2130 | }
2131 | ],
2132 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.UserAccountUpdatedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2133 | "Properties": {}
2134 | },
2135 | "Sitecore.Commerce.CustomModels.PageEvents.WishListLinesPageEvent": {
2136 | "Type": "Event",
2137 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2138 | "Annotations": [
2139 | {
2140 | "Type": "DoNotIndexAttribute"
2141 | }
2142 | ],
2143 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.WishListLinesPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2144 | "Properties": {
2145 | "ExternalId": {
2146 | "Type": "String"
2147 | },
2148 | "UserId": {
2149 | "Type": "String"
2150 | },
2151 | "UserIdFacet": {
2152 | "Type": "Guid"
2153 | },
2154 | "WishListName": {
2155 | "Type": "String"
2156 | },
2157 | "ShopName": {
2158 | "Type": "String"
2159 | },
2160 | "WishList": {
2161 | "Type": "Sitecore.Commerce.CustomModels.Models.WishList"
2162 | },
2163 | "WishListLines": {
2164 | "Type": [
2165 | "Sitecore.Commerce.CustomModels.Models.WishListLine"
2166 | ]
2167 | }
2168 | }
2169 | },
2170 | "Sitecore.Commerce.CustomModels.PageEvents.LinesAddedToWishListPageEvent": {
2171 | "Type": "Event",
2172 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.WishListLinesPageEvent",
2173 | "Annotations": [
2174 | {
2175 | "Type": "DoNotIndexAttribute"
2176 | }
2177 | ],
2178 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LinesAddedToWishListPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2179 | "Properties": {}
2180 | },
2181 | "Sitecore.Commerce.CustomModels.PageEvents.LinesRemovedFromWishListPageEvent": {
2182 | "Type": "Event",
2183 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.WishListLinesPageEvent",
2184 | "Annotations": [
2185 | {
2186 | "Type": "DoNotIndexAttribute"
2187 | }
2188 | ],
2189 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LinesRemovedFromWishListPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2190 | "Properties": {}
2191 | },
2192 | "Sitecore.Commerce.CustomModels.PageEvents.LinesUpdatedOnWishListPageEvent": {
2193 | "Type": "Event",
2194 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.WishListLinesPageEvent",
2195 | "Annotations": [
2196 | {
2197 | "Type": "DoNotIndexAttribute"
2198 | }
2199 | ],
2200 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.LinesUpdatedOnWishListPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2201 | "Properties": {}
2202 | },
2203 | "Sitecore.Commerce.CustomModels.PageEvents.WishListCreatedPageEvent": {
2204 | "Type": "Event",
2205 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2206 | "Annotations": [
2207 | {
2208 | "Type": "DoNotIndexAttribute"
2209 | }
2210 | ],
2211 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.WishListCreatedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2212 | "Properties": {
2213 | "ExternalId": {
2214 | "Type": "String"
2215 | },
2216 | "UserId": {
2217 | "Type": "String"
2218 | },
2219 | "UserIdFacet": {
2220 | "Type": "Guid"
2221 | },
2222 | "WishListName": {
2223 | "Type": "String"
2224 | },
2225 | "ShopName": {
2226 | "Type": "String"
2227 | },
2228 | "WishList": {
2229 | "Type": "Sitecore.Commerce.CustomModels.Models.WishList"
2230 | }
2231 | }
2232 | },
2233 | "Sitecore.Commerce.CustomModels.PageEvents.WishListDeletedPageEvent": {
2234 | "Type": "Event",
2235 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2236 | "Annotations": [
2237 | {
2238 | "Type": "DoNotIndexAttribute"
2239 | }
2240 | ],
2241 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.WishListDeletedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2242 | "Properties": {
2243 | "ExternalId": {
2244 | "Type": "String"
2245 | },
2246 | "UserId": {
2247 | "Type": "String"
2248 | },
2249 | "UserIdFacet": {
2250 | "Type": "Guid"
2251 | },
2252 | "WishListName": {
2253 | "Type": "String"
2254 | },
2255 | "ShopName": {
2256 | "Type": "String"
2257 | },
2258 | "WishList": {
2259 | "Type": "Sitecore.Commerce.CustomModels.Models.WishList"
2260 | }
2261 | }
2262 | },
2263 | "Sitecore.Commerce.CustomModels.PageEvents.WishListEmailedPageEvent": {
2264 | "Type": "Event",
2265 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2266 | "Annotations": [
2267 | {
2268 | "Type": "DoNotIndexAttribute"
2269 | }
2270 | ],
2271 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.WishListEmailedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2272 | "Properties": {
2273 | "WishLists": {
2274 | "Type": [
2275 | "Sitecore.Commerce.CustomModels.Models.WishListEmailed"
2276 | ]
2277 | }
2278 | }
2279 | },
2280 | "Sitecore.Commerce.CustomModels.PageEvents.WishListPrintedPageEvent": {
2281 | "Type": "Event",
2282 | "BaseType": "Sitecore.Commerce.CustomModels.PageEvents.BaseCustomPageEvent",
2283 | "Annotations": [
2284 | {
2285 | "Type": "DoNotIndexAttribute"
2286 | }
2287 | ],
2288 | "ClrType": "Sitecore.Commerce.CustomModels.PageEvents.WishListPrintedPageEvent, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2289 | "Properties": {
2290 | "ExternalId": {
2291 | "Type": "String"
2292 | },
2293 | "UserId": {
2294 | "Type": "String"
2295 | },
2296 | "UserIdFacet": {
2297 | "Type": "Guid"
2298 | },
2299 | "WishListName": {
2300 | "Type": "String"
2301 | },
2302 | "ShopName": {
2303 | "Type": "String"
2304 | },
2305 | "WishList": {
2306 | "Type": "Sitecore.Commerce.CustomModels.Models.WishList"
2307 | }
2308 | }
2309 | },
2310 | "Sitecore.Commerce.CustomModels.Goals.BaseCustomGoal": {
2311 | "Type": "Event",
2312 | "BaseType": "Sitecore.XConnect.Goal",
2313 | "Annotations": [
2314 | {
2315 | "Type": "DoNotIndexAttribute"
2316 | }
2317 | ],
2318 | "ClrType": "Sitecore.Commerce.CustomModels.Goals.BaseCustomGoal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2319 | "Properties": {}
2320 | },
2321 | "Sitecore.Commerce.CustomModels.Goals.UserAccountCreatedGoal": {
2322 | "Type": "Event",
2323 | "BaseType": "Sitecore.Commerce.CustomModels.Goals.BaseCustomGoal",
2324 | "Annotations": [
2325 | {
2326 | "Type": "DoNotIndexAttribute"
2327 | }
2328 | ],
2329 | "ClrType": "Sitecore.Commerce.CustomModels.Goals.UserAccountCreatedGoal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2330 | "Properties": {
2331 | "UserName": {
2332 | "Type": "String"
2333 | },
2334 | "UserNameFacet": {
2335 | "Type": "Guid"
2336 | },
2337 | "ShopName": {
2338 | "Type": "String"
2339 | },
2340 | "CommerceUser": {
2341 | "Type": "Sitecore.Commerce.CustomModels.Models.CommerceUser"
2342 | }
2343 | }
2344 | },
2345 | "Sitecore.Commerce.CustomModels.Goals.CustomerAccountCreatedGoal": {
2346 | "Type": "Event",
2347 | "BaseType": "Sitecore.Commerce.CustomModels.Goals.BaseCustomGoal",
2348 | "Annotations": [
2349 | {
2350 | "Type": "DoNotIndexAttribute"
2351 | }
2352 | ],
2353 | "ClrType": "Sitecore.Commerce.CustomModels.Goals.CustomerAccountCreatedGoal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2354 | "Properties": {
2355 | "CustomerName": {
2356 | "Type": "String"
2357 | },
2358 | "CustomerNameFacet": {
2359 | "Type": "Guid"
2360 | },
2361 | "ShopName": {
2362 | "Type": "String"
2363 | },
2364 | "Customer": {
2365 | "Type": "Sitecore.Commerce.CustomModels.Models.CommerceCustomer"
2366 | }
2367 | }
2368 | },
2369 | "Sitecore.Commerce.CustomModels.Goals.LoyaltyProgramJoinedGoal": {
2370 | "Type": "Event",
2371 | "BaseType": "Sitecore.Commerce.CustomModels.Goals.BaseCustomGoal",
2372 | "Annotations": [
2373 | {
2374 | "Type": "DoNotIndexAttribute"
2375 | }
2376 | ],
2377 | "ClrType": "Sitecore.Commerce.CustomModels.Goals.LoyaltyProgramJoinedGoal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2378 | "Properties": {
2379 | "ExternalId": {
2380 | "Type": "String"
2381 | },
2382 | "CustomerId": {
2383 | "Type": "String"
2384 | },
2385 | "CustomerIdFacet": {
2386 | "Type": "Guid"
2387 | },
2388 | "ShopName": {
2389 | "Type": "String"
2390 | },
2391 | "CardNumber": {
2392 | "Type": "String"
2393 | },
2394 | "LoyaltyCard": {
2395 | "Type": "Sitecore.Commerce.CustomModels.Models.LoyaltyCard"
2396 | }
2397 | }
2398 | },
2399 | "Sitecore.Commerce.CustomModels.Goals.VisitorOrderCreatedGoal": {
2400 | "Type": "Event",
2401 | "BaseType": "Sitecore.Commerce.CustomModels.Goals.BaseCustomGoal",
2402 | "Annotations": [
2403 | {
2404 | "Type": "DoNotIndexAttribute"
2405 | }
2406 | ],
2407 | "ClrType": "Sitecore.Commerce.CustomModels.Goals.VisitorOrderCreatedGoal, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2408 | "Properties": {
2409 | "SitecoreUserName": {
2410 | "Type": "String"
2411 | },
2412 | "SitecoreCustomerName": {
2413 | "Type": "String"
2414 | },
2415 | "ExternalId": {
2416 | "Type": "String"
2417 | },
2418 | "ShopName": {
2419 | "Type": "String"
2420 | },
2421 | "Total": {
2422 | "Type": "Sitecore.Commerce.CustomModels.Models.Total"
2423 | },
2424 | "Order": {
2425 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
2426 | },
2427 | "IsOfflineOrder": {
2428 | "Type": "Boolean?"
2429 | }
2430 | }
2431 | },
2432 | "Sitecore.Commerce.CustomModels.Outcomes.BaseCustomOutcome": {
2433 | "Type": "Event",
2434 | "BaseType": "Sitecore.XConnect.Outcome",
2435 | "Annotations": [
2436 | {
2437 | "Type": "DoNotIndexAttribute"
2438 | }
2439 | ],
2440 | "ClrType": "Sitecore.Commerce.CustomModels.Outcomes.BaseCustomOutcome, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2441 | "Properties": {}
2442 | },
2443 | "Sitecore.Commerce.CustomModels.Outcomes.SubmittedOrderOutcome": {
2444 | "Type": "Event",
2445 | "BaseType": "Sitecore.Commerce.CustomModels.Outcomes.BaseCustomOutcome",
2446 | "Annotations": [
2447 | {
2448 | "Type": "DoNotIndexAttribute"
2449 | }
2450 | ],
2451 | "ClrType": "Sitecore.Commerce.CustomModels.Outcomes.SubmittedOrderOutcome, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2452 | "Properties": {
2453 | "ExternalId": {
2454 | "Type": "String"
2455 | },
2456 | "ShopName": {
2457 | "Type": "String"
2458 | },
2459 | "Order": {
2460 | "Type": "Sitecore.Commerce.CustomModels.Models.Order"
2461 | }
2462 | }
2463 | },
2464 | "Sitecore.Commerce.CustomModels.Outcomes.AbandonedCartOutcome": {
2465 | "Type": "Event",
2466 | "BaseType": "Sitecore.Commerce.CustomModels.Outcomes.BaseCustomOutcome",
2467 | "Annotations": [
2468 | {
2469 | "Type": "DoNotIndexAttribute"
2470 | }
2471 | ],
2472 | "ClrType": "Sitecore.Commerce.CustomModels.Outcomes.AbandonedCartOutcome, Sitecore.Commerce.Connect.Collection.Model, Version=11.2.0.0, Culture=neutral, PublicKeyToken=null",
2473 | "Properties": {
2474 | "ShopName": {
2475 | "Type": "String"
2476 | },
2477 | "ExternalId": {
2478 | "Type": "String"
2479 | },
2480 | "Cart": {
2481 | "Type": "Sitecore.Commerce.CustomModels.Models.Cart"
2482 | }
2483 | }
2484 | }
2485 | },
2486 | "Facets": [
2487 | {
2488 | "Target": "Contact",
2489 | "Name": "GDPRConnectPartyListInfo",
2490 | "Type": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRPartyList"
2491 | },
2492 | {
2493 | "Target": "Contact",
2494 | "Name": "GDPRConnectStringListInfo",
2495 | "Type": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRStringList"
2496 | },
2497 | {
2498 | "Target": "Contact",
2499 | "Name": "GDPRConnectCustomerPaymentInfoList",
2500 | "Type": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCustomerPaymentInfoList"
2501 | },
2502 | {
2503 | "Target": "Contact",
2504 | "Name": "GDPRConnectCommerceUserInfo",
2505 | "Type": "Sitecore.Commerce.CustomModels.Facets.GDPR.GDPRCommerceUserList"
2506 | },
2507 | {
2508 | "Target": "Contact",
2509 | "Name": "ConnectCurrentCartFacet",
2510 | "Type": "Sitecore.Commerce.CustomModels.Facets.CurrentCartFacet"
2511 | }
2512 | ]
2513 | }
--------------------------------------------------------------------------------