gpt4 book ai didi

magento - getAllVisibleItems(), getAllItems 两次返回项目

转载 作者:行者123 更新时间:2023-12-02 17:42:42 24 4
gpt4 key购买 nike

我正在尝试做一些非常简单的事情 - 从订单中获取商品。 Magento 1.7 似乎为此提供了三个功能。

  • 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
*************************************************

如您所见,输出的第一个数字是实际的 entity_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();
}

关于magento - getAllVisibleItems(), getAllItems 两次返回项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com