While working with magento site developers should know the process of placing an order. The normal process of placing an order in magento is as under:
Step 1: Customer chooses the products from magento site according to their requirements and adds those products to cart.
Step 2: Customer fills the shipping and billing information.
Step 3: Customer selects the payment method and gives the payment information.
Step 4: Customer clicks on “Place Order” button and order is placed.
Step 5: Customer is redirected to the checkout success page and order confirmation email is sent to him/her.
Normally in magento we are using one-page checkout and order confirmation email is sent from /app/code/core/Mage/Checkout/Model/Type/Onepage.php file.
But the order confirmation email is sent from magento only if we are not using third party external payment system and not redirecting over there.
This is because magento assumes that the order confirmation email will be sent by the redirected third party external payment gateway like: Paypal, Google Checkout.
Now if some developer gets an exception of order confirmation email not sent, then first of all he should check whether the order has been placed using any third party external payment system or not?
And if the order has been placed using any third party external payment system then he should check whether the code to send the email exists in that third party module or not. Because if there is any problem with that code in the third party module or there is no code at all then the mail won’t be sent. So better check that possibility as well.
Hope this will help you.