Chcę ustawić opcję domyślną na wartość opcji niestandardowych na poziomie produktu.
Pomóż mi rozwiązać ten problem.
magento2
custom-options
adminform
default-values
rajat kara
źródło
źródło
Odpowiedzi:
Nie jestem pewien, czy możesz to zrobić przez administratora. Właśnie zrobiłem obejście, w którym upewniłem się, że wszystkie moje „domyślne opcje” są pierwszą opcją w adminie, a następnie dodałem poniższe do js dla mojego sklepu.
Działa to w przypadku niestandardowych opcji, ponieważ wszystkie są renderowane podczas ładowania strony. Kod po prostu przechodzi przez wszystkie niestandardowe opcje i ustawia drugą opcję, ponieważ pierwszą było „proszę wybrać”.
Miałem jednak trochę więcej trudności z konfigurowalnymi produktami, ponieważ wszystkie opcje były ładowane po załadowaniu strony, ale aby to zrobić, możesz zobaczyć moje pytanie tutaj: Magento 2: Jak ustawić domyślną opcję w konfigurowalnych opcjach?
źródło
Myślę, że to, co chcesz osiągnąć, to coś takiego?
Zaimplementowałem, że dla pól rozwijanych powinno być tak samo z przyciskami radiowymi.
catalog_product_option_type_value
.Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions
.Przykład:
Na koniec musisz zastąpić plik
Magento\Catalog\Block\Product\View\Options\Type\Select.php
czymś takimMam nadzieję, że to pomaga!
źródło
$defaultAttribute
jako dodatkowych atrybutów opcji spowoduje konflikt ze wstępnie skonfigurowanymi wartościami (buy_request, ...). Na przykład podczas edycji elementu koszyka zarówno wartość wybrana przez klienta, jak i wartość „is_default” zostaną oznaczone jakselected="selected"
w kodzie.@TrytoFly Dzięki za Twoje rozwiązanie. Próbowałem z twoim kodem i jestem w stanie wyświetlić opcję „Domyślne”, ale wartości niestandardowe nie są wyświetlane. Pomóż mi rozwiązać problem. Proszę znaleźć obrazy
źródło
$result = $meta;
na początku metody afterModifyMeta (). W przeciwnym razie po prostu nadpiszesz wartość zwracaną zamiast dodawać do niej opcję domyślną.@TrytoFly To działało dla mnie.
źródło
Możesz zastąpić plik Select.php, np. Funkcję kodu podążającego:
źródło
Oto najczystszy sposób, jaki znalazłem, aby ustawić wartość domyślną dla opcji, które można dostosować :
(Na podstawie odpowiedzi @TrytoFly)
Uwaga : Zakładam, że pracujesz na już utworzonym module, który wywołam
Vendor_Module
.1. Dodaj
is_default
kolumnę docatalog_product_option_type_value
tabeliUwaga : Nie zapomnij zmienić wersji w zależności od modułu
2. Zdefiniuj i utwórz wtyczkę, aby dodać element pola wyboru w back office
Uwaga : Tutaj używamy
Magento\Ui\Component\Form\Element\Checkbox
zamiastMagento\Ui\Component\Form\Element\Radio
komponentu, ponieważ wydaje się, że Magento nigdy nie definiuje go w swoich Elementach Formy.Zobacz
vendor\magento\module-ui\view\base\ui_component\etc\definition.xml
linię 112+3. Zastąp,
Magento\Catalog\Block\Product\View\Options\Type\Select
aby zaznaczyć element wybrany jako „Element domyślny”.4. Zaktualizuj wersję modułu i zaktualizuj bazę danych
Upgrade
setup_version
inapp/code/Vendor/Module/etc/module.xml
Zaktualizuj swoje
version
wapp/code/Vendor/Module/composer.json
Uruchom następujące polecenia:
źródło