Mag定制选项问题

时间:2012-12-29 19:06:25

标签: php arrays magento loops csv

我使用以下代码来获取和处理自定义选项

$orderIncrementId = $order->getIncrementId();
                $orderReal = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);    


    $orderItems = $orderReal->getAllItems();   

    $sk = "";
    foreach ($orderItems as $item)
                {
      $options = $item->getProductOptions();      
      foreach ($options as $option) {
       if (is_array($option)) {
       $firstElement = array_shift($option);

   foreach ($option as $firstElement){
           if (isset($firstElement['label']) && isset($firstElement['option_value'])){
         if ($firstElement['label'] == 'Delivery Date') {
             $deliveryDate = $firstElement['option_value'];

                                }
                            }
                        }
                    }   
                  }
                }

我的用法就是像这样把它写成CSV

if (isset($deliveryDate)) {
    $outputString.= '"'.$deliveryDate.'",'; 
} else {
    $outputString.= '"deliverydate error",'; 
}

现在,我确定了

  • 标签交付日期在数据库"目录产品选项标题表"
  • 自定义选项交付日期的值为"目录产品选项 表"

看起来未通过脚本访问投放日期,因此我的自定义消息' deliverydate error'以CSV格式保存

实际上我正在尝试调试无法正常工作的mag扩展...

对我来说,代码没问题,但不确定为什么它不起作用....

任何人都可以指导我吗?

1 个答案:

答案 0 :(得分:3)

虽然它不是完美的解决方案,但这将返回订购商品的自定义选项值,假设您的商品自定义选项是“字段”类型。

foreach ($orderItems as $item) {
  $optionsArray = $item->getProductOptions();
  if(isset($optionsArray['options'])) {
    foreach ($optionsArray['options'] as $option) {
      if($option['label'] == 'Delivery Date') {
        $deliveryDate = $option['value'];
      }
    }
  }
}