Lapinou
Lapinou

Reputation: 1477

Magento Event Check Order State When Changed

Hope all is fine for you :)

Today, I'm programming on Magento. As you can see in the title, I would like to catch an event when the state of an order has changed (Pending payment, processing, Complete).

And, do something if order is in state "Processing" or "Pending payment" or "Complete".

I used "sales_order_save_after" in my config.xml for my event, and in my class, I done this:

<?php

class Test_Model_Observer extends Mage_Core_Model_Abstract
{
    /**
     * Magento passes a Varien_Event_Observer object as
     * the first parameter of dispatched events.
     */

    public function logOrderUpdated(Varien_Event_Observer  $observer)
    {
       // if state = pending payment, do:
       // if state = processing, do:
       // if state = complete, do:

       Mage::log(
          "State:",
          null, 
          'order-state.log');
    }
}

The event works, but I don't know how to know the state of the order... Can you help me please ?

Thank you so much!

Upvotes: 1

Views: 1574

Answers (1)

OSdave
OSdave

Reputation: 8587

public function getStatus(Varien_Event_Observer $observer)
{
    $status = $observer->getEvent()->getOrder()->getStatus();
    $state = $observer->getEvent()->getOrder()->getState();
}

Upvotes: 2

Related Questions