cancel
Showing results for 
Search instead for 
Did you mean: 

Problem im Backend bei unterschiedlichen Rechnungs- und Versandanschrift

Problem im Backend bei unterschiedlichen Rechnungs- und Versandanschrift

Hallo Gemeinde,

ich habe ein riesiges Problem bei der Umstellung des vorhandenen Checkouts auf den Standard-Onepage Checkout.

Ich bin gerade gezwungen, den vorhandenen (vom Vorgänger selbst gebastelten) OnlyonestepCheckout umzustellen auf einen Checkout, bei dem ich Lieferadressen ändern kann und eine Versandmatrix einsetzen will.

Onepage funktioniert im Frontend ganz normal, ich kann vorhandene Adressen verwenden, neue Adressen anlegen, alles ohne Fehlermeldung.

Sobald sich aber Rechnungs- und Lieferanschrift unterscheiden, erscheint im Backend beim klick auf "Bestellungen" eine angebliche doppelte Bestellung:

Item (Aries_AttachTermsAndConditions_Model_Order) with the same id "549" already exist

oder wenn ich die Extension abschalte siehts so aus

Item (Mage_Sales_Model_Order) with the same id "549" already exist

Es liegt also nicht an der Erweiterung aus der ersten Meldung.

Der Trace zeigt folgendes:

Trace:
#0 /www/htdocs/.../lib/Varien/Data/Collection/Db.php(582): Varien_Data_Collection->addItem(Object(Aries_AttachTermsAndConditions_Model_Order))
#1 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(550): Varien_Data_Collection_Db->load()
#2 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php(61): Mage_Adminhtml_Block_Widget_Grid->_prepareCollection()
#3 /www/htdocs/.../app/code/community/Medma/Removeorder/Block/Adminhtml/Sales/Order/Grid.php(55): Mage_Adminhtml_Block_Sales_Order_Grid->_prepareCollection()
#4 /www/htdocs/.../app/code/community/BL/CustomGrid/Model/Grid/Rewriter/Eval.php(32) : eval()'d code(91): Medma_Removeorder_Block_Adminhtml_Sales_Order_Grid->_prepareCollection()
#5 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(643): BL_CustomGrid_Block_Rewrite_Medma_Removeorder_Block_Adminhtml_Sales_Order_Grid->_prepareCollection()
#6 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(649): Mage_Adminhtml_Block_Widget_Grid->_prepareGrid()
#7 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(922): Mage_Adminhtml_Block_Widget_Grid->_beforeToHtml()
#8 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(641): Mage_Core_Block_Abstract->toHtml()
#9 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(585): Mage_Core_Block_Abstract->_getChildHtml('grid', true)
#10 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Widget/Grid/Container.php(77): Mage_Core_Block_Abstract->getChildHtml('grid')
#11 /www/htdocs/.../app/design/adminhtml/default/default/template/widget/grid/container.phtml(36): Mage_Adminhtml_Block_Widget_Grid_Container->getGridHtml()
#12 /www/htdocs/.../app/code/core/Mage/Core/Block/Template.php(241): include('/www/htdocs/w01...')
#13 /www/htdocs/.../app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#14 /www/htdocs/.../app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#15 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#16 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Widget/Container.php(308): Mage_Adminhtml_Block_Template->_toHtml()
#17 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(923): Mage_Adminhtml_Block_Widget_Container->_toHtml()
#18 /www/htdocs/.../app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
#19 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(923): Mage_Core_Block_Text_List->_toHtml()
#20 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(641): Mage_Core_Block_Abstract->toHtml()
#21 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(585): Mage_Core_Block_Abstract->_getChildHtml('content', true)
#22 /www/htdocs/.../app/design/adminhtml/default/default/template/page.phtml(74): Mage_Core_Block_Abstract->getChildHtml('content')
#23 /www/htdocs/.../app/code/core/Mage/Core/Block/Template.php(241): include('/www/htdocs/w01...')
#24 /www/htdocs/.../app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#25 /www/htdocs/.../app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#26 /www/htdocs/.../app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#27 /www/htdocs/.../app/code/core/Mage/Core/Block/Abstract.php(923): Mage_Adminhtml_Block_Template->_toHtml()
#28 /www/htdocs/.../app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
#29 /www/htdocs/.../app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
#30 /www/htdocs/.../app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php(95): Mage_Core_Controller_Varien_Action->renderLayout()
#31 /www/htdocs/.../app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_Sales_OrderController->indexAction()
#32 /www/htdocs/.../app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index')
#33 /www/htdocs/.../app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#34 /www/htdocs/.../app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#35 /www/htdocs/.../app/Mage.php(686): Mage_Core_Model_App->run(Array)
#36 /www/htdocs/.../index.php(84): Mage::run('', 'store')
#37 {main}

