XML API Developer's Guide: stronger, faster, easier!



Based on feedback from a ton of developers, we've just completed a major overhaul of the Google Checkout Developer's Guide. The new guide is designed to give you an overview of how Google Checkout works and what features it offers. The overview then links to additional documents that let you drill down into the inner workings of specific features. So whether you're selling digital goods, calculating your own shipping costs, or defining obscure tax rules, the new Checkout guide has a little something for everybody.

Stay tuned for updates to the HTML API Developer's Guide.

Permalink | Links to this post | 0 comments

Carrier-calculated shipping is here


One of the most requested features of Google Checkout is to provide buyers with shipping rates for the major shipping carriers. So we're pleased to announce support for carrier-based shipping calculations for FedEx, UPS and the US Postal Service. Since we do the shipping calculations, you can also use this feature instead of having to set up a handler for Merchant-calculated shipping.

To use carrier-calculated shipping in a shopping cart post, simply include a list of the carriers and delivery services you offer. Here's what the XML would look like if you wanted to offer Priority Overnight shipping with FedEx:

      <shipping-methods>
<carrier-calculated-shipping>
<carrier-calculated-shipping-options>
<carrier-calculated-shipping-option>
<shipping-company>FedEx</shipping-company>
<carrier-pickup>Regular_pickup</carrier-pickup>
<shipping-type>Priority Overnight</shipping-type>
</carrier-calculated-shipping-option>
...

</carrier-calculated-shipping-options>
</carrier-calculated-shipping>
</shipping-methods>

You will also need to specify the weight of the items in the shopping cart.
It's important to note that this feature is currently available for U.S. merchants and buyers only. There are many more options as well, including the ability to apply simple business rules to the shipping rate returned. For example, you can ask for the rate for FedEx Priority Overnight, add 5% to cover handling, and present that result to the buyer. Or, you can offer a $10 discount on shipping for a particular shipping method. You can find more information in
the Google Checkout Developer's Guide.


Permalink | Links to this post | 0 comments

New Buy Now buttons. Now with editable content(edible too).



Did you ever want to modify a Buy Now button, or include tax and shipping fees? Now you can! Buy Now buttons are now generated using the HTML API. What this means is that you can edit the values without creating a new Buy Now button.

For example a new Buy Now button for Peanut Butter will now look like:


<form action= "https://checkout.google.com/cws/v2/Merchant/
12345678/checkoutForm" id="BB_BuyButtonForm" method="post"
name="BB_BuyButtonForm">
<input name="item_name_1" type="hidden" value="Peanut Butter"/>
<input name="item_description_1" type="hidden"
    value="Delicious Peanut Butter"/>
<input name="item_quantity_1" type="hidden" value="1"/>
<input name="item_price_1" type="hidden" value="15.0"/>
<input name="item_currency_1" type="hidden" value="USD"/>
<input name="_charset_" type="hidden" value="utf-8"/>
<input alt="" src=" https://checkout.google.com/buttons/buy.gif
    ?merchant_id=12345678&w=117&h=48&style=white&
    variant=text&loc=en_US" type="image"/>
</form>

When a user clicks on the Buy Now button generated by this code, they will purchase 1 Peanut Butter for $15. If you wanted to change the price to $5, you can change the item_price_1 line to:
    <input name="item_price_1" type="hidden" value="5.0"/>

If you wanted the user to buy 10 items instead of one, you would change the item_quantity_1 line to:
    <input name="item_quantity_1" type="hidden" value="10"/>

To find out more information about the HTML API and how you can edit the values, please view the HTML API documetation or HTML API tutorial.


For more HTML API features checkout these tutorials.

Creating a Buy Now button with customer input values


Using XML in the HTML API


Specifying international shipping and taxes

Permalink | Links to this post | 0 comments

Google Checkout API Java SDK released



"Plan to throw one away; you will anyway", Fred Brooks, The Mythical Man-Month

In May, we released Java sample code for the Google Checkout API that simplified integration and had no dependency on JDK version. Today we're releasing the final update of that sample code, including bug fixes and new API features--you can download it here.

In addition to the final update for the Java sample code, we're simultaneously releasing the new Google Checkout API Java SDK. The SDK is a replacement for the sample code and will be the focus of our future development. We're doing this because while extending the sample code was simple, it required modifying the sample servlet in order to specify your own handlers. This made including the sample code in your application, as well as upgrading to a new version, not at all straightforward.

