Standing up a Sitecore 10.2 Instance

Standing up an instance of Sitecore 10.2 on docker is pretty straightforward. The Sitecore team has done an excellent job of covering all the detailed steps required, which if you’ve never stood up an instance of Sitecore running on containers in your local instance is really useful. If that’s you then you should consider reading the developers install guide, otherwise, if you just want a quick guide, continue on.

Continue reading

How to personalize your site with Sitecore CDP via Google Tag Manager

In a previous post, I’ve introduced Sitecore CDP with some tips and tricks to help you get started with this awesome platform. While there are a few different ways you can integrate Sitecore CDP with your site:

  • Direct client-side integration
  • Client-side integration via GTM (Google Tag Manager)
  • Server-side integration

I thought it would be helpful to demonstrate how to add CDP to the Next.js Commerce App via GTM. One of the benefits of this approach is it allows marketers to manage and deploy the CDP script to their site without having to modify the code. As the majority of sites already have GTM set up it should be relatively easy to add Sitecore CDP without getting the dev team involved. “Yey! we can do this ourselves, we don’t need any developers!” I hear you marketers holler!!

Now I’m not advocating you start adding scripts to your live site via GTM, as it does require some technical resources. Most marketing teams have analytic pros who understand the impact and risk of adding scripts and perform rigorous testing before publishing anything on a live site, to ensure there is no detrimental impact on performance or worse bring the entire site down. With great power comes great responsibility.

Continue reading

Sitecore CDP Tips and Tricks

Having recently completed the Sitecore CDP Developer Deep Dive training I discovered a few tips and tricks and wanted to share some learnings as you start to explore the platform for yourself. I hope you find this useful and maybe even save you some time.

Sitecore CDP actually consists of two products: Sitecore CDP & Sitecore Personalize. Depending on the client’s requirements they can opt to have either product or both. This will determine which features your client will have access to within the CDP platform.

Sitecore CDP

Sitecore Personalize

Sitecore CDP & Sitecore Personalize combined

User Interface

Having taken the free online Boxever training offered by Sitecore I was expecting the UI to be similar. However, it has since been rebranded and is now more Sitecore-esque.

As you can see from above the interval is simple yet intuitive with the various features easily accessible from the main navigation pane on the left. Here is a quick overview of those features accessible from the navigation pane:

  • Customer Data Tab
    • Guests – provides access to a list of guests including current online guests, with the most recent appearing first. The list is searchable to help you locate guests easily and view their profile. Note to search by the unique browser if assoicated with a visit you need to enter bid: Enter the browser id retrived from your browser assigned by CDP.
    • Segments – allows you build custom unified Segments which blend real-time behaviors and historical customer data.
    • Subscriptions Lists – list guests who have agreed to receive offers.
  • Experiences
    • Web – enables you to add Experiences to your website and monitor performance.
    • Full Stack – API driven Triggered and Interactive Experiences.
    • Flows – show Offers across multiple channels with Flows.
  • Experiments
    • Web – run AB Tests on your website. An experiment is essentially an A/B test of two or more variants.
    • Full Stack – run AB tests on API driven Triggered and Interactive Experiences.
  • Decisioning
    • Decision Models – add a decision model to recommend offers dynamically based on your business rules.
    • Decision Engines – deliver highly personalised content and offers to customers through business rules.
    • Offers – create Offer content that can be presented to a Guest in multiple channels.
  • Library
    • Web Templates – create reusable Marketer-friendly Web Templates for use in Web Experiences.
    • Audience Templates – create reusable Real-Time Audience Templates for use in Experiences.
    • Decision Templates – create reusable Decision Templates for use in Decision Models.
    • Flow Templates – a Flow Template defines configuration which will be used in a Flow.
    • Offer Templates – create Templates are Offer content.
  • Connections – allow you to create and manage connections to third party systems. These can be used for sending email or ingesting data.

NOTE: Experiences vs Experiments – there were a few occasions during the training when these two were mixed up. Experiments is A/B testing while Experiences allow you to design and implement user interactions and capture user data.

Continue reading

How to Integrate OrderCloud with Vercel Next.js Commerce

In my previous post, I demonstrated how to get the Sitecore OrderCloud headstart-nextjs running and deployed to Vercel. In this post, I will show you how to create a Vercel project using the Commerce template and steps to add Sitecore OrderCloud integration. How to then set up the project for local dev, make some basic changes and deploy those changes to Vercel.

Next.js Commerce Template

Vercel gives you the ability to create new projects, deploy existing projects or you can choose from one of their Templates. These templates are a great starting point to wrap your head around some of the Vercel concepts without having to start from scratch. I recommend checking them out.

The Commerce project template uses Next.js Commerce an all-in-one starter kit for high-performance e-commerce sites. It already boasts integrations out-of-the-box with the following commerce platforms: BigCommerce, Shopify, Swell, Saleor,Vendure and OrderCloud. With plans to support other platforms. Features include:

  • Performant by default
  • SEO Ready
  • Internationalization
  • Responsive
  • UI Components
  • Theming
  • Standardized Data Hooks
  • Integrations – seamless with the most common ecommerce platforms (Shopify, BigCommerce, Swell, Vendure, Saleor and OrderCloud).
Continue reading

How to back up and restore a Docker Image

There are occasions when you want to take a snapshot of your existing local docker images, for example, you might have a running version locally and there is a newer version you want to test and then easily revert back to your current running version. Running a docker compose pull will update your existing image. Remember to include any prefix and version postfix.

docker save image-name:{version} > c:/backup/image-name.tar

