2014-03-27 2 views
0

magneto의 사용자 정의 옵션에서 필요를 제거하는 데 문제가 있습니다. 고객에게 업그레이드 옵션을 입력하지 않아도됩니다. 내가 select.phtml에 코드를magento의 사용자 정의 옵션에서 필요를 제거하는 방법

<?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Select */ ?> 
<?php $_option = $this->getOption() ?> 
<dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->htmlEscape($_option->getTitle()) ?></label></dt> 
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>> 
    <div class="input-box"> 
     <?php echo $this->getValuesHtml() ?> 
     <?php if ($_option->getIsRequire()): ?> 
      <?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?> 
       <span id="options-<?php echo $_option->getId() ?>-container"></span> 
      <?php endif; ?> 
     <?php endif;?> 
    </div> 
</dd> 

나에게 내가 필요한 옵션을 제거하는 일을 사람을 도와주세요.

내가이 스크립트를 사용하여 사용자 정의 옵션 CSV를 추가 -

<?php 
// Report all PHP errors (see changelog) 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
// Same as error_reporting(E_ALL); 
ini_set('error_reporting', E_ALL); 

// Include Magento application 
require_once ("../app/Mage.php"); 
umask(0); 

// Initialize Magento 
Mage::app("default"); 
$start = 0; 
$totalno = 100000; 
$row = 0; 
$sku = 0; 
$baseRowoption = array(); 
$myarrayoption = array(); 
if (($handle = fopen("custom_option-final.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle,",")) !== FALSE) { 
     $num = count($data); 
     for ($c=0; $c < $num; $c++) { 
      if($row == 0){ 
       $baseRowoption[$c]=$data[$c]; 
      }else{ 
       if($c==0){ 
        $sku=$data[$c]; 
       } 
       $myarrayoption[$sku][$row][$baseRowoption[$c]]=$data[$c]; 
      } 
     } 
     $row++; 
     if($row > $totalno){ 
      break; 
     } 
    } 
    fclose($handle); 
} 

$myarrayoptionfinal = array(); 
foreach($myarrayoption as $key=>$myarrayoption1){ 
    //if($key != "smartek-rx3044"){ break; } 
    foreach($myarrayoption1 as $myarrayoption11){ 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['input_type'] = $myarrayoption11['input_type']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['required'] = $myarrayoption11['required']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['sort_order'] = $myarrayoption11['sort_order']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['row_title'][] = $myarrayoption11['row_title']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['row_price'][] = $myarrayoption11['row_price']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['row_price_type'][] = $myarrayoption11['row_price_type']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['row_sku'][] = $myarrayoption11['row_sku']; 
     $myarrayoptionfinal[$key][$myarrayoption11['option_title']]['row_sort_order'][] = $myarrayoption11['row_sort_order']; 
    } 

} 

echo "<pre>"; 
echo "total No : ".count($myarrayoptionfinal); 
echo "<br />"; 
//print_r($myarrayoptionfinal); 
$i=0; 
foreach($myarrayoptionfinal as $keys=>$myarrayoptionfinal1){ 
    if($i<$start){ 
     $i++;  continue; 
    } 
    echo "<br />".$i."--->"; 
    $i++; 
    echo $keys."--->"; 

    $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$keys); 
    if($product){ 
    foreach ($product->getProductOptionsCollection() as $option) 
    { 
     $optionsData = $option->getData(); 
     $optionsData['is_delete'] = 1; 
     $product->setProductOptions(array($option->getId() => $optionsData)); 
     $product->setCanSaveCustomOptions(true); 
     $product->save(); 
    }}else{ 
     continue; 
    } 
    $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$keys); 
    print_r($product->getData("entity_id")); 
    foreach($myarrayoptionfinal1 as $keysub=>$myarrayoptionfinal11){ 
     $subarray = array(); 
     foreach($myarrayoptionfinal11['row_title'] as $keysub1=>$myarrayoptionfinal111){ 
      $subarray[]=array(
         'is_delete'  => 0, 
         'title'   => $myarrayoptionfinal111, 
         'price_type' => $myarrayoptionfinal11['row_price_type'][$keysub1], 
         'price'   => $myarrayoptionfinal11['row_price'][$keysub1], 
         'sku'   => $keys.'_'.$myarrayoptionfinal11['row_sku'][$keysub1], 
         'sort_order' => $myarrayoptionfinal11['row_sort_order'][$keysub1], 
         'option_type_id'=> -1, 
        ); 
     } 

     $required = false; 
     if($myarrayoptionfinal11["required"] == 1) $required = true; 
     $opt = array(
      'is_delete'   => 0, 
      'is_require'  => $required, 
      'previous_group' => '', 
      'title'    => $keysub, 
      'type'    => $myarrayoptionfinal11["input_type"], 
      'price_type'  => '', 
      'price'    => '', 
      'sort_order'  => $myarrayoptionfinal11["sort_order"], 
      /** array of values for this option **/ 
      'values'   => $subarray, 
      ); 
    } 
    try { 
      //print_r($opt); 
      $option = Mage::getModel('catalog/product_option') 
       ->setProduct($product) 
       ->addOption($opt) 
       ->saveOptions(); 
      $product->setHasOptions(1); 
      $product->save(); 
     } 
    catch (Exception $e) { 
      echo 'Caught exception 2: '.$e->getMessage()."\n"; 
      continue; 
     } 
} 
+0

"카탈로그"-> "속성"-> "속성 관리"로 이동 한 다음 속성에서 "필수"기능을 해제하면됩니까? – Enigmativity

+0

모든 제품에 대해 프로그래밍 방식으로 제거하는 방법 –

+0

프로그래밍 방식으로 필요한 이유가 무엇입니까? Magento는 –

답변

0

이 문제를 만들기 위해 고정 속성 세트가 필요로 변경 필요 = csv에 "0"을 입력하고 위의 스크립트를 사용하여 업로드하십시오.

1

Brar, is_required = 0을 해제 필요한 필드를

'is_require'  => 0 
관련 문제