如何在Magento中以编程方式为项目订单选择SKU自定义选项

时间:2013-01-08 22:46:28

标签: magento magento-1.7

我有一个产品有多个自定义选项的客户可以选择。例如:

产品:10朵花篮(SKU 100) 自定义选项:

  • 红玫瑰数量:下降0到10(每个有SKU 200)

  • Purple Roses数量:下拉0到10(每个有SKU 300)

  • 粉色郁金香数量:下降0到10(每个有SKU 400)

这样客户可以建立自己的篮子。但是,现在我必须导出我的仓库系统订单,我需要列出自定义选项的SKU值(数量)。虽然我可以从订单项中获取标签和价值。没有SKU。

我得到的东西是这样的:

$orders = Mage::getModel('sales/order')->getCollection()
              ->addAttributeToFilter('status', array('eq' => 'processing'));
foreach ($orders as $order) {

  foreach ($order->getAllItems() as $order_item) {

      $optionsArr = $order_item->getProductOptions();

       if (count($optionsArr['options']) > 0) {
            foreach ($optionsArr['options'] as $option) {
                $optionTitle = $option['label'];
                $optionId = $option['option_id'];
                $optionValue = $option['value'];
                // no SKU ?!?! 
            }
        }

  }

}

如何选择每个自定义选项的SKU?

2 个答案:

答案 0 :(得分:4)

尝试加载产品并获取选项集。

foreach($order->getAllItems() as $item) {
    $product = Mage::getModel('catalog/product')->load($item->getProductId());
    $options = $product->getProductOptionsCollection();
    foreach($options as $option) {
        echo $option->getSku();
    }
}

答案 1 :(得分:0)

请你这样试试。

foreach($order->getAllItems() as $_item) {
$customOptions = $_item->getProductOptions();

        foreach ($customOptions['options'] as $_eachOption) {
            $objModel = Mage::getModel('catalog/product_option_value')->load($_eachOption['option_value']);
            print_r($objModel->getData());
        }
}