adds Product::is_sale()