Patch für CustomerController / Magento 1.4.0.1

von | Mrz 30, 2010 | Magento, Shopsysteme, Technologie | 0 Kommentare

Da derzeit das Error-Handling im CustomerController des Backends kaputt. Statt der Exception-Message erscheint eine andere Exception: sehr unschön und mühsam beim Debuggen:

Item (Mage_Customer_Model_Address) with the same id "1" already exist

#0 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/Eav/Model/
Entity/Collection/Abstract.php(236): 
Varien_Data_Collection->addItem(Object(Mage_Customer_Model_Address))
#1 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/
Customer/Model/Customer.php(204): 
Mage_Eav_Model_Entity_Collection_Abstract->addItem
(Object(Mage_Customer_Model_Address))
#2 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/
Adminhtml/controllers/CustomerController.php(112): 
Mage_Customer_Model_Customer->addAddress(Object(Mage_Customer_Model_Address))
#3 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/
Core/Controller/Varien/Action.php(418): 
Mage_Adminhtml_CustomerController->editAction()
#4 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/
Core/Controller/Varien/Router/Standard.php(254): 
Mage_Core_Controller_Varien_Action->dispatch('edit')
#5 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/
Core/Controller/Varien/Front.php(177): 
Mage_Core_Controller_Varien_Router_Standard->match
(Object(Mage_Core_Controller_Request_Http))
#6 /var/www/virtual/mage/mage-df-1/app/code/core/Mage/
Core/Model/App.php(304): 
Mage_Core_Controller_Varien_Front->dispatch()
#7 /var/www/virtual/mage/mage-df-1/app/Mage.php(596): 
Mage_Core_Model_App->run(Array)
#8 /var/www/virtual/mage/mage-df-1/index.php(78): Mage::run('', 'store')
#9 {main}

Ich habe den Bug als Issue erfasst, doch es dürfte wohl etwas dauern, bis Varien das Issue bearbeitet und die nächste Version veröffentlicht. Den Patch habe ich auch dem Issue im Magento-Bugtracker angehängt aber offensichtlich können Dateien von außen nicht abgerufen werden, was sehr schade ist. Daher veröffentliche ich den Patch auch mal hier:

### Eclipse Workspace Patch 1.0
#P magento-1.4
Index: app/code/core/Mage/Adminhtml/controllers/CustomerController.php
===================================================================
--- app/code/core/Mage/Adminhtml/controllers/CustomerController.php(revision 61891)
+++ app/code/core/Mage/Adminhtml/controllers/CustomerController.php(working copy)
@@ -107,9 +107,12 @@
         }
         if (isset($data['address']) && is_array($data['address'])) {
             foreach ($data['address'] as $addressId => $address) {
-                $addressModel = Mage::getModel('customer/address')->setData($address)
+                if (!($addressModel = $customer->getAddressItemById($addressId))) {
+                    $addressModel = Mage::getModel('customer/address');
+                    $customer->addAddress($addressModel);
+                }
+                $addressModel->setData($address)
                     ->setId($addressId);
-                $customer->addAddress($addressModel);
             }
         }

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Akeneo trifft auf künstliche Intelligenz

Akeneo trifft auf künstliche Intelligenz

In der heutigen Zeit sind Unternehmen auf der Suche nach innovativen Technologien, um ihre Geschäftsprozesse zu optimieren und ihre Wettbewerbsfähigkeit zu steigern. Eine dieser Technologien ist Künstliche Intelligenz (KI), die Unternehmen bei der Automatisierung von...

mehr lesen
Consent Management Platform von Real Cookie Banner