Do not use the same name for Website Name and Store Name
A customer who bought our New Green theme wanted us to help find out why the topLinks menus are not showing up in his site. Over two years selling premium Magento themes, we have received many types of support request that the issues were not related to our themes but due to incorrect setting in the admin or sometimes third party extension’s template file taken over the file from our theme due to improper theme setup, but never anything like this happened before, for that the topLinks should work right out-of-the-box even if a Magento site has no category and product setup.
A visit to his Magento site’s admin and the modified xml files, we couldn’t find anything wrong, and then we realized it wasn’t just the topLinks menu that are gone, but the checkout, my account links as well as footer links are not displaying too–yet everything seems to be properly configured.
After hour of investigation, we noticed he used the same name for “Website Name” and “Store Name”. The default Website Name is “Main Website”–which is a default name from Magento, and something we never attempt to change for the sites we built because it affects nothing on the front-end, and we never think about the potential problem it may cause if we do and if we name it the same name as the “Store Name”.
Turned out this is the culprit and an absolute no no for anyone to mess with, that each “Website Name”, “Store Name” and “Store View” must be unique. Using the same name for “Website Name” and “Store Name” must have caused Magento system not able to show the non-categories, non-products menu links.
We changed the “Website Name” back to “Main Website” but it’s still not able to bring back the menus, likely a clean up in database table is needed.
Luckily, setting up a new Store and Store View with a new custom theme brings back all the menus.
If this happens to you Magento store too and you are not comfortable to pay a visit to your database, try setup a new Store and Store View with a new custom theme first, then delete the one that caused the problem, this should get rid of whatever residue in the database.