获取更新data数据的格式函数:
private function getIdByOptionValue($size_array,$value){
foreach($size_array as $k=>$v){
if($value == $v){
return $k;
}
}
return false;
}
public function getOptionData($product,$size_array){
//$size_array=array("S","L","M","N");
//$product = Mage::getModel('catalog/product')->load(8);
$values = array();
$i = 0;
if($product->getTypeInstance(true)->hasOptions($product)){
foreach($product->getOptions() as $o) {
if($o->getValues()){
if($o->getTitle() == "size"){
$p = $o->getValues();
$i = 1;
$y_size_array = array();
$option_array = array();
foreach($p as $v)
{
$th_title = $v->getTitle();
if(in_array($th_title,$size_array)){
$option_array[] = array(
'is_delete' => 0,
'title' => $v->getTitle(),
'price_type' => 'fixed',
'price' => 0,
'sku' => $v->getTitle(),
'sort_order' => $this->getIdByOptionValue($size_array,$v->getTitle()),
'option_type_id'=> $v->getOptionTypeId(),
);
$y_size_array[] = $v->getTitle();
}else{
$option_array[] = array(
'is_delete' => 1,
'title' => $v->getTitle(),
'price_type' => 'fixed',
'price' => 0,
'sku' => $v->getTitle(),
'sort_order' => $this->getIdByOptionValue($size_array,$v->getTitle()),
'option_type_id'=> $v->getOptionTypeId(),
);
}
}
$array_diff = array_diff($size_array,$y_size_array);
if(!empty($array_diff)){
foreach($array_diff as $ar){
$option_array[] = array(
'is_delete' => 0,
'title' => $ar,
'price_type' => 'fixed',
'price' => 0,
'sku' => $ar,
'sort_order' => $this->getIdByOptionValue($size_array,$ar),
);
}
}
$optionData = array(
'is_delete' => 0,
'is_require' => false,
'previous_group' => '',
'title' => $o->getTitle(),
'type' => 'drop_down',
'option_id' => $o->getOptionId(),
'price_type' => 'fixed',
'price' => '0',
'sort_order' => 0,
'values' => $option_array,
);
}else{
}
}
}
}
if($i == 0){
foreach($size_array as $key => $sar){
$option_array[] = array(
'is_delete' => 0,
'title' => $sar,
'price_type' => 'fixed',
'price' => 0,
'sku' => $sar,
'option_type_id'=> -1,
'sort_order' => $key,
);
}
$optionData = array(
'is_delete' => 0,
'is_require' => false,
'previous_group' => '',
'title' => 'size',
'type' => 'drop_down',
'price_type' => 'fixed',
'price' => '0',
'sort_order' => 0,
'values' => $option_array,
);
}
return $optionData;
}