Hi Will,
which version of AEM are you using?
Based on 6.4, I can think of below 2 options
Approach 1:
Using 'Associated Content' approach
1. Create the account model and product model content fragments.
2. Create collections of product model fragments and associate that collection to an account model fragment.
3. Then when you query a account model fragment, you can write a service to get the associated content data model.
Approach 2:
Using 'Tags'
1. Create a product tags
2. For the product model fragments, add that particular product tag.
3. For the account model fragments, add all the associated product tags
4. Then you query based on the tags.
Thanks,
Lokesh