我使用以下代码来获取和处理自定义选项
$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扩展...
对我来说,代码没问题,但不确定为什么它不起作用....任何人都可以指导我吗?
答案 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'];
}
}
}
}