Sitecore go live checklist

Are you all done with the development activities, all issues fixed and validated by team? do you follow any checklist to review/validate before go live for your Sitecore websites, many organization follow some template (list of activities) to validate if all the activities/steps has been taken care and we are good to proceed and it differs organization to organization and developer to developer.

Here are some of the things we can check as part of our go live prep activity:

  1. Disable default Sitecore credentials (admin/b)– make sure either admin/b has been disabled or updated with strong password.
  2. Protect admin pages under /sitecore/admin/ folder for e.g if you have created any custom utility or aspx page to execute any task it should be restricted.
  3. Sitecore Client license is added and not the development license- double check if Sitecore client license has been deployed in the production environment and not development license.
  4. Custom Errors are working fine- make sure custom error pages are working as expected like 404, 500 etc and no yellow screen page is displayed if any error occur.
  5.  Check 301 redirects are working before go live.
  6. Email check– Search throughout the application for places where emails are sent, make sure all test email address has been removed and client webmaster email address is added.
    1. Test again if mails are going.
  7. Production code version– Check if production has latest version from source control.
  8. Connection string details– make sure connection string has production specific settings like DB servers and port details.
  9. Publish test– Test Publishing to all targets and see if it’s working well.
  10. Rebuild all indexes.
  11. Check if site search is working and right index is being use for CM and CD servers.
  12. Sitecore scheduler check– If any scheduled tasks exists, verify if the time set is correct and the scheduler is hitting.
  13. Minified version of CSS and JS has been used. (depends how CSS/JS has been managed)
  14. Cache bursting is in place to solve the issue of browser caching- this is not mandatory but good to have.
  15. Quickly checking site pages and check there are no server errors.
  16. Check there are no errors in the logs.
  17. No hardcoded and test values- if any static values are required get it from Sitecore dictionary instead.
  18. Experience editor is working fine and check if we are able to add/modify the components from Experience Editor.
  19. Tune the cache size (data/prefetch/item and html caches)- this is done after running the load test and reviewing how caches are performing.
  20. Check there are no console errors.
  21. Check if static assets is being served from CDN (if CDN is used)
  22. User roles has been created for managing different section of the site.( should be done based on roles and not users)
  23. Rebuild link databases.
  24. Favicon is added, if it’s a multi-site application- check correct Favicon has been used for individual sites.
  25. Verify analytics scripts.
  26. Check for robots.txt file and make sure it has right values.

This is NOT the final and complete list-but just an attempt to show some of the common things to verify before we go live and helps us in the prod prep activity.

Hope it helps!!

Happy learning 🙂

 

Sitecore Item Audit Tool

We have come across many times when we were asked to audit the Sitecore application, which includes Sitecore content audit and solution audit and provide a summary of the complete implementation and see if everything is done as per Sitecore best practices or some compromises has been done.

This article is focused towards item audit which includes checking the templates/renderings/placeholders/content and many other aspects of the Sitecore content tree and item management.

As i got this request quite few of times now- so i thought let’s try to build a tool which can help us is understanding the Sitecore content(item) side of it and give us some actionable items to look and see if there is any scope to improve.

The main idea behind building this tool is to at least get some details from different Sitecore content  types and check if everything is well in place, normally when we review the existing Sitecore implementation these are some of the things which comes to our mind, which includes:

  1. How many page templates exists and how many of them are actually used.
  2. How many data/features templates exists and again how many of them are actually used.
  3. If standard values has been set or not.
  4. If insert options are set
  5. If template icon is set
  6. Different rendering available and if datasource-location and datasource template has been set if it’s a global rendering.
  7. If placeholders allowed controls are set to make sure we can add the components from Experience Editor and etc.

The tool is aligned to solve above points only and it’s just a start, i will continue to make updates to the tool to make it more useful.

Git-hubhttps://github.com/ankitjoshi/Sitecore-Item-Audit-Tool

Sitecore Marketplace-  https://marketplace.sitecore.net/en/Modules/S/Sitecore_Item_Audit_Tool.aspx

How to use:

AuditToolHome

There are different parameters on which you can generate the report, as i mentioned above report is based on:

  1. Page templates
  2. Data templates
  3. Feature templates
  4. Renderings
  5. Placeholders

