Hey again

Similarly to Views caching (issue here), if you enable Panels caching, either globally for the panel in question, or locally for the content (ie, the sell price), the multiprice never gets to change the value because Panels does not know how or when.

To implement this Sell price feature in Panels there are currently two ways:
1) the best approach is with dev module, uc_panels, placing directly the sell price (or other content) in the panel, without further queries or overhead from Views
2) using Views, with the field "Product: Sell price", and setting a context relationship for nid in it. But it is slower and heavier for the PHP and Database server.

Both are affected by the lack of Panels caching support.
So even if you place a View with Sell price, and no caching for it on the View, the result is the same.
Also, caching globally but not caching locally for the Sell price, will result in the same, because there is no override occurring.

There are plenty of ways to fix it, but only one really makes sense. the first.
1) fix the code, so that multiprice does work with Panels caching. Some method would need to be used, like an argument, or a context relationship. It will need to cooperate closely with the region/currency selection box. Having this fixed, could give more flexibility to both Panels and Views, like allowing Panels and/or Views to select the currency based on language path/domain.
2) don't use global caching for the Panel, but only locally, excluding Sell price

Why caching is so damn important?
Panels caching enabled:

Page execution time was 358.8 ms. Executed 154 queries in 24.18 milliseconds.
Memory usage:
Memory used at: devel_init()=0.98 MB, devel_shutdown()=26.33 MB.

Panels caching disabled:

Page execution time was 413.87 ms. Executed 188 queries in 30.36 milliseconds.
Memory usage:
Memory used at: devel_init()=0.98 MB, devel_shutdown()=27.04 MB.

results taken in a VPS, with Views caching disabled and drupal standard cache disabled at the time.
in a shared hosting, it would be impossible to use no caching at all, if you have any typical traffic of a small site (not 1 user at a time).


lpalgarvio’s picture

results with partial caching, by using only local cache for all content but Sell price in this same example:

Page execution time was 362.77 ms. Executed 167 queries in 26.88 milliseconds.
Memory usage:
Memory used at: devel_init()=0.98 MB, devel_shutdown()=26.81 MB.

if you have a lot of content items, like i do, its a very annoying and prone to error task to setup each one of them.