我正在尝试从观察者的产品中获取自定义属性。 我有以下内容:
public function export_new_order($observer){
$orderIds = $observer->getData('order_ids');
foreach($orderIds as $_orderId){
$order = Mage::getModel('sales/order')->load($_orderId);
Mage::log($order->debug());
}
}
哪个工作正常,我在日志中得到了一个很好的print_r 但是,当我尝试获取物品时,它无法正常工作。
我试过了:
public function export_new_order($observer){
$orderIds = $observer->getData('order_ids');
foreach($orderIds as $_orderId){
$order = Mage::getModel('sales/order')->load($_orderId);
Mage::log($order->debug());
$items = $order->getAllItems();
Mage::log($items->debug());
}
}
还有:
$items = $order->getAllVisibleItems();
Mage::log($items->debug());
但是这些都不起作用,每当我点击“#34;放置顺序"
时,我都会看到白屏<?xml version="1.0"?>
<config>
<modules>
<Feed_Sales>
<version>0.0.1</version>
</Feed_Sales>
</modules>
<global>
<models>
<feedsales>
<class>Feed_Sales_Model_Order_Observer</class>
</feedsales>
</models>
<events>
<checkout_onepage_controller_success_action>
<observers>
<feed_sales_model_order_observer>
<type>singleton</type>
<class>Feed_Sales_Model_Order_Observer</class>
<method>export_new_order</method>
</feed_sales_model_order_observer>
</observers>
</checkout_onepage_controller_success_action>
</events>
</global>
答案 0 :(得分:1)
我相信,你得到的物品很好,问题出在其他地方。集合没有 debug 方法,因此如果您查看服务器日志,很可能会发现有关此错误。
因此,如果您想调试项目,您应该执行以下操作:
public function export_new_order($observer){
$orderIds = $observer->getData('order_ids');
foreach($orderIds as $_orderId){
$order = Mage::getModel('sales/order')->load($_orderId);
Mage::log($order->debug());
$items = $order->getAllItems();
foreach ($items as $item) {
Mage::log($item->debug());
}
}
}
答案 1 :(得分:0)
尝试按如下方式获取订单,然后获取该订单的商品
$order = new Mage_Sales_Model_Order();
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order->loadByIncrementId($incrementId);
这显示在以下链接中。
Magento: Obtain Id for order, listening to the event checkout_onepage_controller_success_action
答案 2 :(得分:0)
paramter fetch存在问题。
要获得订单ID,请尝试此
$orderIds = $observer->getEvent()->getOrderIds();
您需要更改模型前缀类名:
以强>
<class>Feed_Sales_Model</class>
发件人:强>
<class>Feed_Sales_Model_Order_Observer</class>
和
自:
<class>Feed_Sales_Model_Order_Observer</class>
到
<class>feedsales/order_observer</class>
文件位置应为app / code / YOurMOduleCodePool / Feed / Sales / Model / Order / Observer.php