Magento Checkout braucht ewig (Timeout)

Der Magento Checkout braucht manchmal Ewigkeiten, um den Checkout abzuschliessen.
So ist z.B. ein Warenkorb mit 80 Positionen und ca. 400 Artikeln nach 6 Minuten in den PHP Timeout gelaufen.

Der Grund hierfür liegt in den Observern, die beim Abschluss einer Bestellung aufgerufen werden.
Hierbei handelt es sich um den Observer sales_order_item_save_after der Module Downloadable/RSS

Diese Observer wurden auch aufgerufen, obwohl die Module im Magento backend in der Systemkonfiguration deaktiviert wurden.

Um die Observer zu deaktivieren, müssen folgende Codezeilen auskommentiert werden:

app/code/core/Mage/Downloadable/etc/config.xml

<sales_order_item_save_after>
    <observers>
        <downloadable_observer>
            <class>downloadable/observer</class>
            <method>saveDownloadableOrderItem</method>
        </downloadable_observer>
    </observers>
</sales_order_item_save_after>

Hinweis: In Magento 1.6.2.0 heisst der Downloadable Observer sales_order_item_save_commit_after

app/code/core/Mage/Rss/etc/config.xml

<sales_order_item_save_after>
    <observers>
        <notifystock>
            <class>rss/observer</class>
            <method>salesOrderItemSaveAfterNotifyStock</method>
        </notifystock>
    </observers>
</sales_order_item_save_after>
<sales_order_item_save_after>
    <observers>
        <ordernew>
            <class>rss/observer</class>
            <method>salesOrderItemSaveAfterOrderNew</method>
        </ordernew>
    </observers>
</sales_order_item_save_after>

Danke hierfür an diesen Thread: Stackoverflow

Wie immer der Hinweis: Dies sind Core Dateien, die hier überschrieben werden! Am besten ist es daher, ein eigenes Modul zu erstellen und die Core Config zu überschreiben!

Unter folgendem Link findet sich hierzu ein Beitrag (wurde nicht getestet): Modul erstellen

Schreibe einen Kommentar