Commerce Personalized Find: in which controller should I refresh properties?


I am looking at personalization documentation:

It says that I have to refresh properties. For this reason, I have to add an attribute to the controller or call API explicitly. But it doesn't say which controller - search controller or product controller or any other controller?

Also, the documentation says that it requires caching of those refreshed properties. Is it implemented by Episerver or should I implement this caching?

P.S. Someone moved this thread under Find while it is more Commerce related as personalization is Commerce only.

Edited, Jan 29, 2018 10:19
* 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.