1

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

$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",'; 
}

现在,我已经确定

  • 标签交付日期在数据库“目录产品选项标题表”中可用
  • 自定义选项交货日期在“目录产品选项表”中具有值

似乎没有通过脚本访问交货日期,因此我的自定义消息“交货日期错误”保存在 CSV 中

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

对我来说,代码还可以,但不知道为什么它不起作用....

有人可以指导我吗?

4

1 回答 1

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'];
      }
    }
  }
}
于 2012-12-29T20:30:07.910 回答