magento 更新 custom option 的data数据

获取更新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;	
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值