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