Looking at the Magento core code
\Magento\Catalog\Model\Product::getIsSalable
The logic of the function says that if getIsSalable
function exits or product has a value as is_saleable
then the product is able to be purchased.
/**
* Is product salable detecting by product type
*
* @return bool
* @SuppressWarnings(PHPMD.BooleanGetMethodName)
*/
public function getIsSalable()
{
$productType = $this->getTypeInstance();
if (method_exists($productType, 'getIsSalable')) {
return $productType->getIsSalable($this);
}
if ($this->hasData('is_saleable')) {
return $this->getData('is_saleable');
}
return $this->isSalable();
}
However, in this Magento Stackexchange, are some better explanation for what you are looking for:
Differences between some stock methods