IntelliSense for recipes, Orchard Core Commerce 3.1 - This week in Orchard (06/02/2026)
See how we replaced the dynamic ContentCard shapes with strongly typed shapes to enhance Orchard Core development! Take a look at the updated documentation for the UserDisplayName shape if you struggled to display user information in your custom format. You could also see a demo about how to expose recipe step metadata and JSON schemas, enabling IDE autocompletion, AI tooling integration, and recipe validation. Oh, and have we mentioned that Orchard Core Commerce has just got a fresh new release?
Orchard Core updates
Replace dynamic ContentCard shapes with strongly typed shapes
The dynamic shape creation using _shapeFactory.New.ContentCard(...) has been replaced with strongly typed shapes, using CreateAsync<T> to improve performance and type safety. It means new shape classes in the OrchardCore.ContentTypes.Abstractions library:
- ContentCardShape - encapsulates all ContentCard properties
- ContentCardFieldsEditShape - for ContentCard_Fields_Edit shape
- ContentCardFrameShape - for ContentCard_Frame wrapper shape
Here you can see an example of the updated shape creation pattern for both the controllers and the views:

To see a real-life example, here you can see using the new strongly typed shape when working with Bag Parts.

Update UserDisplayName shape documentation
The UserDisplayName shape provides a flexible way to display user information throughout Orchard Core, particularly in admin lists. This shape is commonly used when displaying content authors, audit trail users, or any user reference. The updated Templates page in the Orchard Core documentation describes how to create the UserDisplayName shape, with customization examples in both Razor and Liquid. You can also see how to access the full user object with custom properties and content parts, how to display the full name instead of the username, or how to create a user-specific template for a particular username.

You can also read about how to use the new users_by_name filter here, which loads one or more user objects from the database by username(s). The username is automatically normalized before querying.

Demos
IntelliSense for recipes
Recipes are a powerful thing in Orchard Core. It allows you to do a lot with just JSON. It's more powerful now that we have AI! So, we can just have AI-generated recipes and execute them, and things can get done. However, there are a few issues with our current recipe setup. One is that you can't register recipes the way you register a service; they have to be files, and you can't create a recipe from code, for example.
The other issue is that we just don't have a way to control the schema. We currently have no way to ask the AI to provide us with really good recipes because the recipe structure is unknown. We have documentations and AI utilizes those documents, but we don't have everything documented.
If we have a JSON schema for the recipes, we can do a lot more things with it. For example, we can try unifying the recipe and the deployment. It means that if we change the recipe's structure or schema, it will affect both the recipe and the deployment, allowing us to export and import structured data.
Mike Alhayek tried to ask the AI to do things for us and to change how recipes are handled in the code. Here you can find the PR for this feature.
Now let's navigate to the admin UI and enable the View Or Download Content As JSON feature under Tools -> Features. After, we can navigate to Tools -> Deployments and select the JSON Import option from the menu. Here, you will notice IntelliSense. This, by itself, adds a lot of value from a UI perspective when you get that IntelliSense.

And we still have a lot to cover! If you want to know more details about this feature, head to YouTube for a recording!
News from the community
Orchard Core Commerce 3.1
Orchard Core Commerce is an Orchard Core port and partial rewrite of the open-source Nwazet Commerce module that was built for Orchard CMS 1.x. Nwazet Commerce was initially built in 2012 by Bertrand Le Roy, loosely based on a commerce sample by Sipke Shoorstra. The initial goal of Nwazet Commerce was to power the website of the hardware startup Nwazet. While Nwazet is no longer operating, the Nwazet Commerce project continued and was further developed by a group of passionate contributors who use the platform for their own and their customers' websites.
Like Orchard, Nwazet Commerce was built with extensibility in mind and, as such, includes its own extensions (typical examples include local tax and shipping modules). It's also a pure, idiomatic Orchard.
Orchard Core represents a major evolution of the Orchard design principles and is sufficiently different that running Nwazet Commerce on it will necessitate significant work. As such, the community decided that starting from a blank slate was the best approach, so they will port Nwazet Commerce piece by piece, carefully applying Orchard Core's new design principles. The community also decided to adopt a new name that will shed its now-obsolete origins and establish our ambition for the module to become the go-to commerce module for Orchard Core.
Back in 2022, we published a demo that showed the module's current state. A few months later, we reached another milestone when we completed the basic implementation of the Stripe Payment integration (without taxation, shipping, etc.). Stripe is a payment service provider that business owners can use to accept dozens of payment methods, from credit cards to buy-now, pay-later services. Stripe Payments handles the steps between a customer providing their card information and learning that their payment has been accepted.
As you may know, Lombiq provides stewardship for the Orchard Core Commerce module. That means that we do code reviews and work on features and fixes. At the beginning of 2023, we released the 1.0 version of the Orchard Core Commerce module! You can read some of the key features of the release in this post. You can easily try it out by cloning this repo and building and running the OrchardCore.Commerce.Web project. Thanks to Auto Setup, the site will be set up with the OrchardCore Commerce - Development recipe. Afterward, go to the dashboard using the credentials admin and Password1!, then go to Content -> Content Items to create your first Product.
At the beginning of 2025, we released the 3.0 version of the Orchard Core Commerce module, which was a major version increment due to some breaking changes, so watch out! One of the breaking changes was that we dropped Newtonsoft.Json support, replaced the IPayment interface, and now services and modules use Payment directly, which was also moved into the OrchardCore.Commerce.Abstractions library.
Last week, we released version 3.1 of the module, the final release for Orchard Core 2.x. The next release will depend on Orchard Core 3.0. We now have a new feature, Orchard Core Commerce - Subscription, with basic support for subscription-type products. Currently, it's only for Stripe, which natively supports this payment model. We have also added minimal APIs for some shopping cart and payment activities.
Check out the full list of changes here!

Orchard Dojo Newsletter
Lombiq's Orchard Dojo Newsletter has 426 subscribers! We have started this newsletter to keep the Orchard community informed about the latest news on the platform. By subscribing to this newsletter, you will receive an email whenever a new post is published to Orchard Dojo, including 'This Week in Orchard', of course.
Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here!