以下是一些代码,可以将地址保存到客户地址簿中...我需要在region_id中投入什么价值,是否需要?

  $_custom_address = array (
                        'firstname' => 'Honkey',
                        'lastname' => 'Joseph',
                        'street' => array (
                            '0' => 'Sample address part1 SECOND',
                            '1' => 'Sample address part2 SECOND',
                        ),
                        'city' => 'Orlando',
                        'region_id' => '',
                        'region' => 'MN',
                        'postcode' => '31000',
                        'country_id' => 'US',
                        'telephone' => '0038531555444',
                    );
                    $customAddress = Mage::getModel('customer/address');
                    //$customAddress = new Mage_Customer_Model_Address();
                    $customAddress->setData($_custom_address)
                                ->setCustomerId($customer->getId())
                                ->setSaveInAddressBook('1');
                    try {
                        $customAddress->save();
                    } 
                    catch (Exception $ex) {
                        Mage::log('Could not save customer',null,'caitlin.log');
                        Mage::log($ex->getMessage(),null,'caitlin.log');
                    }
有帮助吗?

解决方案

在客户地址的默认设置中,需要region_id。因此,如果您通过此代码添加了客户的地址,他们将无法对其进行编辑或使用它进行结帐,而无需首先更新地址以包括该区域。

关于哪个值应该是已选择区域的匹配ID。您可以通过查看网站的前端或查看表“ Directory_country_region”的数据库来找到这些。

区域属性使用类型的源模型:mage_customer_model_resource_address_attribute_source_region

哪个通过以下代码加载选项:

public function getAllOptions()
{
    if (!$this->_options) {
        $this->_options = Mage::getResourceModel('directory/region_collection')->load()->toOptionArray();
    }
    return $this->_options;
}
许可以下: CC-BY-SA归因
scroll top