The Magento “place order” step can take up to a minute. With thanks to this site I figured out how to fix slow checkouts.
Step 1
Find the file app/code/core/Mage/Rss/etc/config.xml and uncomment/remove:
<sales_order_save_after>
<observers>
<notifystock>
<class>rss/observer</class>
<method>salesOrderItemSaveAfterNotifyStock</method>
</notifystock>
</observers>
</sales_order_save_after>
<sales_order_save_after>
<observers>
<ordernew>
<class>rss/observer</class>
<method>salesOrderItemSaveAfterOrderNew</method>
</ordernew>
</observers>
</sales_order_save_after>
Step 2
Find the file app/code/core/Mage/Downloadable/etc/config.xml and uncomment/remove:
<!–sales_order_item_save_commit_after>
<observers>
<downloadable_observer>
<class>downloadable/observer</class>
<method>saveDownloadableOrderItem</method>
</downloadable_observer>
</observers>
</sales_order_item_save_commit_after–>
Step 1 is exactly what I needed for Princessly which suddenly started taking 30 – 120 seconds after customers clicking Place Order. Thank you so much!
Hi our site uses downloadable products is it okay just to do step 1?
Thanks for this worthy piece of content, I was having an issue with the cart but I moved my hosting to Cloudways and their support team fixed the issue. and Admin page & Cart is working very fast through CDN and FPC.
Nice find, you make a good point. These two pieces can be commented out without losing anything of value. Unfortunately, the performance gain is not a lot.
I had to dig deeper and had additional performance gains from disabling loadChildProductImagesOnMediaLoad in /app/code/core/Mage/ConfigurableSwatches/Model/Observer.php:
public function loadChildProductImagesOnMediaLoad(Varien_Event_Observer $observer) {
+ if(Mage::app()->getRequest()->getRouteName() == ‘checkout’) return;
if (!Mage::helper(‘configurableswatches’)->isEnabled()) { // functionality disabled
return; // exit without loading swatch functionality
Found the tip here: https://onilab.com/blog/magento-checkout-slow-fix-it-in-8-simple-steps/