<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Classy Llama Studios - Specializing in Magento eCommerce, Magento Development, and Magento Design</title>
	<atom:link href="http://classyllama.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://classyllama.com</link>
	<description>Classy Llama Studios is a team of developers, designers and marketers specializing in Magento, Wordpress and Custom Web Application development.</description>
	<lastBuildDate>Tue, 02 Mar 2010 23:41:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Editing Magento&#8217;s Footer Links</title>
		<link>http://classyllama.com/development/magento-development/editing-magentos-footer-links/</link>
		<comments>http://classyllama.com/development/magento-development/editing-magentos-footer-links/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 20:07:17 +0000</pubDate>
		<dc:creator>kkirchner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=426</guid>
		<description><![CDATA[To follow up on our post about editing Magento&#8217;s top links, I thought I might as well write an article about editing the footer links while I&#8217;m at it.  I&#8217;d recommend reading our post about using a local.xml file before getting started on this post.  This post might not make much sense until you read [...]]]></description>
			<content:encoded><![CDATA[<p>To follow up on <a title="Editing Magento's Top Links" href="http://classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way/">our post about editing Magento&#8217;s top links</a>, I thought I might as well write an article about editing the footer links while I&#8217;m at it.  I&#8217;d recommend reading <a title="The Better Way to Modify Magento" href="http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/" target="_blank">our post about using a local.xml file</a> before getting started on this post.  This post might not make much sense until you read it.<em> [NOTE: This specific example assumes you are using the blank theme. Layout handles may differ from theme to theme.]</em></p>
<p><strong>In local.xml:</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p426code2'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p4262"><td class="code" id="p426code2"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;layout</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;0.1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;footer_links&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #808080; font-style: italic;">&lt;!-- Add custom links. Pretty self-explanatory.</span>
<span style="color: #808080; font-style: italic;">            Dig into app/code/core/Mage/Page/Block/Template/Links.php for more info --&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addLink&quot;</span> <span style="color: #000066;">translate</span>=<span style="color: #ff0000;">&quot;label title&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>About Us<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>about<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>About Us<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;prepare</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;urlParams</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;position<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/position<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
            <span style="color: #808080; font-style: italic;">&lt;!-- Remove 'Site Map' Link - Default Position: 10</span>
<span style="color: #808080; font-style: italic;">            Original link adding in catalog.xml --&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;catalog/map/getCategoryUrl&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
            <span style="color: #808080; font-style: italic;">&lt;!-- Remove 'Search Terms' Link - Default Position: 20</span>
<span style="color: #808080; font-style: italic;">            Original link adding in catalogsearch.xml--&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;catalogsearch/getSearchTermUrl&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
            <span style="color: #808080; font-style: italic;">&lt;!-- Remove 'Advanced Search' - Default Position: 30</span>
<span style="color: #808080; font-style: italic;">            Original link adding in catalogsearch.xml--&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;catalogsearch/getAdvancedSearchUrl&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
            <span style="color: #808080; font-style: italic;">&lt;!-- Remove 'Contact Us' link - Original link in contacts.xml</span>
<span style="color: #808080; font-style: italic;">            This is one of a couple methods to remove any link. You just pass the full url.</span>
<span style="color: #808080; font-style: italic;">            This method only gets ugly when you have to remove a dev and/or stage site url too.</span>
<span style="color: #808080; font-style: italic;">            Other ways to remove the 'Contact Us' link is to disable this functionality in the</span>
<span style="color: #808080; font-style: italic;">            Admin (meh), remove the whole footer block and re-adding what you need (overkill</span>
<span style="color: #808080; font-style: italic;">            maybe), or editing layout/cms.xml (which we're trying to avoid by using this local.xml) --&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://YOUR_SITE.com/contacts/<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
        <span style="color: #808080; font-style: italic;">&lt;!-- By default, Magento sets a static footer block. Find it in the admin under</span>
<span style="color: #808080; font-style: italic;">        CMS &gt; Static Blocks. There are 2 reasons for NOT using this static block:</span>
<span style="color: #808080; font-style: italic;">        1) If your footer links do not need to be changed regularly or change by the client</span>
<span style="color: #808080; font-style: italic;">        2) If you want all your footer links to display inline and take advantage of</span>
<span style="color: #808080; font-style: italic;">            template/page/template/links.phtml 's 'first' and 'last' classes --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;footer&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #808080; font-style: italic;">&lt;!-- Remove Magento's default static block and use the 'addLink' method above</span>
<span style="color: #808080; font-style: italic;">                to add your custom and inline links.  I use the 'unsetChild' method as often as</span>
<span style="color: #808080; font-style: italic;">                possible as opposed using the more final &lt;remove name=&quot;cme_footer_links&quot;/&gt;</span>
<span style="color: #808080; font-style: italic;">                just in case I want to add the block somewhere else --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>cms_footer_links<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>If all else fails, you can edit template/page/template/links.phtml. However, if you can make all your changes in local.xml, your life will be so much easier when it comes to upgrading Magento and making future edits.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/editing-magentos-footer-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Editing Magento&#8217;s Top Links (The Better Way)</title>
		<link>http://classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way/</link>
		<comments>http://classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 20:23:04 +0000</pubDate>
		<dc:creator>kkirchner</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=328</guid>
		<description><![CDATA[You might need to read the post about using a local.xml file before this post makes much sense.
We offer all our clients a completely customized design from scratch, which means changing anything &#8211; including those annoying defaulted top links.  This post will show you how to edit your top links (without editing core layout files [...]]]></description>
			<content:encoded><![CDATA[<p>You might need to read the <a href="http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/" target="_blank">post about using a local.xml file</a> before this post makes much sense.</p>
<p>We offer all our clients a completely customized design from scratch, which means changing anything &#8211; including those annoying defaulted top links.  This post will show you how to edit your top links (without editing core layout files which may change when you update Magento) by utilizing a <a href="http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/" target="_blank">local.xml file</a>. You can even add your own custom links without touching any template files! <em>[NOTE: This specific example assumes you are using the <a href="http://www.magentocommerce.com/extension/reviews/module/518" target="_blank">blank theme</a>. Layout handles may differ from theme to theme.]</em></p>
<p><b>In local.xml:</b></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p328code4'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3284"><td class="code" id="p328code4"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;layout</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;0.1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;root&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;top.links&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #808080; font-style: italic;">&lt;!-- Add custom links. Pretty self-explanatory.</span>
<span style="color: #808080; font-style: italic;">                Dig into app/code/core/Mage/Page/Block/Template/Links.php for more info --&gt;</span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addLink&quot;</span> <span style="color: #000066;">translate</span>=<span style="color: #ff0000;">&quot;label title&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>About Us<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/label<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>about<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>About Us<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;prepare</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;urlParams</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;position<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/position<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
                <span style="color: #808080; font-style: italic;">&lt;!-- Removes 'My Account' link - Default position: 10 --&gt;</span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;customer/getAccountUrl&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
                <span style="color: #808080; font-style: italic;">&lt;!-- Removes 'Wishlist' link - Default position: 20 --&gt;</span>
                <span style="color: #808080; font-style: italic;">&lt;!-- for Magento 1.3.x --&gt;</span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;wishlist/&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
                <span style="color: #808080; font-style: italic;">&lt;!-- for Magento 1.4.x --&gt;</span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;wishlist_link&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
                <span style="color: #808080; font-style: italic;">&lt;!-- Removes 'My Cart' AND 'Checkout' links</span>
<span style="color: #808080; font-style: italic;">                Default position: 40 and 50 respectively --&gt;</span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;checkout_cart_link&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
                <span style="color: #808080; font-style: italic;">&lt;!-- To re-add 'My Cart' or 'Checkout' after removing both --&gt;</span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;block</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;checkout/links&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;checkout_cart_link_custom&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addCartLink&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addCheckoutLink&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/block<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;customer_logged_out<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #808080; font-style: italic;">&lt;!-- Removes 'Log In' link - Default position: 60 --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;top.links&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;customer/getLoginUrl&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/customer_logged_out<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;customer_logged_in<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #808080; font-style: italic;">&lt;!-- Removes 'Log Out' link - Default position: 60 --&gt;</span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;top.links&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeLinkByUrl&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;url</span> <span style="color: #000066;">helper</span>=<span style="color: #ff0000;">&quot;customer/getLogoutUrl&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/customer_logged_in<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>If you <em>absolutely</em> cannot find a way to customize your top links using these methods, you can edit the /template/page/template/links.phtml</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Optimizing Your E-Commerce Conversion Rate:  Analyzing and Improving Traffic Quality</title>
		<link>http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-analyzing-and-improving-traffic-quality/</link>
		<comments>http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-analyzing-and-improving-traffic-quality/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:39:17 +0000</pubDate>
		<dc:creator>ktheobald</dc:creator>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[E-Commerce Optimization]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[conv]]></category>
		<category><![CDATA[traffic]]></category>
		<category><![CDATA[traffic quality]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=365</guid>
		<description><![CDATA[Variable #1:  Traffic Quality
 
If you sell pencil sharpeners, and most of your traffic is redirected from a Youtube video that shows a guy balancing a pencil sharpener on his nose, it&#8217;s not very likely that the visitors to your site are interested in purchasing pencil sharpeners.  Your bounce rate will likely be sky-high.  I [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-analyzing-and-improving-traffic-quality/" title="Optimizing Your E-Commerce Conversion Rate:  Analyzing and Improving Traffic Quality"><img src="http://classyllama.com/wp-content/uploads/2010/03/Phase-Impression26-680x80.jpg" alt="Perceived Cost/Benefit Chart:  First Impression Phase" class="feed-image" /></a><p><strong>Variable #1:  Traffic Quality<br />
 </strong></p>
<p>If you sell pencil sharpeners, and most of your traffic is redirected from a Youtube video that shows a guy balancing a pencil sharpener on his nose, it&#8217;s not very likely that the visitors to your site are interested in purchasing pencil sharpeners.  Your bounce rate will likely be sky-high.  I recently saw a massive increase in traffic to one of our client&#8217;s sites, increasing their monthly traffic volume by around 30%, but they only made one sale from all of the traffic.  It was a major design gallery hit that caused the traffic.  People were going to the site to look at the design, not buy stuff, so of course, the conversion rate for that traffic source was 0%.  In these cases, the traffic quality would greatly decrease the conversion outcome, despite the quality of your Value Presentation and the Ease of Purchase.  The Value Presentation and Ease of Purchase variables would have to pick up a lot of slack to absorb the poor traffic quality and generate conversions.</p>
<p>If, on the other hand, your traffic quality is very high, it can absorb weakness in your Value Presentation and Ease of Purchase.  Specialty stores are a great example of this.  They offer a very narrow product that you can only get from them.  Their site can have a really bad design and no marketing continuity or promotional sensitivity, and it can be really difficult to purchase the product, but they still convert visits to purchases because the traffic to their site is looking for what they&#8217;re offering.  This situation can be broken down via a few Value/Cost-based criteria:</p>
<p><br class="spacer_" /></p>
<p><strong>1.  Perceive they immediately need/want what you&#8217;re offering</strong></p>
<p>Many of the people who arrive on a specialty site will most likely perceive that they need/want what is offered.  Otherwise, they wouldn&#8217;t have ended up on the site.  They either searched for the specific specialty item on a search engine or were referred by a friend or other site that clearly defines the specialty.  Hopefully any traffic that arrives and immediately leaves wasn&#8217;t traffic that required resource allocation to generate.</p>
<p>If a visitor does not perceive that they need it immediately when they arrive on your site, you must either persuade them that they do need/want &#8220;it&#8221; immediately if you wish to convert the visit into a sale.  That may not be the right goal, though.  Oftentimes, the right goal is to build loyalty without asking for the &#8220;final&#8221; sale by asking for intermediate commitments, like signing up for a newsletter, following you on Twitter, ordering a catalog, or any other intermediate step that generates a larger degree of intimacy with that visitor.  How quickly you seek to convert a visitor to a purchase depends largely on the nature of your offer.  If you are selling novelty T-shirts, converting the sale on the first visit is likely the right pursuit.  If, however, you are selling vintage wine, it is likely not advisable to convert on the first visit.  Quality traffic flow analysis can bring clarity to this kind of question though.</p>
<p><strong>Key Point: </strong>Do not base your decisions on what seems reasonable or intuitive.  Look at the data and react to what is <em>actually </em>happening.</p>
<p><strong>Key Point: </strong> &#8220;What is my bounce rate?&#8221; is not the right question.  &#8220;What is the bounce rate of my quality traffic?&#8221; is the right question.  In other words, are the people you want to be on your site staying?  That&#8217;s all that matters.  Who cares about the designers who are just browsing for design inspiration.  If they bounce, it doesn&#8217;t matter.  Do you think we freaked out when the general bounce rate spiked after the major design gallery hit?  Of course not.  That is to be expected.  <strong>Asking the right questions is the fundamental key to conversion success </strong>(oh, and the key to success with everything else, too)<strong>.</strong></p>
<p><strong><br />
 </strong></p>
<p><strong>2.  Perceive it to be worth more than they perceive it costs them.</strong></p>
<p>There are two variables here:  <strong>Perceived Value and Perceived Cost</strong>.  To help the visitor to pass this Gauntlet milestone, you must affect one or both of these factors.  There is no other option.</p>
<p><em>Perceived Value</em></p>
<p>Value is a tricky thing.  No two people perceive the same thing as equally valuable.  In fact, I could wax philosophical here and pose the question, &#8220;Does true value even exist?&#8221; but I will refrain.  Whether or not there is a true value to anything, people perceive it differently.  Our team believes in trying to correctly assess the true value of what we offer and represent that value well.  That encourages our team to constantly improve the value of what we offer, which we appreciate.</p>
<p>There are two factors of perceived value:  <strong>Pre-Existing Evaluation and Interaction Effect</strong>.  The pre-existing evaluation is relevant to the Quality Traffic  variable; the interaction effect is relevant to the Value Presentation variable.</p>
<p>1.  <strong>Pre-Existing Evaluation </strong>is how the visitor evaluates the product or service prior to interacting with your marketing media.  Except in cases where the individual has never heard of your product or service, everyone will have a Pre-Existing Evaluation.  This is not something you can affect.  Ideally, you want to attract visitors who have a very high pre-existing evaluation of your product or service.  High pre-existing evaluation has a positive effect on Traffic Quality, but it&#8217;s not the only sub-variable of Traffic Quality.  Most people have a very high evaluation of a Lamborghini, but that doesn&#8217;t mean Lamborghini should try to attract &#8220;most people&#8221; to their show room.  We&#8217;ll discuss the other sub-variables shortly.</p>
<p>2.  <strong>Interaction Effect </strong>is the effect the interaction with your offering, specifically your e-commerce site in this case, has on your visitors pre-existing evaluation.  The only factor in the Interaction Effect that is relevant to Traffic Quality is how <strong>Impressionable </strong>the traffic is, which makes them more receptive to positively changing their evaluation of your product/service.  We will discuss the Interaction Effect in greater detail when we discuss the second variable, Value Presentation.</p>
<p><em>Perceived Cost</em></p>
<p>The first mistake people make when considering Cost is to assume that it&#8217;s simply the price.  It&#8217;s not.  First, the same price will be perceived differently in how costly it is depending on the perspective.  A multi-billionaire perceives a private jet to be a very low cost; a millionaire would perceive it to be extremely costly.  When thinking about Perceived Cost, think about it in terms of <strong>Perceived Sacrifice</strong>, as that is what the person <em>feels.</em><strong> </strong>How much a person feels they will experience sacrifice as a result of making a particular decision is a different way of saying Perceived Cost.</p>
<p>Many people perceive less sacrifice in purchasing a $3,000 ring for $100 per month for five years than paying $3,000 cash immediately, even though the first option is twice as costly in terms of cash than the second, and yet it is considered <em>less </em>costly.  Clearly, Perceived Cost and price are not interchangeable.</p>
<p>Money isn&#8217;t even the only factor that plays a part in Cost Perception.  Time, stress, focus, and forms of sacrifice are equally important to consider.  Convenience is becoming more important in the purchase of goods and services because a higher value is being placed on time, focus, and stress avoidance.  People value time more, so using less of it means they feel less sacrifice.  This is especially relevant to the third variable, so I will bite my tongue for the time being.</p>
<p>To conclude this section on Perceived Value and Cost, consider that in order to pass this Conversion Gauntlet obstacle, the visitor must perceive more value than cost in the acquisition of your good and/or service.  Consider all the factors that affect Perceived Value and Perceived Cost.  Most people just look at price.  Don&#8217;t be sucked into that ignorance.  It&#8217;s not about price.  <strong>It&#8217;s about Value and Sacrifice (Cost).</strong></p>
<p>There is tons more to say about the relationship between perceived value and cost.  I could literally write an entire book about it.  But I will be patient and elaborate on it later.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><strong>3.  Be able to complete the transaction process without falling below the &#8220;Adequate Value Threshold.&#8221;</strong></p>
<p>The &#8220;Adequate Value Threshold&#8221; is that point at which the Perceived Value falls below the Perceived Cost or the Perceived Cost rises above the Perceived Value.  I will be writing a blog post on this idea alone as it is an essential piece of theory that every business person and marketer needs to be able to visualize graphically.</p>
<p>Two important questions relevant to Traffic Quality:</p>
<p><em>1.  Do they have the technical skill to complete the process?</em></p>
<p>Your visitors need to be able to use the internet and complete a transaction online in order to purchase from you.  If their technical skills are lacking or if your process is difficult, their attempts at completing the process may produce a great deal of stress or take a lot of time and focus, both of which increases their Perceived (and actual) Cost to complete the transaction.  This can push the Perceived Cost above their Value Threshold, which is the point at which a person says &#8220;No.&#8221;  Generally, the later this occurs during the interaction, the more likely it will cause the visitor to exit the interaction with a negative outcome.  Visitors don&#8217;t typically expect to see adequate value in a product or service early on in the interaction, but once they cross the value rises above the cost or the cost dips below the value, a cross back over typically greatly reduces the likelihood of a positive outcome.</p>
<p><em>2.  Do they perceive significant risk in giving their credit card and other personal information to a business online?</em></p>
<p>Security is so important to people because it represents the absence of risk.  Risk is a sacrifice, and therefore a cost.  Reduce risk and you reduce the cost to the visitor.  The less your traffic consider it risky to give personal information, the higher quality traffic it is as it relates to conversion rate specifically because fewer visitors will abandon the process due to the perceived cost of insecurity/risk.</p>
<p><br class="spacer_" /></p>
<p><strong>4.  Have the resources to absorb the cost right now.</strong></p>
<p>I clearly have chosen specific verbiage here to represent a more accurate truth.  I could have just said, &#8220;They gotta have enough money to pay the price,&#8221; but, to belabor the point, it&#8217;s not just about money.  Do they have the time, money, and emotional and mental strength to absorb the costs of time, money, stress, and focus that is required to complete the purchase?</p>
<p>Convenience has become a major factor more recently because people are tending to value their time more.  Consider what your target audience values (make a list!) and be sensitive to those values.  If you can&#8217;t connect with what your audience values most, how in the world are you going to communicate any value to them?</p>
<p><strong>Conclusion:</strong></p>
<p>Traffic Quality is the nature and condition of people when they arrive on your site.  There are a vast array of preset values that will affect how they respond to your Value Presentation.  Your Value Presentation is not right for everyone.  In fact, it&#8217;s probably not right for the grand majority of the market.  Make sure you&#8217;re attracting the right Traffic for your Value Presentation.  Sometimes, though, it&#8217;s easier to change your Value Presentation to conform to the Traffic Quality you have.  In the next section, I will discuss how Your Value Presentation can affect the two criteria for conversion and what factors you need to consider in optimizing it to better deliver value to your Traffic.</p>
<p><br class="spacer_" /></p>
<p>Coming Soon&#8230;  Article #3 in the Revenue Optimization Series:  <strong>Value Presentation</strong>.  I don&#8217;t know about you, but I feel like I&#8217;m in marketing heaven already.</p>
<p><strong><br />
 </strong></p>
<p><strong>Appendix A</strong></p>
<p><strong>Wrong Question #1:  What is a good conversion rate?</strong></p>
<p>There is no global &#8220;good&#8221; conversion rate.  It really depends on your particular circumstances.  Consider this.  If you have a product that requires a large amount of consideration and research before a purchase decision is made, you may have visitors that visit your site 20 times before purchasing.  Since conversion rate is calculated by purchase orders divided by total number of visits<strong> (# of Orders / # of Visits = Conversion Rate)</strong>, your maximum conversion rate is only 5%.  So if half of the unique visitors that are coming to your site end up purchasing, you are achieving a 2.5% conversion rate.  This is over-simplification, but you get the picture.  Determine your target conversion rate based on your offering and your audience.  Don&#8217;t listen to gurus who herald their ability to produce xx% conversion rates and that you should be generating that conversion rate as well.  If their traffic is exclusively club members and their product is mandatory membership cards, their claims becomes less impressive.  In fact, aiming too high on your conversion rate can generate bad decisions.  By trying to get your visitors to push the button too quickly, you may miss out on opportunities to cross-sell or up-sell and you very likely will get to a point when you stop serving their best interests (and that&#8217;s what you want most, right?).  If you need help, find a consultant that wants to know your business before telling you what your target conversion rate should be.  That&#8217;s a good sign they&#8217;ll be helpful.</p>
<p><br class="spacer_" /></p>
<p>Next article:  Value Presentation (will link to as soon as the article is finished)</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-analyzing-and-improving-traffic-quality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing Your E-Commerce Conversion Rate:  The Two Conversion Criteria</title>
		<link>http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-the-two-conversion-criteria/</link>
		<comments>http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-the-two-conversion-criteria/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:26:33 +0000</pubDate>
		<dc:creator>ktheobald</dc:creator>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[E-Commerce Optimization]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[conversion rate optimization]]></category>
		<category><![CDATA[revenue optimization]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=319</guid>
		<description><![CDATA[E-commerce traffic is worthless if you are not converting any of your traffic into sales.  The percentage of visits that result in a purchase is called the conversion rate.  So much emphasis is put on generating traffic, but it&#8217;s only the first step in building e-commerce revenue and profitability.  It is typically very expensive from [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-the-two-conversion-criteria/" title="Optimizing Your E-Commerce Conversion Rate:  The Two Conversion Criteria"><img src="http://classyllama.com/wp-content/uploads/2010/03/Phase-Impression26-680x80.jpg" alt="Perceived Cost/Benefit Chart:  First Impression Phase" class="feed-image" /></a><p>E-commerce traffic is worthless if you are not converting any of your traffic into sales.  The percentage of visits that result in a purchase is called the conversion rate.  So much emphasis is put on generating traffic, but it&#8217;s only the first step in building e-commerce revenue and profitability.  It is typically very expensive from a holistic resource perspective (money, time, focus, etc.) to generate traffic, so to pay no attention to conversion rate is committing a cardinal e-commerce sin.  There are a few critical components that determine how high your conversion rate will be.</p>
<p><br class="spacer_" /></p>
<p>Step back for a moment.  What would it take to produce a 100% conversion rate?  Every single time someone visited your site, they would purchase something.  Any time a visitor meets two criteria, they make a purchase.  There are many factors that affect each of these criteria, and I will analyze each of them in this article and following articles.</p>
<p><strong>THE TWO CONVERSION CRITERIA<br />
 </strong></p>
<p>(Here it is.  The secret recipe for converting visits to sales.)</p>
<p><strong>To convert a visit into a purchase, the visitor must:</strong></p>
<p><strong>1.  Perceive the value of what you offer is higher than the value of the cost to acquire it.<br />
 </strong></p>
<p><strong>2.  Have the resources to absorb the cost at the point of purchase.</strong></p>
<p><br class="spacer_" /></p>
<p>I will analyze these Conversion Criteria from the perspective of a different set of variables.  While it isn&#8217;t a quantitative measurement, you can determine the likelihood that an individual will make a purchase via a cubic equation:  <strong>Traffic Quality x Value Presentation x Ease of Purchase</strong>.  If you have a very high value for any of these variables, it doesn&#8217;t necessarily mean you will have a high conversion rate.  Just as with the broader e-commerce revenue equation I covered in the first post of this series (Traffic x Conversion Rate x Average Order Size = Revenue), attention must be given to each of the variables to optimize the outcome.  If any one of them is shirked, it can ruin all of the efforts made to improve the other two.  While you cannot attach a numeric value to these variables as easily as you can to the Revenue variables, it&#8217;s still important to understand conceptually because the conversion variables relate in the same way as the revenue variables.</p>
<p><br class="spacer_" /></p>
<p>In the next article, I will dig into the first variable that affects conversion rate:  <a title="Improving Traffic Quality" href="http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-analyzing-and-improving-traffic-quality/"><strong>Traffic Quality</strong></a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1230px; width: 1px; height: 1px;"><strong>1.  Perceive they need/want what you&#8217;re offering right now</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-the-two-conversion-criteria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Better Way to Modify Magento Layouts</title>
		<link>http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/</link>
		<comments>http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:10:45 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=353</guid>
		<description><![CDATA[In this article, I&#8217;m going to be covering what I believe to be a very effective way of modifying the layout of any Magento theme.  
For several of the first Magento themes I built, I copied the layout files from the default or blank theme into the custom theme layout folder.  I would [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/" title="The Better Way to Modify Magento Layouts"><img src="http://classyllama.com/wp-content/uploads/2010/02/Screen-shot-2010-02-23-at-8.11.32-AM.png" alt="" class="feed-image" /></a><p>In this article, I&#8217;m going to be covering what I believe to be a very effective way of modifying the layout of any Magento theme.  </p>
<p>For several of the first Magento themes I built, I copied the layout files from the default or blank theme into the custom theme layout folder.  I would then modify the layout files directly, editing or commenting out content in files like: catalog.xml, page.xml, checkout.xml, etc&#8230;  I never liked editing these files directly, as I knew that when it came time to upgrade to a newer version of Magento that had upgraded the layout files, I&#8217;d have to merge the changes into the new layout files.  </p>
<p>One day, I was digging through the Magento code relating to layout files and discovered a bit of code that made me realize that it was possible to just place a local.xml file in my custom theme&#8217;s layout folder and have it loaded automatically by Magento.  (this code is on line 283 in /app/code/core/Mage/Core/Model/Layout/Update.php in the fetchFileLayoutUpdates() method).  </p>
<p>Due to Magento&#8217;s brilliant <reference> tags, it&#8217;s possible to do just about anything you want without having to edit any of the default layout files. </p>
<p>Before delving into the code, let&#8217;s look at the advantages/disadvantages of this method:</p>
<h3>Advantages</h3>
<ul>
<li>Allows you to upgrade themes without having to merge in changes</li>
<li>All custom layout changes are centralized, allowing developers to more easily make changes to custom theme elements</li>
</ul>
<h3>Disadvantages</h3>
<ul>
<li>At first, it&#8217;s slower to use this method than hacking up the standard layout files directly</li>
<li>You will have one more place to look where the site might be pulling code (template phtmls, standard layout files, admin layout updates, AND local.xml)</li>
</ul>
<p>Here is the slimmed down, commented local.xml from one of our recent projects:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p353code6'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3536"><td class="code" id="p353code6"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;layout</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;0.1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;head&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #808080; font-style: italic;">&lt;!-- Magento looks in /skin/frontend/&lt;INTERFACE&gt;/&lt;THEME&gt;/js/buyprinting.js</span>
<span style="color: #808080; font-style: italic;">		for this file --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addItem&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>skin_js<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/type<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>js/buyprinting.js<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #808080; font-style: italic;">&lt;!-- This removes the item that was set in the page.xml file --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;removeItem&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;type<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>skin_js<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/type<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>js/iehover-fix.js<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #808080; font-style: italic;">&lt;!-- Magento looks in /js/prototype/element.storage.js for this file --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addJs&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>prototype/element.storage.js<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;addCss&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;stylesheet<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>css/buyprinting.css<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/stylesheet<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;header&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #808080; font-style: italic;">&lt;!-- This adds a CMS block that can be called from the template file</span>
<span style="color: #808080; font-style: italic;">        associated with the header block. --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;block</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;cms/block&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;cms_quick_help&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;setBlockId&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;block_id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>quick_help<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/block_id<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/block<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
        <span style="color: #808080; font-style: italic;">&lt;!-- The remove tag removes the blocks with the specified name from the layout --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;top.menu&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;store_language&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;breadcrumbs&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;top.nav&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;catalog.topnav&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;left&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;left.newsletter&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;left.permanent.callout&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;catalogsearch.leftnav&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
        <span style="color: #808080; font-style: italic;">&lt;!-- When you use the remove tag, it removes any blocks with the specified name from</span>
<span style="color: #808080; font-style: italic;">            the entire layout, regardless of the context. So, if I remove right.newsletter in</span>
<span style="color: #808080; font-style: italic;">            the &lt;default&gt; context and that name is used in say the &lt;catalog_product_view&gt; context,</span>
<span style="color: #808080; font-style: italic;">            then both blocks will be removed.  Because remove operates on the global context,</span>
<span style="color: #808080; font-style: italic;">            you can only remove an element once.  Since &lt;remove name=&quot;right.newsletter&quot; /&gt; is</span>
<span style="color: #808080; font-style: italic;">            being called in catalogsearch.xml, we have to unset it, or else we'll get an error.</span>
&nbsp;
<span style="color: #808080; font-style: italic;">            The line below only unsets the block from the parent's context, not the global</span>
<span style="color: #808080; font-style: italic;">            layout context --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>right.newsletter<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;right&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #808080; font-style: italic;">&lt;!-- Some blocks have to be removed using remove, others via unsetChild.</span>
<span style="color: #808080; font-style: italic;">            I've not spent the time digging into the code to figure out why --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;right.permanent.callout&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;catalog.compare.sidebar&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;left.reports.product.viewed&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>sale.reorder.sidebar<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>wishlist_sidebar<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>right.reports.product.viewed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;cart_sidebar&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #808080; font-style: italic;">&lt;!-- CATALOG PAGES --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;catalog_product_view<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #808080; font-style: italic;">&lt;!-- 2columns-right --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;root&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;setTemplate&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;template<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>page/2columns-left.phtml<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/template<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;product.info&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;block</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;cms/block&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;cms_product_info_tabs&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
					<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;setBlockId&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;block_id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>product_info_tabs<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/block_id<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/block<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;block</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;catalog/product_view&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;product.clone_prices&quot;</span> <span style="color: #000066;">as</span>=<span style="color: #ff0000;">&quot;prices&quot;</span> <span style="color: #000066;">template</span>=<span style="color: #ff0000;">&quot;catalog/product/view/price_clone.phtml&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>tierprices<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>addto<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;remove</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;addto&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;reference</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;product.info.options.wrapper.bottom&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
					<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;unsetChild&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>product.tierprices<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/action<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/reference<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/catalog_product_view<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>I hope with article has given you some direction as to how you can improve you Magento theming skills.  If you have any additional tips/comments on coding layouts, please suggest them in the comments section.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/the-better-way-to-modify-magento-layout/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Smart Method of Loading Collections</title>
		<link>http://classyllama.com/development/magento-development/the-smart-method-of-loading-collections/</link>
		<comments>http://classyllama.com/development/magento-development/the-smart-method-of-loading-collections/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:15:00 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=315</guid>
		<description><![CDATA[One fairly unknown feature of Magento collections is that you actually don&#8217;t have to call ->load() on a collection before being able to access the items in the collection.  So you can do this:

?View Code PHP$orders = Mage::getResourceModel&#40;'sales/order_collection'&#41;-&#62;addAttributeToSelect&#40;'*'&#41;;
# The load method is not necessary, as iterating through a collection automatically loads it, if it [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/the-smart-method-of-loading-collections/" title="The Smart Method of Loading Collections"><img src="http://classyllama.com/wp-content/uploads/2010/02/Screen-shot-2010-02-10-at-2.23.33-PM.png" alt="" class="feed-image" /></a><p>One fairly unknown feature of Magento collections is that you actually don&#8217;t have to call ->load() on a collection before being able to access the items in the collection.  So you can do this:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p315code9'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p3159"><td class="code" id="p315code9"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$orders</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getResourceModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sales/order_collection'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addAttributeToSelect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;"># The load method is not necessary, as iterating through a collection automatically loads it, if it hasn't already been loaded.
</span><span style="color: #666666; font-style: italic;"># $orders-&gt;load();
</span><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$orders</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$order</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Order Id: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$order</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The base Varien_Data_Collection class implements the IteratorAggregate (http://php.net/manual/en/class.iteratoraggregate.php) interface which extends the Traversable (http://www.php.net/manual/en/class.traversable.php) interface.  When a class extends the Traversable interface, it guarantees that that class can be iterated through using foreach().  When foreach is called on a collection, it calls the getIterator() method in the Varien_Data_Collection class and uses the value returned from that method as the value that the foreach iterates through.  This is the getIterator() method:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p315code10'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p31510"><td class="code" id="p315code10"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getIterator<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayIterator<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_items<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>This auto-loading functionality works for both EAV and flat-table collections.</p>
<p>As you can see, a collection ensures that it is loaded before running through a foreach loop. Note: collections can only be loaded once per instantiation.  If you want to reload a collection, you have to call the clear() method, and then reset the select and filters before calling the load() method again.</p>
<p>Knowing that collections function in this way allows you to write code without explicit calls to load().  This ultimately should result in more flexible code.  You can have a method in a block that loads a collection.  That collection can then either be called by a template file and iterated through, or you can have another method that loads the collection from the first method, and then adds additional selects/filters to it.  This practice of not explicitly calling the load() results in more flexible and reusable code.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/the-smart-method-of-loading-collections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saving the Value of a Specific Attribute from a Model</title>
		<link>http://classyllama.com/development/magento-development/saving-the-value-of-a-specific-attribute-from-a-model/</link>
		<comments>http://classyllama.com/development/magento-development/saving-the-value-of-a-specific-attribute-from-a-model/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 16:46:29 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=303</guid>
		<description><![CDATA[How to save the value of a specific attribute of an EAV model.]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/saving-the-value-of-a-specific-attribute-from-a-model/" title="Saving the Value of a Specific Attribute from a Model"><img src="http://classyllama.com/wp-content/uploads/2010/02/Screen-shot-2010-02-10-at-10.47.12-AM.png" alt="" class="feed-image" /></a><p>In Magento, it&#8217;s very easy to save all the data in a model by running $model->save();. (Note: In this blog post, model refers to an EAV model, not a flat resource model)  This saves all the attributes for the model to their respective attribute tables.  There are times when saving the value of just one of the model attributes is desirable.  A couple cases where you&#8217;d want to do this:</p>
<ul>
<li>You&#8217;ve been passed a model from an event, and you aren&#8217;t sure if the data in that model can be safely saved.</li>
<li>You are saving many models and want to make your save operations as efficient as possible</li>
</ul>
<p>Here is how you&#8217;d save just one attribute of a product model:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p303code11'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p30311"><td class="code" id="p303code11"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$product</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'catalog/product'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$product</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Some Random Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$product</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResource</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">saveAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$product</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/saving-the-value-of-a-specific-attribute-from-a-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Single vs. Double Quotes</title>
		<link>http://classyllama.com/development/php/php-single-vs-double-quotes/</link>
		<comments>http://classyllama.com/development/php/php-single-vs-double-quotes/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 06:21:40 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=294</guid>
		<description><![CDATA[For a long time, I've been a proponent of using single-quotes as opposed to double-quotes when assigning string literals (strings containing no variables) to a variable (eg:  $var = 'string'; VS $var = "string").]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/php/php-single-vs-double-quotes/" title="PHP Single vs. Double Quotes"><img src="http://classyllama.com/wp-content/uploads/2010/02/Screen-shot-2010-02-07-at-12.19.18-AM1-718x80.png" alt="" class="feed-image" /></a><p>For a long time, I&#8217;ve been a proponent of using single-quotes as opposed to double-quotes when assigning string literals (strings containing no variables) to a variable (eg:  $var = &#8217;string&#8217;; VS $var = &#8220;string&#8221;).</p>
<p>I just did some research to find out how much (if any) impact using single-vs-double quotes had on performance.  I took the code from this blog post: http://spindrop.us/2007/03/03/php-double-versus-single-quotes/ modified the MAX constant to 8,000,000 and then ran the test on our Nexcess server.  The results were fairly consistent:</p>
<p>Time 1: 5.9485120773315 ($c = &#8220;test &#8221; . $i;  )<br />
Time 2: 7.0326972007751 ($c = &#8220;test $i&#8221;;  )<br />
Time 3: 5.9164550304413  ($c = &#8216;test &#8216; . $i;  )</p>
<p>It&#8217;s clear that embedding variables in strings is less efficient, but the difference between normal single-vs-double quotes is negligible (at least on our server configuration with this test).</p>
<p>Despite the lack of clear performance benefits, I still think it best practice to use single-quotes when using string literals, as it denotes that a string doesn&#8217;t contain any variables.  One benefit of this is that when skimming code, you can more quickly process which variables are string literals vs strings with embedded variables.</p>
<p>The Zend Framework Coding Standard also recommends this practice: http://framework.zend.com/manual/en/coding-standard.coding-style.html</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/php/php-single-vs-double-quotes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Three Keys to Optimizing E-Commerce Revenue</title>
		<link>http://classyllama.com/magento/the-three-keys-to-optimizing-e-commerce-revenue/</link>
		<comments>http://classyllama.com/magento/the-three-keys-to-optimizing-e-commerce-revenue/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 21:55:46 +0000</pubDate>
		<dc:creator>ktheobald</dc:creator>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[E-Commerce Optimization]]></category>
		<category><![CDATA[General Business]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[revenue]]></category>
		<category><![CDATA[traffic]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=248</guid>
		<description><![CDATA[Introduction
No matter what you sell online, there are three core constituents to revenue:  Traffic, Conversion Rate, and Average Order Size.  In fact, it&#8217;s a cubic equation: Revenue = Traffic (#) x Conversion (%) x Average Order Size ($).  So if you generate 21,000 visits in a month with a conversion rate of 3.00% and an [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>No matter what you sell online, there are three core constituents to revenue:  <strong>Traffic, Conversion Rate, and Average Order Size</strong>.  In fact, it&#8217;s a cubic equation: Revenue = Traffic (<strong>#</strong>) x Conversion (<strong>%</strong>) x Average Order Size (<strong>$</strong>).  So if you generate 21,000 visits in a month with a conversion rate of 3.00% and an average order size of $156.23, your revenue is $98,424.90 (21,000 x 3.00% x $156.23).</p>
<p>If you can analyze each of these variables effectively, the e-commerce world is your banana.  I hope that by the end of this article series, you&#8217;ll understand the &#8220;sub-variables&#8221; that affect each of these core revenue variables, equipping you with the tools to optimize your e-commerce revenue.  (btw, many of these principles apply to business in general, not just e-commerce)</p>
<p><strong>This first article will relate to generating Traffic </strong>and the variables that affect it.</p>
<p><br class="spacer_" /></p>
<p><strong>Keys to Traffic</strong></p>
<p>Traffic is calculated according to the following equation:  <strong>Unique Visitors x Average Visit Frequency</strong></p>
<p>Keys to unique visitor traffic are <strong>Medium</strong> (where they found your site) and <strong>Presentation</strong> (what they experienced through the medium/media that made them visit).  The key to repeat traffic is the <strong>Visit Experience</strong> (their evaluation of their visit retrospectively).  Every single person that visits your site has a corresponding medium and presentation history, and if they visit the site more than once, they have an experience history as well.</p>
<p><strong><em>Medium</em></strong></p>
<p>The primary factors of a medium are relevance and accessibility.</p>
<p>The key relevance question:  Is the medium used connecting with the kind of people that will see value in what you offer and need it now or at some point in the future, preferably in the near future?</p>
<p>The key accessibility question:  Is it easy for the recipient of the message to take action in response to the message?</p>
<p><strong><em>Presentation</em></strong></p>
<p>Every presentation has a persuasive effect that depends on <strong>two variables:  To WHOM it&#8217;s presented to and WHAT is presented</strong>.  WHAT you communicate is worthless without the right audience (they need what you&#8217;re offering and they need it now or soon), and likewise, it doesn&#8217;t matter how targeted and ripe your audience is for what you&#8217;re presenting if WHAT you communicate is poorly constructed.  In fact, it can do more harm than good to make a poor presentation to the right audience by appearing unprofessional and incapable to deliver quality.</p>
<p>The presentation variables depend heavily on the medium in question.  If it is word-of-mouth, the presentation is what is being communicated by the referrer to the referee.  What are they saying about your site and what you offer?  If it&#8217;s search marketing, is what you&#8217;re communicating in your ad relevant and does it point to a highly relevant landing page?  Are you using highly targeted keywords with ad copy that is tailored to those keywords?  There are quality questions to ask for each medium, and they vary significantly.  But all media should be based on the same quality questions:  Are we communicating to the right audience?  Are we communicating the right message to that audience to effect the desired behavior (click a link, request a quote, submit an e-mail address, buy a product, etc.).</p>
<p><em><strong>Visit Experience</strong></em></p>
<p>Experience is the single factor that determines whether a unique visitor becomes a repeat visitor.  In short, visit experience, how a visitor evaluates their visit retrospectively, is defined by if the visitor:</p>
<p>1.  Felt that the content was relevant to them</p>
<p>2.  Felt that they could navigate and access what they wanted easily and intuitively</p>
<p>3.  Has a compelling, memorable reason to return.</p>
<p>If these three criteria are met, the experience will likely develop into a repeat visit.</p>
<p><br class="spacer_" /></p>
<p>E-commerce traffic means nothing if you can&#8217;t convert that traffic into sales.  In my next post, I&#8217;ll discuss <strong><a title="Optimizing your Conversion Rate" href="http://classyllama.com/magento/optimizing-your-e-commerce-conversion-rate-the-two-conversion-criteria/">the key to optimizing the conversion rate</a></strong>.</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/the-three-keys-to-optimizing-e-commerce-revenue/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Magento SEO Case Study</title>
		<link>http://classyllama.com/magento/magento-seo-case-study/</link>
		<comments>http://classyllama.com/magento/magento-seo-case-study/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 16:37:52 +0000</pubDate>
		<dc:creator>jburks</dc:creator>
				<category><![CDATA[General Business]]></category>
		<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=268</guid>
		<description><![CDATA[
We have seen dramatic increases in site traffic and better native search positioning for our clients, but we wanted to be sure that the SEO value of  sites that had built great positioning through years of business would not be lost when switching to Magento and using 301 redirects.  As Magento Professional Partners, we now [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/magento-seo-case-study/" title="Magento SEO Case Study"><img src="http://classyllama.com/wp-content/uploads/2010/01/9-718x80.jpg" alt="" class="feed-image" /></a><p style="text-align: center"><img class="size-full wp-image-272 aligncenter" src="http://classyllama.com/wp-content/uploads/2010/01/9.jpg" alt="(9)" width="718" height="356" /></p>
<p>We have seen dramatic increases in site traffic and better native search positioning for our clients, but we wanted to be sure that the SEO value of  sites that had built great positioning through years of business would not be lost when switching to Magento and using <a href="http://en.wikipedia.org/wiki/301_redirect#HTTP_status_codes_3xx" target="_blank">301 redirects</a>.  As Magento Professional Partners, we now have access to a whole new world of resources through Varien, so we asked them about what results they had seen.  Here is a portion of their response, straight from one of Varien&#8217;s many clients:</p>
<p><em>&#8220;Yesterday I attended a very interesting presentation of the new Jack Wolfskin online shop (Globetrotter in Germany) based on Magento (yet community, next year enterprise). They seemed to be very happy with your product and increased traffic (+ customers) by 600% in 10 months just by moving to Magento (due to better SEO capabilities).&#8221;</em></p>
<p>While the results are not necessarily typical, we have seen dramatic results just by implementing Magento with 301 redirects.  Long story short, if you are thinking about switching to Magento and you are concerned with the impact of the change, don&#8217;t be.  The greatest concern you should have is the clients you are missing by not using the robust platform of Magento to enhance your SEO.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/magento-seo-case-study/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Success &#8211; 5 Star Service</title>
		<link>http://classyllama.com/magento/creating-success-5-star-service/</link>
		<comments>http://classyllama.com/magento/creating-success-5-star-service/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 14:34:59 +0000</pubDate>
		<dc:creator>jburks</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[classy llama]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[customer service]]></category>
		<category><![CDATA[interaction]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[success]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=253</guid>
		<description><![CDATA[
Do you need to stand out from the crowd of competitors around you?  Do you want to be remembered when your clients are deciding where to invest their hard earned resources?
Service is dying in the United States.  Everywhere we look, an epidemic of apathy spreads its disease.  Industries that traditionally emphasize service (eg. foodservice and [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/creating-success-5-star-service/" title="Creating Success - 5 Star Service"><img src="http://classyllama.com/wp-content/uploads/2010/01/customer-service-450x80.jpg" alt="" class="feed-image" /></a><p><img class="size-full wp-image-263 alignnone" src="http://classyllama.com/wp-content/uploads/2010/01/customer-service.jpg" alt="customer-service" width="450" height="300" /></p>
<p>Do you need to stand out from the crowd of competitors around you?  Do you want to be remembered when your clients are deciding where to invest their hard earned resources?</p>
<p>Service is dying in the United States.  Everywhere we look, an epidemic of apathy spreads its disease.  Industries that traditionally emphasize service (eg. foodservice and customer service by phone) are continually adopting lower standards to accommodate lackluster performance.  What is missing?</p>
<p>Service begins with the idea of active listening.  Our era is focused around each of us having the ability to access information easily, but we can often feel that our voices are lost amidst the cacophony of voices around us.  When was the last time that you felt that you were completely heard and understood?  Listen to your clients.  Listen to what they say, to what they mean.  A huge piece of listening is to intentionally engage your mind with what your client is saying.  Intentionally engage.  If you are detached, they will feel your distance acutely, and you will lose effectiveness.  Get rid of distractions, and focus your attention solely on them.  Make them the most important thing in your world, if only for that moment.  Your attentiveness to them will make a greater impact than you can imagine.  People are used to being ignored and marginalized.  The respect you give them when you make them your priority will resonate instantly with them.</p>
<p>Service requires a genuine desire to contribute.  You must understand that your client is a valuable human being who is trusting you with an important piece of their life.  Business decisions that they make will impact them personally.  Value what they say.  The desire to impact someone’s life positively is unusual to the point of extinction.  I am not talking about putting up a façade of empathy.  If you have ever seen a hypocrite, then believe me when I say if you come to the table trying to manufacture a mask of interest, you will be found out.  There are very few things more detrimental to a relationship than phony interest.  Suffice it to say; go genuine, or go home.</p>
<p>Service requires transparency.  You must be willing to put yourself in a vulnerable position.  I am not advocating placing unlimited trust in someone that you do not know, but honesty is always the best policy.  Communicating in an open manner, especially when it is to your disadvantage to do so, will create a level of trust unobtainable in any other way.  Please temper this statement with this caution: carefully weigh your words to ensure that they are palatable.  Criticism is almost never an appropriate choice, whether it be directed toward competitor, co-worker, or client.  Be generous with your praise towards the people around you, and very miserly with criticism.</p>
<p>Cultivate principles in yourself, and in your company, of honesty, valuing your clients, and transparency and wrap them all around a core of listening.  Listen carefully and you will know what they want and what they need.  Listen, and they will remember and feel that you heard them.  Listen, and you will find the core of 5-star customer service.</p>
<p>World class customer interactions are central to our business model at Classy Llama Studios.  This is the first of a series of five posts that I will be writing to relay aspects of our business development strategy specifically related to customer service and its vital role in crafting success for our clients.  Since implementing this strategy we have been able to change the way that our clients interact with us, dynamically impacting both their satisfaction with our work and our ability to hear and apply their business vision effectively.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/creating-success-5-star-service/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Add Magento Admin Account Using MySQL Script</title>
		<link>http://classyllama.com/development/magento-development/add-magento-admin-account-using-mysql-script/</link>
		<comments>http://classyllama.com/development/magento-development/add-magento-admin-account-using-mysql-script/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 15:13:11 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=236</guid>
		<description><![CDATA[As a Magento development company, we have a number of designers, developers, and project managers that need admin access to the sites that we build.  As opposed to using one global admin account for our entire team, we believe it to be a much better practice to assign individual admin accounts to each team [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/add-magento-admin-account-using-mysql-script/" title="Add Magento Admin Account Using MySQL Script"><img src="http://classyllama.com/wp-content/uploads/2010/01/MagentoAdmin.jpg" alt="" class="feed-image" /></a><p>As a Magento development company, we have a number of designers, developers, and project managers that need admin access to the sites that we build.  As opposed to using one global admin account for our entire team, we believe it to be a much better practice to assign individual admin accounts to each team member who is going to be working on a project.</p>
<p>One of our developers, Matt Johnson, has developed a script to allow us to easily add an admin user to a Magento installation.  Each member on our team that needs Magento admin access has a sql file that adds their admin account to Magento.  When we start a new project, we run the sql script for the members of our team that are going to need access to the server.  I hope you&#8217;ll find this snippet useful.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p236code13'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p23613"><td class="code" id="p236code13"><pre class="mysql" style="font-family:monospace;"><span style="color: #808000; font-style: italic;">/* This is an example SQL script.
You should replace all the UPPERCASED variables.
The &lt;USERNAME&gt; variable can only be alphanumeric characters, and probably underscores (haven't tested)
&nbsp;
You can either generate a password hash using the PHP code below,
or you can grab a password hash from the admin_user table from an
existing Magento install for which you know the admin password.
*/</span>
&nbsp;
<span style="color: #808000; font-style: italic;">/* Use the following PHP script to generate a salted password hash. You can also use a straight md5 hash, but it's much more easily brute-forced
&lt;?php $password = 'PASSWORD'; $salt = 'GF'; echo $hash = md5($salt.$password).':'.$salt; ?&gt;
*/</span>
&nbsp;
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">insert</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">into</span></a> admin_user
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a>
<span style="color: #FF00FF;">&#40;</span><a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a> <a href="http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html"><span style="color: #000099;">max</span></a><span style="color: #FF00FF;">&#40;</span>user_id<span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">+</span> <span style="color: #008080;">1</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">from</span></a> admin_user<span style="color: #FF00FF;">&#41;</span> user_id<span style="color: #000033;">,</span>
<span style="color: #008000;">'FIRST NAME'</span> first_name<span style="color: #000033;">,</span>
<span style="color: #008000;">'LAST NAME'</span> last_name<span style="color: #000033;">,</span>
<span style="color: #008000;">'EMAIL'</span> email<span style="color: #000033;">,</span>
<span style="color: #008000;">'USERNAME'</span> username<span style="color: #000033;">,</span>
<span style="color: #008000;">'HASH EXAMPLE: 178f29c8e4c6c801db90cd171e3b2b53:in'</span> <a href="http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html"><span style="color: #000099;">password</span></a><span style="color: #000033;">,</span> <span style="color: #808000; font-style: italic;">/* You can replace this value with an md5 hash */</span>
<a href="http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html"><span style="color: #000099;">now</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #FF00FF;">&#41;</span> created<span style="color: #000033;">,</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=NULL&amp;lr=lang_en"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> modified<span style="color: #000033;">,</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=NULL&amp;lr=lang_en"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> logdate<span style="color: #000033;">,</span>
<span style="color: #008080;">0</span> lognum<span style="color: #000033;">,</span>
<span style="color: #008080;">0</span> reload_acl_flag<span style="color: #000033;">,</span>
<span style="color: #008080;">1</span> is_active<span style="color: #000033;">,</span>
<span style="color: #FF00FF;">&#40;</span><a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a> <a href="http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html"><span style="color: #000099;">max</span></a><span style="color: #FF00FF;">&#40;</span>extra<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">from</span></a> admin_user <a href="http://search.mysql.com/search?site=refman-51&amp;q=WHERE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">where</span></a> extra <a href="http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">is not</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=NULL&amp;lr=lang_en"><span style="color: #9900FF; font-weight: bold;">null</span></a><span style="color: #FF00FF;">&#41;</span> extra<span style="color: #000033;">;</span>
&nbsp;
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">insert</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">into</span></a> admin_role
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a>
<span style="color: #FF00FF;">&#40;</span><a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a> <a href="http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html"><span style="color: #000099;">max</span></a><span style="color: #FF00FF;">&#40;</span>role_id<span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">+</span> <span style="color: #008080;">1</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">from</span></a> admin_role<span style="color: #FF00FF;">&#41;</span> role_id<span style="color: #000033;">,</span>
<span style="color: #FF00FF;">&#40;</span><a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a> role_id <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">from</span></a> admin_role <a href="http://search.mysql.com/search?site=refman-51&amp;q=WHERE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">where</span></a> role_name <span style="color: #CC0099;">=</span> <span style="color: #008000;">'Administrators'</span><span style="color: #FF00FF;">&#41;</span> parent_id<span style="color: #000033;">,</span>
<span style="color: #008080;">2</span> tree_level<span style="color: #000033;">,</span>
<span style="color: #008080;">0</span> sort_order<span style="color: #000033;">,</span>
<span style="color: #008000;">'U'</span> role_type<span style="color: #000033;">,</span>
<span style="color: #FF00FF;">&#40;</span><a href="http://search.mysql.com/search?site=refman-51&amp;q=SELECT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">select</span></a> user_id <a href="http://search.mysql.com/search?site=refman-51&amp;q=FROM&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">from</span></a> admin_user <a href="http://search.mysql.com/search?site=refman-51&amp;q=WHERE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">where</span></a> username <span style="color: #CC0099;">=</span> <span style="color: #008000;">'USERNAME'</span><span style="color: #FF00FF;">&#41;</span> user_id<span style="color: #000033;">,</span>
<span style="color: #008000;">'USERNAME'</span> role_name</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/add-magento-admin-account-using-mysql-script/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Enable/disable template/block Hints Using MySQL</title>
		<link>http://classyllama.com/development/magento-development/turn-on-templateblock-hints-using-mysql/</link>
		<comments>http://classyllama.com/development/magento-development/turn-on-templateblock-hints-using-mysql/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 14:48:09 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=221</guid>
		<description><![CDATA[When doing frontend development with Magento, there are many times when I want to turn on template/block hints for just one page load.  I don&#8217;t like having to wait on the Magento admin to load up the System > Configuration > Developer page, switch to Website view, and then turn on template/path hints.  [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/turn-on-templateblock-hints-using-mysql/" title="Enable/disable template/block Hints Using MySQL"><img src="http://classyllama.com/wp-content/uploads/2010/01/Screen-shot-2010-01-21-at-8.44.06-AM.png" alt="" class="feed-image" /></a><p>When doing frontend development with Magento, there are many times when I want to turn on template/block hints for just one page load.  I don&#8217;t like having to wait on the Magento admin to load up the System > Configuration > Developer page, switch to Website view, and then turn on template/path hints.  I have written a couple of MySQL snippets that allow me to enable/disable hints with one query.</p>
<p>I wrote the scripts so that for clean Magento installs, they will insert the necessary records into the core_config_data table.  For Magento installs that have had the hints enabled/disabled, the record will already be present in the config table, so the script will just update that record.
</p>
<h3>Enable template/block hints for the first* <em>website</em></h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p221code18'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p22118"><td class="code" id="p221code18"><pre class="mysql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Enable template hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints'</span><span style="color: #000033;">,</span> @template_hints<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints<span style="color: #000033;">;</span>
<span style="color: #808080; font-style: italic;">-- Enable block hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints_blocks <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints<span style="color: #008080; font-weight: bold;">_</span>blocks'</span><span style="color: #000033;">,</span> @template_hints_blocks<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints_blocks<span style="color: #000033;">;</span></pre></td></tr></table></div>

<h3>Disable template/block hints for the first* <em>website</em></h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p221code19'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p22119"><td class="code" id="p221code19"><pre class="mysql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Enable template hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints'</span><span style="color: #000033;">,</span> @template_hints<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints<span style="color: #000033;">;</span>
<span style="color: #808080; font-style: italic;">-- Enable block hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints_blocks <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints<span style="color: #008080; font-weight: bold;">_</span>blocks'</span><span style="color: #000033;">,</span> @template_hints_blocks<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints_blocks<span style="color: #000033;">;</span></pre></td></tr></table></div>

<p>As I covered in <a href="http://classyllama.com/magento/development/enable-templateblock-hints-in-admin-panel/">this post</a>, it is possible to turn on hints at a global level, which activates hints for all website and for the admin panel.  This is useful if you&#8217;re making customizations to the admin panel, or if you have multiple websites for which you&#8217;re wanting to activate/deactivate hints at the same time.  The following two snippets modify hints at a global level:</p>
<h3>Enable template/block hints for the <em>admin panel</em> and ALL <em>websites</em></h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p221code20'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p22120"><td class="code" id="p221code20"><pre class="mysql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Enable template hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints'</span><span style="color: #000033;">,</span> @template_hints<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints<span style="color: #000033;">;</span>
<span style="color: #808080; font-style: italic;">-- Enable block hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints_blocks <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints<span style="color: #008080; font-weight: bold;">_</span>blocks'</span><span style="color: #000033;">,</span> @template_hints_blocks<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints_blocks<span style="color: #000033;">;</span></pre></td></tr></table></div>

<h3>Disable template/block hints for the <em>admin panel</em> and ALL <em>websites</em></h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p221code21'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p22121"><td class="code" id="p221code21"><pre class="mysql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- Enable template hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints'</span><span style="color: #000033;">,</span> @template_hints<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints<span style="color: #000033;">;</span>
<span style="color: #808080; font-style: italic;">-- Enable block hints</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=SET&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">SET</span></a> @template_hints_blocks <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`core<span style="color: #008080; font-weight: bold;">_</span>config<span style="color: #008080; font-weight: bold;">_</span>data`</span> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">`scope`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`scope<span style="color: #008080; font-weight: bold;">_</span>id`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`path`</span><span style="color: #000033;">,</span> <span style="color: #008000;">`value`</span><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'websites'</span><span style="color: #000033;">,</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints<span style="color: #008080; font-weight: bold;">_</span>blocks'</span><span style="color: #000033;">,</span> @template_hints_blocks<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=ON&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=DUPLICATE%20KEY&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">DUPLICATE KEY</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=UPDATE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">UPDATE</span></a> <span style="color: #008000;">`value`</span><span style="color: #CC0099;">=</span>@template_hints_blocks<span style="color: #000033;">;</span></pre></td></tr></table></div>

<p>* If you have multiple websites, you&#8217;ll need to update the &#8216;1&#8242; value set for the website field to reflect the ID of your website.  If you have multiple websites, you can just turn on hints globally using the last two SQL snippets.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/turn-on-templateblock-hints-using-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Initial Magento Setup Development Tips</title>
		<link>http://classyllama.com/development/magento-development/magento-initial-setup/</link>
		<comments>http://classyllama.com/development/magento-development/magento-initial-setup/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 14:27:18 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=185</guid>
		<description><![CDATA[Over the past year and a half of developing Magento sites, our development team has created a standard set of modifications/tweaks that we make to every Magento installation.
1. Automatically turn on developer mode based on domain.
We have a stage site setup for all of our projects at stage..com.  We also develop projects locally at [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/magento-initial-setup/" title="Initial Magento Setup Development Tips"><img src="http://classyllama.com/wp-content/uploads/2009/12/Screen-shot-2009-12-30-at-8.05.52-AM-718x80.png" alt="" class="feed-image" /></a><p>Over the past year and a half of developing Magento sites, our development team has created a standard set of modifications/tweaks that we make to every Magento installation.</p>
<h2>1. Automatically turn on developer mode based on domain.</h2>
<p>We have a stage site setup for all of our projects at stage.<domain_name>.com.  We also develop projects locally at either .dev or .local (based on developer preference).  This snippet of code will only enable error reporting and Magento&#8217;s developer mode on stage or local domains.</p>
<p>Insert the following code after &#8220;require_once $mageFilename;&#8221; in index.php</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p185code25'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p18525"><td class="code" id="p185code25"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># If the domain is ***.dev, ***.local or stage.**** then run site in developer mode and turn on error reporting
</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><a href="http://www.php.net/in_array"><span style="color: #990000;">in_array</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_HOST'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.dev'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ocal'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">||</span> <a href="http://www.php.net/strstr"><span style="color: #990000;">strstr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'HTTP_HOST'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'stage.'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	Mage<span style="color: #339933;">::</span><span style="color: #004000;">setIsDeveloperMode</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<a href="http://www.php.net/ini_set"><span style="color: #990000;">ini_set</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'display_errors'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2>2. Enable logging</h2>
<p>Magento has a built-in logging method that allows you to log any variable type to a log file.  This is very helpful when building Magento modules, as you can easily inspect data structures, without having to open a debugging session to inspect the variables in local scope.  By default, logging is turned off in Magento.  To enable logging, go to the &#8220;Developer&#8221; tab on the &#8220;System > Configuration&#8221; page.  Change the &#8220;Enabled&#8221; select list under the &#8220;Log Settings&#8221; section to &#8220;Yes&#8221; and then save the page.</p>
<p>You can log variables to the Magento log using the following code:  Mage::log($variable);  By default, logs are stored in var/log/system.log</p>
<p>Here are some example usages of Mage::log()</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p185code26'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p18526"><td class="code" id="p185code26"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Log data from a Model
</span><span style="color: #000088;">$model</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'catalog/product'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Mage<span style="color: #339933;">::</span><a href="http://www.php.net/log"><span style="color: #990000;">log</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Log data from a Collection
</span><span style="color: #000088;">$collection</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getResourceModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'catalog/product_collection'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addAttributeToSelect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'*'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Mage<span style="color: #339933;">::</span><a href="http://www.php.net/log"><span style="color: #990000;">log</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$collection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getItems</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Log data from array
</span><span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'bar'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'foo'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Mage<span style="color: #339933;">::</span><a href="http://www.php.net/log"><span style="color: #990000;">log</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>If you&#8217;re developing on a Mac, I&#8217;d recommend opening the system.log file with the Console app.  If you&#8217;re on a *nix based machine, you &#8220;tail&#8221; the latest contents of the log file using the following bash command:<br />
 tail -f</p>
<p>/var/system.log</p>
<p><br class="spacer_" /></p>
<h2>3. Enhance error backtraces</h2>
<p>All of our developers use <a href="http://www.xdebug.org/index.php">xdebug</a> as a part of their Apache configuration.  Xdebug has two main benefits: (1) It allows us to use PDT to debug PHP applications. (2) It overrides the default PHP error messages with detailed, fully customizable error backtraces.  You can see an example backtrace below:</p>
<p><a href="http://classyllama.com/wp-content/uploads/2009/12/Screen-shot-2009-12-30-at-8.05.52-AM.png"><img class="alignleft size-large wp-image-191" title="Xdebug Error Backtrace" src="http://classyllama.com/wp-content/uploads/2009/12/Screen-shot-2009-12-30-at-8.05.52-AM-718x398.png" alt="Xdebug Error Backtrace" width="718" height="398" /></a></p>
<p>This is what that error would look like without xdebug:</p>
<p><a href="http://classyllama.com/wp-content/uploads/2009/12/Screen-shot-2009-12-30-at-8.10.01-AM.png"><img class="alignleft size-large wp-image-193" title="Generic Magento Error" src="http://classyllama.com/wp-content/uploads/2009/12/Screen-shot-2009-12-30-at-8.10.01-AM-718x101.png" alt="Generic Magento Error" width="718" height="101" /></a></p>
<p>Magento has built-in error and exception handling.  Since errors are being handled by Magento, we have to modify a core file to make Magento let PHP/xdebug handle the displaying of the messages.</p>
<p>In a future blog post, will cover how to make Magento let xdebug handle exceptions</p>
<p>In app/code/core/Mage/Core/Model/App.php, replace the setErrorHandler() method with the setErrorHandler() method below:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p185code27'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p18527"><td class="code" id="p185code27"><pre class="php" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setErrorHandler<span style="color: #009900;">&#40;</span><span style="color: #000088;">$handler</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// HACK: Magento should only handle errors if developer mode is off</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>Mage<span style="color: #339933;">::</span><span style="color: #004000;">getIsDeveloperMode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        	<a href="http://www.php.net/set_error_handler"><span style="color: #990000;">set_error_handler</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handler</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// END HACK</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Modifying core Magento files is never recommended, but if Magento gets upgraded and this change gets overridden, there won&#8217;t be an issue, since it&#8217;s not critical for the site to function.</p>
<h2>Summary</h2>
<p>Hopefully these few tips will help you in your Magento development.  If you have any general tips for Magento development, I&#8217;d love to hear about them.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/magento-initial-setup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Shortening Increment ID length for Orders, Invoices, and Shipments</title>
		<link>http://classyllama.com/development/magento-development/shortening-increment-id-length-for-orders-invoices-and-shipments/</link>
		<comments>http://classyllama.com/development/magento-development/shortening-increment-id-length-for-orders-invoices-and-shipments/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 02:01:20 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=171</guid>
		<description><![CDATA[We recently had a client who needed to shorten the default Magento Increment ID length from the default 9 characters (eg 100000000) to 6 characters.  This can be accomplished by modifying the &#8220;increment_pad_length&#8221; in the &#8220;eav_entity_type&#8221; for whatever entity you&#8217;re wanting to modify.  Here is a screenshot of the resulting table:


If you&#8217;re wanting to change [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/shortening-increment-id-length-for-orders-invoices-and-shipments/" title="Shortening Increment ID length for Orders, Invoices, and Shipments"><img src="http://classyllama.com/wp-content/uploads/2009/10/magento_shorten_increment_id-718x80.jpg" alt="" class="feed-image" /></a><p>We recently had a client who needed to shorten the default Magento Increment ID length from the default 9 characters (eg 100000000) to 6 characters.  This can be accomplished by modifying the &#8220;increment_pad_length&#8221; in the &#8220;eav_entity_type&#8221; for whatever entity you&#8217;re wanting to modify.  Here is a screenshot of the resulting table:</p>
<p><a href="http://classyllama.com/wp-content/uploads/2009/10/magento_shorten_increment_id.jpg"><img class="alignleft size-large wp-image-173" title="magento_shorten_increment_id" src="http://classyllama.com/wp-content/uploads/2009/10/magento_shorten_increment_id-718x337.jpg" alt="magento_shorten_increment_id" width="718" height="337" /></a></p>
<p><br class="spacer_" /></p>
<p>If you&#8217;re wanting to change the number from which Magento starts counting orders/invoices/shipments, or wanting to change the prefix for those entities, check out this great post by Timothy at Elias: http://eliasinteractive.com/blog/magento-ecommerce-how-to-reset-all-test-order-information-and-set-unique-prefix-for-orders-invoices-shipments-and-credit-memos/</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/shortening-increment-id-length-for-orders-invoices-and-shipments/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using ShipWorks with Magento (USPS, UPS, Fedex Shipping integration)</title>
		<link>http://classyllama.com/magento/management/using-shipworks-with-magento-usps-ups-fedex-shipping-integration/</link>
		<comments>http://classyllama.com/magento/management/using-shipworks-with-magento-usps-ups-fedex-shipping-integration/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 21:04:12 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=99</guid>
		<description><![CDATA[In this post we will be exploring the integration of Interapptive&#8217;s ShipWorks with Magento.
ShipWorks is a Windows-only desktop application that integrates a number of different shopping carts with the most common shipping services.  It uses the Microsoft SQL server as it&#8217;s data storage engine, allowing it be installed on multiple computers on the same network.
ShipWorks [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/management/using-shipworks-with-magento-usps-ups-fedex-shipping-integration/" title="Using ShipWorks with Magento (USPS, UPS, Fedex Shipping integration)"><img src="http://classyllama.com/wp-content/uploads/2009/08/shipworks_integration.jpg" alt="" class="feed-image" /></a><h2><img class="alignnone size-full wp-image-128" title="shipworks_integration" src="http://classyllama.com/wp-content/uploads/2009/08/shipworks_integration.jpg" alt="shipworks_integration" width="718" height="80" /></h2>
<p>In this post we will be exploring the integration of <a href="http://www.interapptive.com/">Interapptive&#8217;s ShipWorks</a> with Magento.</p>
<p>ShipWorks is a <a title="View technical requirements" href="http://www.interapptive.com/shipworks/requirements.html">Windows-only desktop</a> application that integrates a number of different shopping carts with the most common shipping services.  It uses the Microsoft SQL server as it&#8217;s data storage engine, allowing it be installed on multiple computers on the same network.</p>
<p>ShipWorks currently has support for the following shipping methods:</p>
<ul>
<li>UPS (direct integration)</li>
<li>UPS Worldship</li>
<li>DHL (direct integration)</li>
<li>Fedex</li>
<li>USPS (Label printing, w/out postage)</li>
<li>USPS (via Stamps.com desktop application &#8211; domestic shipping only)</li>
<li>USPS (via <a href="http://www.endicia.com/default.cfm?referredby=a09p">Endicia</a> desktop application)</li>
</ul>
<h2>Benefits of using ShipWorks</h2>
<ul>
<li>Fast shipping fulfillment</li>
<li>Less error-prone than copy-and-pasting</li>
<li>Integration with multiple different shipping methods</li>
<li>Low cost (max. of $49.95/mo &#8211; <a href="http://www.interapptive.com/shipworks/pricing.html">see pricing</a>)</li>
</ul>
<h2>Disadvantages</h2>
<ul>
<li>Windows-only (this is a common trend with shipping management software)</li>
<li>Desktop-based (as opposed to web-based)</li>
</ul>
<h2>Typical Magento/ShipWorks Order Fulfillment Workflow</h2>
<p>Here are the steps a typical order fulfillment process will look like, once the Magento/ShipWorks integration is completed:</p>
<ol>
<li>Download new orders from Magento by going to &#8220;Order &gt; Download Orders&#8221; in Magento.  This will download all orders since the last order download.</li>
<li>Select all orders that aren&#8217;t marked as &#8220;Closed&#8221; or &#8220;Complete&#8221;.  You can create filters in ShipWorks that will only show orders that match certain parameters.  If you offer multiple shipping providers (eg, UPS &amp; Fedex), you&#8217;ll want to select and process orders from each shipping  provider separately.</li>
<li>Click the button on the toolbar for the shipping provider associated with the selected orders.</li>
<li>You&#8217;ll then customize the shipping options (delivery confirmation, insurance, etc&#8230;) for the orders.  You can do this individually or as a group.
<ol>
<li>Note:  I did notice that when you open the shipping label dialog, ShipWorks doesn&#8217;t properly associate shipping services imported from Magento to their respective service type in.  For example, when you select three orders, one with &#8220;USPS Priority&#8221; and the others with &#8220;USPS First-Class&#8221; mail, the &#8220;USPS Priority&#8221; option is selected for all orders.  Here is a <a href="http://classyllama.com/wp-content/uploads/2009/08/shipping_service_example.png" target="_blank">screenshot</a> demonstrating this.</li>
</ol>
</li>
<li>Once you&#8217;re done customizing the shipping options, you&#8217;ll print the shipping labels.</li>
<li>Once an order is shipped, it will be marked as &#8220;Complete&#8221; in Magento.  A <a href="http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_s_guide/chapter_8#shipment_options">Shipment</a> will also be created that will be associated with the associated <a href="http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_s_guide/chapter_8#overview_of_order_functionality">Order</a> and <a href="http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_s_guide/chapter_8#invoice_options">Invoice</a>.  If a tracking number was provided from the associated shipping service, it will be added to the Shipment.  This will allow a customer to login to the &#8220;My Account&#8221; section of the Magento store and see that their order has been shipped.</li>
<li>ShipWorks has the ability to send shipping confirmation emails directly to the customer.  This may work fine for many merchants, but there will be those that want Magento to send the shipment confirmation email.  Based on my perusal of shipworks.php file, it doesn&#8217;t look like a shipment notification email is sent from Magento when a shipment is created.  If a merchant wants to have all emails sent from Magento, it would require a small change to be made to the shipworks.php file.</li>
</ol>
<h2>Alternative Solutions for Integrating Magento with UPS, USPS, or Fedex</h2>
<p>There are alternatives to using ShipWorks.  Here are a few alternatives.  If you know of any integration methods that aren&#8217;t listed here, please let me know and I&#8217;ll add them to the list.</p>
<ul>
<li><a href="http://www.magentocommerce.com/extension/862/zenprint-api-shipping-module">Fedex/UPS Shipping Label Module for Magento</a> (<a href="http://www.magentocommerce.com/boards/viewthread/31139/">configuration instructions</a>)</li>
<li><a href="http://www.magentocommerce.com/wiki/groups/207/fedex_ship_manager_configuration">Manual Fedex Shipping Manager integration instructions</a></li>
<li><a href="http://www.magentocommerce.com/wiki/groups/207/endicia_galaxy_ship_integration">Manual Endicia Galaxy Ship integration proof-of-concept</a></li>
<li><a href="http://www.atandra.com/quickbooks-magento-integration-thub.html">T-Hub Magento/Quickbooks/Shipping Manager ($299-$996) </a><a href="http://www.webgility.com/quickbooks-integration-magento.php"></a></li>
<li><a href="http://www.webgility.com/quickbooks-integration-magento.php">Webgility Magento/Quickbooks/Shipping Manager ($450-$1,025)</a></li>
<li><a href="http://www.stoneedge.com/">StoneEdge ($1,995)</a></li>
<li><a href="http://www.magentocommerce.com/extension/2460">Shipper 3 for Magento</a></li>
</ul>
<h2>Installation &#8211; Magento Script</h2>
<p>In order to install the Magento script for ShipWorks, all you have to do is copy the <a href="http://www.interapptive.com/shipworks/download.php?file=magento">provided shipworks.php</a> file into your Magento installation directory.</p>
<h2>Installation &#8211; ShipWorks</h2>
<p>Here are screenshots of the ShipWorks installation process:</p>
<div id="attachment_104" class="wp-caption alignnone" style="width: 531px"><a href="http://classyllama.com/wp-content/uploads/2009/08/Finder.jpg"><img class="size-full wp-image-104" title="Initial Setup Screen" src="http://classyllama.com/wp-content/uploads/2009/08/Finder.jpg" alt="Initial Setup Screen" width="521" height="402" /></a><p class="wp-caption-text">Initial Setup Screen</p></div>
<div id="attachment_105" class="wp-caption alignnone" style="width: 525px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-36.jpg"><img class="size-full wp-image-105" title="Installation Location" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-36.jpg" alt="Installation Location" width="515" height="402" /></a><p class="wp-caption-text">Installation Location</p></div>
<div id="attachment_106" class="wp-caption alignnone" style="width: 524px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-35.jpg"><img class="size-full wp-image-106" title="Database Location Selection" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-35.jpg" alt="Database Location Selection" width="514" height="403" /></a><p class="wp-caption-text">Database Location Selection</p></div>
<p>If you choose the &#8220;Connect to and existing ShipWorks&#8221; database, you&#8217;ll see the following:</p>
<div id="attachment_107" class="wp-caption alignnone" style="width: 525px"><a href="http://classyllama.com/wp-content/uploads/2009/08/Existing_Sql_Server.jpg"><img class="size-full wp-image-107" title="SQL Server Selection" src="http://classyllama.com/wp-content/uploads/2009/08/Existing_Sql_Server.jpg" alt="SQL Server Selection" width="515" height="403" /></a><p class="wp-caption-text">SQL Server Selection</p></div>
<p>If you choose the &#8220;Create a new ShipWorks database&#8221; option, you&#8217;ll see this:</p>
<div class="mceTemp">
<dl id="attachment_108" class="wp-caption " style="width: 524px;">
<dt><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-34.jpg"><img title="You can either install the packaged version of Microsoft SQL Version, or you can use an existing installation" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-34.jpg" alt="You can either install the packaged version of Microsoft SQL Version, or you can use an existing installation" width="514" height="400" /></a></dt>
<dd>You can either install the packaged version of Microsoft SQL Version, or you can use an existing installation</dd>
</dl>
</div>
<div id="attachment_111" class="wp-caption alignnone" style="width: 523px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-28.jpg"><img class="size-full wp-image-111" title="ShipWorks connects to the Interapptive servers to download the latest version" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-28.jpg" alt="ShipWorks connects to the Interapptive servers to download the latest version" width="513" height="402" /></a><p class="wp-caption-text">ShipWorks connects to the Interapptive servers to download the latest version</p></div>
<div class="mceTemp">
<dl id="attachment_110" class="wp-caption " style="width: 525px;">
<dt><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-29.jpg"><img title="You'll create a SQL account on your newly installed server" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-29.jpg" alt="You'll create a SQL account on your new server" width="515" height="402" /></a></dt>
<dd>You&#8217;ll create an SQL account on your newly installed server</dd>
</dl>
</div>
<div id="attachment_112" class="wp-caption alignnone" style="width: 523px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-26.jpg"><img class="size-full wp-image-112" title="After installing MSDE (SQL Server Desktop Engine) and restarting your computer, you'll create a database" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-26.jpg" alt="After installing MSDE (SQL Server Desktop Engine) and restarting your computer, you'll create a database" width="513" height="404" /></a><p class="wp-caption-text">After installing MSDE (SQL Server Desktop Engine) and restarting your computer, you&#39;ll create a database</p></div>
<div id="attachment_113" class="wp-caption alignnone" style="width: 523px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-25.jpg"><img class="size-full wp-image-113" title="Setup ShipWorks user account" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-25.jpg" alt="Setup ShipWorks user account" width="513" height="401" /></a><p class="wp-caption-text">Setup ShipWorks user account</p></div>
<div id="attachment_114" class="wp-caption alignnone" style="width: 519px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-24.jpg"><img class="size-full wp-image-114" title="Software Licensing Screen" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-24.jpg" alt="Software Licensing Screen" width="509" height="429" /></a><p class="wp-caption-text">Software Licensing Screen</p></div>
<div id="attachment_116" class="wp-caption alignnone" style="width: 521px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-22.jpg"><img class="size-full wp-image-116" title="Magento Store Setup Wizard" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-22.jpg" alt="Magento Store Setup Wizard" width="511" height="428" /></a><p class="wp-caption-text">Magento Store Setup Wizard</p></div>
<div id="attachment_117" class="wp-caption alignnone" style="width: 522px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-20.jpg"><img class="size-full wp-image-117" title="Shipment Settings" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-20.jpg" alt="Shipment Settings" width="512" height="431" /></a><p class="wp-caption-text">Shipment Settings</p></div>
<div id="attachment_118" class="wp-caption alignnone" style="width: 728px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-19.jpg"><img class="size-medium wp-image-118" title="ShipWorks will use these settings to send emails to customers (if you configure it to send email notifications)" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-19-718x550.jpg" alt="ShipWorks will use these settings to send emails to customers (if you configure it to send email notifications)" width="718" height="550" /></a><p class="wp-caption-text">ShipWorks will use these settings to send emails to customers (if you configure it to send email notifications)</p></div>
<h2>ShipWorks Screenshots</h2>
<p>Here are some screenshots of ShipWorks in action.  More screenshots/screencasts can be found on the <a href="http://www.interapptive.com/shipworks/quicktour.html">Interapptive site</a>.</p>
<div id="attachment_119" class="wp-caption alignnone" style="width: 728px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-15.jpg"><img class="size-medium wp-image-119" title="Once you connect ShipWorks to Magento, you can &quot;Orders &gt; Download Orders&quot; to download all orders from Magento" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-15-718x559.jpg" alt="Once you connect ShipWorks to Magento, you can &quot;Orders &gt; Download Orders&quot; to download all orders from Magento" width="718" height="559" /></a><p class="wp-caption-text">Once you connect ShipWorks to Magento, you can &quot;Orders &gt; Download Orders&quot; to download all orders from Magento</p></div>
<div id="attachment_120" class="wp-caption alignnone" style="width: 728px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-14.jpg"><img class="size-medium wp-image-120" title="Orders View - You can view all orders that have been imported from Magento (customer data is blurred).  " src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-14-718x434.jpg" alt="Orders View - You can view all orders that have been imported from Magento (customer data is blurred).  " width="718" height="434" /></a><p class="wp-caption-text">Orders View - You can view all orders that have been imported from Magento (customer data is blurred).  </p></div>
<div id="attachment_121" class="wp-caption alignnone" style="width: 728px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-13.jpg"><img class="size-medium wp-image-121" title="Customer View - See all customers that are associated with the imported orders.  ShipWorks groups all orders for a specific customer together, allowing you to see an entire order history for a customer." src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-13-718x435.jpg" alt="Customer View - See all customers that are associated with the imported orders.  ShipWorks groups all orders for a specific customer together, allowing you to see an entire order history for a customer." width="718" height="435" /></a><p class="wp-caption-text">Customer View - See all customers that are associated with the imported orders.  ShipWorks groups all orders for a specific customer together, allowing you to see an entire order history for a customer.</p></div>
<div id="attachment_122" class="wp-caption alignnone" style="width: 728px"><a href="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-10.jpg"><img class="size-medium wp-image-122" title="Here is an example of 7 orders being prepared to print labels using Endicia's Dazzle application" src="http://classyllama.com/wp-content/uploads/2009/08/VirtualBox-VM-10-718x452.jpg" alt="Here is an example of 7 orders being prepared to print labels using Endicia's Dazzle application" width="718" height="452" /></a><p class="wp-caption-text">Here is an example of 7 orders being prepared to print labels using Endicia&#39;s Dazzle application</p></div>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/management/using-shipworks-with-magento-usps-ups-fedex-shipping-integration/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Magento&#8217;s &#8220;Global Record Search&#8221; Explained</title>
		<link>http://classyllama.com/magento/management/magento-global-record-search-explained/</link>
		<comments>http://classyllama.com/magento/management/magento-global-record-search-explained/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 23:29:20 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=77</guid>
		<description><![CDATA[Magento has a little-publicized feature called the &#8220;Global Record Search&#8221;, located at the top right of every admin page.  It allows you to quickly search for Products, Customers, and Orders in the system. If you need to quickly find one of these types of records, using the Global Record Search is much quicker than [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/management/magento-global-record-search-explained/" title="Magento's "Global Record Search" Explained"><img src="http://classyllama.com/wp-content/uploads/2009/08/mag_global_record_search.jpg" alt="" class="feed-image" /></a><p>Magento has a little-publicized feature called the &#8220;Global Record Search&#8221;, located at the top right of every admin page.  It allows you to quickly search for Products, Customers, and Orders in the system. If you need to quickly find one of these types of records, using the Global Record Search is much quicker than going to the Product, Customer, or Order listing pages.  Here are the attributes you can use to search:</p>
<ul>
<li>Product Name</li>
<li>Customer First Name</li>
<li>Customer Last Name</li>
<li>Customer Company</li>
<li>Customer Postal Code</li>
<li>Customer Phone Number</li>
<li>Orders by Billing or Shipping address (using the same information as Customer fields listed above)</li>
<li>Order Number (Increment ID) &#8211; must be exact number, no partial matches</li>
</ul>
<div id="attachment_78" class="wp-caption alignnone" style="width: 728px"><a href="http://classyllama.com/wp-content/uploads/2009/08/magento_admin_global_record_search.jpg" class="lightbox"><img class="size-full wp-image-78" title="magento_admin_global_record_search lightbox" src="http://classyllama.com/wp-content/uploads/2009/08/magento_admin_global_record_search.jpg" alt="magento_admin_global_record_search" width="718" height="348" /></a><p class="wp-caption-text">Example Global Record Search Query</p></div>
<p>Unfortunately, you&#8217;re not able to search by Product ID or Customer ID.  This functionality would be simple for a Magento developer to add. It would require overriding one of the following classes: <a href="http://docs.magentocommerce.com/Mage_Adminhtml/Mage_Adminhtml_Model_Search_Catalog.html">Mage_Adminhtml_Model_Search_Catalog</a> or <a href="http://docs.magentocommerce.com/Mage_Adminhtml/Mage_Adminhtml_Model_Search_Customer.html">Mage_Adminhtml_Model_Search_Customer</a>.</p>
<p>Hope that helps in the management of your Magento store!</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/management/magento-global-record-search-explained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Comparison with Proprietary E-Commerce Solutions</title>
		<link>http://classyllama.com/magento/magento-comparison-with-proprietary-e-commerce-solutions/</link>
		<comments>http://classyllama.com/magento/magento-comparison-with-proprietary-e-commerce-solutions/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 00:10:58 +0000</pubDate>
		<dc:creator>ktheobald</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[proprietary]]></category>
		<category><![CDATA[roy rubin]]></category>
		<category><![CDATA[varien]]></category>

		<guid isPermaLink="false">http://classyllama.com/?p=72</guid>
		<description><![CDATA[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, &#8220;What are the pros and cons of Magento compared [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/magento/magento-comparison-with-proprietary-e-commerce-solutions/" title="Magento Comparison with Proprietary E-Commerce Solutions"><img src="http://classyllama.com/wp-content/uploads/2009/07/magento_vs.jpg" alt="" class="feed-image" /></a><p>I recently came across <a title="Roy's Response" href="http://bit.ly/roys-response" target="_blank">an answer on a LinkedIn question</a>, 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.</p>
<p>The question was asked, &#8220;What are the pros and cons of Magento compared to middle and high end e-commerce proprietary solutions?&#8221;</p>
<p>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&#8217;t work for mega-sized e-commerce deployments.</p>
<p>Here&#8217;s how Roy Rubin responds:</p>
<p>&#8221;<br />
Thanks for raising the topic. Despite my bias (clearly), a few clarifications to address here:</p>
<p>1) CMS &#8211; 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.</p>
<p>2) Customization &#8211; 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&#8217; rich feature set.</p>
<p>3) Templating &#8211; It does indeed take longer to template Magento initially (comparing to other open source solutions not proprietary). Magento&#8217;s architecture is such that it allows for template hierarchies, reuse and all this without effecting upgrades. It is to the retailers benefit/advantage.</p>
<p>4) Integration &#8211; 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.</p>
<p>5) Target Market &#8211; Magento today is consumed by all size retailers, including Fortune 500&#8217;s, leading market brands, and billion dollar online companies. It&#8217;s important to note that on the upper end, we have retailers doing tens of thousands of orders a day.</p>
<p>Hope this helps and I look forward to reading additional feedback.</p>
<p>&#8221;</p>
<p>I&#8217;ve heard a lot of people complain about how complicated Magento is, but it&#8217;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&#8217;s one of the most user-friendly, manageable systems available for any size sales site.</p>
<p>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&#8217;s free?</p>
<p><em><a title="Classy Llama Studios" href="http://www.classyllama.com">Classy Llama Studios</a> is a consulting and development firm exclusively focused on expert Magento development and customization.  Contact us to discuss your project:  417.597.4769</em></p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/magento/magento-comparison-with-proprietary-e-commerce-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Admin Theme</title>
		<link>http://classyllama.com/development/magento-development/custom-adminhtml-theme/</link>
		<comments>http://classyllama.com/development/magento-development/custom-adminhtml-theme/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 18:16:40 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://stage.classyllama.com/?p=21</guid>
		<description><![CDATA[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&#8217;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 &#8211; &#8220;Admin Theme&#8221; module
Ivan Weiler [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/custom-adminhtml-theme/" title="Custom Admin Theme"><img src="http://classyllama.com/wp-content/uploads/2009/07/cls_admin_header.jpg" alt="" class="feed-image" /></a><h2>Our Objective</h2>
<p>If you need to make adjustments to the adminhtml theme files (template, layout, or skin), you have two options for accomplishing this.</p>
<p>Here&#8217;s an example of what we would want to accomplish:<br />
Files in<br />
/app/design/adminhtml/default/custom_admin_theme/<br />
need to override files in:<br />
/app/design/adminhtml/default/default/</p>
<p>Likewise, files in<br />
/skin/adminhtml/default/custom_admin_theme/<br />
need to override files in:<br />
/skin/adminhtml/default/default/</p>
<p>The following two options accomplish this functionality:</p>
<h2>Option 1 &#8211; &#8220;Admin Theme&#8221; module</h2>
<p>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 <a href="http://www.magentocommerce.com/extension/reviews/module/1086/admin-theme">here</a> (note: this module is currently in Alpha, so you&#8217;ll need to modify the setting of your downloader before being able to download it). Here is a screenshot of this module in action:</p>
<a class="lightbox" href="http://stage.classyllama.com/wp-content/uploads/2009/07/custom_admin_theme.png"><img class="size-full wp-image-23" title="&quot;Admin Theme&quot; Screenshot" src="http://stage.classyllama.com/wp-content/uploads/2009/07/custom_admin_theme.png" alt="&quot;Admin Theme&quot; Screenshot"  /></a>
<h2>Option 2 &#8211; Add XML to your module&#8217;s config file</h2>
<p>If you don&#8217;t want to install a module just to enable this functionality, you can add the following XML code inside the <config></config> 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.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p21code30'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2130"><td class="code" id="p21code30"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;stores<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;admin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #808080; font-style: italic;">&lt;!-- custom admin theme --&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;design<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;theme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>custom_admin_theme<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/theme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/design<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/admin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/stores<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>	
...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>The code above overrides the XML from the /app/code/core/Mage/Adminhtml/etc/config.xml lines 410-422</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p21code31'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p2131"><td class="line_numbers"><pre>410
411
412
413
414
415
416
417
418
419
420
421
422
</pre></td><td class="code" id="p21code31"><pre class="xml" style="font-family:monospace;">    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;stores<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;admin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #808080; font-style: italic;">&lt;!-- default admin design package and theme --&gt;</span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;design<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;package<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>default<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/package<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;theme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>default<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/theme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/design<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/admin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/stores<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/custom-adminhtml-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable Template/Block Hints in Admin Panel</title>
		<link>http://classyllama.com/development/magento-development/enable-templateblock-hints-in-admin-panel/</link>
		<comments>http://classyllama.com/development/magento-development/enable-templateblock-hints-in-admin-panel/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 14:22:43 +0000</pubDate>
		<dc:creator>ehansen</dc:creator>
				<category><![CDATA[Magento Development]]></category>

		<guid isPermaLink="false">http://stage.classyllama.com/?p=3</guid>
		<description><![CDATA[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&#8217;s admin panel uses the exact same design pattern as the frontend (layouts + blocks + templates).  If you&#8217;ve ever done any modifications to the Magento admin [...]]]></description>
			<content:encoded><![CDATA[<a href="http://classyllama.com/development/magento-development/enable-templateblock-hints-in-admin-panel/" title="Enable Template/Block Hints in Admin Panel"><img src="http://classyllama.com/wp-content/uploads/2009/07/magento_hints_turned_on-718x80.png" alt="Magento Admin - Hints Turned On" class="feed-image" /></a><p>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.</p>
<p>Magento&#8217;s admin panel uses the exact same design pattern as the frontend (layouts + blocks + templates).  If you&#8217;ve ever done any modifications to the Magento admin panel, you&#8217;ve probably tried to turn on template/block hints for the admin panel.  The only problem is, Magento doesn&#8217;t have built-in support for this.  I did some digging around and found out how to enable this feature in the admin panel.</p>
<h2>Step 1 &#8211; Connect to database</h2>
<p>Using your favorite database administration tool, connect to your Magento database.  These are tools I&#8217;ve used and recommend:  <a href="http://www.navicat.com/en/products/navicat_mysql/mysql_overview.html" target="_blank">Navicat</a> ($129),  <a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank">MySQL Query Browser</a> (Free), <a href="http://www.sequelpro.com/" target="_blank">Sequel Pro</a> (Mac Only &#8211; Free), or <a href="http://www.phpmyadmin.net/home_page/index.php" target="_blank">phpMyAdmin</a> (free).</p>
<h2>Step 2 &#8211; Enter values into &#8216;core_config_data&#8217; table</h2>
<p>Run the following query on the Magento database:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p3code34'); return false;">View Code</a> MYSQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p334"><td class="code" id="p3code34"><pre class="mysql" style="font-family:monospace;"><a href="http://search.mysql.com/search?site=refman-51&amp;q=INSERT&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-51&amp;q=INTO&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">INTO</span></a> core_config_data <span style="color: #FF00FF;">&#40;</span>scope<span style="color: #000033;">,</span> scope_id<span style="color: #000033;">,</span> path<span style="color: #000033;">,</span> <a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUE&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">value</span></a><span style="color: #FF00FF;">&#41;</span>
<a href="http://search.mysql.com/search?site=refman-51&amp;q=VALUES&amp;lr=lang_en"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'default'</span><span style="color: #000033;">,</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span> <span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints'</span><span style="color: #000033;">,</span> <span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'default'</span><span style="color: #000033;">,</span> <span style="color: #008080;">0</span><span style="color: #000033;">,</span> <span style="color: #008000;">'dev/debug/template<span style="color: #008080; font-weight: bold;">_</span>hints<span style="color: #008080; font-weight: bold;">_</span>blocks'</span><span style="color: #000033;">,</span> <span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></td></tr></table></div>

<h2>Step 3 &#8211; Test in admin panel</h2>
<p>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:</p>
<div id="attachment_10" class="wp-caption alignnone" style="width: 957px"><a class="lightbox" href="http://stage.classyllama.com/wp-content/uploads/2009/07/magento_hints_turned_on.png"><img class="size-full wp-image-10" title="Magento Admin - Hints Turned On" src="http://stage.classyllama.com/wp-content/uploads/2009/07/magento_hints_turned_on.png" alt="Magento Admin - Hints Turned On" width="947" height="592" /></a><p class="wp-caption-text">Magento Admin - Hints Turned On</p></div>
<h2>Disabling Hints</h2>
<p>When you&#8217;ve finished development want to turn off template hints in the admin panel, open the core_config_data table and change the &#8216;value&#8217; column of the two row you inserted to &#8220;0&#8243;.</p>
<h2>Why does this work?</h2>
<p>For those of you who are like me and want to know the &#8220;why&#8221; as well as the &#8220;how&#8221;, I&#8217;m going to go over why this works.  Here is the Magento code that checks to see if template/blocks hints are enabled:</p>
<h5>File: /app/code/core/Mage/Core/Block/Template.php (Magento 1.3.2)</h5>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p3code35'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p335"><td class="line_numbers"><pre>109
110
111
112
113
114
115
116
117
118
</pre></td><td class="code" id="p3code35"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getShowTemplateHints<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/is_null"><span style="color: #990000;">is_null</span></a><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$_showTemplateHints</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$_showTemplateHints</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getStoreConfig</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'dev/debug/template_hints'</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">&amp;&amp;</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">helper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isDevAllowed</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$_showTemplateHintsBlocks</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getStoreConfig</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'dev/debug/template_hints_blocks'</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">&amp;&amp;</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">helper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'core'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isDevAllowed</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$_showTemplateHints</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The &#8220;Mage::getStoreConfig&#8221; 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 &#8220;Default Scope&#8221; are loaded.</p>
<p>Magento only allows you to turn on hints when you&#8217;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 &#8220;null&#8221; because that config value isn&#8217;t set in the &#8220;Default Config&#8221; scope.  Running the MySQL query above adds the hint config values to the &#8220;Default Config&#8221; scope.  Here is a screenshot showing the settings for turning on the hints &#8211; notice that the &#8220;Main Website&#8221; configuration scope is selected.</p>
<div id="attachment_11" class="wp-caption alignnone" style="width: 936px"><a href="http://stage.classyllama.com/wp-content/uploads/2009/07/magento_config_scope_selection.png" class="lightbox"><img class="size-full wp-image-11" title="Magento Config Scope Selection" src="http://stage.classyllama.com/wp-content/uploads/2009/07/magento_config_scope_selection.png" alt="Magento Config Scope Selection" width="926" height="261" /></a><p class="wp-caption-text">Magento Config Scope Selection</p></div>
<h2>Conclusion</h2>
<p>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 &#8220;Default Scope&#8221;, but decided against it, due to the simplicity of the method outlined in this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://classyllama.com/development/magento-development/enable-templateblock-hints-in-admin-panel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
