Ich möchte die Standardoption auf den Wert für benutzerdefinierte Optionen in der Produktebene festlegen.
Bitte helfen Sie mir, dieses Problem zu lösen.
magento2
custom-options
adminform
default-values
Rajat Kara
quelle
quelle
Antworten:
Ich bin mir nicht sicher, ob Sie dies über den Administrator tun können. Ich habe gerade eine Problemumgehung durchgeführt, bei der ich sichergestellt habe, dass alle meine "Standardoptionen" die erste Option innerhalb von admin sind, und dann die folgenden Optionen zu js für meinen Shop hinzugefügt habe.
Dies funktioniert für benutzerdefinierte Optionen, da diese alle beim Laden der Seite gerendert werden. Der Code durchläuft nur alle benutzerdefinierten Optionen und setzt die zweite Option, da die erste "Bitte auswählen" war.
Ich hatte jedoch etwas größere Schwierigkeiten mit konfigurierbaren Produkten, da die Optionen alle nach dem Laden der Seite geladen wurden. Um dies auch zu tun, können Sie meine Frage hier sehen: Magento 2: Wie setze ich die Standardoption in konfigurierbaren Optionen?
quelle
Ich denke, was Sie erreichen wollen, ist so etwas?
Ich habe implementiert, dass für die Dropdown-Felder das gleiche mit Radiobuttons sein sollte.
catalog_product_option_type_value
.Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions
.Beispiel:
Und zum Schluss müssen Sie die Datei
Magento\Catalog\Block\Product\View\Options\Type\Select.php
mit so etwas überschreibenIch hoffe, das hilft!
quelle
$defaultAttribute
als zusätzliche Attribute für die Option führt zu Konflikten mit vorkonfigurierten Werten (buy_request, ...). Wenn zum Beispiel eines Wagen Artikel bearbeiten, die vom Kunden ausgewählte Wert und der „is_default“ Wert wird sowohl als markiert wirdselected="selected"
im Code.@ TrytoFly Danke für deine Lösung. Ich habe es mit Ihrem Code versucht und kann die Option "Standard" anzeigen, aber benutzerdefinierte Werte werden nicht angezeigt. Bitte helfen Sie mir, das Problem zu beheben. Bitte finden Sie die Bilder
quelle
$result = $meta;
am Anfang Ihrer afterModifyMeta () -Methode festlegen müssen. Andernfalls überschreiben Sie einfach Ihren Rückgabewert, anstatt die Standardoption hinzuzufügen.@ TrytoFly Das hat bei mir funktioniert.
quelle
Sie können die Select.php-Datei wie folgt überschreiben:
quelle
Hier ist die sauberste Methode, mit der ich einen Standardwert für anpassbare Optionen festgelegt habe :
(Basierend auf der @ TrytoFly-Antwort)
Hinweis : Ich gehe davon aus, dass Sie an einem bereits erstellten Modul arbeiten, das ich aufrufen werde
Vendor_Module
.1.
is_default
Spalte zurcatalog_product_option_type_value
Tabelle hinzufügenHinweis : Vergessen Sie nicht, die Version entsprechend Ihrem Modul zu ändern
2. Definieren und erstellen Sie ein Plugin, um das Kontrollkästchenelement im Backoffice hinzuzufügen
Hinweis : Hier verwenden wir
Magento\Ui\Component\Form\Element\Checkbox
anstelle vonMagento\Ui\Component\Form\Element\Radio
Komponenten, da Magento sie anscheinend nie in seinen Formularelementen definiert.Siehe
vendor\magento\module-ui\view\base\ui_component\etc\definition.xml
Zeile 112+3. Überschreiben
Magento\Catalog\Block\Product\View\Options\Type\Select
, um das Element zu überprüfen, das als "Standardelement" ausgewählt wurde.4. Aktualisieren Sie Ihre Modulversion und aktualisieren Sie die Datenbank
Aktualisieren Sie Ihr
setup_version
inapp/code/Vendor/Module/etc/module.xml
Aktualisieren Sie Ihre
version
inapp/code/Vendor/Module/composer.json
Führen Sie folgende Befehle aus:
quelle