Setzen Sie den Standardwert auf benutzerdefinierte Optionen für Produkte


7

Ich habe benutzerdefinierte Optionen für die Produkte erstellt. Ich muss eine Option als Standard für die benutzerdefinierte Option festlegen, damit beim Überprüfen des Frontends die Standardoption anstelle von "Bitte auswählen" angezeigt wird.

Geben Sie hier die Bildbeschreibung ein

Ich habe eine Standardoption für die benutzerdefinierte Erweiterung für einfache Produkte gefunden

Aber ich suche, ob ich an dem Ort zeigen kann, an dem ich die Optionen erstelle.

Antworten:


4

Gehe zu Mage/Catalog/Block/Product/View/Options/Type/Select.php::getValuesHtml()

Kommentar (in Zeile Nr. 59) des addOptionTeils von

$select->setName('options['.$_option->getid().']');
                ->addOption('', $this->__('-- Please Select --'));

dh

/ * - >addOption('', $this->__('-- Please Select --'));* /

Hoffe das löst dein Problem.


Großartige Idee. Ich habe das einfach gemacht und es hat wie ein Zauber funktioniert. Ich habe mir eine Erweiterung angesehen, die 699 US-Dollar kostet (plus ein kleines Extra). Anschließend müssen Sie lediglich die "Reihenfolge" der Werte unter den benutzerdefinierten Optionen ändern. Vielen Dank!
NotJay

Ich habe das Hauptprodukt mit dem Preis 0 und das gesamte benutzerdefinierte Produkt mit dem tatsächlichen Preis erstellt. Ihre Option ist wirklich gut, um die Standardoption auf der Produktdetailseite festzulegen. Wie wäre es mit der Rasterseite? Ich erhalte den Preis 0, gibt es dort eine Option zum Aktualisieren?
Manny

Ich bin mir nicht sicher, warum Experten wie Sie eine Antwort posten und die Website überhaupt nicht wieder öffnen. Die Community braucht Leute wie Sie.
Baby in Magento

0

Ich nehme an, Sie haben das Produkt in dieser Form:

    $product = Mage::getModel('catalog/product');

    $product->setWebsiteIds(array(1));//Your website id
    $product->setAttributeSetId(9);//Your attribute code

    $product->setName('A name');
    .
    .
    more attributes you want to set.

After that you need this code:

$optionInstance = $product->getOptionInstance()->unsetOptions();
$product->setHasOptions(true);

$optionInstance->addOption($this->makeCustomOptions());
$product->setCanSaveCustomOptions(true);
$optionInstance->setProduct($product);

$product->save();


protected function makeCustomOptions(){

        return $option = array(
            'title' => 'Licenses',
            'type' => 'drop_down',//That can be checkbox and more
            'is_require' => 0,//1 if required

            'values'=>array(//These are the options
                array(

                    'title'             => "30 Days",
                    'price'             => -5,
                    'price_type'        => "fixed",
                    'sku'               => "30"
                ),
                array(

                    'title'             => "365 Days",
                    'price'             => -3,
                    'price_type'        => "fixed",
                    'sku'               => "365"
                ),
                array(

                    'title'             => "730 Days",
                    'price'             => -2,
                    'price_type'        => "fixed",
                    'sku'               => "730"
                )
            )

        );
    }

Und das war's. Sie können ändern, was Sie wollen.


vbak, es beantwortet keine Frage. Pradeep fragte, wie eine benutzerdefinierte Option als Standard ausgewählt werden soll, um zu vermeiden, dass im Frontend-Feld "Bitte auswählen" angezeigt wird.
Wojtek Naruniec
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.