2013-03-04 56 views
1

ANyone有更新客户默认运费和帐单地址的示例脚本?我需要循环所有客户,并在没有指定国家的情况下将该国设为默认“美国”。更新默认客户地址的国家

我试过以下,没有运气。有什么想法吗?

$customers = Mage::getResourceModel('customer/customer_collection'); 

foreach ($customers as $customer) { 

    // customer object 
    $customer = Mage::getModel('customer/customer')->load($customer->getId()); 
    $address = Mage::getModel('customer/address'); 

    if ($default_shipping_id = $customer->getDefaultShipping()) { 
     $address->load($default_shipping_id); 
    } else { 
     $address 
      ->setCustomerId($customer->getId()) 
      ->setIsDefaultShipping('1') 
      ->setSaveInAddressBook('1') 
     ; 
     $address_arr = $address->getData(); 

     // country 
     if (!isset($address_arr['country_id'])) { 

      $address->setCountryId('United States'); 

      try { 
       $address->save(); 
       fwrite(STDOUT, '++ COUNTRY UPDATED FOR ' . $customer->getId() . "\n"); 
      } catch(Exception $e) { 
       error_log(json_encode($e->getMessage())); 
      } 

     } 

    } 

} 

回答

2

其代码中的一个错字

该行必须

 $address->setCountryId('US'); 

,而不是

 $address->setCountryId('United States'); 

,您应该使用国家ID,而不是名称和国家ID为美国是美国..所以使用它,并设置它的权利。

相关问题