Php Magento:为什么订购的项目在此变量中重复?
当我按订单号加载订单时,返回的数组包含相同的项目两次Php Magento:为什么订购的项目在此变量中重复?,php,magento,Php,Magento,当我按订单号加载订单时,返回的数组包含相同的项目两次 $order = Mage::getModel('sales/order')->loadByIncrementId(12345); $orderItems = $order->getItemsCollection(); 如果订单包含一个项目,那么,count($orderItems)将为2,并且每个数组索引中的内容将是相同的。发生什么事了 我也尝试了以下方法来加载订单,但在Magento Enterprise 1.11.2.0上
$order = Mage::getModel('sales/order')->loadByIncrementId(12345);
$orderItems = $order->getItemsCollection();
如果订单包含一个项目,那么,count($orderItems)
将为2,并且每个数组索引中的内容将是相同的。发生什么事了
我也尝试了以下方法来加载订单,但在Magento Enterprise 1.11.2.0上甚至都不起作用
$order = Mage::getModel('sales/order')->load(12345);
$orderItems = $order->getAllItems()
如果您使用的是可配置产品,则magento会复制sales_flat_order_item数据库表中的订单项目
如果您使用$order->getAllVisibleItems(),您将得到您想要的。如果您使用的是可配置的产品,magento将复制sales\u flat\u order\u item数据库表中的订单项
如果使用$order->getAllVisibleItems(),您将得到所需的内容。您确定脚本没有执行两次,例如因为错误的重写规则或重定向?检查您的web服务器日志,看看是否每个服务器都被命中两次。嗯,我在system.log中没有看到任何内容。一个脚本执行两次会如何导致这种情况
$order
的内容在创建时在右侧重复。我尝试过在销售确认页面和PDF发票生成页面上以这种方式加载订单。在这两种情况下,数组的内容都是重复的。因此,我目前正在执行if($I%2==0)
以获取唯一的项,但我有一种感觉,当重复项不再存在时,这肯定会失败。您确定脚本不会执行两次,例如由于错误的重写规则或重定向?检查您的web服务器日志,看看是否每个服务器都被命中两次。嗯,我在system.log中没有看到任何内容。一个脚本执行两次会如何导致这种情况$order
的内容在创建时在右侧重复。我尝试过在销售确认页面和PDF发票生成页面上以这种方式加载订单。在这两种情况下,数组的内容都是重复的。所以,我目前正在做if($I%2==0)
来获取唯一的项目,但我感觉当重复项不再存在时,这肯定会失败。虽然我已经很久没有弄明白这一点了,但我会标记您的答案,以便它可以帮助其他人<代码>$order->getAllVisibleItems()检索前端和后端显示的所有项目(管理员)。有关更多信息,请参见Mage\u Sales\u Model\u Order::getAllVisibleItems()
。虽然我很久没有弄明白这一点了,但我会标记您的答案,以便它可以帮助其他人<代码>$order->getAllVisibleItems()检索前端和后端显示的所有项目(管理员)。有关更多信息,请参阅Mage\u Sales\u Model\u Order::getAllVisibleItems()
。