¿Cómo obtener un valor de opción basado en la identificación de opción en Magento, u obtener una identificación de opción basada en el código de opción?
Ejemplo: ¿cómo obtener el id. De opción de atributo de color 10 de la etiqueta "Rojo" y obtener el valor "Rojo" si el id de opción es 10?
magento2
product-attribute
Arnaud
fuente
fuente
La mejor práctica en magento es hacerlo a través de xml.
Para obtener un atributo estándar como
brand
hacer algo como esto,catalog_product_view.xml
por ejemplo:Esto obtendrá el valor de un atributo de entrada o área de texto. Si tiene un menú desplegable, debe usar el tipo de texto, así que agregue esta línea en la lista de argumentos:
No es necesario crear archivos o escribir ningún código php para obtener un atributo. De esta manera tendrá consistencia y usará el mismo archivo attribute.phtml para todos los atributos. Si algo cambia, debe cambiarlo en un solo lugar.
fuente
Trabajó para mi
fuente
Tengo una solución simple. esto solo mostrará el valor del atributo con el código de atributo de un producto. He revisado el catálogo y la página de detalles.
el código es
<?php echo $_product->getAttributeText('size'); ?>
Aquí el tamaño es el nombre del atributo.
referencia: vendor / magento / module-catalog / view / frontend / templates / product / view / attribute.phtml línea: 35
fuente
Utilice el método de fábrica
en archivo phtml
fuente
$product->getResource()
tiene una nota de DocBlock sobre ser obsoleto al menos en v2.2.2 y por eso dudaba en codificarlo. Se le ocurrió esta solución inspirada en las que ya están en esta página:Como referencia, este es el método en AbstractModel.php
fuente
getResource()
método en este modelo: github.com/magento/magento2/blob/2.3-develop/app/code/Magento/…getResource()
Era un método que existía previamente. En v2.2.2, como mencioné, ya estaba programado para desaprobación. En la rama de desarrollo 2.3 sospecho que se ha completado. Por lo tanto, mi ejemplo que no requiere esa función.Porque todos vienen aquí.
Si no tiene ninguna entidad de producto, puede recuperar un valor de opción con estos pasos.
Inyecta
\Magento\Eav\Api\AttributeRepositoryInterface
a tu claseUse el repositorio para obtener la instancia de atributo
Use
$attribute
para obtener la identificación de la opción del valor de la opciónfuente
puede usar para obtener la etiqueta de atributo
puedes usar el administrador de objetos:
fuente
Por favor intente este código
Paso 1) Primero debes cargar los productos
Paso 2) En la página de listado de productos, habrá un bucle foreach para enumerar productos como este
Paso 3) Su código estará dentro de este bucle. Coloque el código a continuación en el lugar donde desee mostrar la etiqueta del atributo.
Simplemente reemplace your_attribute_code con el nombre de su atributo.
fuente