【问题标题】:How to get SKU of custom options selected for item order programatically in Magento如何在 Magento 中以编程方式获取为项目订单选择的自定义选项的 SKU
【发布时间】:2012-12-22 22:03:05
【问题描述】:

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

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

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

  • 紫玫瑰数量:从 0 到 10 下拉(每个 SKU 300)

  • Pink Tulips 数量:从 0 到 10 下拉(每个 SKU 为 400)

通过这种方式,客户可以构建自己的购物篮。但是,现在我必须为仓库系统导出我的订单,并且我需要列出带有值(数量)的自定义选项的 SKU。虽然我可以从 Order Item 中获取标签和值。没有 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?

【问题讨论】:

  • 您获得了 ID,因此您始终可以从目录产品选项模型 l 中加载它。这将为您提供所有选项属性

标签: magento magento-1.7


【解决方案1】:

请你试试这个方法。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 在我的情况下,我在选项 sku 上得到空值?你能告诉我为什么吗?
    猜你喜欢
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多