Standardstatus der benutzerdefinierten Option für einfache Produkte


11

Ich habe eine Reihe von Produkten mit benutzerdefinierten Optionen des Typs Kontrollkästchen. Ich kann jedoch nicht über das Setup des Produkts den Standardstatus dieser bestimmten Option festlegen.

Ich muss mindestens eines der Kontrollkästchen (Optionen) standardmäßig aktivieren, wenn der Benutzer die Produktseite betritt / von der Kategorieseite zum Warenkorb hinzufügt.

Ist dies von der Magento-Administration aus möglich oder erfordert es eine zusätzliche Entwicklung (wenn ja, wie kann dies durchgeführt werden)?


Sie können nicht einfach "ist Standard" unter Katalog -> Attribute verwalten -> "Ihr Attribut" -> Beschriftung / Optionen verwalten -> direkt neben Ihrer Standardoption festlegen ... oder wenn Sie den Eingabetyp "Ja / Nein" verwenden kann Standardwert unter Attributeigenschaften festlegen
Stefan Gregori

Derzeit werden die Optionen mit "Benutzerdefinierte Optionen" auf der Produktseite in admin eingerichtet. Ihr Vorschlag ist, dies in Produktattribute umzuwandeln? Würde es das gleiche Verhalten für den Produktpreis beibehalten?
Mike

Antworten:


16

Ich weiß nicht, ob die Empfehlung einer Erweiterung als gültige Antwort gilt (für eine Frage mit Kopfgeld), aber hier behauptet jemand , er habe eine Erweiterung geschrieben, die genau das tut, was Sie brauchen. Die Erweiterung kann hier heruntergeladen werden . Ich habe es nicht getestet, aber sobald ich es tue, werde ich es veröffentlichen und aktualisieren. Ich habe nur den Code durchgesehen und es gibt viel davon. Ich habe nach 2 Dateien das Interesse verloren. Ich hoffe es funktioniert bei dir.

[EDIT]
Ich habe mein Interesse zurück. Ich habe die Erweiterung auf und sie funktioniert (fast).
Wenn Sie es im aktivierten Entwicklermodus verwenden, werden einige Fehler angezeigt. Hier ist, was Sie ändern müssen, damit es funktioniert.
In /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phpZeile 28 steht Folgendes:

$model->setData('value['.$option_id.']',$value[0]['option_type_id']);

Dies zeigt eine Warnung 'undefinierter Index'. Um dies zu vermeiden, schließen Sie es in eine ifAnweisung ein.

if (isset($value[0])){
    $model->setData('value['.$option_id.']',$value[0]['option_type_id']);
}

In /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phpZeile 129 steht Folgendes:

foreach ($values as $value) {
    $valuesArr[$value['option_type_id']]=$value['title'];
}

$values kann null sein, also ändern Sie den Code in diesen:

if (is_array($values)){
    foreach ($values as $value) {
        $valuesArr[$value['option_type_id']]=$value['title'];
    }
}

Jetzt sollte es funktionieren.
Nun eine Bewertung.

  1. PRO . Funktioniert perfekt für benutzerdefinierte Dropdown- und Radiooptionen
  2. Neurtal . Funktioniert für benutzerdefinierte Optionen mit mehreren Auswahl- und Kontrollkästchen. Sie können nur einen Wert für die verfügbaren Werte auswählen.
  3. Unbequem, aber ich kann es übersehen. Um die Standardwerte festzulegen, müssen Sie im Backend auf einen anderen Menüpunkt klicken und in der Liste nach Ihrem Produkt suchen.
  4. Con . Es funktioniert nicht für benutzerdefinierte Optionen für Text, Textbereich, Datum, Datum / Uhrzeit, Uhrzeit und Datei. Mit ein wenig Arbeit kann es jedoch so geändert werden, dass es für alle Typen korrekt funktioniert (möglicherweise außer für Dateien).

1

Nicht standardmäßig in Magento.

Kann auf diese Weise erreicht werden. Am besten wieder aufnehmen, bevor Sie fortfahren.

$option = array(
    'title' => 'Your custom option title',  
    'type' => 'checkbox', // could be drop_down ,radio , multiple
    'is_require' => 1,
    'sort_order' => 0,
    'values' => getOptions()
    );

function getOptions(){
  return array(
     array(
       'title' => 'Option Value 1',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 1',
       'sort_order' => '1'
    ),
    array(
       'title' => 'Option Value 2',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 2',
       'sort_order' => '1'
    ),
  array(
       'title' => 'Option Value 3',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 3',
       'sort_order' => '1'
    )

); }}

// Angenommen, wir erstellen ein neues Produkt.

$product = Mage::getModel('catalog/product');
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

// Oder wenn wir die Optionen zu einem bereits erstellten Produkt hinzufügen.

$product = Mage::getModel('catalog/product')->load($id);
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

// Vergessen Sie nicht, das Produkt zu speichern

$product->save();

Dies ist eine nette Erklärung, wie man durch Code benutzerdefinierte Optionen für ein Produkt erstellt, aber ich denke nicht, dass es die Frage beantwortet. Das OP fragte, wie Sie Standardwerte für benutzerdefinierte Optionen festlegen können.
Marius
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.