Quiero establecer la opción predeterminada en el valor de las opciones personalizadas en el nivel del producto.
Por favor, ayúdame a resolver esto.
magento2
custom-options
adminform
default-values
rajat kara
fuente
fuente
Respuestas:
No estoy seguro de que pueda hacer esto a través del administrador. Acabo de hacer un trabajo en el que me aseguré de que todas mis "opciones predeterminadas" sean la primera opción dentro del administrador y luego agregué las siguientes a js para mi tienda.
Esto funciona para las opciones personalizadas, ya que todas se representan en la carga de la página. El código simplemente recorre todas las opciones personalizadas y establece la segunda opción, ya que la primera fue "seleccione".
Sin embargo, tuve un poco más de dificultad con los productos configurables, ya que todas las opciones se cargaron después de cargar la página, pero para hacerlo también puede ver mi pregunta aquí: Magento 2: ¿Cómo establecer la opción predeterminada en las opciones configurables?
fuente
Creo que lo que quieres lograr es algo como esto.
Implementé eso para los campos desplegables, debería ser lo mismo con los botones de radio.
catalog_product_option_type_value
.Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions
.Ejemplo:
Y, por último, debe sobrescribir el archivo
Magento\Catalog\Block\Product\View\Options\Type\Select.php
con algo como esto¡Espero que ayude!
fuente
$defaultAttribute
como atributos adicionales para la opción entrará en conflicto con los valores preconfigurados (buy_request, ...). Por ejemplo, al editar un artículo del carrito, el valor seleccionado por el cliente y el valor "is_default" se marcarán comoselected="selected"
en el código.@ TrytoFly Gracias por su solución. He intentado con su código y puedo mostrar la opción "Predeterminado" pero no se muestran los valores personalizados. Ayúdame a solucionar el problema. Busca las imágenes.
fuente
$result = $meta;
al comienzo de tu Método afterModifyMeta (). O bien, simplemente sobrescribirá su valor de retorno en lugar de agregarle la opción predeterminada.@ TrytoFly Esto es lo que funcionó para mí.
fuente
Puede anular el archivo Select.php como la siguiente función de código:
fuente
Aquí está la forma más limpia que encontré para establecer un valor predeterminado para las opciones personalizables :
(Basado en la respuesta de @ TrytoFly)
Nota : Asumiré que trabaja en un módulo ya creado al que llamaré
Vendor_Module
.1. Agregar
is_default
columna a lacatalog_product_option_type_value
tablaNota : No olvide cambiar la versión en comparación con su módulo
2. Defina y cree un complemento para agregar el elemento de casilla de verificación en la oficina administrativa
Nota : Aquí usamos en
Magento\Ui\Component\Form\Element\Checkbox
lugar deMagento\Ui\Component\Form\Element\Radio
componente, ya que parece que Magento nunca lo define en sus Elementos de formulario.Ver
vendor\magento\module-ui\view\base\ui_component\etc\definition.xml
línea 112+3. Sobrescriba
Magento\Catalog\Block\Product\View\Options\Type\Select
para verificar el elemento que ha sido elegido como "Elemento predeterminado".4. Actualice la versión de su módulo y actualice la base de datos
Actualiza tu
setup_version
enapp/code/Vendor/Module/etc/module.xml
Actualiza tu
version
enapp/code/Vendor/Module/composer.json
Ejecute los siguientes comandos:
fuente