Frage

Das Folgende ist ein Code, um eine Adresse im Kundenadressbuch zu speichern ... welchen Wert muss ich in die Region_ID einsetzen und benötigt es?

  $_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');
                    }
War es hilfreich?

Lösung

In den Standardeinstellungen für Kundenadressen ist die Region_id erforderlich. Wenn Sie also eine Adresse für einen Kunden über diesen Code hinzufügen, könnten sie sie nicht bearbeiten oder zum Auschecken verwenden, ohne die Adresse zuerst zu aktualisieren, um die Region einzuschließen.

In Bezug auf welchen Wert sollte es sich um die passende ID der ausgewählten Region handeln. Sie finden diese, indem Sie das Frontend der Website anzeigen oder in Ihre Datenbank in der Tabelle "Directory_Country_region" suchen.

Das Region -Attribut verwendet ein Quellmodell vom Typ: mage_customer_model_resource_address_attribute_source_region

Dies lädt die Optionen über den folgenden Code:

public function getAllOptions()
{
    if (!$this->_options) {
        $this->_options = Mage::getResourceModel('directory/region_collection')->load()->toOptionArray();
    }
    return $this->_options;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top