Valor regional_id al ahorrar en la libreta de direcciones del cliente
-
16-10-2019 - |
Pregunta
El siguiente es algún código para guardar una dirección en la libreta de direcciones del cliente ... ¿Qué valor necesito poner en la región_id y es necesario?
$_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');
}
Solución
En la configuración predeterminada para las direcciones del cliente se requiere la región_id. Entonces, si agrega una dirección para un cliente a través de este código, no podría editarla o usarla para verificar sin actualizar la dirección primero para incluir la región.
Con respecto a qué valor debería ser la identificación coincidente de la región que ha sido seleccionada. Puede encontrarlos viendo el extremo frontal del sitio web o buscando su base de datos en la tabla "Directory_country_region".
El atributo de región utiliza un modelo de origen de tipo: mage_customer_model_resource_address_attribute_source_region
Que carga las opciones a través del siguiente código:
public function getAllOptions()
{
if (!$this->_options) {
$this->_options = Mage::getResourceModel('directory/region_collection')->load()->toOptionArray();
}
return $this->_options;
}