Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento:为什么订购的项目在此变量中重复?_Php_Magento - Fatal编程技术网

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()