Quan Mai
Mar 27, 2019
visibility 5480
star star star star star
(6 votes)

New feature in Commerce 13.1: StringDictionary support for catalog content

When we introduced strongly typed content type support for catalog items in Commerce 7.5, some of the metafield types were left unsupported. One of them was StringDictionary. While it's not the most common metafield type, it is used by several customers and we get the questions about supporting it from time to time.

We have had to say no each time, until now!

Upcoming Commerce 13.1 will add support for StringDictionary metafield type for catalog content. If you already have a StringDictionary with name "StringDict" (yeah, it's a bad name, but let's be generic) in your FashionProduct metaclass, you can map it with a strongly typed property in your FashionProduct content type like this:

[BackingType(typeof(PropertyStringDictionary))]
 public virtual IDictionary<string, string> StringDict { get; set; }

BackingType attribute is required to indicate that the underlying metafield is StringDictionary. If you don't have a StringDict metafield of type StringDictionary already, Commerce will automatically create and assign it to the metaclass for you.

The support is at API level, we don't support editing StringDictionary property in Catalog UI yet, and it's unlikely to happen. However if you have code in your website that load MetaObjects to read the StringDictionary metafields, update them and save it back, you can now simply do it in an entirely "content way". Now you can load, delete and update the items in StringDict directly using content APIs as other property types.

Commerce 13.1 is a few weeks away from release. 

Mar 27, 2019

Comments

Praful Jangid
Praful Jangid Jun 23, 2019 05:23 PM

This sounds very useful. Will this be render as a property list or what?

error Please login to comment.
Latest blogs
Finding Thomas Part 3 - The Moment of Recognition

Remember Thomas? In digital landscape, Thomas is the returning visitor who reads everything, opens every email, converts on nothing. In standard...

Ritu Madan | Jun 26, 2026

Add more scheduled job settings from the Optimizely CMS 12 admin UI -- with OptiScheduledJob.ExtraParameters

  Optimizely (EPiServer) CMS 12 ships a great scheduled-jobs framework, but it has one frustrating gap: a job has nowhere to store its own...

Binh Nguyen Thi | Jun 25, 2026

Automated Search & Navigation to Graph Migration with Claude Code

A Claude Code plugin that scans your S&N codebase, applies Graph SDK transformations, and validates the result. Install once, run one command. CMS ...

Connor Fortin | Jun 24, 2026

Migrating from Find to Graph: Lessons Learned from a Real CMS 13 Project

While migrating a search solution from Optimizely Search & Navigation (Find) to Optimizely Graph in CMS 13, I encountered several issues that were...

Binh Nguyen Thi | Jun 24, 2026

Optimizely: Upgrade Opti-ID and .NET 10 in CMS 12

Many Optimizely customers are planning their roadmap around a future migration to Optimizely CMS 13. As a result, upgrades such as Opti ID adoption...

Madhu | Jun 23, 2026 |

Understanding Optimizely Graph: Caching, Webhooks & Avoiding Stale Content (Optimizely SaaS CMS)

📌 Scope: This post covers Optimizely CMS (SaaS) only — using the official @optimizely/cms-sdk and @optimizely/cms-cli packages with Next.js 15. If...

Kiran Patil | Jun 23, 2026 |