Fields description:

  • Root path/ID(Page Items)- This field is to specify Path or ID under which your page items(which has presentation) exists. For example- If you site structure is Sitecore->content->home (under which you have all your page items) then you would have to set the ID of home item or path of home item to this field.
  • Page template folder path/ID- This field is to specify the folder path or ID under which you have your page templates created, for example- if your template structure is- /sitecore/templates/Project/SiteName/Page Types, then you would have to set this path or ID of this to this field. If you have multiple locations where your page templates are stored, then you can pass multiple IDs or paths to this field. Root path/ID(Page Items) field is required to show the correct report of page templates and once done you will have the following details from each template:

PageTemplateReport

  • Page template folder path/ID to exclude– This field is to specify the folder path or ID which you want to exclude from your Page template report. Note– Only one path/ID is allowed to set here.

So- now when we have access to this page report we can see what are the things missing and what is required to fix them, Also- it’s not that we have to fix all the highlighted items as few things are requirement based, but this report provide you that starting point which you need to make your implementation follow best practices.

Similarly we have other reports also, for example- Data template report.

  • Root path/ID(Global Items)- This field is to specify Path or ID under which your data items(global/data items) exists. For example- If you site structure is sitecore->content->Global (under which you have all your global items) then you would have to set the ID of Global item or path of Global item to this field.
  • Data template folder path/ID- This field is to specify the folder path or ID under which you have your data templates created, for example- if your template structure is- /sitecore/templates/Project/SiteName/Content Types, then you would have to set this path or ID of this item to this field. If you have multiple locations where your data templates are stored, then you can pass multiple IDs or paths to this field. Root path/ID(Global Items) field is required to show the correct report of data templates and once done you will have the following details from each template:

DataTemplateReport

  • Data template folder path/ID to exclude- This field is to specify the folder path or ID which you want to exclude from your data template report. Note- Only one path/ID is allowed to set here.

This is how feature template report look if you solution is helix based:

FeatureTemplateReport

Renderings Report:

RenderingsReport

Placeholders Report:

PlaceholdersReport

Common folder template Report: (Items that are based on default folder template)

CommonFolderTemplateReport

We can generate the report based on our requirement, if we want to generate the page template report from specific location and you don’t want to include all the templates, you can just select that specific folder item and generate it.

I will keep adding more features/improvements to it based on the feedback, but i am sure this as our preliminary audit can give us a good visibility about the item management and best practices.

Please let me know for any questions.

Happy learning 🙂

Installing Sitecore 9.2 using Sitecore Install Assistant (SIA)

So we have Sitecore 9.2 available now, with Sitecore 9.2 we have two options to install :

  • Sitecore Installation Framework (SIF) and
  • Sitecore Install Assistant (SIA)

Sitecore Installation Framework (SIF) is the same old way to Install Sitecore since version 9, as part of this post i would like to go over the new way to Install Sitecore i.e using Sitecore Install Assistant (SIA)

So- let’s get started.

Step 1: Download the files (SIA)

You can download the Installation files from here- https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/92/Sitecore_Experience_Platform_92_Initial_Release.aspx (Please login before downloading the files)

SIA-Step1

Step 2: Create resources folder and extract the files there.

In my case i have created folder SIA under “D:\Deploy\SC9Install”

SIA-Step2

Step 3: SIA Config Updates

Before you run and execute setup.exe file you can update some of the settings of SIA using setup.exe.config file and some of the settings which you can update are as follows:

  • SQL Server name
  • SOLR URL
  • SOLR root
  • Solr Serverice

Step 4: Time for action

Right click on setup.exe and click on “Run as administrator” and you will be prompted with welcome screen where you will have basic details on what’s required to complete the installation successfully. Click on start and you will be navigated to prerequisites screen.

SIA-Step4-1

 

SIA-Step4-2.1

Click on Install and wait for all the prerequisites to get installed.

SIA-Step4-2.2

Once all the prerequisites are installed you can see the below screen:

SIA-Step4-2.22

Click Next and proceed for Sitecore Settings, populate the details which includes solution prefix, admin password and license file.

SIA-Step4-3

Click Next and populate SQL server details

SIA-Step4-4

In the next screen verify the SOLR details, if you have updated setup.exe.config file with the SOLR details it will be pre-populated for you here:

SIA-Step4-5

In the summary screen validate the details and make sure everything is correct.

SIA-Step4-6

Next screen- validate if we are good to proceed for the installation.

SIA-Step4-7

Click on Install, it will take a while to install.

SIA-Step4-8

And FINALLY

SIA-Step4-9

 

SIA-Step4-10

You can now login to Sitecore:

SIA-Step5

And with this we can also see the new SITECORE in the login screen 🙂

Hope this helps!

Happy learning 🙂

References:

https://dev.sitecore.net/Downloads/Sitecore_Experience_Platform/92/Sitecore_Experience_Platform_92_Initial_Release.aspx

 

Setup and Install SOLR 7.5.0 for Sitecore 9.2

It’s super easy to Setup SOLR 7.5.0 for Sitecore 9.2 and with the gist shared by Mark Cassidy  here, it will take just few seconds to install and make SOLR up and running.

solr7.5-default-script

I have used the same and updated few parameters like:

  • Solr Port
  • Solr Host
  • Solr Version (7.5.0)- (This is prerequisite for Sitecore 9.2)
  • OpenJDK Version

Ran the script and few seconds later SOLR 7.5.0 was up and running.

solr-7.7.0ps

SOLR admin was up and running.

solr-7.5.0-admin

Thanks to community members contributions.

Hope this helps!

Happy searching 🙂

References:

you-must-have-a-user-with-the-same-password-in-master-or-target-server error while installing Sitecore 9.0.2 in SQL 2017-fixed

Recently I upgraded my machine and installed SQL Server 2017 and after upgrade i got stuck in well known “same password in master or target server” error while installing Sitecore 9.0.2 instance.

Unable to connect to master or target server ‘sitenameXP_Processing.Pools’. You must have a user with the same password in master or target server ‘sitenameXP_Processing.Pools’.

SQL Version:

Microsoft SQL Server 2017 (RTM-CU15) (KB4498951) – 14.0.3162.1 (X64) May 15 2019 19:14:30 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit)

Sitecore 9 setup was not new but there was something different with SQL Server 2017.

All the installation prerequisites were in place, checked this post by BrandonMBruno and this was good too.

Microsoft Web Deploy dynamically loads SQL Server Data-Tier application framework, SQL ScriptDOM and SQL CLRTypes components using automatic version detection but in my case Web Deploy has not installed the correct version of SQL Server Data-Tier application framework.

So- I installed the correct version of SQL Server Data-Tier application framework from here:  https://www.microsoft.com/en-us/download/details.aspx?id=56508

This fixed the issue for me, so i would suggest to check if you have the correct version of SQL Server Data-Tier application framework installed if you run into similar issue.

Hope this helps!

Happy learning 🙂

References:

 

Disable index rebuild while installing sitecore package

Package-Install

