How can I disable or bypass FPC for a single page? I don't want to use hole-punching as there are several blocks on the page that I need to be dynamic and I would rather modify one config/class to specify that the entire page should not be cached (similar to the behavior of checkout).
My understanding of FPC was that it was not used for "session users" (logged in, added to cart, etc...). However, I'm seeing FPC affect pages when a user is logged in. If I disable FPC, then the page works as desired.
Just got done wrestling with Magento EE FPC not displaying core messages on cached CMS pages. Core messages worked fine on cache category and product pages but not CMS pages. I found by passing a certain parameter to a page you can force that pages to be generated instead of server out of the cache.
found in: app/code/core/Enterprise/PageCache/Model/Processor/Default.php
So it is possible to make a link that has a HTTP GET query string that would bypass the FPC.
This helped solve a problem I was having were a plugin was redirecting to a referring url with a session message but if the referrer was a CMS page the message would not be displayed until a non-CMS page was viewed.
Here is the solution for disabling FPC for a specific controller (could be extended to specific action as well).
First create an Observer to listen on the
controller_action_predispatch
event:Then add the following to your
config.xml
file for the module. This goes in the<frontend>
section:Now Magento will serve up your page every time and bypass FPC for the request.
Magento's FPC is one complicated beast.
I've overcome this using the following tutorial:
http://oggettoweb.com/blog/customizations-compatible-magento-full-page-cache/
This might be what you're referring to as "Hole Punching", but it's the only way I've found to overcome it.