2015-02-23 66 views
0

我發生此錯誤「致命錯誤:帶有消息'SQLSTATE [23000]的未捕獲異常'Mage_Eav_Model_Entity_Attribute_Exception':完整性約束違規:1062重複條目'6152-0-11-0'for key」在magento中添加自定義選項時出錯

WHE添加自定義在Magento編程選項,我用這個函數:

function createCustomOption($value, $customoptions_price, $sku, $title, $type, $noOption = false) 
{ 
$custom_options = array(); 
if ($type && $value != "" && $value) { 
$values = explode(',', $value); 
$skus = explode(',', $sku); 
$is_required = 1; 
$customoptions_prices = explode(',', $customoptions_price); 

    if (count($values)) { 
     /**If the custom option has options*/ 
     if (! $noOption) { 

      $is_required = 1; 
      $sort_order = 0; 

      $custom_options[ ] = array(
       'is_delete' => 0, 
       'title' => $title, 
       'previous_group' => "", 
       'previous_type' => "", 
       'type' => $type, 
       'is_require' => $is_required, 
       'sort_order' => $sort_order , 
       'values' => array() 
       ); 

    for($i = 0; $i < (count($values)) ; $i++) 
     { 
     switch ($type) { 

      case 'drop_down': 
      case 'radio': 
      case 'checkbox': 
      case 'multiple': 
      default: 

      $custom_options[count($custom_options)-1]['values'][ ] = array(

       'is_delete' => 0, 
       'title' => $values[$i], 
       'option_type_id' => –1, 
       'price_type' => 'fixed', 
       'price' => $customoptions_prices[$i], 
       'sku' => $skus[$i], 
       'sort_order' => $i); 
       break; 
      } 
     } 
return $custom_options; 
} 
/**If the custom option doesn't have options | Case: area and field*/ 
else { 

    $is_required = 1; 
    $sort_order = 0; 
    $custom_options[ ] = array(
    "is_delete" => 0, 
    "title" => $title, 
    "previous_group" => "text", 
    "price_type" => 'fixed', 
    "price" => "0", 
    "type" => $type, 
    "is_required" => $is_required 
    ); 
    return $custom_options; 
    } 
    } 
    } 
return false; 
} 

我把它從這裏:

$product = Mage::getModel('catalog/product')->load(6152); 

      unset($optionData); 

      $precio = 100; 

      $custom_title = "Unidad,Caja de 10 unidades"; 
      $customoptions_price = "0,".$precio.""; 
      $prod_sku = "unidadesku,cajasku"; 
      $customoption_main_title = "Seleccione unidades o cajas"; 
      $option_type = "drop_down"; 

      $optionData[ ] = createCustomOption($custom_title, $customoptions_price, $prod_sku, $customoption_main_title, $option_type); 

      if(count($product->getOptions()) == 0){ 

      foreach ($optionData as $options) { 

       foreach ($options as $option) { 

        $opt = Mage::getModel('catalog/product_option'); 
        $opt->setProduct($product); 
        $opt->addOption($option); 
        $opt->saveOptions(); 

        } 
       } 

      $product->setHasOptions(1)->save(); 

回答

0

我解決它以米加入y腳本此行:

Mage :: app() - > setCurrentStore(Mage_Core_Model_App :: ADMIN_STORE_ID);

相關問題