Supposed there's a company who wants to use Hybris to sell its internet plan. It only has InternetOnly pack and Family pack (which contains TV programs). The final price is decided by: postcode, the speed needed by the customer and also the price calculation factor which the speed belongs to. The company has different price calculation factor for each speed range. So, if there are 3 ranges: A)1-5Mbps, B)5-10Mbps, C)10-20Mbps and the user requested 7Mbps in his place (postcode = 12345), then the final price will be 7 x B.priceRateAt(12345).
My questions are: Should I create InternetVariantProduct to represent a certain pack of a certain price range? Since the price is not predefined and the actual product might be "unlimited", should I implement my own PriceService implementation? If yes, how to get the speed requested by the customer?