I initially dealt with the individual product types separately and then used a Union to bring the data back together. The solution was not as elegant as what most of the community had and I ended up looking at a spoiler to find a more elegant solution.