product - add inventory awareness into caching

If a product has zero inventory, a request for that data will trigger a
dispatch to make sure out-of-stock caching doesn't occur.
inventory - make sure response is a number

also modified to return false by default instead of zero. so if
inventory isn't able to be retrieved, that app can be more aware.