If you also came across issue with failed package installation/taking lot of time to install because of the no of items package contains and the background activity it performs like index rebuilding- there are two options you can choose from to install Sitecore package successfully:

  1. Disable Index Rebuild while installing Sitecore package.
  2. Install package using SPE (https://doc.sitecorepowershell.com/).

Disable Index Rebuild while installing Sitecore package: In this option you can add/deploy a patch to temporarily disable index rebuild and set the indexing strategy to be manual. once the package installation is done this patch can be removed.

Disable-Index

We need to specify the indexes available and set the index update strategy to manual.

Install package using SPE: This option is handy and can be used as an alternative to install the package, here is the script which can be used to install package with SPE.

We can also disable index rebuild while installing the package.

PS master:\> Install-Package -Path SitecorePowerShellConsole.zip -InstallMode Merge -MergeMode Merge

This has saved lot of our time and you should give it a try if your package installation is taking a lot of time and failing.

Hope this helps!

Happy learning 🙂

 

Reference(s):

https://doc.sitecorepowershell.com/appendix/packaging/install-package

Sitecore Experience Commerce eLearning Course 100/200- Complete

Recently i completed Sitecore Experience Commerce 100 and 200 level course and i must say it’s definitely worth taking these courses.

Sitecore Commerce

If you are new to Sitecore commerce and would like to explore and get an understanding of the big picture- this course is for you, after taking Sitecore Experience Commerce 100-Overview and Sitecore Experience Commerce- Essentials course i feel much confident and i can use the info/details i got from the two course to drive my passion towards Sitecore Commerce journey.

If you want to get started with the Commerce here are the courses available to get you started:

  1. Sitecore® Experience Commerce™ 9 100: Overview
  2. Sitecore® Experience Commerce™ 9 200: Essentials
  3. Sitecore Experience Commerce 9.0 300: Developer

From the course contents perspective- here are some of the things which you see there and lot more.

Sitecore® Experience Commerce™ 9 100: Overview

  • Getting Familiar with Sitecore® Experience Commerce™
  • Managing the Catalog
  • Tracking Customers and Their Orders
  • Increasing Sales with Marketing

Sitecore® Experience Commerce™ 9 200: Essentials

  • Gaining an Insight into the Sitecore® Experience Commerce™ Architecture
  • Developing Storefronts Using Sitecore Commerce APIs
  • Developing Sitecore® Experience Commerce™ Storefront Pages Using SXA
  • Working with Sellable Items
  • etc…

Sitecore Experience Commerce 9.0 300: Developer

Please review the course modules here https://www.konabos.com/blog/sitecore-experience-commerce-9-0-developers-300-training-in-powerful-ways/ – this includes:

  • Create & configure a new Storefront Site
  • Creating a Site Page Framework – you go through how you create the header and footer components and assign those to a page layout for all the page.
  • Creating pages for the Storefront for displaying sellable items like category pages and product pages.
  • Creating account management pages for registration, login, my account page, addresses page, etc.
  • Creating the order flow pages for cart, billing, shipping, payment and confirmation.

I also like to thank my Company Valtech for providing me the code for 100 and 200 level courses, much appreciated.

I would suggest to go for this and check with you company if they can provide you the code for these course and if yes? what you are waiting for? let’s do it.

How to Register?

Login to https://elearning.sitecore.net and search for Experience commerce 100/200 courses, if you don’t have any account, please create one.

So far it’s been great- looking forward for it.

XC-100XC-200

Happy Learning 🙂

https://www.konabos.com/blog/category/sitecore-commerce/

https://elearning.sitecore.net

Why Sitecore-from my view

Different content management systems (CMSs) are available for creating and managing websites, but choosing the right CMS is always a big challenge and depends on several factors, Web content management system (WCMs) are not just a tool for creating pages now, it has gone beyond it and business now count on it to perform and manage many other functions.

Recently i was asked to list down why Sitecore is an ideal choice as content management system, you can find articles advocating for Sitecore and explaining the features which makes it an optimal choice as a content management system, here i want to share my view on why Sitecore is the best choice.

Before we start, just to mention that Sitecore has been awarded as a leader in Gartner’s assessment of the strengths and cautions of 18 web content management vendors for 9th year in the row. sourcehttps://www.sitecore.com/resources/index/analyst-reports/gartner-magic-quadrant-for-web-content-management

Sitecore-AEM

Here are some of the features/advantages of Sitecore from my perspective which makes it a product of “one stop shop” for all.

  1. Friendly Interface- Sitecore user interface was made keeping usability in mind.With its intuitive interface, even non-technical users can make changes and updates on the fly.
  2. Multisite development- Sitecore’s feature of Multisite development enables development team to work on multiple websites at the same time, this includes microsites/intranets applications and etc.
  3. Integration- Sitecore architecture is based on extensibility which supports integration with third party systems,you can integrate some of the third party systems like Salesforce/Active Directory/Brightcove connectors and etc. in your Sitecore solution smoothly.
  4. Multilingual Sites and translations– Sitecore helps your business to reach out to global or local market by translating the contents into regional languages by means of different connectors which can use to translate the content into different languages.you can translate the content manually or make use of connectors- choice is yours.
  5. Analytics– Experience Analytics is built in which gives business editors/users an insight of customer behavior and journey so that we can recognize patterns and update the content and personalize to present more relevant contents to end users.
  6. Devices-  System can target the content based on devices which has been used to request particular page.
  7. Scalability–  You can scale your application to any level you want right from content management servers to your experience database(xDB) and content delivery servers. Sitecore provides a system to make sure your data is safe and protected. We can setup multiple CD servers to load balance the traffic and making sure the nearest server is being used to serve the user request to improve the performance.
  8. Extensive Support from Sitecore– You are always in safe hand while working in Sitecore, for any issues and problems Sitecore has different channels available where you can raise your concerns and queries. Some of the tools which you can use are as follows:
    1. support.sitecore.net
    2. Sitecore slack
    3. Sitecore stackoverflow
    4. dev.sitecore.net
  9. Deploy on  Azure- We can deploy Sitecore on Azure using modals like PAAS and IAAS, and can leverage other cloud features to best serve the application and users.
  10. SXA (Sitecore Experience Accelerator)– SXA Speeds up the delivery while running different work steams in parallel.
    1. Web development teams use Sitecore Experience Accelerator (SXA) to speed up the production of websites and to reuse components, layouts, and templates across a variety of sites.
    2. SXA separates structure from design, so front-end designers, creative designers, content authors, and developers can work in parallel and you can deploy and maintain multiple sites quickly and cost effectively
    3. Once a basic user experience plan is in place, everyone can get started on the platform
    4. For example: the content author can start entering the content in the wireframe environment, while the front-end developer works on the theme, and the developer sets up the data templates.
  11. Personalization-
    1. Personalization is all about presenting relevant content to end users based on several factors like browsing history, campaigns, goals, visits and etc.
    2. Sitecore comes handy with several out of the personalization rules which you can use out of the box.
    3. We can also built custom rules to create and show specific component variant which can be displayed when custom personalization rule/condition is met.
  12. Marketing Automation- Business editors can make use of marketing automation feature to automate several steps and process which saves time like sending email when specific goal is triggered and etc.
  13. Experience profile- A profile is created for each site visitor (anonymous/known) and stores all related information into Experience Profile section while fetching the values from experience database(xDB).
  14. Helix/Habitat (Design principles)-
    1. Helix is a set of overall design principles and conventions for Sitecore development.
    2. As more and more people and organisations adopt the Helix conventions and principles, it will become a Sitecore standard.
    3. This means that people who are familiar with the conventions or the Habitat example will be able to work more easily on other convention-based projects with minimal training
    4. It will be easier for Sitecore Product Support to understand projects built using the conventions, enabling them to resolve issues more quickly.

Thanks for reading and see you in my next post!

Happy learning 🙂

Sitecore WFFM custom save actions not working in CD environments

Recently we had an issue in UAT site where WFFM custom save action was found not working on CD servers, but it was absolutely fine on CM server.

WFFM-SaveAction

After checking we found that settings that are required to be done on Sitecore.Forms.config on CD servers were missing, also- we observed that “Custom Action” checkbox was not checked on the custom save action item.

So, here are couple of things to double check when we see custom save action not working in CD servers:

  1. Make sure “Client Action” is checked on WFFM custom save action.ClientAction
  2. Make sure to configure CD server config as per WFFM Installation guide which includes:
    • On all the CD servers, in the \Website\App_Config\Include\Sitecore.Forms.Config file, remove or disable the following sections:
      • In the <sitecore> section, remove:
      • <!—HOOKS–>
        <hooks> <!—remote events hook–>
        <hook type=”Sitecore.Form.Core.WffmActionHook, Sitecore.Forms.Core”/>
        <hooks>

      • In the <events> section, remove:
      • <!–Remote events handler–>
        <event name=”wffm:action:remote”>
        <handler type=”Sitecore.Form.Core.WffmActionHandler, Sitecore.Forms.Core” method=”OnWffmActionEventFired” > <param name=”actionManager” ref=”/sitecore/wffm/wffmActionExecutor” /> </handler>
        </event>

      • Add the following node to the <settings> section:
      • <setting name=”WFM.IsRemoteActions” value=”true” />

      • Configure the following node according to the name of the connection string related to the target database. For example “web”.
      • <setting name=”WFM.MasterDatabase” value=”web” />

Hope this helps!

Happy learning 🙂

SXA redirect URL with country code

It is important to redirect user to new page from old page when we create new version of an existing web page, it helps both users and search engines to get redirected to a new URL from the one they originally requested.

sxa-redirects

There are several ways to setup redirects in Sitecore solution, with Sitecore SXA we have redirect tool in place that facilitates setting up old and new URLs in Sitecore. We can use the mapping tool to set up a 301/302 or server transfer redirect.

Recently we worked on setting up redirects using SXA redirect tool, for most of the redirects we had country code in the old URL.

Here are some example URLs:

Old URLen-au/sample-old-page-name   New URL– /new-page-name

Old URLen-au/mypage/pagelisting   New URL– /newpagelisting

What we observed that after setting up old URLs which has country code on it- all such URLs were redirecting to 404 page.

We can fix this by appending “sc_lang” querystring parameter to the new URL with the target country code, see below examples for ref:

Old URL– /sample-old-page-name   New URL– /new-page-name/?sc_lang=en-AU

Old URL– /mypage/pagelisting   New URL– /newpagelisting/?sc_lang=en-AU

After this redirects works as expected.

I hope this helps.

Happy Learning 🙂