Magento getAllVisibleItems(),getAllItems返回项目两次
我正在尝试做一些非常简单的事情——从订单中获取物品。Magento 1.7似乎为此提供了三个功能Magento getAllVisibleItems(),getAllItems返回项目两次,magento,magento-1.7,Magento,Magento 1.7,我正在尝试做一些非常简单的事情——从订单中获取物品。Magento 1.7似乎为此提供了三个功能 getAllItems():返回所有项目两次。归还的物品 类型简单(不可配置) getItemsCollection():同上 getAllVisibleItems():同上 我在别处读到的许多答案都指出这个问题是由“父”和“子”产品引起的,但我的数据库中没有。我已经检查了定义父/子关系的表,它们都是空的 以下是我正在运行的代码: $order = Mage::getModel(
- getAllItems():返回所有项目两次。归还的物品 类型简单(不可配置)
- getItemsCollection():同上
- getAllVisibleItems():同上
$order = Mage::getModel("sales/order")->load($order_id, 'increment_id'); //load order by order id
$ordered_items = $order->getAllVisibleItems();
//$ordered_items = $order->getAllItems();
//$ordered_items = $order->getItemsCollection();
foreach($ordered_items as $item)
{
if($this->debug)
{
echo $item->getItemId()."</br>";
echo $item->getProductId()."</br>";
echo $item->getSku()."</br>";
echo $item->getQtyOrdered()."</br>";
echo $item->getName()."</br>";
}
echo("*************************************************</br>");
}
And the output is
6
934
1003
1.0000
ProductA
*************************************************
6
934
1003
1.0000
ProductA
*************************************************
$order=Mage::getModel(“销售/订单”)->加载($order\u id,'increment\u id')//按订单id加载订单
$ordered_items=$order->getAllVisibleItems();
//$ordered_items=$order->getAllItems();
//$ordered_items=$order->getItemsCollection();
foreach($ordered_items作为$item)
{
如果($this->debug)
{
echo$item->getItemId()。“”;
echo$item->getProductId()。“”;
echo$item->getSku()。“”;
echo$item->getQtyOrdered()。“”;
echo$item->getName()。“”;
}
回声(“*****************************************************************”;
}
输出是
6.
934
1003
1
产品A
*************************************************
6.
934
1003
1
产品A
*************************************************
正如您所看到的,输出的第一个数字是实际的实体id-因此我得到的是同一项目的真实副本?您必须使用此代码
$order = Mage::getModel("sales/order")->load($order_id, 'increment_id');
$_items = $order->getItemsCollection();
foreach ($_items as $item) {
if ($item->getParentItem()) continue;
//do something
echo $item->getSku();
}
我刚刚查看了sales\u flat\u order\u项目,以确认此产品在订单ID中只有一个条目,您的代码放在哪里了?您确定这不是实际调用两次的函数,而不是重复的项吗?duhhh。。。。你完全正确。我们刚刚单独测试了代码,这些项只出现一次。仍然不确定错误在哪里,但这不是Magento函数的问题(当然不是!)谢谢-很抱歉浪费您的时间!如果有什么安慰的话-你为我节省了几个小时。也许你必须将标题编辑为[已解决]