<?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>opensourcetutor.com &#187; magento</title>
	<atom:link href="http://www.opensourcetutor.com/tag/magento/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opensourcetutor.com</link>
	<description>On Linux, Web Development, Joomla and Magento commerce</description>
	<lastBuildDate>Sat, 04 Feb 2012 10:27:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to rsync directory structure but not files</title>
		<link>http://www.opensourcetutor.com/2011/08/14/how-to-rsync-directory-structure-but-not-files/</link>
		<comments>http://www.opensourcetutor.com/2011/08/14/how-to-rsync-directory-structure-but-not-files/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 06:59:34 +0000</pubDate>
		<dc:creator>salubrium</dc:creator>
				<category><![CDATA[Linux Administration]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[directories]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://www.opensourcetutor.com/?p=309</guid>
		<description><![CDATA[rsync -av --include='*/' --exclude='*' /src/path /destination/path
An example where we use it is when building Magento templates and themes, we copy the directory structure across but not the files so that when we need to, we can copy a file across from the base theme without having to create the directory structure before copying the file:
rsync -av --include='*/' --exclude='*' app/design/frontend/base/default/ app/design/frontend/default/default/
]]></description>
			<content:encoded><![CDATA[<p><code>rsync -av --include='*/' --exclude='*' /src/path /destination/path</code></p>
<p>An example where we use it is when building Magento templates and themes, we copy the directory structure across but not the files so that when we need to, we can copy a file across from the base theme without having to create the directory structure before copying the file:</p>
<p><code>rsync -av --include='*/' --exclude='*' app/design/frontend/base/default/ app/design/frontend/default/default/</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcetutor.com/2011/08/14/how-to-rsync-directory-structure-but-not-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bulk Upload Categories to Magento</title>
		<link>http://www.opensourcetutor.com/2010/03/19/bulk-upload-categories-to-magento/</link>
		<comments>http://www.opensourcetutor.com/2010/03/19/bulk-upload-categories-to-magento/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 09:49:42 +0000</pubDate>
		<dc:creator>salubrium</dc:creator>
				<category><![CDATA[Linux Administration]]></category>
		<category><![CDATA[bulk upload]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.opensourcetutor.com/2010/03/19/bulk-upload-categories-to-magento/</guid>
		<description><![CDATA[



One of those pain points in Magento is bulk uploading Categories. I know there&#8217;s this solution and also this bulk category solution, which are both basically the same thing. I actually feel more comfortable using Python and it also means that I don&#8217;t have to install Zend on my local machine to access the remote API.
One struggle I did get stuck on is the &#8220;Access Denied&#8221; message when connecting. A lot of people are having issues with it. My issue was that I had used the same username for my ...]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-9469051832075629";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
//2007-05-22: opensourcetutor.com
google_ad_channel = "3549963802";
google_color_border = "FFF";
google_color_bg = "FFF";
google_color_link = "333";
google_color_text = "CCCCCC";
google_color_url = "999999";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
One of those pain points in Magento is bulk uploading Categories. I know there&#8217;s <a href="http://www.magentocommerce.com/boards/viewthread/49739/" target="_blank">this solution</a> and also this <a href="http://www.magentocommerce.com/boards/viewthread/6986/" target="_blank">bulk category solution</a>, which are both basically the same thing. I actually feel more comfortable using Python and it also means that I don&#8217;t have to install Zend on my local machine to access the remote API.</p>
<p>One struggle I did get stuck on is the &#8220;Access Denied&#8221; message when connecting. A lot of people are having issues with it. My issue was that I had used the same username for my API access as I use to login to the admin in my testing. As soon as I changed from that, I overcame that issue.</p>
<p>Anyway, I stumbled across this <a href="http://code.google.com/p/python-magento/downloads/list" target="_blank">Python Magento</a> library and saw it had a number of useful functions already in it. So I decided to hack away and add to it.</p>
<p>So far, I have added a function to retrieve the list of categories and write them to a file from the catelog_category.tree api call and finally, as per my original intention, write a function to bulk upload categories from a CSV file.</p>
<p>I&#8217;ve never contributed code to a project before so if I get these changes in, it&#8217;s my first public contribution.. until that happens, you can hit me up for the code and a sample CSV file.</p>
<p>I might add: Python xmlrpc is beautiful to work with and gives a great deal of flexibility for building a gui on top of this. Working with the Magento API was nice also.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcetutor.com/2010/03/19/bulk-upload-categories-to-magento/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Speed up Magento</title>
		<link>http://www.opensourcetutor.com/2009/04/07/how-to-speed-up-magento/</link>
		<comments>http://www.opensourcetutor.com/2009/04/07/how-to-speed-up-magento/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 08:27:30 +0000</pubDate>
		<dc:creator>salubrium</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.opensourcetutor.com/?p=172</guid>
		<description><![CDATA[Having implemented a number of websites now in Magento and being the web hosting provider for them also, it&#8217;s been both challenging and rewarding trying to get Magento running at an acceptable speed.People generally don&#8217;t understand what&#8217;s happening when they say &#8220;my website is slow&#8221;. So, for those of you unfamiliar with benchmarking / understanding what factors to consider when a page loads from a server, we have quite a number of variables.

Your URL you type into a browser, translates to an IP address &#8211; this check should take a ...]]></description>
			<content:encoded><![CDATA[<p>Having implemented a number of websites now in Magento and being the <a href="http://www.serverspacesolutions.com.au/" target="_blank">web hosting provider</a> for them also, it&#8217;s been both challenging and rewarding trying to get Magento running at an acceptable speed.People generally don&#8217;t understand what&#8217;s happening when they say &#8220;my website is slow&#8221;. So, for those of you unfamiliar with benchmarking / understanding what factors to consider when a page loads from a server, we have quite a number of variables.</p>
<ol>
<li>Your URL you type into a browser, translates to an IP address &#8211; this check should take a very, very short time</li>
<li>Your browser then begins to access the web server where your website is hosted to ask for the page you want, this can cause some delay, typically 40-200ms (bottleneck 1.)</li>
<li>In the case of Magento,it uses PHP as the software language that runs the site, so the php begins to execute (bottleneck 2.)</li>
<li>PHP then reaches a part of it&#8217;s code it needs to access the database to retrieve website data and sometimes insert information about who you are. (bottleneck 3.)</li>
<li>The PHP code retrieves the information, does a bit more computing on it (for simplicity, this is still bottleneck 2) and then sends it to your web server</li>
<li>Your webserver can then send it or compress it and then send it to you (bottlneck 4)</li>
<li>The data is sent over the internet to your browser (bottlneck 5)</li>
<li>Your browser must &#8216;render&#8217; the data it receives into an actual web page (bottleneck 6)</li>
</ol>
<p>I will assume you are here specifically for Magento issues, so let&#8217;s get started with the basics. I will make the assumption that your web server is running Apache and you have very little control over that.</p>
<h3>Preparation &#8211; the &#8220;before&#8221;</h3>
<ol>
<li>If you are familiar with the, use <a target="_blank" href="http://www.mozilla.com/">Firefox</a> and the <a target="_blank" href="http://www.getfirebug.com/">Firebug extension</a> and the <a target="_blank" href="http://developer.yahoo.com/yslow/">Yslow extension</a>. Take a screenshot of your statistics.
</li>
<li>Alternatively, what I suggest is to go to <a href="http://analyze.websiteoptimization.com/">WebsiteOptimization</a> if you&#8217;re fairly new to this. You basically enter your URL and click. Print out the page, preferably to PDF before we begin.</li>
</ol>
<h3>Check Magento Caching is turned on (if not developing still)</h3>
<ol>
<li>Login to your Magento Admin</li>
<li>go to System -> Cache Management</li>
<li>in the dropdown box, choose &#8220;enable&#8221; and tick all the boxes, then save settings.</li>
</ol>
<h3>Let&#8217;s start simple &#8211; .htaccess and gzip/deflate<br />
</h3>
<ol>
<li>Go to <a href="http://www.whatsmyip.org/mod_gzip_test/">mod_gzip tester</a> and enter your magento site address. If it comes back with a big green tick and says http://yourmagentosite.com is gzipped, then you&#8217;re in business and skip step 2. If not..go to step 2
</li>
<li>Using ftp or ssh, however you access your magento website, go to the root of the site and find your .htaccess file. Scroll down until you see something like:</li>
<p><code>&lt;ifmodule mod_deflate.c&gt;<br />
    # Insert filter<br />
    SetOutputFilter DEFLATE<br />
    # Netscape 4.x has some problems...<br />
    #BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
    # Netscape 4.06-4.08 have some more problems<br />
    BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
    # MSIE masquerades as Netscape, but it is fine<br />
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br />
    # Don't compress images<br />
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
    # Make sure proxies don't deliver the wrong content<br />
    Header append Vary User-Agent env=!dont-vary<br />
&lt;/ifmodule&gt;</code></p>
<li>Make sure it looks like above. A hash in front of the line means it&#8217;s commented out. If your .htaccess file does look like this AND <a href="http://www.whatsmyip.org/mod_gzip_test/">mod_gzip tester</a> is still not showing enabled, you need to talk to your web hosting provider. They may not allow overrides or may not have the deflate module installed or enabled. If it doesn&#8217;t look like the above, remove the hashes from your lines so that it reflects what is above, then retest with <a href="http://www.whatsmyip.org/mod_gzip_test/">mod_gzip tester</a></li>
<li>Take a screenshot / pdf printout of Yslow / websiteoptimizer results. ;)
</li>
</ol>
<h3>Let&#8217;s shrink our javascript</h3>
<ol>
<li>Magento uses A LOT of LARGE javascript libraries and depending on your template, it&#8217;s a good chance that these make up for 50% of your website page size. This should only affect the first page load but it&#8217;s often the first impressions that count, so let&#8217;s shrink it.</li>
<li>For this, we will use the <a target="_blank" href="http://www.magentocommerce.com/extension/457/fooman-speedster">Fooman Speedster Extension</a> from magentoconnect. Click on the &#8220;get extension key&#8221; and then copy the key to your clipboard.</li>
<li>Now go to your magento store admin interface and click on &#8220;System -> Magento Connect -> Magento Connect Manager&#8221;. Enter your admin user/pass to access magento connect manager.
</li>
<li>*Warning &#8211; once you install the extension until you fix your .htaccess, it may break your website*</li>
<li>Paste the extension key to install the extension</li>
<li>Now go to your .htaccess and under the line: #RewriteBase /magento/ add this line
<p><code>RewriteRule ^(index.php/)?minify/([^/]+)(/.*.(js|css))$ lib/minify/m.php?f=$3&amp;amp;d=$2<br />
</code></li>
<li>Save your .htaccess and access your site (it may take a while to load the first time as it minifies and creates it&#8217;s cache.
</li>
<li>**Test your site is working properly**
</li>
<li>Take a screenshot / pdf printout of Yslow / websiteoptimizer results. ;)</li>
</ol>
<h3>Let&#8217;s check our php settings</h3>
<ol>
<li>Create a file called phpinfo.php and enter this information into it.</li>
<li>Check for the following: memory_limit</li>
<li>If it&#8217;s less than 128M, try and add an entry into your .htaccess like so:
</li>
<p><code>php_value memory_limit 128M</code></p>
</ol>
<h3>Finally, MySQL &#8211; for experienced users.<br />
</h3>
<ol>
<li>If you&#8217;re a mysql hero, you don&#8217;t need me to tell you how but we want to try and get the following settings in your my.cnf
</li>
<p><code>query_cache_type = 1<br />
query_cache_size = 32M<br />
query_cache_limit=2M</code></p>
<li>If you don&#8217;t have root access to check /etc/my.cnf (or /etc/mysql/my.cnf) variables, then login to mysql or use phpmyadmin to show variables.
</li>
<p><code>$ mysql -u mysqluser -p magento_database_name<br />
$ mysql&gt; SHOW VARIABLES;</code></p>
<li>If you don&#8217;t have control over your mysql configuration, go knocking on your Web Host&#8217;s support tickets to get them to modify it to suit you or if you&#8217;re in Australia, <a target="_blank" href="http://www.serverspacesolutions.com.au/">check us out</a>
</li>
</ol>
<p>**If you want someone to do this all for you, lodge a support ticket at <a target="_blank" href="https://www.yourwebhostingsupport.com/index.php?_m=tickets&amp;_a=submit">Yourwebhostingsupport</a> with the Subject &#8220;Magento Optimisation&#8221;</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-9469051832075629";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
//2007-05-22: opensourcetutor.com
google_ad_channel = "3549963802";
google_color_border = "FFF";
google_color_bg = "FFF";
google_color_link = "333";
google_color_text = "CCCCCC";
google_color_url = "999999";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/magento" rel="tag">magento</a>, <a class="performancingtags" href="http://technorati.com/tag/optimization" rel="tag">optimization</a>, <a class="performancingtags" href="http://technorati.com/tag/apache" rel="tag">apache</a>, <a class="performancingtags" href="http://technorati.com/tag/mysql" rel="tag">mysql</a>, <a class="performancingtags" href="http://technorati.com/tag/speed" rel="tag">speed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcetutor.com/2009/04/07/how-to-speed-up-magento/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Open Source Ecommerce alternatives to Zencart, OSCommerce and Virtuemart</title>
		<link>http://www.opensourcetutor.com/2008/05/28/open-source-ecommerce-alternatives-to-zencart-oscommerce-and-virtuemart/</link>
		<comments>http://www.opensourcetutor.com/2008/05/28/open-source-ecommerce-alternatives-to-zencart-oscommerce-and-virtuemart/#comments</comments>
		<pubDate>Wed, 28 May 2008 04:47:47 +0000</pubDate>
		<dc:creator>salubrium</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Finance]]></category>
		<category><![CDATA[Internet Goodness]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[satchmo]]></category>

		<guid isPermaLink="false">http://www.opensourcetutor.com/2008/05/28/open-source-ecommerce-alternatives-to-zencart-oscommerce-and-virtuemart/</guid>
		<description><![CDATA[A couple of new open source Ecommerce products out and about that will hopefully see the end of the monstrosity called OSCommerce and it&#8217;s less ugly incarnations &#8211; 
Whilst they have served me well in the past and I may feel tempted to use Virtuemart for a customer who:
a) Will never ever need any customisations done to itb) Already has a Joomla installation and is very comfortable using Joomla
What&#8217;s the issue with Zencart, OSC or Virtuemart you may ask?
The issue is this. First OSCommerce is a mess. Every single module ...]]></description>
			<content:encoded><![CDATA[<p>A couple of new open source Ecommerce products out and about that will hopefully see the end of the monstrosity called OSCommerce and it&#8217;s less ugly incarnations &#8211; </p>
<p>Whilst they have served me well in the past and I <i>may </i>feel tempted to use Virtuemart for a customer who:</p>
<p>a) Will n<i>ever ever</i> need any customisations done to it<br />b) Already has a Joomla installation and is very comfortable using Joomla</p>
<p>What&#8217;s the issue with Zencart, OSC or Virtuemart you may ask?</p>
<p>The issue is this. First OSCommerce is a mess. Every single module you ever add to it is a hack, making upgrades a pain in the ass. Zencart, being closely related to OSC is not much better. It&#8217;s modularity is a bit better laid out and so you can actually create / install modules with very little hacking, if any BUT it&#8217;s template system still suffers from it&#8217;s OSC origins. It&#8217;s an effort to try and template for them..yes, it&#8217;s possible but does it really have to be that hard? Joomla&#8217;s concept is 1000 times better in regards to templating and Virtuemart excels in this area due to it&#8217;s Joomla foundations.</p>
<p>The big problem with them is when you need to make modifications to the core cart to implement a particular feature a customer wants. We have had situations where a small feature for the client required 144 changes in the files of Virtuemart. As soon as a XSS or other security issue comes to light, we have two options</p>
<ol>
<li>Let it be, cross fingers and hope nothing happens (this really is not an option)</li>
<li>Inform customer, explain risks and give them compelling reasons to update (at their cost)</li>
<li>Our current solution is when we sign contracts with customers, we include a compulsory security updates fee, which means we update their site when new security releases come out. This has worked out best so far but still requires us to explain why we are giving a solution that isn&#8217;t inherently secure to begin with. Microsoft has made this easier to explain (daily updates anyone?) and for the most part, we can kill most XSS / SQL Injection attacks using Apache modsec rules but we really want to get beyond NEEDING to upgrade and therefore NEEDING to patch our mods into new releases of Virtuemart etc.</li>
</ol>
<p>So, without further ado, there looks to be two better alternatives that have come to the rescue recently that look very, very promising though we haven&#8217;t done any work with them yet, so I will report on that later.</p>
<p>In PHP land, we have <a target="_blank" href="http://www.magentocommerce.com/">Magento</a>. A very sexy, professional looking Open Source Ecommerce application that&#8217;s built upon the Zend MVC framework and claims to be able to develop extensions without touching core code. This, hopefully will fix our templating, modification and upgrade woes in a PHP solution. It has SEF URL&#8217;s built-in, google analytics built-in and a mini-CMS of sorts.</p>
<p>In Python land, we have <a target="_blank" href="http://www.satchmoproject.com/">Satchmo</a> an open source ecommerce application built on top of the Django framework, with a reasonable feature set.</p>
<p>As part of my toolbox, my thinking at this point is if we have a customer that needs a standard shop with little to no development work, Magento will be our tool. If the customer has very unique needs, integration with other systems and customisations, we will work with Django.</p>
<p>This is because PHP deployment is so easy, that our only need should be to produce templates in Magento. If development work is needed, deployment and templating become a trivial matter in Satchmo in comparison to the ability to develop in Django &amp; Python.</p>
<p>Would love to hear other&#8217;s experiences with any of the above&#8230; and of course any horror stories (or otherwise with OSC based development)</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourcetutor.com/2008/05/28/open-source-ecommerce-alternatives-to-zencart-oscommerce-and-virtuemart/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

