如何从Observer获取Magento订单数据 [英] How to get Magento Order data from Observer
问题描述
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屋!