last day (14 days later) » 

12:21
0
A: Sales order observer event issue

BornCoderYou are getting this error because $order = $observer->getEvent()->getOrder(); is not working. UPDATE: $order = $observer->getEvent()->getOrder(); if(!$order->getId()){ $order->setState(Mage_Sales_Model_Order::STATE_NEW, true); } OR : $order = $observer->getEvent()->getOrder(); if(!$...

If I do an echo $order->getId() I got the right id, so it works I also get the parent_id from $getOrder->getData('relation_parent_id').
this line ` $OldOrder->setState(Mage_Sales_Model_Order::STATE_CANCELED, true)->save()` is the problem
better to use sales_order_place_after because order is not saved in sales_order_save_after
and no need to write save();
check updated answer
no errors this time, but the parent order didn't change its status, its still the same
$order = $observer->getEvent()->getOrder();
if(!$order->getId()):
$orderModel = Mage::getModel('sales/order')->load($order->getId());
$orderModel->setState(Mage_Sales_Model_Order::STATE_NEW, true);
$orderModel->setId($order->getId());
$orderModel->save();
endif;
try this code
hello
12:23
Hi
be aware I dont want to change the status of the new order
what i do i go to existing order->edit it->make modification
and then save it
so a new order is created with the increment_id 1321231231-1
for instance
and i want ot change in that moment the status of its parent id , so in our case , whihc has this icnrement_id: 1321231231
Did u get it :) ?
yes
let me check
ok, thank you a lot :)
Hi,

use sales_order_place_after event.

So, in the observer, you will get increment id of new order,
after that you need to get old order increment id .

$newIncrementId = '1321231231-1';
$oldOrderIncrementId = strstr($newIncrementId, '-', true);


Then Load your old order and update the status.


$orderModel = Mage::getModel('sales/order')->load($oldOrderIncrementId);
$orderId = $orderModel->getId();
$orderModel->setState(Mage_Sales_Model_Order::STATE_NEW, true);
$orderModel->setId($orderId);
give me a few seconds to try it
still this error:
`` Uncaught Error: Call to a member function getMethodInstance() on boolean in /opt/lampp/htdocs/rebuildnew/httpdocs/app/code/core/Mage/Payment/Model/Observer.‌​php:46 Stack trace:
12:36
have do done any customization in payment method?
the issue is i think cuz I have an invoice to my order
or added any checkout related extension
when i create an order an invoice is created automatically(customization) and the status is set to "Processing"
I believe I cannot change the order status to canceled in my case if I have an order
right ?
order status can change
check after delete cache once
srry what ?

last day (14 days later) »