Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more

Does anybody know how to Publish updated NodeContent through code?

tss
tss
Vote:
0

Hi Guys

Im currently trying to do a integration through the new IContent API i Commerce 7.5 but I cant get it to keep the data saved on the frontend when I publish the imported data through code.

My setup is this

I have a ContentNode with the type Category

Category has a Description and a DisplayName

I go to the frontend and type in some content i the description without publishing the change.

After that I run the integration using the IContentRepository

The code looks like the following:

 

var category = (Category)_contentRepository.Get<Category>(_referenceConverter.GetContentLink(code, CatalogContentType.CatalogNode).ToReferenceWithoutVersion(), new LanguageSelector(language.Name)).CreateWritableClone();

category.DisplayName = "I Have been updated!!";

_contentRepository.Save(category, SaveAction.Publish, AccessLevel.NoAccess);

 

After running the code  i can see the DisplayName has been updated but I lost the content I typed into the Description.

How do I get it to keep both changes and publish both?

#79320
Dec 13, 2013 10:41
tss
Vote:
0

ahh found the issue, I had to use the IContentVersionRepository to get the current draft

here is the updated code

var categoryCode = "CATEGORY1234"

var link = _referenceConverter.GetContentLink(categoryCode , CatalogContentType.CatalogNode);
var draft = _versionRepository.LoadCommonDraft(link, language.Name);

var category = (Category)_contentRepository.Get<Category>(draft.ContentLink).CreateWritableClone()

category.DisplayName = "I Have been updated!!";

_contentRepository.Save(category, SaveAction.Publish, AccessLevel.NoAccess);

 

Hope it helps somebody else one day :-)

 

#79327
Dec 13, 2013 11:30
Vote:
0

It helped me. Thanks for sharing!

#79636
Dec 24, 2013 8:28
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.