Richard, what do you think about changing the isSearch variable to something a bit more clear. Cause currently this isSearch variable is been set to true in both doSearch and doBrowse. The name could be a bit misleading thinking that this applies only for search.
How about naming it something like showAllFields, or something that indicates that we'll retrieve a subset of the product data.