Magento从逗号分隔的订单中获取产品ID

时间:2018-07-08 06:29:45

标签: php magento

我需要从订单中获取productID,并以这种方式显示: [1234,7534,4587]

我可以通过以下方式获取产品ID:

$incrementId = "12345";
$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
$items = $order->getAllItems();
$itemcount= count($items);
$meuproduto = array();
$i=0;
foreach($items as $itemId => $item) {
  $meuproduto[$i]['id'] = $item->getProductId();
    echo implode(", ", $meuproduto[$i]);
}

例如,此订单有产品2709和7048,因此我想显示: [2709,7048]

但是有了代码,它显示了: 27097048

我尝试过str_replace("", ", ", $meuproduto[$i]);,但得到的结果相同。我尝试了不同的方法,但总是得到相同的结果。

print_r($meuproduto[$i]); 

结果:

Array ( [id] => 2709 ) Array ( [id] => 7048 )

2 个答案:

答案 0 :(得分:0)

您要回显每个产品而不是产品列表,因此请将回显置于循环之外。

您也永远不会更改$i,因此它将始终写入数组的第一个元素,您可以使用[]在数组的末尾添加一个项目... < / p>

$meuproduto = array();
foreach($items as $itemId => $item) {
  $meuproduto[] = $item->getProductId();
}    
echo implode(", ", $meuproduto);

答案 1 :(得分:0)

您可以使用以下代码

$meuproduto = array();

foreach($items as $itemId => $item) {
      $id = $item->getProductId();
      array_push($meuproduto,$id);

}
print_r($meuproduto);