<?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>Nick Bartlett</title>
	<atom:link href="http://nickbartlett.com/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://nickbartlett.com/wordpress</link>
	<description>PHP Developer in Minnesota</description>
	<lastBuildDate>Sat, 05 May 2012 13:00:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Zend_Form Recaptcha doesn&#8217;t work with SSL</title>
		<link>http://nickbartlett.com/wordpress/zend_form-recaptcha-doesnt-work-with-ssl/</link>
		<comments>http://nickbartlett.com/wordpress/zend_form-recaptcha-doesnt-work-with-ssl/#comments</comments>
		<pubDate>Sat, 05 May 2012 13:00:52 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=950</guid>
		<description><![CDATA[I was able to get a recaptcha working on my Zend Framwork application, but as soon as I added the &#8220;&#8216;ssl&#8217; => true&#8221; to my zend_form, the captcha disappeared. Here ...]]></description>
			<content:encoded><![CDATA[<p>I was able to get a recaptcha working on my Zend Framwork application, but as soon as I added the &#8220;&#8216;ssl&#8217; => true&#8221; to my zend_form, the captcha disappeared.  Here is the code used in zend_form:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//captcha</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'captcha'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'label'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Please Type:'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'required'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'captcha'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'pubkey'</span> <span style="color: #339933;">=&gt;</span> RECAPTCHA_PUBLIC_KEY<span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'privkey'</span> <span style="color: #339933;">=&gt;</span> RECAPTCHA_PRIVATE_KEY<span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'captcha'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'reCaptcha'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'ssl'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span>
	<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The reason ssl didn&#8217;t work with recaptcha is because the secure URL was out of date in my zend framework library.  To update, open /Zend/Service/ReCaptcha.php and update the server constants at the top to</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * URI to the regular API
 *
 * @var string
 */</span>
<span style="color: #000000; font-weight: bold;">const</span> API_SERVER <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.google.com/recaptcha/api'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * URI to the secure API
 *
 * @var string
 */</span>
<span style="color: #000000; font-weight: bold;">const</span> API_SECURE_SERVER <span style="color: #339933;">=</span> <span style="color: #0000ff;">'https://www.google.com/recaptcha/api'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * URI to the verify server
 *
 * @var string
 */</span>
<span style="color: #000000; font-weight: bold;">const</span> VERIFY_SERVER <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.google.com/recaptcha/api/verify'</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/zend_form-recaptcha-doesnt-work-with-ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to move magento var and media directories</title>
		<link>http://nickbartlett.com/wordpress/how-to-move-magento-var-and-media-directories/</link>
		<comments>http://nickbartlett.com/wordpress/how-to-move-magento-var-and-media-directories/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 17:47:53 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=945</guid>
		<description><![CDATA[I wanted to move magento&#8217;s var and media directories outside of the core code base so I wouldn&#8217;t have to put them in version control. It would make updating the ...]]></description>
			<content:encoded><![CDATA[<p>I wanted to move magento&#8217;s var and media directories outside of the core code base so I wouldn&#8217;t have to put them in version control. It would make updating the live web server much easier since the dynamic content of these two directories could remain in place while a new branch of the code was checked out and put along side it.  First I created a directory named &#8220;common&#8221; along side the magento directory and moved the var and media directories inside this one.  On my local setup, I created a new virtual host for this directory and added www.common.localhost in my hosts file.</p>
<p>In index.php, add a parameter to Mage::run() like so</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//custom directories</span>
<span style="color: #000088;">$parentDir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$customDirectories</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
	<span style="color: #0000ff;">'media_dir'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$parentDir</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'\common\media'</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">'var_dir'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$parentDir</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'\common\var'</span>	
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Mage<span style="color: #339933;">::</span><span style="color: #004000;">run</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mageRunCode</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mageRunType</span><span style="color: #339933;">,</span> <span style="color: #000088;">$customDirectories</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>A full list of directory keys can be found on Alan Storm&#8217;s site at <a href="http://alanstorm.com/magento_base_directories">http://alanstorm.com/magento_base_directories</a>.</p>
<p>To be able to pull images from the url as before, create a sub domain or another domain pointing to your new var and media directory location.  On my local machine, I named mine www.common.localhost.  In the core_config_data table of the database, update keys &#8220;web/secure/base_media_url&#8221; and &#8220;web/unsecure/base_media_url&#8221; with the url pointing to your new location, such as www.common.localhost/media.  </p>
<p>That&#8217;s it!  This solution works for magento 1.6.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/how-to-move-magento-var-and-media-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paypal IPN website payments standard return passback variables</title>
		<link>http://nickbartlett.com/wordpress/paypal-ipn-website-payments-standard-return-passback-variables/</link>
		<comments>http://nickbartlett.com/wordpress/paypal-ipn-website-payments-standard-return-passback-variables/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 20:57:17 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=943</guid>
		<description><![CDATA[I was hoping to put a paypal subscription button on my website in about ten minutes today, but it ended up taking a couple hours because I could not figure ...]]></description>
			<content:encoded><![CDATA[<p>I was hoping to put a paypal subscription button on my website in about ten minutes today, but it ended up taking a couple hours because I could not figure out how to get paypal to pass back variables I needed, such as the customer id, order id, etc.  I could configure custom variables on paypal&#8217;s website by &#8220;Add advanced variables&#8221; when setting up the buttons, such as the notify_url, but those did not work.  The notify_url param did not pass back any of the custom information I provided to paypal, even though I used a hidden input named &#8220;custom&#8221; and along with a few others they suggested.</p>
<p>The solution was to use a hidden field when creating the button that would tell paypal where to send the customer after payment.  I included the variables I needed in that url string and obfuscated them for security.  Here is an example of one of my buttons -</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;
	&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt;
	&lt;input type=&quot;hidden&quot; name=&quot;hosted_button_id&quot; value=&quot;AYXBEGS2YCZ6XPT4&quot;&gt;
	&lt;input type=&quot;hidden&quot; name=&quot;return&quot; value=&quot;http://www.findlocalchurches.com/sign_up/successpage/1/&lt;?php echo 'some number'?&gt;/2/1&quot; /&gt;
	&lt;input class=&quot;paypalButton&quot; type=&quot;image&quot; src=&quot;https://www.paypalobjects.com/en_US/i/btn/btn_subscribeCC_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot;&gt;
	&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypalobjects.com/en_US/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;
&lt;/form&gt;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/paypal-ipn-website-payments-standard-return-passback-variables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Unknown column &#8216;price_table_price.attribute_id&#8217; in &#8216;where clause&#8217;</title>
		<link>http://nickbartlett.com/wordpress/magento-unknown-column-price_table_price-attribute_id-in-where-clause/</link>
		<comments>http://nickbartlett.com/wordpress/magento-unknown-column-price_table_price-attribute_id-in-where-clause/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 16:37:21 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=939</guid>
		<description><![CDATA[I&#8217;m new to Magento and this error took me a full day to solve. It would have helped if somebody had the solution on the internet, so I&#8217;m going to ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m new to Magento and this error took me a full day to solve.  It would have helped if somebody had the solution on the internet, so I&#8217;m going to put it out there to help somebody else.  On the catalog search, if you limit the products by price this error would show up Unknown column &#8216;price_table_price.attribute_id&#8217; in &#8216;where clause&#8217; .  I&#8217;m going through upgrading a magento install from 1.3.4.2 to 1.6.2 and the method apply() from /app/code/Mage/Catalog/Model/Layer/Filter/Price.php had been overridden with a local method.  At some point magento changed this method and the under workings, so the custom overridden method was out of date. Alter your custom method to better mimic the new version provided by magento to solve the issue.  </p>
]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/magento-unknown-column-price_table_price-attribute_id-in-where-clause/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Magento Exception with message &#8216;Warning: include(Mage\xxxx\Helper\Data.php)</title>
		<link>http://nickbartlett.com/wordpress/magento-exception-with-message-warning-includemagexxxxhelperdata-php/</link>
		<comments>http://nickbartlett.com/wordpress/magento-exception-with-message-warning-includemagexxxxhelperdata-php/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 17:22:05 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=937</guid>
		<description><![CDATA[If you receive this error with Magento Exception with message &#8216;Warning: include(Mage\xxxx\Helper\Data.php) then it means you&#8217;re calling a helper somewhere and the helper&#8217;s XML config is missing. For this example, ...]]></description>
			<content:encoded><![CDATA[<p>If you receive this error with Magento Exception with message &#8216;Warning: include(Mage\xxxx\Helper\Data.php) then it means you&#8217;re calling a helper somewhere and the helper&#8217;s XML config is missing.  For this example, let&#8217;s say we have a helper called &#8220;custom&#8221;.  First, ensure you&#8217;ve created a class at /app/code/local/Yourcompany/Custom/Helper/Data.php .  Inside Data.php, there should be the following class:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> Yourcompany_Custom_Helper_Data <span style="color: #000000; font-weight: bold;">extends</span> Mage_Core_Helper_Abstract<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>Then in the file /app/etc/config.xml OR /app/code/local/Yourcompany/Custom/etc/config.xml, add the below xml:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;global<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;helpers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lpcustom<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Yourcompany_Custom_Helper<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lpcustom<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/helpers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/global<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/magento-exception-with-message-warning-includemagexxxxhelperdata-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which file is Mage::helper</title>
		<link>http://nickbartlett.com/wordpress/which-file-is-magehelper/</link>
		<comments>http://nickbartlett.com/wordpress/which-file-is-magehelper/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 16:03:48 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=933</guid>
		<description><![CDATA[The way to call helper classes and functions is to use the static helper function in the Mage class providing the component name and desired helper class. For example Mage::helper(‘customer’) ...]]></description>
			<content:encoded><![CDATA[<p>The way to call helper classes and functions is to use the static helper function in the Mage class providing the component name and desired helper class. For example Mage::helper(‘customer’) would return an instance of the class “Mage_Customer_Helper_Data” which is located in app/code/core/Mage/Customer/Helper/Data.php. The choice of helper to be returned can be specified by adding a slash to the helper parameter and naming the class desired. Mage::helper(‘customer/address’) would return an instance of the “Mage_Customer_Helper_Address” located at app/code/core/Mage/Customer/Helper/Address.php.</p>
<p>If you are wondering just what file Mage::helper(’catalog’) relates to as I was wondering (there is no ‘catalog.php’ helper file amongst the helpers in the core catalog module) you can add this code in your block to test:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #990000;">get_class</span><span style="color: #009900;">&#40;</span>Mage<span style="color: #339933;">::</span><span style="color: #004000;">helper</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'catalog'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//outputs Mage_Catalog_Helper_Data</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/which-file-is-magehelper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Studio debugger doesn&#8217;t work on Magento</title>
		<link>http://nickbartlett.com/wordpress/zend-studio-debugger-doesnt-work-on-magento/</link>
		<comments>http://nickbartlett.com/wordpress/zend-studio-debugger-doesnt-work-on-magento/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 15:14:56 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Zend Studio]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=929</guid>
		<description><![CDATA[Learning Magento is hard enough and when you&#8217;re debugger won&#8217;t stop at any breakpoints, that&#8217;s enough to take any developer out of his game. I was fortunate to find this ...]]></description>
			<content:encoded><![CDATA[<p>Learning Magento is hard enough and when you&#8217;re debugger won&#8217;t stop at any breakpoints, that&#8217;s enough to take any developer out of his game.  I was fortunate to find this blog post <a href="http://rocinantesoftware.blogspot.com/2009/06/debugging-magento-vista-xampp-zend.html">http://rocinantesoftware.blogspot.com/2009/06/debugging-magento-vista-xampp-zend.html</a> detailing how to configure various debuggers to work with Magento.  Below is how to configure your magento project with Zend Studio for Eclipse. </p>
<p>ZEND STUDIO FOR ECLIPSE<br />
The following assumes that Magento can be reached from http://127.0.0.1/magento<br />
- From the &#8220;Run&#8221; menu, select &#8220;Debug Configurations&#8221;<br />
- On the left, right-click on &#8220;PHP Web Page&#8221; and select &#8220;New&#8221;<br />
- Name: Magento<br />
- Server Debugger: Zend Debugger<br />
- PHP Server: Click on the &#8220;New&#8221; link<br />
- Name: Magento Server, URL http://127.0.0.1 (do NOT use localhost &#8211; I don&#8217;t have notes on this, but I&#8217;m sure that I had trouble accessing the admin area using local host, and switching to http://127.0.0.1 fixed the problem).<br />
- Hit next, going to the Server Path Mapping, and &#8220;Add&#8221;<br />
- Path on Server: the windows path to your magento dir, e.g. C:\Users\Ed\workspace\magento<br />
- Path in Workspace: /magento<br />
- Click Finish<br />
- Now back in the &#8220;Debug Configurations&#8221; dialog, set file to magento/<br />
- uncheck &#8220;Auto Generate (URL)&#8221;, and set the path (first part of which is auto-generated) to /magento<br />
- In the &#8220;common&#8221; tab, click &#8220;run&#8221; and &#8220;debug&#8221; for showing in the favorite menus.</p>
<p>Also, for me personally I had to edit the php server and clear out the &#8220;Local Web Root&#8221; input and on the &#8220;path mapping&#8221; tab ensure you have one entry &#8211; the &#8220;path on server&#8221; should be the full directory path to your application and the &#8220;local path&#8221; should be the name of your zend studio project, such as &#8220;/magento&#8221;.  </p>
]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/zend-studio-debugger-doesnt-work-on-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Checkout Subscription HTML API Sucks</title>
		<link>http://nickbartlett.com/wordpress/google-checkout-subscription-html-api/</link>
		<comments>http://nickbartlett.com/wordpress/google-checkout-subscription-html-api/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 03:01:52 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Sucks]]></category>
		<category><![CDATA[google checkout]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=924</guid>
		<description><![CDATA[I&#8217;ve had google&#8217;s subscription API in mind to use for my new site for over a year and tonight I tried to quickly integrate with their HTML API. I just ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had google&#8217;s subscription API in mind to use for my new site for over a year and tonight I tried to quickly integrate with their HTML API.  I just wanted a simple button on my site so the customer could click, pay on google&#8217;s site, and come back.  Unfortunately, that was not possible.  Firstly, the documentation for the HTML API is severly lacking; you have to kind of roll your own by looking at the XML API documentation here <a href="http://code.google.com/apis/checkout/developer/Google_Checkout_Beta_Subscriptions.html">http://code.google.com/apis/checkout/developer/Google_Checkout_Beta_Subscriptions.html</a>.  Secondly, there is no way to send additional data to google such as a customer ID or product ID.  Thirdly, there is no pass back to your website after the customer pays!  No data is returned to your site and the customer is also not returned to any sort of success page!  Google tells you a known issue about their service &#8211; &#8220;The only control you have over Google-Handled subscriptions is to cancel them, so they&#8217;re best used in cases where you won&#8217;t want to modify the content or timing of the recurrences at all.&#8221;  </p>
<p>I then came across this forum post about how google checkout sucks <a href="https://groups.google.com/a/googleproductforums.com/forum/#!category-topic/checkout-merchant/account-questions/LXHg5IQFfOU">click to read</a> and it sounded very much like my experience with Amazon where they close your account for no reason and you never talk to anybody.  </p>
<p>So, it looks like I&#8217;m off to find a different cheap subscription solution.  I got sick of dealing with paypal years ago; they canceled my account back when I sold nutritional supplements b/c they didn&#8217;t like some of the products.  I came across Amazon Payments, but I&#8217;d shoot myself in the foot working with amazon again.  Authorize.net has a good recurring billing feature, but the monthly cost gets too high for my little start up making no money right now.  Any suggestions?</p>
<p>By the way, if you&#8217;re still interested in google checkout html api, here is some code below I was able to get working for a subscription.  Just change the merchant ID to yours.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;form</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;POST&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/MERCHANTID&quot;</span> <span style="color: #000066;">accept-charset</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.item-name&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Subscription&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.item-description&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1 Year Featured Level 1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.unit-price.currency&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;USD&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.unit-price&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.quantity&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.type&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;google&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.period&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;YEARLY&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.payments.subscription-payment-1.maximum-charge&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;49.00&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.payments.subscription-payment-1.maximum-charge.currency&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;USD&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.recurrent-item.item-name&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Yearly Featured Level 1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.recurrent-item.item-description&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.recurrent-item.quantity&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.recurrent-item.unit-price&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;49.00&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.subscription.recurrent-item.unit-price.currency&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;USD&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.digital-content.display-disposition&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;OPTIMISTIC&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;shopping-cart.items.item-1.digital-content.description&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Congratulations! Your subscription is being set up.&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;_charset_&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">alt</span>=<span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;https://checkout.google.com/buttons/buy.gif?merchant_id=MERCHANTID&amp;amp;w=121&amp;amp;h=44&amp;amp;style=white&amp;amp;variant=text&amp;amp;loc=en_US&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;image&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span> 
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/google-checkout-subscription-html-api/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Restart Zend Server CE on Windows</title>
		<link>http://nickbartlett.com/wordpress/restart-zend-server-ce-on-windows/</link>
		<comments>http://nickbartlett.com/wordpress/restart-zend-server-ce-on-windows/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:40:37 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=921</guid>
		<description><![CDATA[What you do, don&#8217;t go to the control panel -> services and stop the service. I did this and was unable to log back into mysql, even after a reboot ...]]></description>
			<content:encoded><![CDATA[<p>What you do, don&#8217;t go to the control panel -> services and stop the service.  I did this and was unable to log back into mysql, even after a reboot of my machine.  The way to do it is via the command line and enter &#8220;net stop MySQL_ZendServer51&#8243; and &#8220;net start MySQL_ZendServer51&#8243; . </p>
]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/restart-zend-server-ce-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento set custom admin url</title>
		<link>http://nickbartlett.com/wordpress/magento-set-custom-admin-url/</link>
		<comments>http://nickbartlett.com/wordpress/magento-set-custom-admin-url/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 18:59:36 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://nickbartlett.com/wordpress/?p=919</guid>
		<description><![CDATA[Go to /app/etc/local.xml and add the below before &#60;admin&#62; &#60;routers&#62; &#60;adminhtml&#62; &#60;args&#62; &#60;frontName&#62;anothername&#60;/frontName&#62; &#60;/args&#62; &#60;/adminhtml&#62; &#60;/routers&#62; &#60;/admin&#62; You may need to delete the contents of the /var/ directory to clear ...]]></description>
			<content:encoded><![CDATA[<p>Go to /app/etc/local.xml and add the below before </config></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;admin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;routers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adminhtml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;args<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;frontName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>anothername<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/frontName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/args<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/adminhtml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/routers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/admin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>You may need to delete the contents of the /var/ directory to clear out any cached configs. </p>
]]></content:encoded>
			<wfw:commentRss>http://nickbartlett.com/wordpress/magento-set-custom-admin-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.792 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-19 05:53:07 -->

