The $txn->address is basically array, but sometimes the store module try to use it as an object.
Possible solution:

Index: sites/all/modules/contributions/ecommerce/ec_store/ec_store.inc
===================================================================
--- sites/all/modules/contributions/ecommerce/ec_store/ec_store.inc	(revision)
+++ sites/all/modules/contributions/ecommerce/ec_store/ec_store.inc	(working copy)
@@ -18,7 +18,7 @@
     return FALSE;
   }
   foreach ($txn->address as $type => $address) {
-    $address->txnid = $txn->txnid;
+    $address['txnid'] = $txn->txnid;
     ec_store_transaction_address_save($address, $type);
   }
 }
@@ -32,7 +32,7 @@
  *   String, address type(corresponds to type field in database).
  */
 function ec_store_transaction_address_save($address, $type) {
-  $address->type = $type;
+  $address['type'] = $type;
 
   drupal_write_record('ec_transaction_address', $address, array('txnid', 'type'));
   if (!db_affected_rows()) {

Comments

gordon’s picture

Status: Active » Fixed

I have fixed this in other places.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.