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');
                    }
¿Fue útil?

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top