<?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/"
	>

<channel>
	<title>KERNELHACK.com</title>
	<atom:link href="http://kernelhack.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://kernelhack.com</link>
	<description>lifehacks for squirrels</description>
	<pubDate>Thu, 13 May 2010 13:54:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ShipSync 2.1, now with address validation!</title>
		<link>http://kernelhack.com/?p=488</link>
		<comments>http://kernelhack.com/?p=488#comments</comments>
		<pubDate>Sun, 09 May 2010 22:08:04 +0000</pubDate>
		<dc:creator>dskdskdsk</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[FedEx]]></category>

		<category><![CDATA[Shipping]]></category>

		<category><![CDATA[ShipSync]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=488</guid>
		<description><![CDATA[
This release  adds some exciting features -&#62;

Address validation via FedEx's API (checks if address is valid, checks residential status, and cleans address before saving in Magento's database)
New and improved rate request optimization.   ShipSync now estimates packages based on height, length, width, and weight of items, offering a number of different packaging styles.   This method [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://kernelhack.com/wp-content/uploads/2010/05/fedexmagento.jpg"><img class="size-full wp-image-490 aligncenter" title="FedEx = Magento" src="http://kernelhack.com/wp-content/uploads/2010/05/fedexmagento.jpg" alt="FedEx = Magento" width="466" height="156" /></a></p>
<p>This release  adds some exciting features -&gt;</p>
<ul>
<li>Address validation via FedEx's API (checks if address is valid, checks residential status, and cleans address before saving in Magento's database)</li>
<li>New and improved rate request optimization.   ShipSync now estimates packages based on height, length, width, and weight of items, offering a number of different packaging styles.   This method retrieves near-perfect rates for all types of shipments.</li>
<li>Adds height, length, and width attributes for products</li>
<li>Completely rewritten backend shipment functionality</li>
<li>Tons of bug fixes and tweaks</li>
<li>Firebug debugging (see rate requests and responses)</li>
<li>Much much more...</li>
</ul>
<h2>Get ShipSync! <a href="http://www.illapps.com/shipsync.html">http://www.illapps.com/shipsync.html</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=488</wfw:commentRss>
		</item>
		<item>
		<title>Show default price for Magento Bundled products!</title>
		<link>http://kernelhack.com/?p=477</link>
		<comments>http://kernelhack.com/?p=477#comments</comments>
		<pubDate>Sun, 09 May 2010 21:26:25 +0000</pubDate>
		<dc:creator>dskdskdsk</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=477</guid>
		<description><![CDATA[Greetings fans, friends, and lovers!
I was going through my directory of Magento mods and found this little snippet that I had made for a client.     I figured some of you cats might be interested, so I just zipped it up into a nice module and am posting it here.    This extension shows the default (base [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Greetings fans, friends, and lovers!</strong></p>
<p>I was going through my directory of Magento mods and found this little snippet that I had made for a client.     I figured some of you cats might be interested, so I just zipped it up into a nice module and am posting it here.    This extension shows the default (base price) of a Bundled Product in the product catalog, as opposed to the lowest price.    This is just a little thang, so I'm giving it away for free.    Enjoy!</p>
<div id="attachment_479" class="wp-caption alignnone" style="width: 258px"><a href="http://kernelhack.com/wp-content/uploads/2010/05/bundle.jpg"><img class="size-full wp-image-479 " title="Bundled Product" src="http://kernelhack.com/wp-content/uploads/2010/05/bundle.jpg" alt="Bundled Product" width="248" height="285" /></a><p class="wp-caption-text">Bundled Product</p></div>
<p><strong><a href="http://kernelhack.com/wp-content/uploads/2010/05/bundlebase_v10.zip">Download BundleBase Here!</a></strong></p>
<p><strong>Installation</strong></p>
<p>1. Upload to your base Magento directory and unzip</p>
<p>2. Clear your cache</p>
<p>3. Voila!</p>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=477</wfw:commentRss>
		</item>
		<item>
		<title>ShipSync v1.3 - Magento + FedEx API, now with THERMAL printing support!</title>
		<link>http://kernelhack.com/?p=444</link>
		<comments>http://kernelhack.com/?p=444#comments</comments>
		<pubDate>Tue, 16 Feb 2010 16:00:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[FedEx]]></category>

		<category><![CDATA[Shipping]]></category>

		<category><![CDATA[ShipSync]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=444</guid>
		<description><![CDATA[
Woohoo!  This update is packed full of coolness. I won't bother listing all the new features, since they're listed quite nicely below.   However, I will take a moment to rave about the addition of thermal printing support.  ShipSync now supports EPL2, ZPLII, and DPL thermal printers, and a wide variety of [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-432  alignright" title="ShipSync v1.3" src="http://illapps.com/media/catalog/product/cache/1/image/5e06319eda06f020e43594a9c230972d/s/h/shipsync_5.jpg" alt="ShipSync v1.2" width="300" height="300" /></p>
<p><strong>Woohoo!  This update is packed full of coolness.</strong> I won't bother listing all the new features, since they're listed quite nicely below.   However, I will take a moment to rave about the addition of thermal printing support.  <strong>ShipSync now supports EPL2, ZPLII, and DPL thermal printers, and a wide variety of new label and paper types</strong>!  Additionally, the quality of the images are greatly improved (the PDF option prints absolutely gorgeous labels---so much nicer than the PNG option).     Super big thanks to my FedEx rep for helping out with this.</p>
<p>FedEx must be tired of me running test orders, but I just can't get over how cool these new labels are...    Anyways, these new features are just the beginning.    I've received a lot of good feedback from my customers, and am currently implementing a number of requested features.  Stay tuned!</p>
<p>02/08/2010 - ShipSync v1.3<br />
•	Added Free Shipping method<br />
•	Added options for all FedEx image types, including Thermal Printing support<br />
-	PDF<br />
-	PNG<br />
-	EPL2 (Zebra ZPL)<br />
-	ZPLII (Zebra ZPL)<br />
-	DPL (Datamax)<br />
•	Added support for all FedEx stock types<br />
-	PAPER_7X4.75<br />
-	PAPER_4X6<br />
-	PAPER_4X8<br />
-	PAPER_4X9<br />
-	PAPER_8.5X11_BOTTOM_HALF_LABEL<br />
-	PAPER_8.5X11_TOP_HALF_LABEL<br />
-	STOCK_4X6<br />
-	STOCK_4X6.75_LEADING_DOC_TAB<br />
-	STOCK_4X6.75_TRAILING_DOC_TAB<br />
-	STOCK_4X8<br />
-	STOCK_4X9_LEADING_DOC_TAB<br />
-	STOCK_4X9_TRAILING_DOC_TAB<br />
•	Added option to reprint labels (found on Shipments page)<br />
•	Fixed a few minor display bugs</p>
<p>01/13/2010 - ShipSync v1.2<br />
- Added choice of LIST or ACCOUNT rates<br />
- Fixed issues with Internet Explorer<br />
- Fixed problems with Magento v1.2<br />
- Fixed issues with multiple packages<br />
- Added ability to turn off SOAP caching<br />
- Changed label image size from 4x6 to 4.75x7 per FedEx's suggestion<br />
- Various display tweaks</p>
<p>01/01/2010 - ShipSync v1.10<br />
- First public release!</p>
<h2>Get ShipSync! <a href="http://www.illapps.com/shipsync.html">http://www.illapps.com/shipsync.html</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=444</wfw:commentRss>
		</item>
		<item>
		<title>ShipSync v1.2 - Magento + FedEx, getting easier by the day</title>
		<link>http://kernelhack.com/?p=431</link>
		<comments>http://kernelhack.com/?p=431#comments</comments>
		<pubDate>Wed, 13 Jan 2010 13:57:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[FedEx]]></category>

		<category><![CDATA[Shipping]]></category>

		<category><![CDATA[ShipSync]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=431</guid>
		<description><![CDATA[
Oh man, the FedEx API is a real beast..   I just spent the entire evening trying to get ACCOUNT rates to work in Magento..    It seemed strange that Magento didn't support them before, especially since it's such a simple flag when making the rate request, but sometimes things aren't as easy [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-432  alignright" title="ShipSync v1.2" src="http://kernelhack.com/wp-content/uploads/2010/01/shipsync_v12-300x300.jpg" alt="ShipSync v1.2" width="300" height="300" /><br />
Oh man, the FedEx API is a real beast..   I just spent the entire evening trying to get ACCOUNT rates to work in Magento..    It seemed strange that Magento didn't support them before, especially since it's such a simple flag when making the rate request, but sometimes things aren't as easy as they should be..    After adding the option to retrieve account rates, my staging site mysteriously started crashing anytime I'd try to retrieve rates.   So, what the heck?   This is bunk.    After hours of tinkering, I finally noticed that when retrieving account rates, FedEx sends Home Delivery in a *different* format than the rest of the shipping options.  What?!?!     Anyways, I'm a pragmatist, so I added an exception for this format, and account rates started working.    Boy, was I relieved.    So, I proudly present VERSION 1.2!    Hurray for stability.</p>
<p>01/13/2010 - ShipSync v1.2<br />
- Added choice of LIST or ACCOUNT rates<br />
- Fixed issues with Internet Explorer<br />
- Fixed problems with Magento v1.2<br />
- Fixed issues with multiple packages<br />
- Added ability to turn off SOAP caching<br />
- Changed label image size from 4x6 to 4.75x7 per FedEx's suggestion<br />
- Various display tweaks</p>
<p>01/01/2010 - ShipSync v1.10<br />
- First public release!</p>
<h2>Get ShipSync! <a href="http://www.illapps.com/shipsync.html">http://www.illapps.com/shipsync.html</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=431</wfw:commentRss>
		</item>
		<item>
		<title>ShipSync : Simple FedEx API Integration for Magento</title>
		<link>http://kernelhack.com/?p=398</link>
		<comments>http://kernelhack.com/?p=398#comments</comments>
		<pubDate>Thu, 07 Jan 2010 02:00:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[FedEx]]></category>

		<category><![CDATA[Shipping]]></category>

		<category><![CDATA[ShipSync]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=398</guid>
		<description><![CDATA[Hey kiddos.   Remember that mess of FedEx code I posted a few months back?    Well, time to throw it in the trash. I've got a new plugin, designed from the ground up to get FedEx/Magento integration right.   So, if you're tired of hacking away at this crap, you [...]]]></description>
			<content:encoded><![CDATA[<p>Hey kiddos.   Remember that mess of FedEx code I posted a few months back?    Well, time to throw it in the trash. I've got a new plugin, designed from the ground up to get FedEx/Magento integration right.   So, if you're tired of hacking away at this crap, you can kiss your troubles goodbye with my new sweet-ass plugin.     It does everything you would want Magento to do, (and you guys already know I have the chops to get it done).</p>
<p><strong>So, if you want to make your boss happy, buy this plugin.</strong></p>
<p>Oh yeah, one more thing.   <strong>As a customer you get first priority in my email box,</strong> and I'm more than happy to help you get your FedEx integration going right..</p>
<p><em>I expect some of you are disappointed that this isn't open source, but I'll be honest:  I've spent hundreds of hours over the past year figuring out the ins-and-outs of FedEx and Magento, and I just didn't have the heart to give it away..    Besides, the money for this plugin will go towards important things like music equipment, beer, and making more cool apps.</em></p>
<h3>... and without further ado, the link -&gt;  <a href="http://www.illapps.com/shipsync.html">http://www.illapps.com/shipsync.html</a></h3>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=398</wfw:commentRss>
		</item>
		<item>
		<title>Magento MySQL Order Export Tool v1.01</title>
		<link>http://kernelhack.com/?p=346</link>
		<comments>http://kernelhack.com/?p=346#comments</comments>
		<pubDate>Wed, 16 Dec 2009 13:51:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[hack]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=346</guid>
		<description><![CDATA[
Magento's database structure is rather arcane, but the API provides a clean way of retrieving order data.   So, I made this little tool to pull Magento's orders from the API and then populate these orders in a second MySQL database.    The orders are exported to two tables : mage (the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-360" style="padding: 10px;" title="Magento" src="http://kernelhack.com/wp-content/uploads/2009/12/magento-logo.jpg" alt="Magento" width="276" height="250" align="right" /></p>
<p>Magento's database structure is rather arcane, but the API provides a clean way of retrieving order data.   So, I made this little tool to pull Magento's orders from the API and then populate these orders in a second MySQL database.    The orders are exported to two tables : <strong>mage</strong> (the order data, including customer shipping and billing information), and <strong>mage_items</strong> (which includes info on the items purchased).      The tables are linked by the increment_id (which is also the order #), so it makes for a very readable database.    This tool was designed for reporting, but could likely be useful for other applications...       If anyone has any suggestions or improvements definitely send 'em my way!</p>
<h4>Installation</h4>
<ol>
<li>Create a Magento API username and key (done within the Magento back-end)</li>
<li>Untar to a protected directory on your webserver ("tar -xvf magesync_v1.00a.tar")</li>
<li>Edit /etc/cfg.php and define your absolute path, database host, database name, database username, database password, Magento API URL, Magento API username, and Magento API key</li>
<li>Setup a CRON job and set to run as desired (ex, "cd /path/to/magesync; php -q cron.php")</li>
<li>Watch and be amazed as Magento's database is demystified!</li>
</ol>
<h5><a title="MageSYNC v1.01" href="http://kernelhack.com/magesync_v1.01.zip">Download MageSYNC v1.01</a></h5>
<p><span style="text-decoration: underline;">Update Log</span></p>
<p>01/06/2010 - Removed removeMagicQuotes and unregisterGlobals functions since they appeared to be causing problems on some systems (and were also superfluous)</p>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=346</wfw:commentRss>
		</item>
		<item>
		<title>Magento  FedEx API (WSDL v6)</title>
		<link>http://kernelhack.com/?p=168</link>
		<comments>http://kernelhack.com/?p=168#comments</comments>
		<pubDate>Sat, 18 Jul 2009 05:15:24 +0000</pubDate>
		<dc:creator>dskdskdsk</dc:creator>
		
		<category><![CDATA[Magento]]></category>

		<category><![CDATA[hack]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=168</guid>
		<description><![CDATA[Warning: THIS POST IS DEPRECATED! I gave up trying to hack OrderShip and wrote my own extension (http://www.illapps.com/shipsync.html)..    I'm leaving the post here for reference, but I strongly suggest going with a commercial solution.

For some time now FedEx has been phasing out their legacy DC API, and encouraging developers to migrate to the new Web [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong>Warning: THIS POST IS DEPRECATED! </strong><span style="color: #000000;"></span></span>I gave up trying to hack OrderShip and wrote my own extension (http://www.illapps.com/shipsync.html)..    I'm leaving the post here for reference, but I strongly suggest going with a commercial solution.</p>
<p><span id="more-168"></span></p>
<p>For some time now FedEx has been phasing out their legacy DC API, and encouraging developers to migrate to the new Web Services API.    I had already starting dabbling in the new API to help automate shipping, but the fire was put under my tail yesterday when I received this Magento error report -&gt;</p>
<p><strong><em>Warning: Simplexml_load_string() function.simplexml-load-string] Entity: line 1 parser error string not closed expecting “ or “ in /app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php on line 432</em></strong></p>
<p>Uh oh.    It looks like a truncated or corrupted xml response.     So I did a bit of googling, and discovered that others are currently having the same issues with FedEx.    But, as much as I'd like to point the finger at the big guy, it turns out that Magento is using FedEx's legacy API, and this service will likely be decommissioned in the near future.    So, it's not surprising that we're having trouble with this old crap. FedEx now offers a new web services API, and it is much much cooler.      Thus, the solution here is to update Magento to support the new FedEx web services.     Additionally, <em>Magento needs failover shipping support!</em> Here's the scoop -&gt;</p>
<h3>Disclaimers</h3>
<p><strong>This solution is just a hack</strong>, but you may find it useful, or as a starting point for a more elegant solution.   If enough people take interest I may do more with it.</p>
<p><span style="color: #ff0000;">Warning : Do not attempt this process on a live site.    Try it on a staging site first.    If you must do it on a live site, backup everything before proceeding.</span></p>
<h3>Step 1 - Install Zenprint XAXJAX Integration</h3>
<p><a title="Zenprint XAXJAX Integration" href="http://www.magentocommerce.com/extension/853/zenprint-xajax-integration" target="_blank">Install Zenprint XAXJAX Integration</a> (Zenprint_Xajax)</p>
<p>I'm not really interested in another AJAX library, but it looks like this is only getting called during the shipping process, so it's not a ton of overheard.    Either way, it's required for Zenprint's Shipping module, so for now we need it.   Install via Magento Connect.</p>
<p><em>Note: this says 1.2 in the package manager, but seems to be working fine in 1.3.x</em></p>
<h3>Step 2 - Install Zenprint API Shipping Module</h3>
<p><a title="Zenprint API Shipping module" href="http://www.magentocommerce.com/extension/862/zenprint-api-shipping-module" target="_blank">Install Zenprint API Shipping module</a> (Zenprint_Ordership)</p>
<p>This module adds auto shipping (with tracking numbers and PDF shipping labels).   Install via Magento Connect.</p>
<p><em>Note: this one also says 1.2, but installs fine in 1.3.x</em></p>
<p style="padding-left: 30px; "><strong>Help!</strong></p>
<p style="padding-left: 30px; "><strong><span style="font-weight: normal; font-size: 13px; ">On a shared host?  &gt;&gt;&gt; Having permissions problems with Magento Connect?   <a title="Magento Connect File Permissions Fix" href="http://kernelhack.com/?p=9" target="_blank">Click here</a></span></strong></p>
<p style="padding-left: 30px; "><strong><span style="font-weight: normal; font-size: 13px; ">On a shared host?  &gt;&gt;&gt; You may need to ask your hosting provider to install needed dependencies</span></strong></p>
<h3>Step 3 - Signup for FedEx Developer Resources, and setup Zenprint</h3>
<p>At this point you need a FedEx account, key, password, and meter.     Speak to your FedEx representative or check out <a title="FedEx Developer Resources" href="http://fedex.com/us/developer/" target="_blank">FedEx Developer Resources</a> to get started.</p>
<p>Once you get your keys and such, fill in the data in the Magento admin backend  (System-&gt;Configuration-&gt;Shipping Methods-&gt;FedEx).       You must also enter your address in the shipping settings configuration (System-&gt;Configuration-&gt;Shipping Settings).     Now take a moment to read the <a title="Zenprint_Ordership Documentation" href="http://www.magentocommerce.com/boards/viewthread/31139/" target="_blank">Zenprint_Ordership Documentation</a>, and apply any relevant tweaks to your system.</p>
<p>Save everything, and clear your cache for good measure.</p>
<h3>Step 4 - Update WSDL to v6</h3>
<p>Now we get our hands dirty.      First, download the shipping WSDL (ShipService_v6) and the rate WSDL (RateService_v6) from <a title="FedEx Developer Resources" href="http://fedex.com/us/developer/" target="_blank">FedEx Developer Resources</a>.      Put both of these files in the following directory :</p>
<pre>/magento/app/code/community/Zenprint/Ordership/Model/Shipping/Carrier/wsdl/</pre>
<p>Note: When you first receive these files, the WSDL URL is set to "https://gatewaybeta.fedex.com:443/web-services."    You will want to change this to the live URL ("https://gateway.fedex.com:443/web-services") once you begin using the production keys.</p>
<h3>Step 5 - Load Fedex.php</h3>
<p>Now load up the following file in your favorite editor :</p>
<pre>/magento/app/code/community/Zenprint/Ordership/Model/Shipping/Carrier/Fedex.php</pre>
<p><span style="color: #ff0000;"># You made that backup already, right???</span></p>
<h3>Step 6 - Find and Replace</h3>
<h4>find↓</h4>
<pre class="php">protected <span style="color: #0000ff;">$_gatewayUrl</span> = <span style="color: #ff0000;">'https://gateway.fedex.com/GatewayDC'</span>;</pre>
<h4>replace ↓</h4>
<pre class="php">protected <span style="color: #0000ff;">$_gatewayUrl</span> = <span style="color: #ff0000;">'https://gateway.fedex.com/web-services'</span>;</pre>
<h4>find↓</h4>
<pre class="php"><span style="color: #0000ff;">$wsdlpath</span> = <a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/wsdl/ShipService_v5.wsdl'</span>;</pre>
<h4>replace↓</h4>
<pre class="php"><span style="color: #0000ff;">$wsdlpath</span> = <a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/wsdl/ShipService_v6.wsdl'</span>;</pre>
<h4>find↓</h4>
<p><span style="color: #ff0000;"># 07/19/09 - Oops!  Forgot this part--Added</span></p>
<pre class="php"><span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Version'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'ServiceId'</span> =&amp;gt; <span style="color: #ff0000;">'ship'</span>, <span style="color: #ff0000;">'Major'</span> =&amp;gt; <span style="color: #cc66cc;">5</span>, <span style="color: #ff0000;">'Intermediate'</span> =&amp;gt; <span style="color: #cc66cc;">0</span>, <span style="color: #ff0000;">'Minor'</span> =&amp;gt; <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;</pre>
<h4>replace↓</h4>
<pre class="php"><span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Version'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'ServiceId'</span> =&amp;gt; <span style="color: #ff0000;">'ship'</span>, <span style="color: #ff0000;">'Major'</span> =&amp;gt; <span style="color: #cc66cc;">6</span>, <span style="color: #ff0000;">'Intermediate'</span> =&amp;gt; <span style="color: #cc66cc;">0</span>, <span style="color: #ff0000;">'Minor'</span> =&amp;gt; <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;</pre>
<h4>find↓</h4>
<pre class="php">protected <span style="color: #000000; font-weight: bold;">function</span> _getXmlQuotes<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
..
..
..
<span style="color: #66cc66;">&#125;</span></pre>
<h4>replace↓</h4>
<p># The following function makes the API call.      The SOAP request is slow.   Caching may help.</p>
<pre class="php">protected <span style="color: #808080; font-style: italic;">/************************************************************\
*
\************************************************************/</span>
<span style="color: #000000; font-weight: bold;">function</span> _getXmlQuotes<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #0000ff;">$r</span> = <span style="color: #0000ff;">$this</span>-&amp;gt;_rawRequest;
	<span style="color: #808080; font-style: italic;"># Retrieve Magento data</span>
&nbsp;
	<span style="color: #0000ff;">$newline</span> = <span style="color: #ff0000;">&quot;&quot;</span>;
	<span style="color: #808080; font-style: italic;"># Define HTML break</span>
&nbsp;
	<span style="color: #0000ff;">$path_to_wsdl</span> = <a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/wsdl/RateService_v6.wsdl'</span>;
	<span style="color: #808080; font-style: italic;"># WSDL path</span>
&nbsp;
	try
&nbsp;
	<span style="color: #66cc66;">&#123;</span>
		<a href="http://www.php.net/ini_set"><span style="color: #000066;">ini_set</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;soap.wsdl_cache_enabled&quot;</span>, <span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$client</span> = <span style="color: #000000; font-weight: bold;">new</span> SoapClient<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$path_to_wsdl</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;"># Authenticate FedEx Key, and Password</span>
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'WebAuthenticationDetail'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'UserCredential'</span> =&amp;gt;
		<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'Key'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/key'</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'Password'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/password'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;"># Fedex Account and Meter</span>
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'ClientDetail'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'AccountNumber'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/account'</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'MeterNumber'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/meter'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'TransactionDetail'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'CustomerTransactionId'</span> =&amp;gt;
		<span style="color: #ff0000;">' *** Rate Available Services Request v6 using PHP ***'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Version'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'ServiceId'</span> =&amp;gt;
		<span style="color: #ff0000;">'crs'</span>, <span style="color: #ff0000;">'Major'</span> =&amp;gt;
		<span style="color: #ff0000;">'6'</span>, <span style="color: #ff0000;">'Intermediate'</span> =&amp;gt;
		<span style="color: #ff0000;">'0'</span>, <span style="color: #ff0000;">'Minor'</span> =&amp;gt;
		<span style="color: #ff0000;">'0'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;"># DropoffType, ShipTimestamp, and PackagingType</span>
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'DropoffType'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$this</span>-&amp;gt;
		getUnderscoreCodeFromCode<span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/dropoff'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'ShipTimestamp'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'c'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PackagingType'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$this</span>-&amp;gt;
		getUnderscoreCodeFromCode<span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/packaging'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/third_party'</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #0000ff;">$shipping_charges_payment</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'PaymentType'</span> =&amp;gt;
			<span style="color: #ff0000;">'THIRD_PARTY'</span>, <span style="color: #ff0000;">'Payor'</span> =&amp;gt;
			<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'AccountNumber'</span> =&amp;gt;
			Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/third_party_fedex_account'</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">'CountryCode'</span> =&amp;gt;
			Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/third_party_fedex_account_country'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">else</span>
		<span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #0000ff;">$shipping_charges_payment</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'PaymentType'</span> =&amp;gt;
			<span style="color: #ff0000;">'SENDER'</span>, <span style="color: #ff0000;">'Payor'</span> =&amp;gt;
			<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'AccountNumber'</span> =&amp;gt;
			Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/account'</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">'CountryCode'</span> =&amp;gt;
			Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'carriers/fedex/account_country'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;"># Generate shipping street</span>
		<span style="color: #0000ff;">$shipperstreetlines</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/address1'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/address2'</span><span style="color: #66cc66;">&#41;</span> != <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #0000ff;">$shipperstreetlines</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> = Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/address2'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/address3'</span><span style="color: #66cc66;">&#41;</span> != <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
&nbsp;
			<span style="color: #0000ff;">$shipperstreetlines</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> = Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/address3'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;"># Set Shipper and Recipient</span>
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Shipper'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Address'</span> =&amp;gt;
		<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'StreetLines'</span> =&amp;gt;
		<span style="color: #0000ff;">$shipperstreetlines</span>, <span style="color: #808080; font-style: italic;">#Origin details</span>
		<span style="color: #ff0000;">'City'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/city'</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'StateOrProvinceCode'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getModel</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'directory/region'</span><span style="color: #66cc66;">&#41;</span>-&amp;gt;
		load<span style="color: #66cc66;">&#40;</span>Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/region_id'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>-&amp;gt;
		getCode<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'PostalCode'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/postcode'</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'CountryCode'</span> =&amp;gt;
		Mage::<span style="color: #006600;">getStoreConfig</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/origin/country_id'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Recipient'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Address'</span> =&amp;gt;
		<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'PostalCode'</span> =&amp;gt;
		<span style="color: #0000ff;">$r</span>-&amp;gt;
		getDestPostal<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'CountryCode'</span> =&amp;gt;
		<span style="color: #0000ff;">$r</span>-&amp;gt;
		getDestCountry<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'ShippingChargesPayment'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$shipping_charges_payment</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RateRequestTypes'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'LIST'</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PackageCount'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'1'</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PackageDetail'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">'INDIVIDUAL_PACKAGES'</span>;
&nbsp;
		<span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedShipment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'RequestedPackages'</span><span style="color: #66cc66;">&#93;</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'0'</span> =&amp;gt;
		<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SequenceNumber'</span> =&amp;gt;
		<span style="color: #ff0000;">'1'</span>,
		<span style="color: #ff0000;">'InsuredValue'</span> =&amp;gt;
		<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
		<span style="color: #ff0000;">'Amount'</span> =&amp;gt;
		<span style="color: #0000ff;">$r</span>-&amp;gt;
		getValue<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'Currency'</span> =&amp;gt;
		Mage::<span style="color: #006600;">app</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-&amp;gt;
		getBaseCurrencyCode<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>,
		<span style="color: #ff0000;">'Weight'</span> =&amp;gt;
		<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Value'</span> =&amp;gt;
		<span style="color: #0000ff;">$r</span>-&amp;gt;
		getWeight<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #ff0000;">'Units'</span> =&amp;gt;
		<span style="color: #ff0000;">'LB'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$response</span> = <span style="color: #0000ff;">$client</span>-&amp;gt;getRates<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$request</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	catch <span style="color: #66cc66;">&#40;</span>SoapFault <span style="color: #0000ff;">$fault</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$this</span>-&amp;gt;_parseXmlResponse<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span>-&amp;gt;HighestSeverity == <span style="color: #ff0000;">'FAILURE'</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$this</span>-&amp;gt;_parseXmlResponse<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
	<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$this</span>-&amp;gt;_parseXmlResponse<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<h4>replace↓</h4>
<p># This parses the response, and sets up <strong>a failsafe flat rate</strong> if FedEx is unavailable.</p>
<pre class="php">protected <span style="color: #808080; font-style: italic;">/************************************************************\
*
\************************************************************/</span>
<span style="color: #000000; font-weight: bold;">function</span> _parseXmlResponse<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#123;</span>	
&nbsp;
	<span style="color: #808080; font-style: italic;"># Retrieve Magento data</span>
	<span style="color: #808080; font-style: italic;"># Check for allowed shipping methods</span>
	<span style="color: #0000ff;">$allowedMethods</span> = <a href="http://www.php.net/explode"><span style="color: #000066;">explode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;,&quot;</span>, <span style="color: #0000ff;">$this</span>-&amp;gt;
	getConfigData<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'allowed_methods'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$allowedMethods</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$method</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
	<span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #0000ff;">$parsedAllowedMethods</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$this</span>-&amp;gt;
		getUnderscoreCodeFromCode<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$method</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #0000ff;">$result</span> = Mage::<span style="color: #006600;">getModel</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/rate_result'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #0000ff;">$defaults</span> = <span style="color: #0000ff;">$this</span>-&amp;gt;
	getDefaults<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span> == <span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;"># Set flat rate</span>
		<span style="color: #0000ff;">$rate</span> = Mage::<span style="color: #006600;">getModel</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/rate_result_method'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$rate</span>-&amp;gt;
		setCarrier<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'fedex'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$rate</span>-&amp;gt;
		setCarrierTitle<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&amp;gt;
		getConfigData<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">$rate</span>-&amp;gt;
		setMethod<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'FEDEX_GROUND'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;"># Shipping method</span>
		<span style="color: #0000ff;">$rate</span>-&amp;gt;
		setMethodTitle<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'FedEx Ground (Flat)'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;"># Customer view</span>
		<span style="color: #0000ff;">$rate</span>-&amp;gt;
		setCost<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">7</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;"># $7.00</span>
		<span style="color: #0000ff;">$rate</span>-&amp;gt;
		setPrice<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">7</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;"># $7.00</span>
		<span style="color: #0000ff;">$result</span>-&amp;gt;
		append<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$rate</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$result</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">elseif</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span>-&amp;gt;HighestSeverity == <span style="color: #ff0000;">'ERROR'</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0000ff;">$msg</span> = <span style="color: #ff0000;">''</span>;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span>-&amp;gt;Notifications<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span>-&amp;gt;Notifications <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$notification</span><span style="color: #66cc66;">&#41;</span>
				<span style="color: #66cc66;">&#123;</span> <span style="color: #0000ff;">$msg</span> .= <span style="color: #0000ff;">$notification</span>-&amp;gt;Severity.<span style="color: #ff0000;">': '</span>.<span style="color: #0000ff;">$notification</span>-&amp;gt;Message.<span style="color: #0000ff;">$newline</span>; <span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #b1b100;">else</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0000ff;">$msg</span> .= <span style="color: #0000ff;">$response</span>-&amp;gt;Notifications-&amp;gt;Severity.<span style="color: #ff0000;">': '</span>.<span style="color: #0000ff;">$response</span>-&amp;gt;Notifications-&amp;gt;Message.<span style="color: #0000ff;">$newline</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0000ff;">$error</span> = Mage::<span style="color: #006600;">getModel</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/rate_result_error'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0000ff;">$error</span>-&amp;gt;setCarrier<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'fedex'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0000ff;">$error</span>-&amp;gt;setCarrierTitle<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&amp;gt;getConfigData<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0000ff;">$error</span>-&amp;gt;setErrorMessage<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$msg</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0000ff;">$result</span>-&amp;gt;append<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$error</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$result</span>;
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">else</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;"># Iterate through retrieved FedEx responses</span>
		<span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span>-&amp;gt;RateReplyDetails <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$rateReply</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;"># Now update shipping rates for allowed methods</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/in_array"><span style="color: #000066;">in_array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$rateReply</span>-&amp;gt;
			ServiceType, <span style="color: #0000ff;">$parsedAllowedMethods</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
			<span style="color: #66cc66;">&#123;</span>
				<span style="color: #0000ff;">$_serviceType</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'_'</span>, <span style="color: #ff0000;">''</span>, <span style="color: #0000ff;">$rateReply</span>-&amp;gt;ServiceType<span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$rate</span> = Mage::<span style="color: #006600;">getModel</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'shipping/rate_result_method'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$rate</span>-&amp;gt;
				setCarrier<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'fedex'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$rate</span>-&amp;gt;
				setCarrierTitle<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&amp;gt;
				getConfigData<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'title'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$rate</span>-&amp;gt;
				setMethod<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_serviceType</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$rate</span>-&amp;gt;
				setMethodTitle<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$this</span>-&amp;gt;
				getCode<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'method'</span>, <span style="color: #0000ff;">$rateReply</span>-&amp;gt;
				ServiceType, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #0000ff;">$rate</span>-&amp;gt;
				setCost<span style="color: #66cc66;">&#40;</span>
				<span style="color: #0000ff;">$rateReply</span>-&amp;gt;
				RatedShipmentDetails<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>-&amp;gt;
				ShipmentRateDetail-&amp;gt;
				TotalNetCharge-&amp;gt;
				Amount<span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$rate</span>-&amp;gt;
				setPrice<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$rateReply</span>-&amp;gt;
				RatedShipmentDetails<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>-&amp;gt;
				ShipmentRateDetail-&amp;gt;
				TotalNetCharge-&amp;gt;
				Amount<span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #0000ff;">$result</span>-&amp;gt;
				append<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$rate</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$result</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<h3>Step 7 - Cleanup</h3>
<p>I had to insert a definition for 2nd day air to get the text label to show up -&gt;</p>
<pre>public function getCode($type, $code='', $underscore=false)
    {
..
..
..
        //Needed since XML requests have no underscore, while SOAP interface includes them (nice one Fedex)
        $codes_underscore = array(
            'method'=&gt;array(
                'PRIORITY_OVERNIGHT'                =&gt; Mage::helper('usa')-&gt;__('Priority Overnight'),
                'STANDARD_OVERNIGHT'                =&gt; Mage::helper('usa')-&gt;__('Standard Overnight'),
                'FIRST_OVERNIGHT'                   =&gt; Mage::helper('usa')-&gt;__('First Overnight'),
                'FEDEX_2DAY'                        =&gt; Mage::helper('usa')-&gt;__('2Day'),
  		<span style="color: #ff0000;">'FEDEX_2_DAY'                        =&gt; Mage::helper('usa')-&gt;__('2Day'),  # Added</span>
                'FEDEX_EXPRESS_SAVER'                =&gt; Mage::helper('usa')-&gt;__('Express Saver'),
                'INTERNATIONAL_PRIORITY'            =&gt; Mage::helper('usa')-&gt;__('International Priority'),
                'INTERNATIONAL_ECONOMY'             =&gt; Mage::helper('usa')-&gt;__('International Economy'),
                'INTERNATIONAL_FIRST'               =&gt; Mage::helper('usa')-&gt;__('International First'),
                'FEDEX_1DAY_FREIGHT'                 =&gt; Mage::helper('usa')-&gt;__('1 Day Freight'),
                'FEDEX_2DAY_FREIGHT'                 =&gt; Mage::helper('usa')-&gt;__('2 Day Freight'),
                'FEDEX_3DAY_FREIGHT'                 =&gt; Mage::helper('usa')-&gt;__('3 Day Freight'),
                'FEDEX_GROUND'                      =&gt; Mage::helper('usa')-&gt;__('Ground'),
                'GROUND_HOME_DELIVERY'               =&gt; Mage::helper('usa')-&gt;__('Home Delivery'),
                'INTERNATIONAL_PRIORITY_FREIGHT'    =&gt; Mage::helper('usa')-&gt;__('Intl Priority Freight'),
                'INTERNATIONAL_ECONOMY_FREIGHT'     =&gt; Mage::helper('usa')-&gt;__('Intl Economy Freight'),
                'EUROPE_FIRST_INTERNATIONAL_PRIORITY' =&gt; Mage::helper('usa')-&gt;__('Europe First Priority'),
            ),
..
..
..
}</pre>
<p><span style="color: #ff0000;"># 07/20/09 - Added better error handling and fixed a few bugs, updated code snippets above</span></p>
<h3>Step 8 - Test</h3>
<p>-&gt; Test rate requests<br />
-&gt; Test auto ship functionality<br />
-&gt; Test PDF label printing<br />
-&gt; Test tracking number generation</p>
<p>Once you have everything working, FedEx will give you a production key and you can start shipping orders.</p>
<h3>Conclusion</h3>
<p>It's a hack, but it works.   Enjoy!</p>
<p>..<br />
..<br />
..</p>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=168</wfw:commentRss>
		</item>
		<item>
		<title>THE DEATH OF IE6</title>
		<link>http://kernelhack.com/?p=101</link>
		<comments>http://kernelhack.com/?p=101#comments</comments>
		<pubDate>Wed, 13 May 2009 19:49:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=101</guid>
		<description><![CDATA[
 
IE6 is over 7 YEARS OLD.    It's time to die.            
Good news!  Microsoft has announced that they will now give users an automatic update notification to upgrade to IE8 (http://blogs.msdn.com/ie/archive/2009/04/10/prepare-for-automatic-update-distribution-of-ie8.aspx).     Unfortunately this is not a compulsory update, and there are many corporate users and luddites who may [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-103" title="IE6 FAIL" src="http://kernelhack.com/wp-content/uploads/2009/05/ie6_fail.gif" alt="IE6 FAIL" width="413" height="362" /></p>
<p> </p>
<h2>IE6 is over 7 YEARS OLD.    It's time to die.            </h2>
<p>Good news!  Microsoft has announced that they will now give users an automatic update notification to upgrade to IE8 (<a href="http://blogs.msdn.com/ie/archive/2009/04/10/prepare-for-automatic-update-distribution-of-ie8.aspx">http://blogs.msdn.com/ie/archive/2009/04/10/prepare-for-automatic-update-distribution-of-ie8.aspx</a>).     Unfortunately this is not a compulsory update, and there are many corporate users and luddites who may being locked into IE6 for some time to come.  So, this piece of shit browser will still continue to plague us.</p>
<p> </p>
<h5>Why does IE6 suck so bad?</h5>
<p>Internet Explorer 6 is incredibly insecure.    This alone is reason enough to nix it from the world's browser repertoire.   Additionally, IE6 is not standards compliant, has severe useability issues, doesn't properly support new technologies, suffers from poor performance, and that's just the tip of the iceberg.    To further drive home my point, observe that Microsoft's very own MSN site is not IE6 compliant.</p>
<p>Also, let us also not forget IE6's economic impact.    Developers spend countless hours "hacking" clean, well-designed websites to display properly in IE6.      This time often accounts for as much as 20% of the total cost of development.   In terms of dollars, this translate to millions in wasted time and lost productivity.    It's time for developers and clients to take a stand against IE6.</p>
<p> </p>
<h5>How can we take a stand?</h5>
<p>The cleanest way is to insert code that prevents (or discourages) IE6 users from visiting our sites.       The <a title="Stop IE6 Campaign" href="http://www.stopie6.org/" target="_blank">Stop IE6 Campaign</a> has provided a <a title="Stop IE6 Script" href="http://www.stopie6.org/script" target="_blank">Javascript app</a> just for this purpose.     So, speak with your clients, and let them know the dangers, useability issues, and cost of IE6.     Together, we can fight this pandemic.</p>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=101</wfw:commentRss>
		</item>
		<item>
		<title>Psystar warms my soul.</title>
		<link>http://kernelhack.com/?p=96</link>
		<comments>http://kernelhack.com/?p=96#comments</comments>
		<pubDate>Sun, 10 May 2009 19:13:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=96</guid>
		<description><![CDATA[
Now this is truly open computing.
http://psystar.com/
These guys are awesome.   They're fighting Apple tooth and nail to be able to distribute OSX on their pcs.     So far it looks like they're winning.   However it pans out, they've won in my book.
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-99" title="Psystar" src="http://kernelhack.com/wp-content/uploads/2009/05/logo.png" alt="Psystar" width="166" height="60" /></p>
<p>Now this is truly open computing.</p>
<p><a href="http://psystar.com/">http://psystar.com/</a></p>
<p>These guys are awesome.   They're fighting Apple tooth and nail to be able to distribute OSX on their pcs.     So far it looks like they're winning.   However it pans out, they've won in my book.</p>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=96</wfw:commentRss>
		</item>
		<item>
		<title>AMD Hackintosh Challenge! (Day 1)</title>
		<link>http://kernelhack.com/?p=53</link>
		<comments>http://kernelhack.com/?p=53#comments</comments>
		<pubDate>Sun, 10 May 2009 02:13:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Hackintosh]]></category>

		<category><![CDATA[OSx86]]></category>

		<guid isPermaLink="false">http://kernelhack.com/?p=53</guid>
		<description><![CDATA[Welcome!   Today I'm going to attempt to install Mac OS on my AMD Phenom system.      I've decided to blog the process, so grab a cup of coffee, sit back, and enjoy!
System Specs
Abit AN78GS Motherboard (nForce 730a)
AMD Phenom 9500+ (Quad Core) 
3GB DDR-1066 RAM
Nvidia GeForce 8800 GTS 320MB
M-Audio Delta 1010LT Audio Interface (I'll be [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome!   Today I'm going to attempt to install Mac OS on my AMD Phenom system.      I've decided to blog the process, so grab a cup of coffee, sit back, and enjoy!</p>
<h3>System Specs</h3>
<p><span style="font-weight: normal;">Abit AN78GS Motherboard (nForce 730a)<br />
AMD Phenom 9500+ (Quad Core) <br />
3GB DDR-1066 RAM<br />
Nvidia GeForce 8800 GTS 320MB<br />
M-Audio Delta 1010LT Audio Interface (I'll be stoked if I can get this to work)<br />
Western Digital 160GB SATA (Could be difficult to get working)<br />
Seagate 250GB External USB Drive (This will be the OSx86 install disk) <br />
</span></p>
<p><span style="font-weight: normal;">OSX will run on a number of hardware configurations, but people seem to have the best luck with Intel chipsets.   Installing on my Nvidia chipset could prove to be challenging.    Check out the <a title="OSx86 Project Wiki" href="http://wiki.osx86project.org/wiki/index.php/Main_Page" target="_blank">OSx86 Project Wiki</a> for compatible hardware.</span></p>
<p> </p>
<h3>Obtaining an OSX disc</h3>
<p>I downloaded iDeneb v1.4 (OSX 10.5.6) from the interwebs...   You're on your own with this step.     To best follow along with my post, it would be wise to obtain this same release.   </p>
<p> </p>
<h3>Burning the ISO</h3>
<p>Use your favorite app to burn the ISO to a DVD.    I used PowerISO, but any app should work.     If you don't know how to burn an ISO you probably should stop now and go buy a real Mac.</p>
<p> </p>
<h3>Installing</h3>
<p><img class="alignnone size-full wp-image-58" title="Seagate 250 GB External USB" src="http://kernelhack.com/wp-content/uploads/2009/05/images.jpg" alt="Seagate 250 GB External USB" width="130" height="130" /></p>
<p>Now the fun begins!    I have opted to install to my Seagate 250GB USB drive since I am doubtful that the installer will detect my SATA drive.</p>
<p> </p>
<p>1. First, place the DVD in your drive tray and boot the OSX installer.      The booting process will vary depending on your machine.   You may need to enter BIOS to rearrange your boot order, or hit a hotkey to instruct the system to boot from DVD (see screenshot).</p>
<p><img class="alignnone size-full wp-image-62" title="Boot" src="http://kernelhack.com/wp-content/uploads/2009/05/boot.jpg" alt="Boot" width="300" height="181" /></p>
<p> </p>
<p>2. Next you will see the Darwin bootloader.      I suggest hitting "F8" at the prompt and selecting "-v" from the boot options.     This enables verbose messaging so you will know if there are any issues.</p>
<p><img class="alignnone size-full wp-image-64" title="Darwin Bootloader" src="http://kernelhack.com/wp-content/uploads/2009/05/boot2.jpg" alt="Darwin Bootloader" width="400" height="287" /></p>
<p> </p>
<p>3. As the installer loads you will see a bunch of messages fly across the screen, and if all goes well you will be greeted by the glorious Apple loading screen!</p>
<p><img class="alignnone size-full wp-image-66" title="Apple loading screen" src="http://kernelhack.com/wp-content/uploads/2009/05/loading.jpg" alt="Apple loading screen" width="300" height="209" /></p>
<p><em>My installation failed at first because my DVD was dirty.   I cleaned it with a t-shirt and tried again.    This time the installer loaded just fine.</em></p>
<p> </p>
<p> </p>
<p>4. The next few steps are simple.    Select your language, and agree to the software license.</p>
<p> </p>
<p>5. Once you've accepted the licensing agreement you will be given the option to select your installation disk.     It is unlikely that you will have an Apple partition already, so you must enter the disk utility to prepare a drive for OSX to use.</p>
<p><img class="alignnone size-full wp-image-68" title="Disk Utility" src="http://kernelhack.com/wp-content/uploads/2009/05/disk_util.jpg" alt="Disk Utility" width="250" height="188" /></p>
<p> </p>
<p>6. The disk utility will load and show your available drives.    As I suspected, my SATA drives are not present, but I can see both of my USB drives.    Select the drive you would like to install OSX on, and choose "Erase."     This will format the drive using Mac OS Extended (journaled) and then mount the drive for the installer.   NOTE: This will wipe your entire drive.    Please exercise caution during this step.</p>
<p><img class="alignnone size-full wp-image-72" title="Select Drive" src="http://kernelhack.com/wp-content/uploads/2009/05/select.jpg" alt="Select Drive" width="300" height="286" /></p>
<p><img class="alignnone size-full wp-image-73" title="Erase" src="http://kernelhack.com/wp-content/uploads/2009/05/erase.jpg" alt="Erase" width="350" height="325" /></p>
<p> </p>
<p>7.   Now close out of the disk utility, select your newly formatted drive, and click "Continue"</p>
<p><img class="alignnone size-full wp-image-76" title="Destination" src="http://kernelhack.com/wp-content/uploads/2009/05/destination.jpg" alt="Destination" width="300" height="241" /></p>
<p> </p>
<p>8. <strong>This next step is probably the most important.  </strong> You must select "Customize" and tweak the installation for your system.</p>
<p><img class="alignnone size-full wp-image-77" title="Customize" src="http://kernelhack.com/wp-content/uploads/2009/05/customize.jpg" alt="Customize" width="300" height="405" /></p>
<p> </p>
<p>9.  The iDeneb install disc provides a number of alternate kernels and drivers to accommodate a variety of hardware configurations, so feel free to experiment here.     These are the packages I installed -&gt;</p>
<p>Chipset -&gt; AppleNForceATA Test (Hopefully this will get my SATA drives working)<br />
Kernel -&gt; Kernel 9.5.0 Voodoo (This is the only kernel that worked with my AMD system)<br />
Ethernet -&gt; nForce Ethernet  (LAN)<br />
Video -&gt; Nvidia -&gt; NVdarwin -&gt; NVdarwin 320mb (for my GeForce 8800 GTS 320MB)</p>
<p> </p>
<p>10.   Once you've selected your customizations, click next and begin the install!    Cross your fingers and hope for the best.</p>
<p><img class="alignnone size-full wp-image-80" title="Installing" src="http://kernelhack.com/wp-content/uploads/2009/05/installing.jpg" alt="Installing" width="300" height="280" /></p>
<p> </p>
<p>11.  Once the install is complete your system will reboot and OSX will load.       Watch the Apple intro video and pat yourself on the back.   If you've made it this far you're doing pretty damn good.   Click through the registration process and enjoy your new operating system!</p>
<p><img class="alignnone size-full wp-image-82" title="OSx86 AMD" src="http://kernelhack.com/wp-content/uploads/2009/05/osx_amd.jpg" alt="OSx86 AMD" width="543" height="479" /></p>
<p><img class="alignnone size-full wp-image-81" title="OSx86" src="http://kernelhack.com/wp-content/uploads/2009/05/osx.jpg" alt="OSx86" width="699" height="437" /></p>
<p> </p>
<h3>Troubleshooting!</h3>
<p>But wait, we're not done yet!    I've got a somewhat functional Hackintosh, but my SATA drives still aren't working.    I also need to track down my audio drivers.    So check back tomorrow for DAY 2 of my Hackintosh challenge!</p>
]]></content:encoded>
			<wfw:commentRss>http://kernelhack.com/?feed=rss2&amp;p=53</wfw:commentRss>
		</item>
	</channel>
</rss>
