Troubleshooting

Refresh cache / indices

Always do this first. Clear the Magento cache. Refresh the Magento indices. Do yourself a favor and leave cache off while developing.

Product attribute isn’t rendering

To render product attributes on the frontend they have to be configured correctly. Normally you want this:

Use in layered navigation Filterable (with results)
Use In Search Results Layered Navigation Yes
Visible on Product View Page on Front-end Yes
Used in Product Listing Yes
Used in Product Specifications Yes

Flat tables

Flat tables are extra stubborn. If changes to product attributes appear stuck, then refresh flat tables from the command line:

cd {magento_root}/shell
php indexer.php --reindex catalog_product_flat
php indexer.php --reindex catalog_category_flat

Reference

White screen of death

Uncomment this line (temporarily) in /index.php to show PHP errors:

ini_set('display_errors', 1);

Still not seeing PHP errors? Increase the PHP memory limit in /.htaccess:

php_value memory_limit 64M
#php_value memory_limit 128M
#php_value memory_limit 256M

Cookie fix

When you can’t login to the Magento admin after setting up an environment, it’s probably cookies:

In MageAdmin > System > Config > Web > Cookies set the “Cookie Domain” and “Cookie Path” to blank. In your browser, delete all cookies for the environment’s domain. That should work.

Alternatively, disable cookies entirely with a nuclear core hack (only do this locally — be smart):

// See: /app/code/core/Mage/Core/Model/Session/Abstract/Varien.php

// GravDept: [cookie-fix]
// Disable getting params.

// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath()
    //'domain'   => $cookie->getConfigDomain(),
    //'secure'   => $cookie->isSecure(),
    //'httponly' => $cookie->getHttponly()
);

// GravDept: [cookie-fix]
// Disable unsetting cookie.

/*
if (!$cookieParams['httponly']) {
    unset($cookieParams['httponly']);
    if (!$cookieParams['secure']) {
        unset($cookieParams['secure']);
        if (!$cookieParams['domain']) {
            unset($cookieParams['domain']);
        }
    }
}
*/