顧客アドレス帳に保存する際のRegion_id値
-
16-10-2019 - |
質問
以下は、顧客アドレス帳にアドレスを保存するためのコードです... 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である必要があります。これらは、Webサイトのフロントエンドを表示するか、テーブル「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;
}
所属していません magento.stackexchange