Stefan Holm Olsen

Blog posts

This page lists all my blog posts chronologically (newest first).

Applying cloud logging to InRiver iPMC extensions for easier analytics

I was missing some features and scalability from the built-in InRiver iPMC extension log. Therefore I did an integration that demonstrates how to log events, exceptions and metrics to Azure Application Insights (using it as a supplementary log service).

Sending emails from Episerver Commerce with SendGrid

For a long time, transactional emails have been sent directly from Episerver, by rendering and sending a CMS page as an email. In this post I suggest another approach, where we simply tell SendGrid which template to use and what data to put in the template placeholders.

Using GraphQL with Episerver Commerce

Since moving to Dubai, I have heard and read a lot about GraphQL as a new model for implementing API's for web and native apps. However, I have not yet seen it applied to Episerver CMS or Commerce. So, for this blog post, I created a small demonstration of a GraphQL API, based on Episerver's Quicksilver sample site. Read about the outcome here.

Why I use Yandex.Metrika for website analytics

Last month I switched from Google Analytics to Yandex.Metrika as my analytics suite.In this blog post, I explain why I chose Yandex.Metrika and why I believe it is a great and powerful tool.

To rewrite Git history: add and edit files back in time

When I finished preparing the code for another blog post, I had to add a LICENSE and a README file to the Git repository of my code. Adding those files to the very first commit and adding a copyright notice to all C# source files, required rewriting of Git history. In this blog post, I share the scripts I used myself.

An efficient and open sourced inbound connector for InRiver iPMC

I created an open sourced inbound connector to demonstrate how to make a simple, yet powerful, integration for loading large XML documents with product data into iPMC. After doing thorough profiling of the code, I also incorporated several performance optimizations.

Analyzing InRiver images using Azure Computer Vision API

What if product managers wants to have all images tagged in InRiver, but does not really like to do it manually? How can that be automated using artificial intelligence in the cloud? In this blog post I create a new InRiver iPMC extension that integrates to Azure's Computer Vision API.

Transforming an InRiver field value using a table in Azure Table Storage

In InRiver some fields have raw values that need to be transformed because of a target system. It could be that all color codes should be consolidated to just 20 color groups. But how to do that? And where to store all the transformation combinations? In this blog post, I demonstrate how to implement an InRiver iPMC extension that transforms field values using a custom table in Azure Table Storage.

Six tips for making a good outbound connector for InRiver iPMC

From working on InRiver PIM projects, I have implemented a few custom outbound connectors. They would export catalogs to EPiServer Commerce, Demandware (now Salesforce Commerce Cloud) as well as Azure Blob Storage. In this post I give away six tips on implementing a good outbound connector for InRiver Product Marketing Cloud (iPMC).