Skip to Main Content
Customer Feedback

We love feedback from you on our products and the problems in your daily work that you would like us to solve. Please describe the challenge you're encountering and your desired outcome. Be as detailed as possible.

For technical issues or bugs please head to Support or our Developer Community. You can assign up to 20 votes in total. Thank you for your feedback.

Status explanation: 'Future Consideration' = Continuing to collect further feedback, not planned at this time. 'Investigating' = Prioritized for deeper customer and feasibility investigations ahead of planning development.

Categories Catalogs
Created by Guest
Created on Jul 3, 2024

Allow to create blocks as a children of Product/Category pages

As an Catalog editor I want to be able to create blocks with option known from CMS - For this page.


Reproduction steps:

  • I have my Product page that inherits from ProductContent

  • I add a property of ContentArea type to that page

  • On ContentArea control I press Select Content button

  • I would expect to see "Create a new block" option - same as it works in CMS

It is somehow possible to accomplish by making Product class to implement IResourcable as suggested here https://world.optimizely.com/blogs/david-harlow/dates/2018/3/extending-commerce---content-area-functionality/ and here https://world.optimizely.com/forum/developer-forum/Commerce/Thread-Container/2018/1/quotcreate-a-new-blockquot-link-not-showing-in-content-area-in-commerce/

The thing is that once this is done and editor tries to create a block this way there's this error (Note: it does not happen when you are an admin):

EPiServer.Core.AccessDeniedException: Access was denied to content 216055. The required access level was "Create, Publish".
   at EPiServer.Core.Internal.DefaultContentRepository.CheckSufficientAccess(ContentProvider provider, ContentReference contentLink, AccessLevel access)
   at EPiServer.Core.Internal.DefaultContentRepository.Save(IContent content, SaveAction action, AccessLevel access)
   at EPiServer.Cms.Shell.Service.Internal.ContentService.Save(IContent content, SaveAction saveAction, AccessLevel accessLevel)
   at EPiServer.Cms.Shell.Service.Internal.ContentService.Save(IContent content, SaveAction saveAction)
   at EPiServer.Cms.Shell.UI.Rest.ContentChangeManager.CreateContent(ContentReference parentLink, Int32 contentTypeId, Nullable`1 resourceFolderId, Boolean createAsLocalAsset, String name, IDictionary`2 properties, SaveAction saveAction)
   at EPiServer.Cms.Shell.UI.Rest.ContentChangeManager.CreateContent(ContentReference parentLink, Int32 contentTypeId, Nullable`1 resourceFolderId, Boolean createAsLocalAsset, String name, IDictionary`2 properties, Boolean autoPublish)
   at EPiServer.Cms.Shell.UI.Rest.ContentChangeManager.Create(ContentReference parentLink, Int32 contentTypeId, Nullable`1 resourceFolderId, Boolean createAsLocalAsset, String name, IDictionary`2 properties, Boolean autoPublish)
   at EPiServer.Cms.Shell.UI.Rest.Internal.ContentDataStore.Post(PostContentModel entity)

So it does not really work (I tried to make Product implement IContentSecurable but it ended up with an exception when trying to create new product page).


The only solution is to create a blocks with "For all sites" which is cumbersome