How to Clear Redis Cache Keys In Code for Sitecore Commerce Entities

How to Clear Redis Cache Keys In Code for Sitecore Commerce Entities

A couple of weeks ago Sitecore Experience Commerce 10.2 has been released adding support for new commands in code to clear keys in cache stores managed with the Redis cache provider. Unfortunately the commerce website of one of my clients is on a previous version of the platform, Sitecore Experience Commerce 9.3, and these new commands are not available. In this blog post I describe how to implement a custom solution using the StackExchange.Redis library to clear commerce Redis cache keys via code.

CONTINUE READING

How to Deploy a Module to an Existing Sitecore 10 Instance on AKS: The Init Jobs and The Data Initialization Containers

How to Deploy a Module to an Existing Sitecore 10 Instance on AKS: The Init Jobs and The Data Initialization Containers

Have you already tried to install a Sitecore module package in a Sitecore instance running on Azure Kubernetes Service or in your local containerized environment? If you have, you probably already know that the installation process fails, because the application user identity doesn’t have the permission to write the uploaded module package in the packages data folder. The Sitecore documentation describes the recommended approach to add a Sitecore module to the images of a containerized solution using the module asset images, and this approach works well for a development environment where external services (SQL server, Solr, Redis) run in containers. But for a production environment running in Azure Kubernetes Service, the external services will likely not run in a container but they will use PaaS or IaaS resources instead, like for example databases running in an Azure SQL Server elastic pool resource. In this production-like scenario, a different solution is required to deploy data assets of a module to an existing external service layer and this solution consists in using data initialization containers that run in Kubernetes initialization jobs. In this blog post I will share my learnings about initialization jobs and data initialization containers and the steps needed to deploy a Sitecore module to an existing Sitecore instance running on Azure Kubernetes Service.

CONTINUE READING

Jenkins Pipelines for Sitecore 10 on AKS – Part 2: The Deploy Pipeline

Jenkins Pipelines for Sitecore 10 on AKS – Part 2: The Deploy Pipeline

This post is the second blog post of a mini series where I describe the steps needed to implement a set of Jenkins pipelines to build and deploy the code of a containerized Sitecore 10 custom solution to an existing Azure Kubernetes Services cluster resource. In the first blog post I explored in details how to setup the Jenkins build pipeline. In this blog post I am going to illustrate the second and last part of this automated deployment process: the deploy pipeline.

CONTINUE READING

Jenkins Pipelines for Sitecore 10 on AKS – Part 1: The Build Pipeline

Jenkins Pipelines for Sitecore 10 on AKS – Part 1: The Build Pipeline

In my last blog post I shared my experience with the installation process of a clean Sitecore 10 solution on Azure Kubernetes Services. The next natural step is to explore how to automatically deploy a custom containerized solution to my AKS cluster, using Jenkins CI/CD tool. This blog post is the first of two posts, where I will describe the steps needed to implement Jenkins pipelines to build and deploy a containerized solution to Azure Kubernetes Services. Let’s start in this post with the build pipeline.

CONTINUE READING

Sitecore 10 on Azure Kubernetes Service: My Learning Journey, the Installation Process and a Simple Solution to Save Money

Sitecore 10 on Azure Kubernetes Service: My Learning Journey, the Installation Process and a Simple Solution to Save Money

At the end of last summer Sitecore 10 has been released with a very detailed installation guide on how to deploy a containerized Sitecore application to the Azure Kubernetes Service (AKS) and with a complete deployment package with Kubernetes specification files. In this blog post I am going to share how I approached my learning journey with Kubernetes and AKS, I will describe an issue that I encountered during the Sitecore installation and its resolution, and finally how you can save your money starting and stopping an existing Sitecore AKS cluster when needed.

CONTINUE READING

How to Adjust the SameSite Attribute of the Authentication Cookie in a Sitecore Commerce Solution with a Federated Payment Provider

How to Adjust the SameSite Attribute of the Authentication Cookie in a Sitecore Commerce Solution with a Federated Payment Provider

Few weeks ago Google Chrome has started to gradually enforce a new behavior for the SameSite attribute of cookies on its latest stable version of the browser, Chrome version 80. This is also when the checkout process in the Sitecore Commerce 9.1 solution of one of my clients started to fail.

In this blog post I will describe the steps taken to troubleshoot and reproduce this issue, the requirements to manage the SameSite attribute in a .NET solution and its compatibility with Sitecore, and finally the implemented solution to adjust the SameSite attribute value of the authentication cookie.

CONTINUE READING

Sitecore Docker: How to Restore Databases Using Backups in a SQL Container

Sitecore Docker: How to Restore Databases Using Backups in a SQL Container

I have been experimenting with running Sitecore on Docker containers for a couple of months now and I am having a lot of fun with it. If you work with many clients at the same time like I do, running Sitecore on Docker brings the big benefit to setup and spin up a client environment in few minutes, simplifying the local environment setup process and eliminating the conflicts that might rise hosting multiple versions of Sitecore instances on a single host machine. If you haven’t tried it yet, I highly recommend to do it.

In this blog post I will describe how to override the default command executed in a Docker container running a sitecore-<topology>-sql image to restore Sitecore databases using SQL database backups generated from a non-Docker SQL server.

CONTINUE READING

The Sitecore Commerce 9.3 On-Premises Installation Has Never Been So Fast

The Sitecore Commerce 9.3 On-Premises Installation Has Never Been So Fast

The Sitecore Hackathon 2020 starts in less than 48 hours and I am getting ready to participate for my second consecutive year with my team, The Prod Squad. One important recommended task to execute before the contest starts is to setup a local development environment, installing the required version of the Sitecore platform. This year the implemented module should be based on Sitecore XP 9.3 and, if you are considering commerce, it should be based on Sitecore Experience Commerce 9.3.

I don’t know yet if we are going to develop a module on Sitecore Commerce this year, but last night I decided to get ready for it and try to install it on my laptop. I have done a good number of Sitecore Commerce 9.1 on-premises installations in the last few months and a lot of manual steps, hacks and fixes were involved to make the installation successful.

Last night I installed Sitecore Commerce 9.3 on my laptop and I managed the entire installation process, including prerequisites installation and parameters configuration, in less than 2 hours! I have encountered only a couple of issues during the installation process and I will describe them in this blog post, starting with some tips that will make your installation process smoother.

CONTINUE READING

Troubleshooting No Results in Sitecore Commerce Business Tools Searches

Troubleshooting No Results in Sitecore Commerce Business Tools Searches

All searches in the Sitecore Commerce Business Tools application of one of my clients were not working and no results were returned at all. In my first blog post about Sitecore Commerce, I am going to share some knowledge that I learned about the search functionality available in Business Tools and the troubleshooting steps that I took to identify the root cause of this issue.

CONTINUE READING

Migration to Coveo Cloud: Lessons Learned While Troubleshooting an Issue with the Security Identities Permissions Synchronization

Migration to Coveo Cloud: Lessons Learned While Troubleshooting an Issue with the Security Identities Permissions Synchronization

Few weeks ago my colleagues and I have concluded a project for one of our clients to migrate their search hosting indexing solution from the Coveo Enterprise Search on-premises platform to the modern Coveo Cloud platform. The search solution on the website was implemented using the Coveo for Sitecore module, version 4. In this blog post I am going to share the details of an issue that we have experienced with the security identities permissions synchronization and the lessons learned while troubleshooting it.

CONTINUE READING