I'm using TheCartPress beta 1.1.1 and Product Options wordpress plugin 1..4 available here with Wordpress 3.2.1. I've got a developer helping me now, but he really wants to proceed to another system. TCP appears perfect in my experience except what it is product options canrrrt do things i need.

If anybody can provide me some insight towards the product options code the way i can accomplish the next, I'd be grateful. I've looked a lot of ecommerce "solutions" in the last month which is amazing how "non-robust" all their choices are.

Pretend I sell spaghetti sauce.

— I've three dimensions

120L (base cost $79.99), 360L (+$140), 720L (+$340)

— I've two styles

Chunky/Smooth – no cost changes, and it might be well suited for usability to default to “Chunky” in design for an invisible input..

— I've 7 amounts of special spices or herbs

cups, 6 cups, 12 cups .. 36 cups – no cost changes, but needed. Dropdown is ok.

— Customer can optionally add Garlic clove

May use “None” being an option.. but easier to have fields for options be optional (that’s what choices are!)

Garlic clove adds a set add-on cost:

Light – $15 Medium – $20 Strong – $25 Extreme – $30

This flat add-on cost must be “smart”, in line with the size… i.e. when size changes x3 to 360L, Garlic clove changes to $45-90, when size changes to x6 or 720L, Garlic clove changes to $90-180.

I can not observe how the entire of ecommerce software virtually ties you in a crappy system of needed dropdowns without any more logic into it than, pick a choice and obtain +$x. Please for that passion for usability someone see this code and assist me to.

Regrettably, TCP appears to consider a store owner might just have two "layers" of options. This really is worse than most however, they are doing allow "arranged product" which could most likely handle area of the problem.

function showOptionsType() {
    global $thecartpress;
    $options_type = isset( $thecartpress->settings['options_type'] ) ? $thecartpress->settings['options_type'] : 'single';?>
    <input type="radio" id="options_type_single" name="tcp_settings[options_type]" value="single" <?php checked( 'single', $options_type );?> />
    <label for="options_type_single"><?php _e( 'Single', 'tcp_po' );?></label><br />
    <input type="radio" id="options_type_double" name="tcp_settings[options_type]" value="double" <?php checked( 'double', $options_type );?> />
    <label for="options_type_double"><?php _e( 'Double', 'tcp_po' );?></label>

This can not be way too hard to grow past two right? Honestly I'm lost how you can pull this off and something would need to have a look in the files linked above. Thanks if anybody might help.