通过PHP访问Magento中订单的自定义选项


Accessing custom options of an order in Magento via PHP

我正在加载一个订单:

$order = Mage::getModel('sales/order')->load(2886);
$items = $order->getAllItems();

然后我使用foreach循环:

foreach ($items as $itemId => $item){
    $name[] = $item->getName();
    $unitPrice[]=$item->getPrice();
    $sku[]=$item->getSku();
    $ids[]=$item->getProductId();
    $qty[]=$item->getQtyToInvoice();
}

我可以得到我需要的大部分数据。但是,我在获取为订单选择的自定义选项时遇到了问题。我可以看到var转储中的数据,但我没有成功地挖掘出它。我还尝试了一些从谷歌上找到的内置功能,但没有成功。

matt (OP)已经自我回答了这个问题。

:


我能够得到我需要的通过使用:

$opts = $item->getProductOptions();

在我的foreach循环。var_dump显示了如何轻松访问数据。

正如Nuno Furtado上面所说的,这在Magento 1.8+中没有返回任何内容。

我的解决方案是:

$opts=$item->getData('product_options');
$opts=unserialize($opts);
print_r($opts);