質問

以下は、顧客アドレス帳にアドレスを保存するためのコードです... 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;
}
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top