Velkommen til bloggen vår. Her deler vi vår fagkunnskap og våre erfaringer rundt netthandelsløsninger.
Extending Episerver On Page Editing view
In this blog post I'll show you one way of extending Episerver's On Page Editing view, by automatically setting image caption and alt text properties on a page based on the image content that the editor selects.
Custom Episerver Commerce Product/Variant router
Just wanted to share a custom Epi Commerce hierarchical router that I'm using in a project where we have a Product -> Variant structure. All variants in the catalog belong to a product and a product can have one or multiple variants.
Introducing: New tool to easily index your content in Episerver Find
Have you ever wanted to index a content item in Find without having to publish a meaningless change to it? Or index an entire content tree from a specific starting point? Maybe you want to force an item into the index even though it's excluded by conventions? Just install Geta.Epi.IndexContentInFind package and it will be easy to do just that.
Enable Razor views in Episerver modules with Geta.EPi.ShellRazorSupport package
By default, Episerver supports only WebForms views for its modules. We have created a package which adds support for Razor views too.
Introducing Geta.EpiCategories: Categories as localizable IContent
For quite a long time I've been wondering if Episerver is going to do anything about the built-in category functionality. I feel it's pretty outdated and it's not so convenient to edit and localize categories. I guess the teams at Episerver are busy with other, more important stuff, so I decided to create a module. Say hello to Geta.EpiCategories.
Geta.Epi.Extensions updated with content editor ux helpers
You might already know about our Episerver extensions package, Geta.Epi.Extensions. We have now added a set of extensions and HTML helpers to help improve user experience for content editors. The goal with the helpers is to reduce the need for "All properties view" in the Episerver edit interface.
ContentType preview images w. icons
I don't know about you, but at least for me, I rarely create image thumbnails for the different content types in the solutions I am working on. If you are like me, then this package will hopefully give your editors a somewhat more pleasant user experience when creating content.
Install multiple instances of inRiver PIM
When you are working on several inRiver PIM projects simultaneously, you find yourself in need of switching between them from time to time. One option is to change the configuration files and restart inRiver services and website. A better option is have multiple instances of inRiver PIM running on the same system. This way you can easily access the desired instance for configurations, developing and demos. This is a walk-through on how to set up multiple instances of inRiver PIM on the same system.
Extend your Episerver content types
Let's say you have developed a site framework that you use on many different sites that contains some content types spread over various assemblies. Sooner or later, on at least one of the sites, you will want to add, hide or modify a property on a specific content type. You could create a new content type that inherits the original and then hide the original. No thanks. Let's do it better than that.
Google Product Feed for Episerver
This data feed will allow you to easily share your e-commerce sites product data with Google Shopping and other channels. At Geta we've used it for quite a few 3rd party integrations.
Searching multiple Find indexes
Recently I helped out investigating an issue where the search result from Find contained non-published and deleted pages. The site in question had a search page that fetched results from two separate Find indexes.
Episerver Languages and XLIFF support
The popular Episerver Languages addon has added supported for exporting and importing content using the widely supported XLIFF format.
Extending the Episerver global menu
Extending the Episerver global menu is easy. You can add menu sections and sub-menu items such as menu sections, drop-downs, URLs and pop-up menu items. In this short blog post I will demonstrate how you can keep your menu context while navigating between several MVC actions.
Import redirects for 404 handler
This is more a reminder for me, but could be useful for others as well. We use the Episerver 404 handler in most if not all of our projects. It does a good job of handling URL redirects and custom 404 pages.
Content reference selector with direct file upload
Sometimes when developing Episerver solutions you find the need to extend the behaviour of already existing property editors. In this blog post I will briefly describe how I extended the built-in content selector with direct upload functionality using drag and drop. This way you don’t have to create your "Media"-items before being able to select them. You can just upload them directly to the property editor and they will be added to the assets folder of the content you are working on and selected automatically.
Insert your view engine at correct position
The other day I had to deal with a mysterious error with the Episerver Shell search function. You know the little search icon to the right in the dashboard drop-down menu. When I clicked it nothing happened. I looked at the request in developer toolbar, discovered the exception and this is how I fixed it.
Episerver Commerce - Retrieving all parent catalog nodes
From time to time I get asked; 'How can I retrieve all parent catalog nodes for a product in Episerver Commerce?' Achieving this using the current version of Episerver commerce API is a bit cumbersome. Luckily Episerver is working on a relation overhaul for the next major version of Commerce, but until then I'll provide some sample code that does the trick.
Service API for Customers, Carts and Orders released
EPiServer released Service API some time ago but it was missing an API for Customers, Carts and Order. We have now released additional Service API endpoints for this Commerce functionality.
Content area renderer on steroids
This is an example of a custom content area renderer that automatically wraps blocks in container and row <div> tags and also has support for non wrapped hero blocks.
New version of Tags for Episerver
The biggest fix has been auto-save not always picking up changed values from the Tags property. In addition we’ve added some more flexibility with GroupKeys, CultureSpecific support, allow spaces, allow duplicates and case sensitive. And a brand new admin interface for managing tags.
Order management in Klarna Checkout Module
This blog post is the third in a series of blog posts about Geta's Klarna checkout module for Episerver Commerce. In this post I will describe order management processes such as complete shipment, returns and partial shipment.
Redirect based on Episerver visitor group
Here's a small code sample on how you can redirect to content in Episerver (or somewhere else) based on visitor groups.
Episerver CMS 9 Certification Exam Tips
Is it time to take your first Episerver CMS certification exam or retake an expired ECD exam? I took my first Episerver ECD exam 8 years ago on CMS 5, and have taken it several times again since then for different versions. Recently I did the new Episerver CMS 9 MVC exam online. Here are my tips for how you can prepare to take your Episerver certification exam.
Episerver Commerce and PIM
When working with advanced e-commerce solutions as a developer or consultant you quickly get introduced to the acronym PIM: Product Information Management. What is it and why would you want one as part of your Episerver e-commerce project?
Raygun error and crash reporting for Episerver
Raygun gives developers meaningful insights into problems affecting their applications. At Geta we've run this successfully for our maintenance customers.
Setting up your project and TeamCity/OctoPack for front-end builds
Traditionally, front-end code is compiled locally, the generated files are included in the project and then pushed out to source control. This is a redundant step and one we should get rid of, especially if we're using build servers like TeamCity, and Octopus Deploy for deployments.
Validating a checkout order
This blog post is a follow up on my previous post related to the Geta Klarna checkout module. This time the topic is the process of validating a checkout order.
A major facelift for the Geta Klarna Checkout module
This blog post is part one of several blog posts describing new features added to Geta's Klarna checkout module. The module is a library which helps to integrate Klarna Checkout as one of the payment options in your EPiServer Commerce site.
Quick tip: clean up your log file
Is your Episerver log file full of warning messages related to deprecated property types? I prefer keeping my log file clean - in this short blog post I will show you how these messages easily can be removed.
Taking control of block rendering in XhtmlString properties
In this blog post I'll show you a couple of examples of how to customize the rendering of blocks inside XhtmlString properties.
Providing fallback/replacement languages in EPiServer Commerce
Sometimes the 1 to 1 language mappings of Commerce just isn't enough. There are times when you have to go beyond that, especially if you run a site that has a lot of them.
Adjusting widget validation in EPiServer 7.19
Recently we got stuck, unable to upgrade a solution due to external dependencies. We where then forced to deal with some of the already fixed quirks in EPiServer. One of these is the 7.19 use of dojo 1.8.9, which contains a validation bug for urls.
Ascend'15 - Episerver Find - Advanced Developer Session
In the start of November I was fortunate enough to attend the EPiServer Ascend conference which was held in Las Vegas.
Let the editor choose a rendering template for content in EPiServer
For some content types you might want to have several rendering templates, and perhaps also different logic. This blog post shows how to create two render templates for a page type together with an editor descriptor to let the editor choose one of them when creating and editing a page.
Controlling content type and property availability in multi site solutions
I'm currently in a multi site EPiServer project where a lot of things needs to be configured per site. Some content types, properties etc should only be available for certain sites. Luckily EPiServer is quite extensible which makes it pretty easy to accomplish this.
EPiServer Instant Templates
Instant Templates is a new module for EPiServer that allows content editors to create their own re-usable templates from within EPiServer edit mode.
A couple of weeks ago I made some updates to our open source plugin for EPiServer, Geta.SEO.Sitemaps, a tool to generate Google XML sitemaps. This blog post is sort of a changelog for these updates.
Building an advanced search page using EPiServer Find
EPiServer Find provides a powerful and flexible tool for building innovative enterprise search solutions. Here is how I built an advanced search page using EPiServer Find with great help from the EPiServer community.
When Data Export Fails
I was developing a new feature in EPiServer 8.8 for one of our customers which involved creation of multiple new page types and page instances that needed to be arranged in complex hierarchy. The plan was to create content in testing environment first and later transfer it to the production environment using Export data / Import data feature. Unfortunately, it didn't go as smooth as planned.
Filtered display options menu based on content type in EPiServer
A thing that has bothered me for a long time with EPiServer is that you, out of the box, can't have different display options for different blocks. Based on the design for your site you might want to force one block to full width and another to half width etc. You can do this with CSS but what's bothering me is that the editor is presented with an option that doesn't make any sense. So, I decided to fix it. :)
Content Area - Under the Hood, part III
This is last blog post in series under the hood of Content Area. In this blog post we will take a look at how and what exactly could be customizable while content area is being rendered. Where and how developer can hook in, what can be overridden and controlled.
Translating the EPiServer UI
Sometimes you may want to translate the EPiServer user interface to a currently unsupported language or just want to change the text of some button or whatever. If you have been working with EPiServer for a while you probably know that one way you can do this is by putting XML files in the ~/lang folder. But where the hell are the language files being used by EPiServer so you can lookup all the XPaths? I'll tell you. And because I'm so friendly I'll let you download the XML files for free.
Content Area - under the Hood, part II
This is second post in series of EPiServer Content Area feature. This time we will take a look at how render templates are selected.
Category selection for multiple sites in EPiServer enterprise solutions
This is a quick tip filed under the "Enhance the user experience for web editors" category. In an enterprise EPiServer solution with multiple sites it's a common scenario to have separate category structures for each site. This simple editor descriptor makes sure the web editor for a specific site only sees and can select the relevant categories.
Content area - under the hood part I
Lately I was visiting and revisiting content area, code and functionality around this feature in EPiServer and decided to revisit it once again and take a closer look at what’s really inside. So the blog post is not about what content area is, but how it works, how responsible party for rendering and templating is selected when EPiServer needs to render this one of the most powerful content editing feature.
New version of Geta oEmbed
Another one of our popular modules has been updated to .NET 4.5 and EPiServer 8. It is still backward compatible with the old custom property and dynamic content. In the new version you'll now find a block that you can easily use as both local and shared.
New version of Geta Tags
The new version now finally supports other types of content like MediaData, BlockData and CatalogContent in addition to PageData.
Moving from EPiServer CMS to EPiServer Commerce as a Developer
Are you starting your first EPiServer Commerce project? What are the major differences between the products? What new challenges do you face in an ecommerce project vs a regular website project?
Simple URL keeper for EPiServer
Here's a little code sample that is useful for when you need to perform an automatic redirect after content is moved in EPiServer, to avoid getting a bunch of 404's.
EPiServer Commerce route messing with block preview
Yesterday we discovered an issue with our block preview implementation in a project we are currently working on, running EPiServer Commerce version 8.2.1. The problem was that all blocks got previewed in the master language (english in our case). When we clicked a property the correct translation was loaded, but it was very confusing for the editors so we had to fix it.
Improved CategoryList editor descriptor for EPiServer
More than one time I have found myself in the need of a filtered category tree in EPiServer. In large sites there can be a lot of categories and sometimes you just want to force the web editors to choose from a predefined root category. What to do? Create a editor descriptor that replaces the built-in one!
Using EPiServer's content selector widget in dojo component
For the last couple of days I have been working with a custom dojo component that plugs into the assets panel. I needed a way to select a page from the content tree and had no idea how to do it so I started to dig around in the large and deep structure of ClientResources in the EPiServer.CMS.UI package and voilà, I found the epi-cms/widget/ContentSelector. Let's use it!
Font Awesome auto complete editor for EPiServer
Full support for Asp.Net Mvc areas in EPiServer 7.5
This is a blog post about how to add Asp.Net Mvc areas back in town and add full support in EPiServer v7.5. I’ll not spend time to explain what Mvc area is, most probably if you are reading this, you already are looking for a way to add it or adjust it to your needs in your EPiServer project.
Modern Episerver Development
I get a lot of questions from new and experienced developers alike asking how it is working with Episerver these days. They have maybe heard some rumors from people working with Episerver before or they have stumbled across an Episerver project in the past. The main thing is that there´s a lot of confusion out there about what we as Episerver developers do everyday.
EPiServer CMS 8 - What is new?
EPiServer has just released version 8.0 of their popular CMS/WCM system. What is new for editors? How hard is it to upgrade from 7.x? Let's take a look.
Controlling allowed types in a ContentArea using an interface
Recently I've been involved in a project that features a great deal of different content types. Early on I figured that using an AllowedTypesAttribute on ContentAreas would be helpful for the editors, since you might not want to drop exactly everything, everywhere.
Klarna Checkout payment provider for EPiServer Commerce
The first version of Klarna Checkout payment provider for EPiServer Commerce is now released.
How to limit rendering to specific display options and set default display option for a block
Often we want to do a little more work on our projects to make life easier for the editors that's supposed to create and update content on the website we're developing. Sometimes a small effort can do quite a big difference.
Working with the EPiServer 7.5 Commerce API
With the introduction of EPiServer 7.5, EPiServer Commerce provides a content provider that can serve any catalog content as IContent. This means that it is possible to work with catalog content using the same techniques as working with CMS content.
Control how media types are resolved in EPiServer
Lets say you have several content media types that all have identical MediaDescriptor extension strings. How can you control which type EPiServer will use when uploading files in the asset pane?
Creating a one-click tweet editor plugin for EPiServer 7.x
Developing a plugin for EPiServer isn't always straightforward, this blog post aims to cross some of the hurdles of getting creative with the TinyMCE editor.
Log4net Loggly Appender for EPiServer CMS
Loggly is a great cloud-based logging tool. It enables developers to centralise their logging to one convenient location, which helps reduce the time it usually takes to log into the server where the project is located, find the relevant log files, and scroll through the countless number of lines to find that one specific log entry. Needless to say, it's a useful tool indeed, and this plugin enables you to effortlessly implement this feature into your EPiServer CMS project.
Known issues after EPiServer Commerce 7.5 upgrade
After upgrading an EPiServer Commerce solution from version 6 R3 to 7.5, we came across some issues that quickly becomes time consuming if you are not aware of them. To save you time troubleshooting - here is a short description of the issues and how to get around them.
Integrating Grunt into ASP.NET projects
Geta Tags 1.0.0 released
New version of Geta Tags now has full tagging functionality like in the previous version for EPiServer 6. Latest version is found on EPiServer's NuGet feed.
One page type, 2 sites, 2 controllers and 2 views in EPiServer 7.5
A while ago we developed an enterprise solution for a customer containing two EPiServer sites. We wanted to be able to share page types and blocks between the sites but in many cases have a separate MVC controller and view. This was the solution I came up with.
Geta Tags for EPiServer 7.5 released
We just released version of Geta Tags which supports EPiServer 7.5. Latest version (0.9.8) is found on EPiServer NuGet feed.
Issue in Geta.SEO.Sitemaps fixed
Today I fixed an issue in our open source plugin for EPiServer 7.5, Geta.SEO.Sitemaps, a tool to generate Google XML sitemaps. The issue occurred when you had one site mapped to multiple hosts with different language branches. Only the sitemap for the main SiteUrl worked (although displaying links to all language branches which is not desired) and the other hosts resulted in a 404.
Extensions and helpers library for EPiServer
Over the last 4-5 projects my team has been working with EPiServer 7 and 7.5 using ASP.NET MVC. We've ended up creating some useful methods and helpers that we used in all those projects, that we've found to be very valueable and time saving. This library is now in a stable version that we're excited to open source and let everyone use.
EPiServer Find On-Premise Setup
After setting up 5 different On-Premise servers for EPiServer Find I started writing down some notes on how to set it up and some gotchas I had a long the way.
Working with EPiServer 7.5 CMS
If you have upgraded or installed EPiServer 7.5 CMS, you may have noticed quite a few changes. Here is a quick walkthrough the most important ones.