Dynamic price calculation - complex case
I wish to implement a rather complex price calculation system for the objects that will be for sale in my Drupal Commerce store.
A basic description of what should be achieved:
A buyer arrives at a product page, and clicks the "Buy" button. A popup window appears where the user is presented with a dropdown lists wizard that are depending on each other.
Imagine 5 select lists, with changing options based on the previous selection:
select box 1 - type
select box 2 - region
select box 3 - size
select box 4 - edition
select box 5 - position
Each combination of any of the values in these select boxes will result in a specific price (practically speaking we are talking 1800 combinations).
Once the user has decided his preferred combination, he can click the "Add to cart" button. The item will be added to the shopping cart with the price that matches the combination of the 5 chosen select boxes.
Sounds pretty challenging right :)
I'd like to hear your opinions on how you would implement this, using as much as the possibilities that Drupal Commerce provides by default (i'm still experimenting my way through it as we speak).
I imagine i will need to have a custom display formatter for my product entity field that opens a popup, replacing the standard "Add to cart" formatter.
For the whole price selection mechanism I suspect I will have to write my own backend to store all price combinations, and present them in dependent dropdown lists.
After that step it's currently a bit blurry what should happen. I assume clicking the button I can make some API call to add the item to the shopping cart with the correct price based on the user selections...
- Do you think this should be possible to implement given the current state of affairs? I'm not expecting this to work out-of-the-box of course...
- Do you think I can leverage Rules somewhere in the workflow? Because I'd like to avoid spending a lot of time researching that if it's not going to be useful. Note that I do not plan to add 1800 rules entries for each possible combination :)
- Is there some "attributes" system like Ubercart had, that could be leveraged? Although, again, I do not plan to add 1800 attribute combinations into the system manually :)
- Are there some other modules, concepts or APIs that I should be aware of to make my life a bit easier?
If I could borrow some of your brains for a few minutes to give me some ideas here, i'd be very grateful :) Thanks in advance.