how can i determine what pages is available to handle in magento layout files? after default handle (which shows up on almost every page) there're few handles for example :

<checkout_cart_index translate="label">

which goes to the checkout cart page.

while the file in app/design/frontend/mypackage/mytheme/template/ contains .phtml for function in each block, how can i know where is the list of php page for the website?

from what i studied at magento Designer guide PDF i only knows that handle itself shows what pages it should show the module inside, which is there's default, or other specific pages we want to show, but i can't understand how can i get the list of pages and what is the tag ex : **

For instance, <catalog_product_view> contains the layout updates for the Product View page, while <catalog_product_compare_index> contains those for the Compare Product page.

this is taken from the pdf itself which is the tag is not the same as the page name also. i'm getting a bit confused here, i have read all of the pdf about the block, the attributes of the block, customizing template module etc and this is the only thing i haven't understand.

  • do you want to know the list of handlers available in magento ? Commented May 2, 2016 at 7:04
  • @Ashish Madankar yes i guess that's what i want to know, since it isn't listed in the pdf designer guide. isn't handler the same as page it will be shown at anyway? am i mistaken? Commented May 2, 2016 at 7:07
  • Their is no known reference which provide list of handlers but at snipplr.com/view/61215/… you will get a list of handlers for a request. as well as if you want to know the name of handler for a particular page then you can find it easily form class name in body tag of the page. in magento handler of a page is available in the body tag for ex: for home page it will show as cms-index-index so the handler name will be cms_index_index just replace - with _ hope this will help you. Commented May 2, 2016 at 7:16

1 Answer 1


usually the layout handle matches the url.
If the url is module/controller/action the layout handle would be module_controller_action.
If the url is module/controller (the action is missing) then the action defaults to index. So the handle would be module_controller_index.
If both controller and action are missing then the layout handle would be module_index_index.

if any of the parts in the url contains an underscore this one will be kept in the handle.
So for module/some_controller/action you get module_some_controller_action.

These are the general handles.
But there are a few special handles that are loaded for special occasions.
I don't have a full list, but here are some examples:

  • customer_logged_in - loaded for all pages when the customer is logged in
  • customer_logged_out - loaded for all the pages when the customer is not logged in.
  • catalog_category_layered - loaded for categories with is_anchor set to yes.
  • catalog_category_default - loaded for categories with is_anchor set to no.
  • cms_index_index - for homepage.
  • cms_page loaded for all cms pages.
  • PRODUCT_TYPE_simple - for all simple products (there is one similar for configurable, virtual, ...).
  • CATEGORY_5 - loaded for category with id 5.

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.