Je souhaite définir l'option par défaut sur la valeur des options personnalisées au niveau du produit.
Comment faire cela dans Magento 2?
Veuillez m'aider à résoudre ce problème.
magento2
custom-options
adminform
default-values
rajat kara
la source
la source
Réponses:
Je ne suis pas sûr que vous puissiez le faire via l'administrateur. Je viens de faire un travail autour de laquelle je me suis assuré que toutes mes "options par défaut" sont la première option dans admin, puis j'ai ajouté ce qui suit à js pour mon magasin.
Cela fonctionne pour les options personnalisées car elles sont toutes rendues au chargement de la page. Le code passe simplement en revue toutes les options personnalisées et définit la 2e option car la première était "veuillez sélectionner".
Cependant, j'ai eu un peu plus de difficulté avec les produits configurables car les options étaient toutes chargées après le chargement de la page, mais pour ce faire, vous pouvez voir ma question ici: Magento 2: Comment définir l'option par défaut dans les options configurables?
la source
Je pense que ce que vous voulez réaliser est quelque chose comme ça?
J'ai implémenté cela pour les champs déroulants, devrait être le même avec les boutons radio.
catalog_product_option_type_value
.Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions
.Exemple:
Et enfin, vous devez écraser le fichier
Magento\Catalog\Block\Product\View\Options\Type\Select.php
avec quelque chose comme çaJ'espère que cela pourra aider!
la source
$defaultAttribute
d'attributs supplémentaires pour l'option entrera en conflit avec les valeurs préconfigurées (buy_request, ...). Par exemple, lors de la modification d'un article de panier, la valeur sélectionnée par le client et la valeur "is_default" seront toutes les deux marquées commeselected="selected"
dans le code.@TrytoFly Merci pour votre solution. J'ai essayé avec votre code et je peux afficher l'option "Default" mais les valeurs personnalisées ne s'affichent pas. S'il vous plaît, aidez-moi à résoudre le problème.Veuillez trouver les images
la source
$result = $meta;
au début de votre méthode afterModifyMeta (). Sinon, vous écraserez simplement votre valeur de retour au lieu d'y ajouter l'option par défaut.@TrytoFly C'est ce qui a fonctionné pour moi.
la source
Vous pouvez remplacer le fichier Select.php comme la fonction de code suivante:
la source
Voici le moyen le plus propre que j'ai trouvé pour définir une valeur par défaut pour les options personnalisables :
(Basé sur la réponse @TrytoFly)
Remarque : je suppose que vous travaillez sur un module déjà créé que j'appellerai
Vendor_Module
.1. Ajouter une
is_default
colonne aucatalog_product_option_type_value
tableauRemarque : N'oubliez pas de changer la version par rapport à votre module
2. Définissez et créez un plugin pour ajouter l'élément checkbox dans le back office
Remarque : Ici, nous utilisons à la
Magento\Ui\Component\Form\Element\Checkbox
place deMagento\Ui\Component\Form\Element\Radio
composant car il semble que Magento ne le définit jamais dans ses éléments de formulaire.Voir
vendor\magento\module-ui\view\base\ui_component\etc\definition.xml
ligne 112+3. Remplacez
Magento\Catalog\Block\Product\View\Options\Type\Select
pour vérifier l'élément qui a été choisi comme "Élément par défaut".4. Mettez à niveau la version de votre module et mettez à jour la base de données
Améliorez votre
setup_version
enapp/code/Vendor/Module/etc/module.xml
Mettez à jour votre
version
enapp/code/Vendor/Module/composer.json
Exécutez les commandes suivantes:
la source