Shared/product rules

this should be called `getSelectedVariants` (plural), unless it's changed to return only 1 variant.