Archive for July, 2009
Magento Comparison with Proprietary E-Commerce Solutions
Friday, July 31st, 2009
I recently came across an answer on a LinkedIn question, and I wanted to share it with you all. Roy Rubin, CEO of Varien, the company that designed and built Magento, the open-source e-commerce platform that has totally reinvented the e-commerce landscape.
The question was asked, “What are the pros and cons of Magento compared to middle and high end e-commerce proprietary solutions?”
Roy responds with a numbered list of reasons in support of Magento, and I really appreciated them. In his fifth bullet point, he specifically heads off the false idea that Magento doesn’t work for mega-sized e-commerce deployments.
Here’s how Roy Rubin responds:
”
Thanks for raising the topic. Despite my bias (clearly), a few clarifications to address here:
1) CMS – Our next enterprise release will feature a significant enhancement to our content feature set. CMS+ will allow for the creation of multiple pages, restricting publishing privileges for authorized users only and support versioning. We will also introduce Widgets (configurable page blocks) for insertion to CMS pages.
2) Customization – Our experience in working with retailers using Magento over the past 18 months has shown that less customization work is needed in most scenarios. The more unique the business model off course, the more custom code that needs to be developed. The architecture supports such enhancements without jeopardizing upgrades. This is given due the products’ rich feature set.
3) Templating – It does indeed take longer to template Magento initially (comparing to other open source solutions not proprietary). Magento’s architecture is such that it allows for template hierarchies, reuse and all this without effecting upgrades. It is to the retailers benefit/advantage.
4) Integration – I would argue that integration is rather easy. Certainly easier than 3rd party proprietary systems that are closed by design. Our web services based API certainly helps as well.
5) Target Market – Magento today is consumed by all size retailers, including Fortune 500’s, leading market brands, and billion dollar online companies. It’s important to note that on the upper end, we have retailers doing tens of thousands of orders a day.
Hope this helps and I look forward to reading additional feedback.
”
I’ve heard a lot of people complain about how complicated Magento is, but it’s usually people that are wanting a do-it-yourself solution like many of the other lesser e-commerce solutions. Of course, once you get Magento set up, it’s one of the most user-friendly, manageable systems available for any size sales site.
The simple truth is that Magento boasts a built-in robust feature set that reflects thousands of hours of development from some of the best guys in the business, and already in the first 18 months on the market, members of the development community have contributed hundreds of extensions, evidence that they too have recognized Magento for what it is: The herald of the next generation of e-commerce (aka, the coolest thing since broadband). Oh, and did we mention that it’s free?
Classy Llama Studios is a consulting and development firm exclusively focused on expert Magento development and customization. Contact us to discuss your project: 417.597.4769
Tags: comparison, Magento, proprietary, roy rubin, varien
Posted in Magento | No Comments »
Custom Admin Theme
Saturday, July 11th, 2009
Our Objective
If you need to make adjustments to the adminhtml theme files (template, layout, or skin), you have two options for accomplishing this.
Here’s an example of what we would want to accomplish:
Files in
/app/design/adminhtml/default/custom_admin_theme/
need to override files in:
/app/design/adminhtml/default/default/
Likewise, files in
/skin/adminhtml/default/custom_admin_theme/
need to override files in:
/skin/adminhtml/default/default/
The following two options accomplish this functionality:
Option 1 – “Admin Theme” module
Ivan Weiler from Inchoo has created a module that allows you to specify your own custom theme using the same config page you use to specify custom frontend themes. You can download this module here (note: this module is currently in Alpha, so you’ll need to modify the setting of your downloader before being able to download it). Here is a screenshot of this module in action:
Option 2 – Add XML to your module’s config file
If you don’t want to install a module just to enable this functionality, you can add the following XML code inside the
<config> ... <stores> <admin> <!-- custom admin theme --> <design> <theme> <default>custom_admin_theme</default> </theme> </design> </admin> </stores> ... </config> |
The code above overrides the XML from the /app/code/core/Mage/Adminhtml/etc/config.xml lines 410-422
410 411 412 413 414 415 416 417 418 419 420 421 422 | <stores> <admin> <!-- default admin design package and theme --> <design> <package> <name>default</name> </package> <theme> <default>default</default> </theme> </design> </admin> </stores> |
Posted in Magento Development | 6 Comments »
Enable Template/Block Hints in Admin Panel
Friday, July 10th, 2009
Anyone that has developed a theme in Magento knows how helpful template/block hints are. They help quickly identify which files are being loaded for a specific page.
Magento’s admin panel uses the exact same design pattern as the frontend (layouts + blocks + templates). If you’ve ever done any modifications to the Magento admin panel, you’ve probably tried to turn on template/block hints for the admin panel. The only problem is, Magento doesn’t have built-in support for this. I did some digging around and found out how to enable this feature in the admin panel.
Step 1 – Connect to database
Using your favorite database administration tool, connect to your Magento database. These are tools I’ve used and recommend: Navicat ($129), MySQL Query Browser (Free), Sequel Pro (Mac Only – Free), or phpMyAdmin (free).
Step 2 – Enter values into ‘core_config_data’ table
Run the following query on the Magento database:
INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/debug/template_hints', 1), ('default', 0, 'dev/debug/template_hints_blocks', 1); |
Step 3 – Test in admin panel
Once you make this addition to the core_config_data database, template/block hints should show up in the admin panel. Here is a screenshot of the CMS Page with hints turned on:
Disabling Hints
When you’ve finished development want to turn off template hints in the admin panel, open the core_config_data table and change the ‘value’ column of the two row you inserted to “0″.
Why does this work?
For those of you who are like me and want to know the “why” as well as the “how”, I’m going to go over why this works. Here is the Magento code that checks to see if template/blocks hints are enabled:
File: /app/code/core/Mage/Core/Block/Template.php (Magento 1.3.2)
109 110 111 112 113 114 115 116 117 118 | public function getShowTemplateHints() { if (is_null(self::$_showTemplateHints)) { self::$_showTemplateHints = Mage::getStoreConfig('dev/debug/template_hints') && Mage::helper('core')->isDevAllowed(); self::$_showTemplateHintsBlocks = Mage::getStoreConfig('dev/debug/template_hints_blocks') && Mage::helper('core')->isDevAllowed(); } return self::$_showTemplateHints; } |
The “Mage::getStoreConfig” method checks for config values that are set in the current scope (ie, default, website, store, store view). In the admin panel, only values set in the “Default Scope” are loaded.
Magento only allows you to turn on hints when you’re in the configuration scope of a Website or Store View. This means that when the code above tries to load the configuration, it returns “null” because that config value isn’t set in the “Default Config” scope. Running the MySQL query above adds the hint config values to the “Default Config” scope. Here is a screenshot showing the settings for turning on the hints – notice that the “Main Website” configuration scope is selected.
Conclusion
I hope this helps you in your development of Magento modules that integrate with the admin panel. I considering writing a module to enable the hints to be turned on in the “Default Scope”, but decided against it, due to the simplicity of the method outlined in this post.
Posted in Magento Development | 14 Comments »