If you backed up your images to a local tar file, to restore previously saved images run:

docker image load -i c:/backup/image-name.tar

Useful Links

Spin up Sitecore OrderCloud Next.js app on Vercel

In this post, I will introduce you to some of the handy developers tools provided by Sitecore OrderCloud to help you get up and running quickly with OrderCloud and Next.js. We will look at how to seed OrderCloud with some sample data, use the Console API to query the data, spin up an instance of the headstart-nextjs application and finally deploy the application to Vercel.

Continue reading

Composable approach to e-commerce with Sitecore OrderCloud

In April 2021 Sitecore announced the completion of their acquisition of Four51 to enhance their ecommerce proposition. Four51 a technology solutions company that designs, develops, and delivers digital transformation through modern, customizable eCommerce, order management and B2B marketplace solutions powered by its MACH (Microservices based, API-first, Cloud-native and Headless) architecture eCommerce platform, OrderCloud. By moving towards MACH architecture, Sitecore are enabling you to take advantage of a composable approach to e-commerce.

OrderCloud is meant to be the backbone of your commerce operations as an API-first, headless platform.

Continue reading

Create a RestApi Client using Swagger

What Is OpenApi Spec?

OpenApi (OAS) is an API description format for REST APIs. An OpenAPI file allows you to describe your entire API, including:

  • Available endpoints (/users) and operations on each endpoint (GET /users, POST /users)
  • Operation parameters Input and output for each operation
  • Authentication methods
  • Contact information, license, terms of use and other information.

What is Swagger?

Swagger is a set of tools most widely used implementing the OpenApi specification.

  • Swagger Editor: Swagger Editor lets you edit OpenAPI specifications in YAML inside your browser and to preview documentations in real time.
  • Swagger UI: Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from an OAS-compliant API.
  • Swagger Codegen: Allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec.
  • Swagger Parser: Standalone library for parsing OpenAPI definitions from Java
  • Swagger Core: Java-related libraries for creating, consuming, and working with OpenAPI definitions
  • Swagger Inspector (free): API testing tool that lets you validate your APIs & generate OpenAPI definitions from an existing API
  • SwaggerHub (free and commercial): API design and documentation, built for teams working with OpenAPI.

Swagger CodeGen Api

The Swagger Codegen is an open source code-generator to build server stubs and client SDKs directly from a Swagger defined RESTful API. The source code for the Swagger Codegen can be found in GitHub.

How to Annotate with OBS

In a previous post I gave a quick introduction to OBS, if you are not familiar with OBS, I highly recommend checking it out. In this post, I’ll show you how you can easily annotate while recording or streaming with OBS.

Often while presenting we will use a pointer to bring attention to an area on a slide or a smart board/whiteboard to help illustrate a concept or idea and further engage our audience. In my quest to provide the same experience while using OBS for recorded and streaming demos I discovered there are several tools available that enable you to write and draw on your display capture device.

Continue reading

Getting started with OBS

Earlier this year I took part in a Social Impact Hackathon organized by Valtech, CreateLabs, Contentful for the Henry Street Settlement in NYC. During the event I introduced OBS (Open Broadcaster Software) and shared some handy tips on how to get started using this awesome tool to improve your video content and/or presentations and client demos. I’ll share some of those tips over a series of posts starting with a quick intro.

What is OBS?

OBS is an open source video production and streaming application with a large community of developers. It can help you produce better quality recorded video and/streaming video content.

How could you benefit from using OBS? During the pandemic just about everyone has become familiar with video steaming services. Social distancing and lockdowns caused an unprecedented number of people to working or studying from home making services like zoom a household name in 2020.

This increased popularity of streaming video pointed out noticeable differences in quality. With the more professional-looking, having multiple camera angles, titling, effective lighting and crisp audio, VS other video streams consisting of one or more talking heads and poor audio. What’s the difference? Well it’s not exactly difficult to record and share a video of yourself these days. Most people can do it directly from their phone or laptop webcam. However, to produce professional looking recording requires a bit more time, and effort and some decent software to enhance the quality of your recording. That’s where OBS comes in as it can help make improve the quality of your video recordings, and presentations in general.

On my current Sitecore project our development team have adopted OBS to create short recordings to showcase each feature they have completed in the sprint. These are attached to the user story and then used in after Sprint Demo to showcase to the BA, QA and the client what has been completed in the sprint and how the new feature functions. This has the following benefits for the entire team:

  • Developer – this acts as a confirmation check as they read through stories acceptance criteria and as part of the as part of the recording prior to demoing the feature. This helps confirm feature has indeed been implemented according the defined Acceptance Criteria and identifies any short comings or issues. Which can then be addressed. Developers gain confidence in creating recorded presentations. We’ve also found developers gain confidence and those that might be slightly introverted can significant confidence and are less intimidated presenting in front of the client. Prevents developers simply throwing features over the wire to QA without ensuring it functions as expected – not that they would.
  • BA – This helps solidify features have been implemented according the Acceptance Criteria and identify any short comings or issues.
  • QA – They can see exactly how a feature has been implemented, how to test it and where to go if they need to configure or change anything in Sitecore. Reduces the amount of communications back and forth.
  • Program Management – gain confidence in what is being delivered and the quality.
  • Client – They can see the progress without waiting for it to go through QA. Reaffirms that the feature functions and is designed as they had anticipated and provides an opportunity to provide feedback earlier in the lifecycle. Also as its recorded and attached to the user story so it can be re-visited when they start their UAT testing or if someone is unable to attend the after Sprint Demo meeting.
Continue reading