如何从Observer获取Magento订单数据 [英] How to get Magento Order data from Observer

查看:133
本文介绍了如何从Observer获取Magento订单数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,我搜索了整个网络,没有任何工作。结果非常不一致。让我先来看看我在这里有什么它最终将创建一个导出文件,但无法获取订单数据和对象。

  class Packagename_Modulename_Model_Observer 
{
public function exportFeed(Varien_Event_Observer $ observer)
{
$ order = $ observer-> getEvent() - > getOrder();

$ ordered_items = $ order-> getAllItems();

和config.xml中

 <全局> 
< events>
< sales_order_place_after>
< observers>
< packagename_modulename_order_observer>
< class> Packagename_Modulename_Model_Observer< / class>
< method> exportFeed< / method>
< / packagename_modulename_order_observer>
< /观察者>
< / sales_order_place_after>
< / events>
< / global>

现在,我看到人们没有使用Varien_Event_Observer,

  public function exportFeed($ observer)

Ive也试过没有getEvent()

  $ order = $ observer-> getOrder(); 

并且在config.xml中有不同的东西,有和没有单例

 < type> singleton< / type> 
< class> packagename_modulename / observer< / class>

我想要做的是导出订单放置时订购的特定商品的库存Feed Magento。

解决方案

尝试



在config.xml中

 < config> 
< modules>
< Packagename_Modulename>
< version> 1.3< / version>
< / Packagename_Modulename>
< / modules>
....
< global>
< models>
< packagename_modulename>
< class> Packagename_Modulename_Model< / class>
< / packagename_modulename>
< / models>
< events>
< sales_order_place_after>
< observers>
< packagename_modulename_order_observer>
< type> singleton< / type>
< class> modulename / observer< / class>
< method> exportFeed< / method>
< / packagename_modulename_order_observer>
< /观察者>
< / sales_order_place_after>

在Observer.php中

  class Packagename_Modulename_Model_Observer 
{
public function exportFeed($ event)
{
$ order = $ event-> getOrder();
foreach($ order-> getAllVisibleItems()as $ item){
$ item-> getQtyOrdered()//已订购的项目数
// $ item-> getQtyShipped )
// $ item-> getQtyInvoiced()

$ optionArray = $ item-> getProductOptions()
// Todo:检查是否设置并且是数组$ optionArray ['options']
foreach($ optionArray ['options'] as $ option){
// Mage :: log($ option)
// echo $ option ['标签']
// $ option ['value']
}
}


Ok, Ive searched all over the web and nothing worked. The results were very inconsistent. Let me first show you what I have here. It will create an export file in the end but unable to obtain order data and object.

class Packagename_Modulename_Model_Observer
{
    public function exportFeed (Varien_Event_Observer $observer)
    {
        $order = $observer->getEvent()->getOrder();

        $ordered_items = $order->getAllItems();   

and in config.xml

<global>
  <events>
        <sales_order_place_after>
            <observers>
                <packagename_modulename_order_observer>
                    <class>Packagename_Modulename_Model_Observer</class>
                    <method>exportFeed</method>
                </packagename_modulename_order_observer>
            </observers>
        </sales_order_place_after>
    </events>
</global>

Now, Ive seen people use without Varien_Event_Observer like that,

public function exportFeed ($observer)

Ive also tried without getEvent()

$order = $observer->getOrder();

and something different in config.xml, with and without singleton

<type>singleton</type>
<class>packagename_modulename/observer</class>

All I want to do is export an inventory feed of that particular item ordered when an order is placed via Magento.

解决方案

Try

In config.xml

<config>
  <modules>
    <Packagename_Modulename>
        <version>1.3</version>
    </Packagename_Modulename>
  </modules>
  ....
  <global>
   <models>
        <packagename_modulename>
            <class>Packagename_Modulename_Model</class>
        </packagename_modulename>
   </models>
   <events>
      <sales_order_place_after>
         <observers>
            <packagename_modulename_order_observer>
                <type>singleton</type>
                <class>modulename/observer</class>
                <method>exportFeed</method>
            </packagename_modulename_order_observer>
         </observers>
      </sales_order_place_after>

In Observer.php

class Packagename_Modulename_Model_Observer 
{
   public function exportFeed($event)
    {
        $order = $event->getOrder();
        foreach ($order->getAllVisibleItems() as $item){
           $item->getQtyOrdered() // Number of item ordered
           //$item->getQtyShipped()  
           //$item->getQtyInvoiced()

           $optionArray = $item->getProductOptions()
           // Todo : check to see if set and is array $optionArray['options']
           foreach($optionArray['options'] as $option){
               // Mage::log($option)
               //echo $option['label']
               //$option['value']
           }
        }

这篇关于如何从Observer获取Magento订单数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