Question

Ce qui suit est un code pour enregistrer une adresse au carnet d'adresse du client ... quelle valeur dois-je être mettre en region_id et est-il nécessaire?

  $_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');
                    }
Était-ce utile?

La solution

Dans les paramètres par défaut pour les adresses des clients du region_id est nécessaire. Donc, si vous ajoutez une adresse pour un client via ce code, ils ne seraient pas en mesure de le modifier ou l'utiliser à la caisse sans mettre à jour l'adresse première à inclure la région.

En ce qui concerne la valeur qui devrait être l'identifiant correspondant de la région qui a été sélectionné. Vous pouvez trouver ces en regardant l'extrémité avant du site ou en regardant dans votre base de données à la table « directory_country_region ».

L'attribut de région utilise un modèle de source de type: Mage_Customer_Model_Resource_Address_Attribute_Source_Region

Quelle charge les options via le code suivant:

public function getAllOptions()
{
    if (!$this->_options) {
        $this->_options = Mage::getResourceModel('directory/region_collection')->load()->toOptionArray();
    }
    return $this->_options;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top