Dazu ein wenig Beispiel-Code:
$product = Mage::getModel('catalog/product')->load( 1234 );
$sizes = array('S','M','XL');
$opt = Mage::getModel('catalog/product_option');
$opt->setProduct($product);
$options = array(
'is_require' => true,
'sort_order' => '1',
'title' => 'Größe',
'type' => 'drop_down',
'values' => array()
);
foreach( $sizes AS $size ) {
$options['values'][] = array(
'price' => 0,
'price_type' => 'fixed', // 'percent'
'sku' => '',
'sort_order' => '0',
'title' => $size,
);
}
$opt->addOption($options);
$opt->saveOptions();
$product->setHasOptions(1);
$product->save();
In diesem Fall holen wir uns zuerst das Model das für individuelle Optionen zuständig ist und setzen mittels setProduct unser Produkt als Referenz. Nun können wir im Options-Array die jeweiligen individuellen Optionen hinzufügen. Dazu gehört es natürlich Preis-Type, Preis und Titel festzulegen.
Individuelle Optionen löschen?
Natürlich lassen sich die individuellen Optionen auch wieder mittels Model löschen. Auch hierzu ein wenig Beispiel-Code:
foreach ($product->getOptions() as $option) {
$option->getValueInstance()->deleteValue($option->getId());
$option->deletePrices($option->getId());
$option->deleteTitles($option->getId());
$option->delete();
}
Viel Spaß wieder beim Experimentieren!