Add web store to existing shop (DEV)
https://help.sana-commerce.com/sana-commerce-93/how_tos/multiple_domains_and_websites/configure_multiple_websites
SET @newWebsiteId = N'SANASTORENZ'; -- set a new website ID instead of 'NewWebsiteID'
SET @newWebsiteName = N'NZ STORE'; -- set the name of the new website instead of 'New Website Name'
SET @newWebsiteDomain = N'integriah-dev-nz.corp.ism.nl'; -- set the domain for new website instead of 'localhost'
SELECT @defaultLanguage = Id FROM [Languages] WHERE [IsDefault] = 1;
make sure your domain looks line following (match with license file domains)
eg: integriah-dev-nz.corp.ism.nl
<string>*.corp.ism.nl</string>
<string>localhost</string>
<string>*.local</string>
2. Add license.
you may need to add the license file. but no need to request a new one,
3. Add Web site to IIS
4. Add binding to IIS
5.Update host file
6.Update ERP connections
you can use the existing one using for Multiple webshop related projects
Eg: Divercy Project
you will find it from the Bin folder
sanaprojects_dev.license
else it will give an invalid Licence error.
3. Add Web site to IIS
Site > Add Website
4. Add binding to IIS
right-click Web site > Edit Bindings
5.Update host file
C:\Windows\System32\drivers\etc\host
127.0.0.1 integriah-dev-nz.corp.ism.nl
127.0.0.1 integriah-dev.corp.ism.nl
6.Update Visual Studio Server settings
6.1 right click your Project Startersite > Properties >select Web tab
Go to server section > Change to Local IIS >
update Project URL with Sana store url
if the current sanastore URL is localhost give the main domain name for it
eg localhost --> integriah-dev.corp.ism.nl
6.Update ERP connections
Errors found
to fix : update Web.config
<httpCookies httpOnlyCookies="true"requireSSL="true"sameSite="None"/>
change this one to
<httpCookies httpOnlyCookies="true"/>
----------------------------------------------------------------------------------------------------
begin transaction
DECLARE @newWebsiteId nvarchar(50);
DECLARE @newWebsiteName nvarchar(50);
DECLARE @newWebsiteDomain nvarchar(50);
DECLARE @defaultLanguage int;
DECLARE @homePageId nvarchar(max);
DECLARE @customerServicePageId nvarchar(max);
SET @newWebsiteId = N'NewWebsiteID'; -- set a new website ID instead of 'NewWebsiteID'
SET @newWebsiteName = N'New Website Name'; -- set the name of the new website instead of 'New Website Name'
SET @newWebsiteDomain = N'localhost'; -- set the domain for new website instead of 'localhost'
SELECT @defaultLanguage = Id FROM [Languages] WHERE [IsDefault] = 1;
-- basic website info
INSERT INTO [Websites] ([Id], [Name], [DefaultLanguageId]) VALUES (@newWebsiteId, @newWebsiteName, @defaultLanguage);
INSERT INTO [WebsiteLanguages] ([WebsiteId], [LanguageId]) VALUES (@newWebsiteId, @defaultLanguage);
INSERT INTO [WebsiteDomains] ([Id], [WebsiteId], [Domain], [IsDefault]) VALUES (NEWID(), @newWebsiteId, @newWebsiteDomain, 1);
UPDATE users SET Fields.modify('insert <string>{sql:variable("@newWebsiteId")}</string> into (//field[@name="Websites"]/ArrayOfString)[1]')
FROM [AdminUsers] users JOIN [AdminUsersRoles] usersRoles ON users.Id = usersRoles.AdminUserId
WHERE usersRoles.AdminRoleId = 'FE0072B6-70AA-4C53-8716-1FD9515E4998' and users.Fields.exist('//field[@name="Websites"]/ArrayOfString/string[text()=sql:variable("@newWebsiteId")]') = 0;
-- create Home page
SET @homePageId = CAST(NewId() AS nvarchar(50))
INSERT [dbo].[FlexiPages] ([Id], [WebsiteId], [Title], [CreatedDate], [ModifiedDate], [Fields], [Url]) VALUES (@homePageId, @newWebsiteId, N'Home', GETDATE(), GETDATE(), N'<FieldsDictionary><field name="MetaDescription" type="Null" /><field name="MetaTitle" type="Null" /><field name="Content" type="Sana.Commerce.Content.ContentBlockCollection, Sana.Commerce"><ContentBlocks><MainBanner><Id>1423653167815</Id><ImagePath>/content/files/images/Homepage-banner.jpg</ImagePath><Link /></MainBanner><Html><Id>87265895-2884-4A2F-92D4-EFE5239D0135</Id><Content><br>This is a Flexi-page. On a Flexi page, you are free to use blocks of text and images, to make the pages look just the way you want them to look. You can easily change the images and text of the Flexi-pages in the “Web pages” section in the Sana Admin. You can also use the In-site editor to change the content of the webstore while looking at it.</Content></Html><ImageTiles><Id>68520105-5903-4D6D-9B72-666AF48435AF</Id><Tiles><ImageTile><ImagePath>/content/files/images/place holder 3.jpg</ImagePath><AltText>Block 1 image</AltText><Link /></ImageTile><ImageTile><ImagePath>/content/files/images/place holder 3.jpg</ImagePath><AltText>Block 2 image</AltText><Link /></ImageTile><ImageTile><ImagePath>/content/files/images/place holder 3.jpg</ImagePath><AltText>Block 3 image</AltText><Link /></ImageTile><ImageTile><Link /></ImageTile></Tiles></ImageTiles></ContentBlocks></field></FieldsDictionary>', N'home')
-- create Customer service page
SET @customerServicePageId = CAST(NewId() AS nvarchar(50))
INSERT [dbo].[FlexiPages] ([Id], [WebsiteId], [Title], [CreatedDate], [ModifiedDate], [Fields], [Url]) VALUES (@customerServicePageId, @newWebsiteId, N'Customer service', GETDATE(), GETDATE(), N'<FieldsDictionary><field name="Content" type="Sana.Commerce.Content.ContentBlockCollection, Sana.Commerce"><ContentBlocks><Html><Content><h1>Customer service</h1>
<p><br />
</p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis nibh neque, egestas et, aliquet a, fermentum at, nunc. In aliquam. Maecenas metus dui, laoreet in, euismod id, iaculis sit amet, felis. Suspendisse consectetuer odio nec est. Sed blandit mauris vel neque. Pellentesque at orci vitae elit iaculis imperdiet. Sed est turpis, blandit vitae, euismod eget, feugiat ac, arcu.<br />
Duis nisl. Etiam quam ligula, dapibus sed, faucibus eget, volutpat sed, est. Mauris quis sem. Donec iaculis dui fermentum eros. Pellentesque eget libero vitae sapien interdum ullamcorper. Aenean at nulla in velit tristique venenatis. Duis malesuada metus a dolor. Sed ante. Integer mi mi, sodales vitae, adipiscing a, luctus nec, diam.<br />
&nbsp;<br />
Maecenas aliquam aliquet massa. Donec ut purus. Maecenas volutpat, ipsum at consectetuer pretium, urna lorem tempor mi, vitae pellentesque mauris felis eget lorem. Nam ut lectus quis sem placerat venenatis. Nam et nisi non magna pulvinar dignissim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam venenatis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus volutpat. Integer suscipit. Mauris egestas accumsan eros. Nunc et massa. Aliquam erat volutpat.
<div style="text-align: center;"></div>
<p><br />
</p></Content><Id>0641C81A-ADDF-4A95-BFB8-6E4CC1793011</Id></Html></ContentBlocks></field></FieldsDictionary>', N'service')
-- create General settings
INSERT [dbo].[Settings] ([Fields], [WebsiteId], [Key], [CreatedDate], [ModifiedDate]) VALUES (N'<FieldsDictionary><field name="DefaultCurrency" type="System.String, mscorlib" storeWithEntity="False"><string>EUR</string></field><field name="DropdownVariants" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="CheckStock" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field><field name="RedirectOnAddToBasket" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field>
<field name="ShowProgressIndicator" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="ShopEmailAddress" type="System.String, mscorlib" storeWithEntity="False"><string>scdemo@sana-commerce.com</string></field><field name="ShowOrderAmountInBasketMiniature" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field><field name="ReferenceNoVisibility" type="System.String, mscorlib" storeWithEntity="False"><string>SalesAgentAndB2BCustomer</string></field><field name="OrderCommentsVisibility" type="System.String, mscorlib" storeWithEntity="False">
<string>SalesAgentAndB2BCustomer</string></field><field name="AdministrationMailList" type="System.String, mscorlib" storeWithEntity="False"><string>scdemo@sana-commerce.com</string></field><field name="PlaceOrderType" type="System.String, mscorlib" storeWithEntity="False"><string>Order</string></field><field name="RequestedDeliveryDateVisibility" type="System.String, mscorlib" storeWithEntity="False"><string>SalesAgentAndB2BCustomer</string></field><field name="EnableNewsletterSubscription" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field>
<field name="AnalyticsAccountId" type="System.String, mscorlib" storeWithEntity="False"><string /></field><field name="EnableActionPrices" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="EditOrder" type="System.String, mscorlib" storeWithEntity="False"><string>SalesAgentAndB2BCustomer</string></field><field name="EnableLastViewedProducts" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="CheckoutOfferings" type="System.String, mscorlib" storeWithEntity="False"><string /></field>
<field name="ShowTellaFriend" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="ConfigurableShippingAddress" type="System.String, mscorlib" storeWithEntity="False"><string>SalesAgentAndB2BCustomer</string></field><field name="EnableWishList" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="EnableRatingsAndReviews" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="ShippingCostVatRateId" type="System.String, mscorlib" storeWithEntity="False">
<string /></field><field name="PaymentCostVatRateId" type="System.String, mscorlib" storeWithEntity="False"><string /></field><field name="EnablePromotionCodes" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="ShopName" type="System.String, mscorlib" storeWithEntity="False"><string>Sana Store</string></field><field name="ShopPhoneNumber" type="System.String, mscorlib" storeWithEntity="False"><string>010-1112233</string></field><field name="FromEmailAddress" type="System.String, mscorlib" storeWithEntity="False"><string>scdemo@sana-commerce.com</string>
</field><field name="BccEmailAddresses" type="System.String, mscorlib" storeWithEntity="False"><string /></field><field name="StockPresentation" type="System.String, mscorlib" storeWithEntity="False"><string>ShowIndicator</string></field><field name="HomePageUrl" type="Sana.Commerce.Web.Links.LinkData, Sana.Commerce" storeWithEntity="False"><LinkData><Type>FlexiPage</Type><InternalUrlData>' + @homePageId + '</InternalUrlData></LinkData></field><field name="EnableCreateProspect" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="ShowOrderShippingStatus" type="System.Boolean, mscorlib" storeWithEntity="False">
<boolean>true</boolean></field><field name="MenuDropdownType" type="System.String, mscorlib" storeWithEntity="False"><string>Dropdown</string></field><field name="BreadcrumbVisible" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>true</boolean></field><field name="WebServiceEnabled" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field><field name="ReorderVisibility" type="System.String, mscorlib" storeWithEntity="False"><string>All</string></field><field name="MobileProductSetsIds" type="System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib" storeWithEntity="False">
<ArrayOfString /></field><field name="EstimatedShippingCosts" type="Sana.Commerce.Shop.CostInfoCollection, Sana.Commerce"><ArrayOfCostInfo /></field><field name="CustomerServicePage" type="Sana.Commerce.Web.Links.LinkData, Sana.Commerce" storeWithEntity="False"><LinkData><Type>FlexiPage</Type><InternalUrlData>' + @customerServicePageId + '</InternalUrlData></LinkData></field><field name="ClosedShop" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field><field name="OrderConfirmationEmailBehavior" type="System.String, mscorlib" storeWithEntity="False"><string>AlwaysSend</string>
</field><field name="EnableCustomersOrderMail" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field><field name="SendMailToReportAddresses" type="System.Boolean, mscorlib" storeWithEntity="False"><boolean>false</boolean></field><field name="ReportAddresses" type="Null" storeWithEntity="False" /></FieldsDictionary>', @newWebsiteId, N'General', GETDATE(), GETDATE())
-- create PageLayout settings
INSERT [dbo].[Settings] ([Fields], [WebsiteId], [Key], [CreatedDate], [ModifiedDate]) VALUES (N'<FieldsDictionary><field name="B2CCustomer_ProductListPage" type="System.String, mscorlib" storeWithEntity="False"><string>List</string></field><field name="B2CCustomer_ProductDetailsPage" type="System.String, mscorlib" storeWithEntity="False"><string>DetailsB2C</string></field><field name="B2CCustomer_SearchResultPage" type="System.String, mscorlib" storeWithEntity="False"><string>Search</string></field><field name="B2CCustomer_BasketPage" type="System.String, mscorlib" storeWithEntity="False">
<string>Consumer</string></field><field name="B2BCustomer_ProductListPage" type="System.String, mscorlib" storeWithEntity="False"><string>ListB2B</string></field><field name="B2BCustomer_ProductDetailsPage" type="System.String, mscorlib" storeWithEntity="False"><string>DetailsB2B</string></field><field name="B2BCustomer_SearchResultPage" type="System.String, mscorlib" storeWithEntity="False"><string>SearchB2B</string></field><field name="B2BCustomer_BasketPage" type="System.String, mscorlib" storeWithEntity="False"><string>Business</string></field>
<field name="SalesAgent_ProductListPage" type="System.String, mscorlib" storeWithEntity="False"><string>ListB2B</string></field><field name="SalesAgent_ProductDetailsPage" type="System.String, mscorlib" storeWithEntity="False"><string>DetailsB2BWithMatrix</string></field><field name="SalesAgent_SearchResultPage" type="System.String, mscorlib" storeWithEntity="False"><string>Search</string></field><field name="SalesAgent_BasketPage" type="System.String, mscorlib" storeWithEntity="False"><string>Business</string></field>
<field name="B2CCustomer_SearchResultsPage" type="System.String, mscorlib" storeWithEntity="False"><string>Search</string></field><field name="B2BCustomer_SearchResultsPage" type="System.String, mscorlib" storeWithEntity="False"><string>SearchB2B</string></field><field name="SalesAgent_SearchResultsPage" type="System.String, mscorlib" storeWithEntity="False"><string>SearchB2B</string></field></FieldsDictionary>', @newWebsiteId, N'PageLayout', GETDATE(), GETDATE())
UPDATE [Settings] SET Fields.modify('replace value of (//field[@name="ShopName"]/string/text())[1] with sql:variable("@newWebsiteName")')
WHERE [Key] = 'General' AND [WebsiteId] = @newWebsiteId;
commit