Domanda

Il seguente è un codice per salvare un indirizzo alla rubrica del cliente ... quale valore devo essere messa in region_id ed è necessario?

  $_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');
                    }
È stato utile?

Soluzione

Nelle impostazioni predefinite per gli indirizzi dei clienti è necessario il region_id. Quindi, se si aggiunge un indirizzo di un cliente tramite questo codice non sarebbero in grado di modificarlo o usarlo per cassa senza aggiornare l'indirizzo prima ad includere la regione.

Con riferimento alla quale valore dovrebbe essere l'id corrispondenza della regione che è stata selezionata. È possibile trovare questi visualizzando l'estremità anteriore del sito web o, cercando nel vostro database al "directory_country_region" tavolo.

L'attributo regione utilizza un modello di origine di tipo: Mage_Customer_Model_Resource_Address_Attribute_Source_Region

che carica le opzioni tramite il seguente codice:

public function getAllOptions()
{
    if (!$this->_options) {
        $this->_options = Mage::getResourceModel('directory/region_collection')->load()->toOptionArray();
    }
    return $this->_options;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top