我试图从观察者中的产品中获取一个自定义属性。我有以下几点:
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());
但是没有这些工作,每当我点击“点菜”时,我就会得到一个白色的屏幕。
<?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>
发布于 2015-06-10 01:45:17
我相信,你把东西弄得很好,问题就在别的地方。集合中没有调试方法,因此如果查看服务器日志,很可能会发现有关该方法的错误。
因此,如果您想调试这些项,应该执行如下操作:
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());
}
}
}
发布于 2015-06-10 01:38:04
试着按以下方式获得订单,然后获取该订单的项目
$order = new Mage_Sales_Model_Order();
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order->loadByIncrementId($incrementId);
下面的链接显示了这一点。
发布于 2015-06-10 01:45:20
参数提取有问题。
为了获得订单,你可以试试这个
$orderIds = $observer->getEvent()->getOrderIds();
您需要更改模型前缀类名:
to:
<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
https://stackoverflow.com/questions/30752367
复制相似问题