Ruby, 9898 87 bytes
p`dd`.splitgsub(?/)\d+-/,'*\00.flat_map{|x|x.').split(?:/).map{|r|eval"[#flat_map{r|x|eval"[%s].gsub /product(\d+[%s])-/,'*\1..'}]"}"%x.injectsplit(?:product)}
Try it online!Try it online!
Explanation
`dd`.splitgsub(?/\d+-/,'*\00..') # split input on "/"
and replace "number-" with flat_map{|x|x"*number-0.split(?:).map{|r| # map each side of ":", at theruby end,syntax concatfor (flat_map)ranges
{|r| r.gsub /split(\d+)-?/,'*\1..' # make all "a-b" ranges to "*a..b" (ruby syntax)
eval"[#{ .flat_map }]" # split on #"/" interpolateand intomap "[...]"block, andthen evalconcat
}{|x|eval"[%s].inject:product([%s])"%x.split(?:)} # reduce with :productstring (injectinterpolate soundsand cooler)eval
p # print