Google Checkout now works very nicely on my website (still the test site and GCO's sandbox).

One troubling issue, however, is the fact that a customer that made a purchase using GCO without logging into my website, cannot return for a 2nd or 3rd download after an hour or so. Instead, she receives "Session Expired". This is despite the browser not been closed and valid and despite Cart Expiration Time (Minutes) set to NONE in the GCO admin page.

Being able to download a purchased product several times over a week is a feature that I offer to my customers, in case something went wrong with the first download (or the customer simply misplaced the downloaded file).

I contacted the Google Checkout API Support and they realized pretty quickly that this is not a bug but rather a result of two conflicting requirements:
  1. Checkout without having to log in.
  2. Preserve sessions to some extent (at least until the download link expires).


The solution that was proposed by Google Checkout API Support was to place the GCO button after the login pages (yes, this was allowed by them since I only sell digital content).

The challenge now is: How to implement this?

I noticed that the GCO module is smart enough to enable/disable the GCO button depending on some conditions. Can I just add another condition that checks whether a customer is logged in?

Any ideas how to accomplish that?