I have been having segment resolution problems for a custom data store that sets a new property, "region", on the data store "profile". Precisely, it adds a new "region" property to the existing data store "profile".
The segment resolution problems occurred when using the Generic Store Property component for the segment trait definition.
I dragged it onto the stage and populate it, choosing the following:
- Store: profile
- Property Name: region (that's set in our custom store implemention, which is deployed to /etc/clientcontext/default/content. having genericstoreproperties with "region" in its properties attribute (which all works. That's why Generic Store Property can indeed find "region" to select from as possible property value).
- Operator: equals
- Property Value: MW
However, when I change the segment trait definition to a script instead:
ClientContext.get('profile/region') === 'MW'
Then, I will not have segment resolution problems anymore.
I looked at the definition of the OOTB component "Generic Store Property". It's defined in /libs/cq/personalization/components/traits/generic
ClientContext is an object of CQ_Analytics, and it's defined in /libs/cq/personalization/components/clientcontext/clientlib/clientcontext.js
At no point that I was able to make out, the OOTB component "Generic Store Property" accesses ClientContext.
My question is:
- How is "Generic Store Property" component with the values set as above different from a script snippet ClientContext.get('profile/region') === 'MW'?
At what point does it access the ClientContext object?
Finally, does it change the order of js which is loaded, when I use the Generic Store Property, instead of the script snippet ClientContext.get('profile/region') === 'MW'?
If that is true, is this a possible bug in Adobe CQ5.5?
Thanks for any hint on this.
How are you initializing the profile store with the region property? I tried following to reproduce your problem:
You can see the result below, both traits fire.