Hello, and thanks for any advice you can provide. I'm an Ubercart newbie.
My application sells custom written stories of various standard lengths (1000, 2000, 3000 etc. words), and optionally a customer can order an audio CD of the story. The price of the story and the CD are both dependent on the length, and when a customer orders both we want to make sure he orders the same length of each (prevent ordering a 2000 word story and a 1000 word CD).

I've considered using attributes with a single product node for a story and another product node for the CD, each offering a pull down attribute for length, but I don't see how to prevent the customer from ordering a CD of a different length than the story.

I've also considered creating one Story node for each size story, and one CD node for each size CD, bundling them into pairs using packages. Then in the catalog I'd include the Story nodes themselves (for people that don't want to order the CD), and packages for people who want the CD. The CD nodes themselves would not be offered individually. This method will be unwieldy because there will be duplicate information required in each of the story nodes and each of the CD nodes.

Any comments or suggestions for best practice here will be much appreciated.
Thanks
Joe