Many payment methods provide the option to specify an order status which should be set after an order has been placed with the respective method. I think that was even possible for PayPal itself in older Magento versions. In the meantime (at least 1.7 - 1.9), this is not possible any more. So how can I set a specific order status after an order has been successfuly paid with PayPal Express? I tried the following:
- Changing the status on the events
checkout_submit_all_after
/sales_order_payment_capture
/sales_order_payment_pay
/sales_order_invoice_pay
: These events are dispatched too early. If I change the order status on one of these events, the PayPal module / Magento will set the status to processing again afterwards. - I also tried to rewrite the method
Mage_Paypal_Model_Ipn#_registerPaymentCapture
and tried to set the status at the end of this method. But it seems as this method is not even called...
So is there any event how I can set the order status after a PayPal Express order? If it is not possible with events, I would also go for a rewrite solution.
By the way here is also the code how I set the order status. But this code works. The status is changed, but changed again by PayPal/Magento afterwards.
$order->addStatusHistoryComment('', 'my_custom_status')
$order->save();