Calling all developers! We invite you to provide your input on Feature Experimentation by completing this brief survey.
Calling all developers! We invite you to provide your input on Feature Experimentation by completing this brief survey.
No that should just work. You don't need this attribute [BackingType(typeof(PropertyString))] however as string is a supported out of the box type ...
But I am getting below error
System.NullReferenceException: Object reference not set to an instance of an object.
at EPiServer.Reference.Commerce.Site.Features.Product.Models.GenericProduct_DynamicProxy.get_StyleGroupName()
at lambda_method629(Closure , Object , Object[] )
at EPiServer.Validation.DataAnnotationsValidator`1.ValidateInstance(Object instance, List`1 validationResult, ValidationContext validationContext)
at EPiServer.Validation.DataAnnotationsValidator`1.Validate(T instance)
at EPiServer.Validation.Internal.ContextValidatorWrapper`2.Validate(Object instance)
at EPiServer.Validation.Internal.ValidationService.ValidateRecursively(Object instance, Object context, HashSet`1 visitedInstances)
at EPiServer.Validation.Internal.ValidationService.Validate(Object instance)
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.ToList()
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at EPiServer.Cms.Shell.UI.Rest.Internal.ContentDataStore.<>c__DisplayClass20_0.<Validate>b__0(IContent content)
at EPiServer.Cms.Shell.UI.Rest.Internal.RestStatusUtil.ExecuteWithSecurityCheck[T](ContentReference contentLink, IContentLoader contentLoader, AccessLevel accessLevel, Func`2 func)
at EPiServer.Cms.Shell.UI.Rest.Internal.ContentDataStore.Validate(ContentReference id, ValidationFilering filter)
at lambda_method575(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
HEADERS
=======
Accept: application/javascript, application/json
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: en-US,en;q=0.9
Connection: close
Content-Length: 33
Content-Type: application/json
Cookie: AcceptedCookies=1; EPiServer_Commerce_AnonymousId=3dbcfae5-7e8c-4e46-954d-d54854b504ba; Language=en; MarketId=EU; CompareMessage=; CompareList=SPOKAL20-001; EPiStateMarker=true; .AspNetCore.Cookies=chunks-2; .AspNetCore.CookiesC1=CfDJ8M6iC_O6WlFHgmGGs_DM9wYtFKMQPJSl77OJRYndY4S4dYXZ7xK3tqS6LmHARWbLmS6eviFUdAN0DUYzzleKanvuDoK1uVjQ3wlYAnyCfSMBSio3W3rferqdAB1WeL_x7gkCJxwGbpQO9F0Hc9zI5wkV81wrL9PBPRMD8pUQPPhBkHKl7BFvzrQrUGiUopB0CMTt8jVCjf8_LKBLCRT0tDxD_qV6u4G2lwS8cGR7mN1YAUo07GtQzdReYr-f-0ObSMQhNQIa0iPDx-V1ca1IHa-a02HcnhUZPBNkTYe26EJB-ZT0dEeGMHzgfDAXHSFFvP_hACWl-IKXRWULan01AJu6Mu26z-r8jyZMgk9_7L0rVOvanI5TruR_zOPQWPtVdl88HMdRHG2ltO85Hb9mqxK1Rr5lHmypiXUc8bcZODaS8hY5lhS9ejtQorzy6sidngdh6MacG46Hs-2YZ8jtcayAEs3zbH5munVz0ct_ARTW9ebNB-igU9kIhqqjPn7jr1YImOf3ljVbFLUYmgMXnv4crT-3yHiZjfyEORH-V63kZxI4M2o25BcuDpHOsqxBlrWlDVnISkboOzQmZ5hjIVPwWwZjt2Mo622r0hGWcV_B29CsmcWpf45YCK995aiIM_dcH54bup3kXv0XS-v9lKUYFVhtdrt8DmIDUOgmEhmWf2TsUHPQd8XMPbTgkJSmoGkoCASHLolK2BG4wXesnoMn4nNLK19os7WeFaucTJ5Fcamda7GK3J2UNCYHiEsEIj0NHRVvRxnPY-jPxsz8dNz4jBEyxmDAb3Bi6CyDAGI_FAktLESrVfL_h0k1NFbw0C1JvsK4jK4Y0L06TYBHlpHltgUiz2l7yfb4gPBN797S9xwM0ve7LlEKBizw_z_tQSOLAgVcFS4kZ938LBWX5i18fWlSSPUz4XK0bnt43lHGAH_FqV0fUyEQTQVz0nMbWMyG_mdcuhMd8PQUJtoRb_uaJffm7sDdR0ft77lIhoAD0jjQo91ogrl-sb4MvxPlpxOvj7HURYhkMDBKVIKQzHqpHFxzWWoJgG-0fwoljvfVxtl14QVnq8bYxZ8xZ0VJwyYtk9EqvhBWwC59rGaJhckZn7YYvkelBREydPx7-UI6rscQMlgTWjTwqiL95ICm5KDpxMON_1HOBRpplOtcdQpWPCMg9b6QOdzfmL461s_h6LhddX-nveW6Bu9p0M0GYDStzAuZ8cr-4aSEhT5A66_eKuK-6IoAityf2tqzGhinSfPVeY66pPoMy0ijpgL1B5yjMQGpV7-tX_pc3kj-m61o6MbBxvLAIlNljhoYaKnTg5xW7JIG2VlARGBGc6D1lb_-l_IRzZW02WCMIJNeZB9Jql-08AwuR1fPSypOfUVmg1FnNVGWu5RAji5WkobaM7M4rcDV6YQGO4g0tN1na3n2Z0xBR_hQr3M4eeuRAYaVHO9sd32yzOwtc9GCyw37-lIeCgL6cyNwfIdQkDSF3gF2F6d_qxRWmvNdCaMcuN5Uq0ff0N6eowMwNcXFVUhd2iQ1tTPp1ZpLMhZkOylLyrhCXzshxSLJDmszNwEOHYw68TuDebkBFqCroyr3CHDvEg1JTp3KEZS2uIQ_z0CRbA4QGmMrew5PGUBWmjx90DPy4R1JnLndiI7ntrPh2HabrjJugk5ySpSu6i4Njq7Gb1b-COCTBSg-Q_HILdM72IqV8aOs7zYfAABRXLhKqYHs198IHN2Yy1Q04fdwWpYoFqFWEQl0-ZJvwdTQm54rhLFp9GFAa7CDudF94A4tM9HJwddNK5J4F_DZeI_STluqTpHdDWfql2vkIz0pZ4Cpwa2gnBke0we0x311IjIVxQPf8ctr2HmCa0LrSFukiR76eymZQMYaJjz-b8wWaxBIS1AtMrEqRKMSzI-NOmciMNfh_vzKCe0oOo0Rd0vH2gaIg6ebgMtBZlxnAgp3I57FcttEqtD03anSDs0AR-YcnaS5ceKVif_5sTXXRhJ8P3NcpTWsCECdI8YMY-hp81QBOldPD8mAiMYHdfLzGA2_UZ3NlTBlPby9Ba5smeYCNDCNh2VRb9OCd_YnoXOExTsdBaYnGnh1X-EncwPxrghLDGSJhvmUouUcMVRaaJ22XB2GaTNIWnBzruvGJ6Ux-KRRg9ym4M0MudLb43EjUehaQUV5k14Ex-Aa_bwvnyaXRdU5-JTYPjpo2L-bR2d7CxK3CmGEwN3onFlR_OeLCHxdZmANwAuy5HDSDMyPRIlOKa3nOkuKr6vNVpM69h2dhT4hbVpghu4ppaKQc6b7p5loW8MkMeoen3plyDrKla7ZcPpneOIZhGrsH4iAHROYdcPhN1aZfBa61a-PvytR-gbUUBqrfAnlHeoLXRNl-7c4mioLqNEoMIhOpco3UD9V55rBi-7DAlucLmdLvXbz6uZn2yWj-0Ws3AhYmipKryWIRLVgFE8N0nPhsi4xkOS6uEJ8Zr5cLJNdsDE-1Z5evtthn9cv60Q80GVJXYEWMaFyHIX7CQyWKUB2GayMfKw8Ed07g73A6WaOvHcINV3_X9MOPRSARORRHoG3jzia3MUMgn4xv6Z0-Vz6uAeLIZEmSntcK99B9tcPa1dMw7XChf1qGelDoEqysbzIpYRDqhd_-mSoW6siSr-70eG70jJlySGDAut30bT_Ko3hwny2Qx8tGOq0rjfRkhZz9Jk9s4KLoCxdGu3B37iLRigSEVpl65ChV8BvMDxSv8VrNYHCpGvV64scZmoB7D2cLs9oUC9NfWMtHvE6s67y_8BAeYJd7L6ANFRVSAvFpi4mXmB__U0vk5CjRDgTiNor0qKPkqm7taD8A-WAeHbbaFR5k05GkamPCxJAJy752vx-ZfEnLJCo0apHT_uIFo8v9zJ1-HzcHt-aBXO8OQqpcRLxZSLaUECxJIkpdysBFlIZlOC6nsYrJKYPJuI_Tie_9JW4D9jD0SnxnFKPMduVH-GPZWSZeZrFvxOOytmwq-SuphABoJju9DivC1ecPenlZ07gZhOuO1s9BvDtVLfPrDgYvIw0YrU6F8MN8-KvPDtaq0PnxTNi30kVmLTtZ62Ahm--WwsPYRIuLaJpK2iZo-tlwC3txHFdn3dH3eBJQtGJSOM4V9FLiS0iwJ2PbY2hU-0tKyZDtTdMJ0elEgtP8eRinld0mi2_5g2fQt-AwIDV4JiqR-fDZ1tnqF4pZo5isBzXynFmpBTYHW9XzRJkT09rjEGAjnGIlrTyIbngEHfygTh8k3-_3mTasUrxgHDFUzc69Jve5NtDZtw9ztAsE2SAgFJo8hequygd1oTvNS5KOrCamPhQNtL-eKCOoGzqoZ28ad6bGISVQYqfTIhecqpNhsX5MMQo8smhaHVWnwn2rS-aa4NMzbkiAkVrjm_WTtwQ-rM2I52ewQsDPrQxPuTBTzTRYDjob6aIkv_uCHGUqTsVXgV6eAdiKsl-1KQ_-JlNWmeU4CYL-lfSUenwPn7Y1P4lKe7DZf8aV5MRhUDAbfHYmA1_ru4by_5Ld0lHyOQ_BfIgekk0tidIzYYAGj01XqKr7M8K4xKSmRdHJoR_9JihgFgwqy35xZnNIoLggiwc-9nn3BGJdeHKMi2C5ripCAopOeH-BsS4_9zcl9n6WKtl8VA9E7XfGwthYgWnhfhN7MN4CGZ1aGWqAibgWXmf9dxA8sTgrb5Llq6OpEXuWsK7L6wpqsm7lQ3SIRiMTcdQ3I5gV4CnZ-Gpp_On0B3q_N70s_b3idWxNR2jzLZewrZBL8w93_jtI6LI4v9TMCzJHez98kaMTKkeD1-hX1YCVfz8ANoZalz7iv1PMRBqIT1LTkHrw_6Zmne1ydOteW-mAexd7Zu9ZOwHKA1d5ZcQJCU1kBq3pmaetcWgd-uWMjU7kCcHKixPbME0KlP3W-JgTHZiGzkqK2DvmWQYYDKR_AenSyFIYDfqT6P_wULPUnpYJGWDRl9yZqHUcOwnV3ueKJb; .AspNetCore.CookiesC2=zxZLPInOl_p7nG7f_uTL7W6F4Cs5hjSE65j9tIji9MtQDs0TIGYTdCKSuTrQ3t7XFHwCEC8I88_mHRzf6cPtEM-Ph4ZhJu8GlIYY6Kmbyra5Ep8Ro438iOUZRmdghWBFpSEIF_1wZRNysjuKf0DUH88wDVmteQBap9HVNpo-JxcGiWRDcwEJISSqeJqJnkiRCfKfelF1G_xxsD5iSSOiDP8_bUBr9NVrfs2EjjLoYDHTDvhnAvuolmBopu5BJPZdFClK17_lGZmalL0Xhors4LrzevGfG7Ifl4xQ9xdif1YqqmytBgQkM0I0BlmwLVddUFCsf-1bK3rc--LNrP2VlodvQmo6VDPZ2_SxLYQc67m4BsCTC84YVH4brWbcRB67HjR1Gis2CnHm4Lsv9WGMkgRh5y9mgxUnfqzP1yzDALimBgMSLJGIhNEiUI8TzQ7fDNcmxu83OkEWCZoMWEVuPK9nMU9QAMShqqi0522t6TJkjSvRF_xiCftyEMOnBvLhL7FMHnxjc2qiJtruVfdDGRCGzGwCA2SZdDQyw-ekxpNZzoYmUMCyyCDyBDTH5J6_PzOfilkk; .AspNetCore.Session=CfDJ8M6iC%2FO6WlFHgmGGs%2FDM9wYcfWHEASRWL8sp9%2FNo8V8aICx0hCbGI02BuJ6h4Eyd%2FmtkjcSVZLMTG%2FdcrHUhXbqio%2BbrK5GhxRiU1V3VoodH5WkD1DHmvhotd%2BQr6EdbyaDrMR7HDI8tb9A69USoJOWFSKYRFh2Rm6d6iDH6haJU; .AspNetCore.Antiforgery.pCXWeLmJTSY=CfDJ8M6iC_O6WlFHgmGGs_DM9wbfCyW96j2WoktsvCeUee9LTTg61GpclKXzbX2o-WGpyB4Cxa0pBKUs69-o1FmDJ3gmd0NkZnvA8rulglZ-M1OsTQLsGaP6ojn42huNnKLGr9c6SWhAzd7mTFL_SC3upg0
Host: localhost:44323
Referer: https://localhost:44323/EPiServer/Commerce/catalog?menu=pages
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
requestverificationtoken: CfDJ8M6iC_O6WlFHgmGGs_DM9wYS2VuIMSuSko6hfIW5IEKLFwucEFwoVKUveeB2SEA8o6z_GJ_eu_r4vbfQsInTd4lU4voJqHvVRn-yr2tmCQagkk31UgVWTokVZx5r67HMhw5vDNsiccjd688Gie1tb5lyHMRJuxAzJgQNEfN79Kj_wqfrKnBQ9zCeflWMKGIVjQ
sec-ch-ua-platform: "Windows"
sec-ch-ua: "Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"
x-http-method-override: Validate
sec-ch-ua-mobile: ?0
x-requested-with: XMLHttpRequest
x-epicontentlanguage: en
x-epicurrentcontentcontext: 109147_140730620_CatalogContent
origin: https://localhost:44323
sec-fetch-site: same-origin
sec-fetch-mode: cors
sec-fetch-dest: empty
priority: u=1, i
I tried adding property to CMS pagetype as well but there as well properties are not showing up in CMS edit mode. Tried with String,Int and bool property, in case of string property getting null reference exception but for other 2(int & bool) not even getting any error. However when tried creating property from Admin section through UI property is getting created. That means properties creating through code is not working.
If you add another property without any attribute, just
public virtual int SomeProperty {get;set;}
would it appear in the UI view?
Found the solution. Got help from Huy Le of Optimizely. Issue was with ModelType of table "tblContentType". Set null to ModelType and run application once will fix the issue.
We have recently successfully migrated our application to Commerce 14. I am not sure if issue is because of migration. I am trying to add a new Property to Product but it is not reflecting on Commerce Catalog UI for product. Below is the class GenericProduct/BaseProduct where I am trying to add new property
GenericProduct inheriting BaseProduct
BaseProduct Inheriting ProductContent
New Property:
[Searchable]
[CultureSpecific]
[Tokenize]
[IncludeInDefaultSearch]
[BackingType(typeof(PropertyString))]
[Display(Name = "Style Group", Order = 25)]
public virtual string StyleGroupName { get; set; }
Seems like new property is getting created in db as I tried to change backingtype and i got some error. As I am pretty new to Commerce I thought creating new property is same as we create in CMS. I guess db and UI is not getting sync. Do we need to add any setting or code for any synchronization in Commerce?