The SDK solves these issues: it provides a binary dependency that includes parsers, generators, servlets and default demo handlers, as well as a sample web.xml, and a new configuration file, checkout-config.xml, to specify your handlers for callbacks and notifications declaratively. With the SDK, enabling Google Checkout in your application is just a matter of dropping a jar in WEB-INF/lib, pasting a few lines in your web.xml, and copying checkout-config.xml to WEB-INF--as described in the documentation.

The previous sample web application, and new ones, will live in the samples directory of the new open source project.
Developers who are using the sample code are advised to migrate their application to the SDK, since all future development will be focused on the SDK: it should amount to a small straightforward refactoring that is described in the documentation.

As with the sample code, the SDK is a Community-supported open source project. We intend to release a minor update with bug-fixes every two months or so. If you need a bug-fix urgently and can not wait for the update release, you have two options:
  1. Modify the source-code available under the project/ directory of your SDK bundle and build a new library for your use. The project/ directory is setup to be an Eclipse as well as a NetBeans project.
  2. Download the source-code from the subversion repository and build a release yourself. Here are the instructions on how to download and build the project from Eclipse.

You are welcome to log any bugs or suggested bug-fixes under the Issues page.

We hope that this SDK will help you implement Google Checkout even more easily in your applications, and will ease the maintenance of your application as we add new features to the API and the SDK. As alway, please let us know what you think in the comments.

Permalink | Links to this post | 0 comments

Interview: Renaud Visage from Eventbrite about monetizing a Facebook application with Google Checkout




In today's interview, Renaud Visage, CTO of Eventbrite, an online events registration application, explains how he uses the Google Checkout API in Eventbrite, and describes Events Plus, their cool new Facebook application, that is just like Facebook Events but lets you collect money online for your events.

Eventbrite is written in Python, and Renaud does not yet use Evgeniy Tarassov's excellent Google Checkout Python library, but plans to start using it soon. They use the Checkout HTML API, and since the Facebook Markup Language allows for regular form tags, integrating Google Checkout in their Facebook application required no work at all (just make sure that you use absolute urls).

Try out the regular Eventbrite application:


Or their Facebook application:


Here is a screenshot of Events Plus:

Permalink | Links to this post | 0 comments

The Google Checkout Cookbook Wiki



In addition to our open-source sample code, we're also interested in collaborating with you on Checkout-specific articles, so we recently put all of our Checkout tutorials on a wiki. If you've ever had an experience that might fit in nicely with one of the current cookbook articles, please share it with the rest of the community so that other developers may leverage your experiences in their own integration. We're excited to see any clever ideas, helpful tips, and best practices that you've implemented: please feel free to share. Also, if you want to discuss your ideas further please visit our new subgroup, Articles & Tutorials.

Permalink | Links to this post | 0 comments

Address Filters, more than meets the eye



Do you know about the address-filters tag? If you're using Merchant Calcualtions you must use address-filters to specify restricted and allowed shipping areas. For example, if you set your address-filters to indicate that you only ship to the lower 48 states, and a buyer selects an address in Hawaii, the buyer will see a message indicating the seller does not ship to the location. The address-filters are evaluated before Google Checkout sends the merchant-calculation-callback request to your system- so it can save you server cycles or 3rd party shipping API calls.

You can continue to use the shipping-restrictions tag. But Google Checkout will only look at shipping-restrictions if the merchant-calculation-callback fails for any reason. Here's an XML snippet for a shipping method that ships to all 50 US States under normal circumstances. If the callback fails, however, this method will only ship to the lower 48 states for a price of $8.00


<merchant-calculated-shipping name="Ground Shipping">
  <price currency="USD">8.00</price>
  <address-filters>
    <allowed-areas>
      <us-country-area area="FULL_50_STATES"/>
    </allowed-areas>
  </address-filters>
  <shipping-restrictions>
    <allowed-areas>
      <us-country-area area="CONTINENTAL_48"/>
    </allowed-areas>
  </shipping-restrictions>
</merchant-calculated-shipping>


If you only use shipping-restrictions and Google Checkout receives your merchant-calculations-results, then the shipping-restrictions won't eve be evaluated. If you rely on Google Checkout to decide whether or not you ship to a given address, it is important that you use address-filters.

Click here for a more in depth explanation of use cases for shipping-restrictions and address-filters

Permalink | Links to this post | 0 comments