Türchen 16: Individuelle Optionen importieren

16.12.2010   //   von Tobias Vogt   //   Adventskalender, Entwicklung, Magento  //  1 Kommentar

Türchen 16 macht alles ein wenig individueller mittels “individueller Optionen” oder auch Custom Options. Diese dienen dazu das der Kunde sich, ohne das es zwanghaft eine neue SKU gibt, Produkte über verschiedene Dropdowns, Radios oder Checkboxen selbst individuell konfigurieren kann. Natürlich lassen sich solche Optionen über das Magento-Model auch mit PHP automatisch importieren.


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!

Der Autor

Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Beschäftigt ist er bei der code-x GmbH, einer Agentur für Internet und Marketing aus Paderborn. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.

1 Kommentar

Kommentar schreiben

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Magento-Support

Sie benötigen kurzfristig Unterstützung in einem Magento-Projekt oder möchten eine individuelle Extension einsetzen? Sprechen Sie uns an.