make is_active optional for getProducts()