Looping though XML cart items in Google Checkout
(in HTML / PHP / CSS on Monday, January 21st, 2008 by Andrew)There is a Google Group setup to discuss Google’s Checkout API only the group sucks. I have no patience to read though thousands of meaningless posts just to find what I’m looking for and sadly searching Google for help on their API is actually pretty tough.
Basically when you are working on the responsehandler.php file, the file that gets callbacks from Google on all kinds of notifications, it isn’t initially clear how you receive the data and then utilize it. Your variables wind up looking something like $data[$root]['shopping-cart']['merchant-private-data']['VALUE'] where $root is a case value switching between the different types of notifications you can receive, in this case it is new-order-notification.
The problem arises when you try and get all of the items out of the shopping cart. An item name for example is $data[$root]['shopping-cart']['items']['item']['item-name']['VALUE']. Now items occurs once in the hierarchy but each cart item is contained in the <item></item> tags. Simply put, in a DFD items:item would be labeled as 1:N.
What does the code to get this done look like? This:
foreach ($items as $item) {
$insert_into_order_contents=”
INSERT INTO order_contents SET
`google-id`=”.$data[$root]['google-order-number']['VALUE'].”,
`email`=’”.$data[$root]['shopping-cart']['merchant-private-data']['VALUE'].”‘,
`item-id`=”.$item['merchant-item-id']['VALUE'].”,
`item-name`=’”.$item['item-name']['VALUE'].”‘,
`unit-price`=”.$item['unit-price']['VALUE'].”,
`quantity`=”.$item['quantity']['VALUE'].”,
`owner`=’”.$item['merchant-private-item-data']['VALUE'].”‘
“;
$result3 = mysql_query($insert_into_order_contents,$db);
}
