I like how Perch Shop allows us to set both a stock status and the stock level. It would be nice if there was a variable that indicates whether a product can be ordered.
To evaluate whether a product can be ordered, one would have to check the stock status and the stock level. And if the stock status is unlimited, then the stock level shouldn't be taken into account. And if a product has variants, this check needs to be performed for all variants to determine whether this product can be ordered.
Attempting to perform these checks with conditional tags inside the template would be messy. The alternative would be to perform the check in the each option when using perch_shop_products() or perch_shop_product().
So I think it makes sense for Perch Shop to evaluate this and return a variable like orderable. This would make things much easier:
It would also be nice to be able to filter by this: