28 Jul

Quickly Purge a Magento MySQL Database

I'm sure everyone has got to that point where they need to empty a Magento MySQL database and you've logged into PHPMyAdmin, selected all the tables, then clicked delete. Only to find out only a small proportion can be deleted because of foreign key constraints. But if you persist, running the "select all" and "drop" … Continue reading

19 Jul

Magento Enterprise Theme Fallback

If you are adopting a minimal-is-best approach to templating your Magento Enterprise store (ie. local.xml method), you'll soon run into some odd behaviour with the theme fallback. Typically, a Magento store will try to load a file in the following order ./app/design/frontend/custom_package/custom_theme ./app/design/frontend/custom_package/default ./app/design/frontend/base/default However, if you are using Magento Enterprise and which to use … Continue reading

12 Jul

Why Siege isn't an accurate test tool for Magento performance

We're getting pretty concerned at Sonassi HQ with the growing confusion surrounding transactions per second (TPS), requests per second (RPS) and concurrency by the community as a whole. Shamefully, I fear that we are guilty for bucking this trend. We created a monster, now its time to put it down 3 years ago, when we … Continue reading

6 Jul

Important Magento Security Update – Zend Platform Vulnerability

We have recently learned of a serious vulnerability in the Zend platform on which Magento is built. This note provides information on how customers can access and install a patch that addresses this issue. The Issue The vulnerability potentially allows an attacker to read any file on the web server where the Zend XMLRPC functionality … Continue reading

25 Apr

Nested XML Menus using addLink() in Magento

Natively Magento doesn't have a direct method to nest menu items using the page/template_links->addLink() function, but we had some menus that will never change and are best set in the layout XML rather than in the database/CMS. There is a feature to addLinkBlock() - but this relies on the block outputting the wrapping <li> - … Continue reading

20 Apr

Giving support access to Magento (for EE support) ... with a regex

As part of an EE upgrade, we've just hit a reproducable core bug with 1.11; as we have to focus on the other fixes, we're letting Magento's EE SLA'ed support take care of the core bugs. But, in order to do that, they need access to the machine. The Magento support IPs 207.86.19.64/28 216.127.124.224/27 67.88.151.96/28 … Continue reading

20 Apr

Maintenance page with Nginx with specific permitted access

At the moment, we're in a fairly complicated upgrade of a Magento live store and during the upgrade window, it is necessary to put up a holding page. A simple maintenance.flag file isn't going to cut it for this process, so cutting off users at the web server is more suitable. For this particular customer, … Continue reading

16 Apr

Magento Checklist for Design Elements

We are starting a new Magento Enterprise project today and whilst populating some of the base items in the Basecamp project, I thought it might be of use to the community to list the basic minimum items we add to our templating/skinning check-list for a Magento website. Ignoring any project specific pages/customisations, the following list … Continue reading

12 Apr

Magento Product Price Is Zero with Catalogue Price Rule

We have come across a somewhat critical core code error in Magento versions less than 1.5 when using the "Fixed Amount discount". Any SKU that the respective rule applies to results in the final sale price of the product being £0. This seems to only occur in certain scenarios, but is easily replicated on a … Continue reading