Pregunta

Tengo un sitio web de Magento que utiliza el valor de un atributo desplegable (sí/no) en una condición de instrucción IF. El problema que tengo se basa en una vista de tienda que estoy obteniendo '1' y el otro es '0' (donde '1' es el valor correcto en este caso).

Por ejemplo, tengo este código:

if($_product->getData("lookinsideactive") == 1):
      if(Mage::app()->getStore()->getId() == 1):
                    echo "Store message 1";
                elseif(Mage::app()->getStore()->getId() == 12):
                    echo "Store message 2";
      endif;
endif;

Cuando voy a la ID de almacenamiento 1, el mensaje no aparece, pero en el ID de la tienda 12 el mensaje 'Mensaje de almacenamiento 2' aparece, por lo que la primera condición de instrucción IF es verdadera.

Si imprimo estos:

echo $_product->getData("lookinsideactive");

Obtengo '0' en la ID de la tienda 1 y '1' en la ID de la tienda 12.

He intentado:

echo $_product->getAttributeText('lookinsideactive');

Donde la identificación de la tienda 1 muestra 'no' y la identificación de la tienda 12 muestra 'sí'.

Otra cosa es que estas condiciones funcionan perfectamente bien en otros productos en ambas vistas de las tiendas, es solo este producto que este resultado está mostrando.

Por lo tanto, el resultado debe ser '1' en ambas vistas de la tienda para ese producto o '0' en ambas vistas de la tienda.

He verificado el conjunto de atributos con este producto problemático y otro producto de trabajo y ambos están utilizando el mismo conjunto de atributos, con el mismo valor de atributo 'lookInSidEActive'.

No estoy seguro de si me he perdido algo simple, pero necesito algunos consejos sobre una posible causa o algunos consejos para depurar esto.

Cualquier ayuda es muy apreciada, gracias.

¿Fue útil?

Solución

Puede tener diferentes alcances para diferentes atributos. Su atributo tiene obvio el alcance "Vista de la tienda". Los alterantivos son: "Tienda", "Sitio web" y "Global".

Puede cambiar el alcance con un script, pero después de ese cambio, creo que tiene que limpiar la base de datos porque Magento ignora el alcance mientras obtiene los datos. Solo es importante al escribirlos.

Puede verificar esto en el backend, cuando ve un producto, puede cambiar el alcance en el lado superior izquierdo y al lado de Selectbox está la información [Vista de la tienda] cuál es el alcance del atributo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top