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: , , , ,
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:

"Admin Theme" Screenshot

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 tag inside the config.xml file of any of your active modules. Alternatively, you can add this XML to your /app/etc/local.xml file. I prefer this option, due to its simplicity and the fact that the store administrator will have no need to update the adminhtml theme from the admin panel.

<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:

Magento Admin - Hints Turned On

Magento Admin - 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.

Magento Config Scope Selection

Magento Config Scope Selection

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 »

Call us at 417-597-3397, email us at sales@classyllama.com, or use this form to contact us:

  1. (required)
  2. (required)
 

cforms contact form by delicious:days