2010-04-23 8 views
13

Quiero comprobar si algunos productos están en stock, pero haga lo que haga el método isInStock() siempre devuelve TRUE. Mis productos son productos configurables sin productos asociados y bajo el "Inventario" pestaña "disponibilidad de stock" se ajusta en "agotado". ¿Qué estoy haciendo mal? Gracias!tema de Magento con una llamada al método isInStock() en un producto

+1

fija por favor la línea de código que está utilizando para comprobar esto. –

Respuesta

51

Magento tiene mucha historia en este punto, por lo que es una buena idea no siempre la confianza de que los nombres de métodos harán lo que "parece evidente". Obviamente ahora no era obvio hace unos años.

Si nos fijamos en los siguientes dos métodos en la clase Mage_Catalog_Model_Product

public function isInStock() 
{ 
    return $this->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED; 
} 
public function getStatus() 
{ 
    return $this->_getData('status'); 
} 

Se puede ver que isInStock comprueba el estado de atributos, establecidos en la sección "General" de la administración del producto.

probar este lugar

$stockItem = $product->getStockItem(); 
if($stockItem->getIsInStock()) 
{ 
    //in stock! 
} 
else 
{ 
    //not in stock! 
} 
+0

¡Eso fue todo! Gracias Alan! –

+0

Gran respuesta. ¡Muchas gracias! :) – zuzuleinen

+0

no work.aa – ahnbizcad

0
$qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); 
+3

Esto sólo se compruebe la cant. Sin embargo, la disponibilidad de stock puede establecerse en "Agotado" en magento. Esto no verificará por eso. – nkobber

+0

respuesta correcta a la pregunta equivocada – ahnbizcad

0
<?php if ((int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()>0) { ?> 

<?php } else {} ?> 

Se trabajó para la vista simple categoría de producto.

+0

¿Hay alguna novedad en su respuesta en comparación con la respuesta de @ Muk? – Hulk1991

+0

Bueno, solo los puse juntos. Resultó que es inútil. –

+0

Trate de analizar la respuesta de la otra si su respuesta es igual o no – Hulk1991

Cuestiones relacionadas