如何从 Observer 获取 Magento 订单数据

2024-01-02

好吧,我在网上搜索了所有内容,但没有任何效果。结果非常不一致。首先让我向您展示我这里有什么。最终会创建一个导出文件,但无法获取订单数据和对象。

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

        $ordered_items = $order->getAllItems();   

并在 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>

现在,我看到人们在没有 Varien_Event_Observer 的情况下使用这样的,

public function exportFeed ($observer)

我也尝试过不使用 getEvent()

$order = $observer->getOrder();

config.xml 中有一些不同的东西,有或没有单例

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

我想要做的就是导出通过 Magento 下订单时订购的特定商品的库存提要。


Try

在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>

在观察者.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']
           }
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Observer 获取 Magento 订单数据 的相关文章

随机推荐