I'm not 100% sure, but it seems like a bug in magento's built-in implementation of hole-punching for up-sell/related products.

I looked through the code and found that container for upsell/related products depends on customer session, but not on the currently viewed product.

Class responsible for upsell/related products caching called Enterprise_PageCache_Model_Container_CatalogProductList and it extends Enterprise_PageCache_Model_Container_Advanced_Quote. This class (CatalogProductList) doesn't overwrite neither _getCacheId nor _getAdditionalCacheId methods. Thus this cache only depends on customer's session and because of that whenever any visitor visits the product page, which is not in the cache yet, magento rebuilds upsells block for that particular product and after that it is used on every product page for this customer.

As a temporary solution, I added below method into CatalogProductList class, and it fixed the issue. I know this is poor solution and I'm going to change that, but I wanted to ask if anybody had such issue and what is the solution for it.

Method which was added is

public function applyWithoutApp(&$content)
    return false;

1 Answer 1


Magento has a patch fix for this. Ask support.

  • It's SUPEE-4092 that should help resolve this issue. Oct 1, 2015 at 17:28
  • They will have to open a ticket with Magento to get an EE patch Oct 1, 2015 at 17:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.