Archive: Magento

Pequeño podcast Número 5 – Ecommerce

 

Magento, Podcast, Prestashop

Este podcast está realizado para Gente que esté pensando en lanzarse en montar su propio proyecto de Ecommerce – comercio electrónico.

Podcast realizado escuchando Feeling Good interpretado por mi amigo Ryan Jacobs

 


 

Crear un Observer en Magento

 

Magento

En Magento tenemos lo que se llaman eventos, se ejecuta antes o después de una acción determinada en la tienda Magento, por ejemplo después de terminar nuestra compra.

Estas llamadas se realizan con un método que se llama en las funciones que despachan tal evento:

Mage::dispatchEvent($evento, array $data);

No haría falta llamar este método, ya que Magento posee un listado predefinido.

Lo más fácil para entender esto y ver su utilidad, es con un ejemplo:

EJEMPLO

La idea, es que cuando se ejecute el observer “sales_order_payment_place_end”, después de hacer un pago correcto, se ejecute nuestro código, que en este caso tan solo guardara en el Log de Magento, la id de la orden, y el total. Tendremos que que añadir nuestro pequeño módulo en app/code/ “comumunity” o “local”, community si tu interés es compartirlo con otros usuario, si es algo particular, en “local”.

Es muy importante como crear tu directorio de carpetas para magento, al final del este post adjunto el ejemplo completo, para tener más claro el árbol de directorios.

Otro de los aspectos importantes a tener en cuenta, es el archivo config.xml, donde definiremos el nombre del observer de Magento, también definiremos, la clase y el método que ejecutaremos, cuando se lance el observer.


    
        
            1.0
        
    
    
        
            
                
                    
                        singleton
                        Pay_Order_Model_Observer
                        orderView
                    
                
            
        
    

 

Ya solo nos queda crear nuestro observer, con nuestro método, de una forma muy sencilla.

getEvent();
    $order = $event->getOrder();
    
    Mage::log('orden id: ' . $order->getRealOrderId() . ' total:' . $order->getGrandTotal(););
    return $this;


  }

}

?>

 
Nos faltaría solo un pequeño paso para Magento reconozca el módulo, y es añadir un archivo en el directorio ect/modules de magento, en este caso el archivo será llamado “Invoice_Order.xml” ( tiene que ver con el nombre que hemos dado al directorio donde guardamos el módulo.



    
        
            true
            community
        
    

Ver el código en Github