0

I noticed that configuration settings, e.g. /sitecore/Commerce/Commerce Control Panel/Storefront Settings/Storefronts/CommerceEngineDefaultStorefront, (and probably also other configuration settings) are not synced to the commerce database (ie. [SitecoreCommerce9_SharedEnvironments].[dbo].[ContentEntities]) by the EnsureSyncDefaultContentPaths REST call.

In the log the following error occurs:

74 21:06:12 ERROR CtxMsg.Error.ContentPathAlreadyExists: Text=Content path '/sitecore/Commerce/Commerce Control Panel' already exists.

Currently the only workaround I found was to re-initialize the environment. This is clearly not desired in a production environment.

How to solve it?

1

I got the following answer from Sitecore Support:

EnsureSyncDefaultContentPaths should be run only once when the environment is just set-up. For the subsequent configuration updates you should use the SynchronizeContentItem DoUxAction from the ContentApiSamples collection in Postman:

As body put the following data:

{
    "@odata.context": "http://localhost:5000/Api/$metadata#Sitecore.Commerce.EntityViews.EntityView",
    "@odata.type": "#Sitecore.Commerce.EntityViews.EntityView",
    "Name": "SynchronizeContentItem",
    "Policies": [],
    "DisplayName": "SynchronizeContentItem",
    "EntityId": "Entity-ContentPath-Commerce Control Panel",
    "Action": "SynchronizeContentItem",
    "ItemId": "",
    "Properties": [
        {
            "Name": "Version",
            "Policies": [],
            "DisplayName": "Version",
            "Value": "2", // to find the exact version you should pass here you should run "Sync Item" GetEntityView request from the Postman.
            "IsHidden": true,
            "OriginalType": "System.Int32",
            "IsReadOnly": true,
            "UiType": "",
            "IsRequired": true
        },
        {
            "Name": "Path",
            "Policies": [],
            "DisplayName": "Path",
            "Value": "/sitecore/Commerce/Commerce Control Panel/Storefront Settings/Storefronts/CommerceEngineDefaultStorefront",//itemPath for the item you want to update.
            "IsHidden": false,
            "OriginalType": "System.String",
            "IsReadOnly": false,
            "UiType": "",
            "IsRequired": true
        }
    ],
    "ChildViews": [],
    "DisplayRank": 500,
    "UiHint": "Flat",
    "Icon": "chart_column_stacked"
}
  • Other workaround is to delete all records from the ContentLists and ContentEntities tables and all records containing 'content' in its Id from the CommerceEntities table. After this perform a iisreset, and the tables will be automatically populated again. – Joost Jun 4 at 14:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.