На данный момент у Magento много истории, поэтому не всегда
поверьте, что имена методов будут делать то, что «кажется очевидным». Очевидное сейчас не было очевидным несколько лет назад.
Если вы посмотрите на следующие два метода в классе Mage_Catalog_Model_Product
public function isInStock()
{
return $this->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED;
}
public function getStatus()
{
return $this->_getData('status');
}
Как видите, isInStock
проверяет атрибут status , установленный в разделе «Общие» администратора продукта.
Попробуйте вместо этого
$stockItem = $product->getStockItem();
if($stockItem->getIsInStock())
{
//in stock!
}
else
{
//not in stock!
}