Die Bestellung ist im Kundenbereich zu sehen, scheint also zumindest auf den ersten Blick OK zu sein.

In der Datenbank ist in "sales_flat_order" die Bestellung nur ein Mal vorhanden.

Aber sobald ich im Backend auf "Verkäufe" -> "Bestellungen" klicken, kommt es zu oben genannten Problem.

In der Übersichtsseite kann ich die aktuelle Bestellung aber problemlos anklicken und bearbeiten. Das kann eigentlich nur ein Grid-Problem im Backend sein.

WO und WIE kann ich es lösen?

 

Hat irgendjemand einen Denkansatz für mich?

 

Bitte bitte, vielleicht kann mir diesmal jemand helfen.

Roman hast du vielleicht eine Idee, du weisst doch immer fast alles ;-)

4 REPLIES 4

Re: Problem im Backend bei unterschiedlichen Rechnungs- und Versandanschrift

 Varien_Data_Collection->addItem(Object(Aries_AttachTermsAndConditions_Model_Order))

 

Was genau steht denn in diesem modul? Kann es sein dass da etwas schief geht?

 

Ist jetzt schwer zu sagen, ohne den code zu kennen, aber da würde ich als erstes nachschauen

Magento Certified Developer - Deutsch, nederlands, english - 10+ years of Experience

Re: Problem im Backend bei unterschiedlichen Rechnungs- und Versandanschrift

Und wie kann ich mir genau diesen Inhalt ausgeben lassen?

Re: Problem im Backend bei unterschiedlichen Rechnungs- und Versandanschrift

Ich hab jetzt mal bei /www/htdocs/.../s7/lib/Varien/Data/Collection/Db.php die Werte von Item ausgeben lassen.

Zeile 575 - 584 sieht im Original so aus:

        if (is_array($data)) {
            foreach ($data as $row) {
                $item = $this->getNewEmptyItem();
                if ($this->getIdFieldName()) {
                    $item->setIdFieldName($this->getIdFieldName());
                }
                $item->addData($row);
                $this->addItem($item);
            }
        }

dann habe ich drei Ausgaben eingebaut:

        if (is_array($data)) {
            foreach ($data as $row) {
                $item = $this->getNewEmptyItem();
                if ($this->getIdFieldName()) {
                    $item->setIdFieldName($this->getIdFieldName());
                }
		$output = print_r($item, true);
		file_put_contents('varien-db-php1.txt', $output,  FILE_APPEND ); 
                $item->addData($row);
		$output = print_r($item, true);
		file_put_contents('varien-db-php2.txt', $output,  FILE_APPEND ); 
                $this->addItem($item);
		$output = print_r($item, true);
		file_put_contents('varien-db-php3.txt', $output,  FILE_APPEND ); 
            }
        }

Die ID existiert ab der zweiten Ausgabe in $item und kommt auch nur ein einziges Mal vor.

"$item->addData($row);" bringt den Wert in $item und "$this->addItem($item);" beinhaltet dann auch nur ein Mal die ID.

Die Frage ist also: Wo soll die zweite gleiche ID dazu?

 

Re: Problem im Backend bei unterschiedlichen Rechnungs- und Versandanschrift

Nachtrag:

Das Problem entsteht ausschliesslich,bei folgenden Konstellationen:

- Standardrechnungsanschrift und Lieferanschrift aus Adressbuch

- Rechnungsanschrift aus Adressbuch und anderer Lieferanschrift aus Adressbuch

 

Also immer wenn unterschiedliche Adressen aus dem Adressbuch bei einer Bestellung benutzt werden.

 

Das Problem ist nur ersichtlich beim Grid für die Bestellungen. Bin ich auf der Startseite, also Übersichtsseite, ist klar ersichtlich, dass die Bestellung nur ein Mal da ist (seh ich ja, wenn ich mit der Maus über die Bestellungen gehe und die ID's vergleiche).

 

Was kann die Ursache sein, wie beseitige ich es? Scheint ja so, als wäre es ein Problem der Ansicht, also eventuell des Grids?