valeur region_id lors de l'enregistrement au carnet d'adresses de clients
-
16-10-2019 - |
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');
}
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;
}