You don't currently obligate buyers to make an actual purchase, so the price that the other buyers pay might be too heavily discounted. For example, 100 people reserve, but only 20 actually buy - in this case I might not make a profit since the per unit costs for 20 are much higher than for 100.
I'd rather see a similar grouping mechanism that requires full commitment from both buyers and sellers, like ebay does. You'd probably have to do this with accounts, points and validation.
As for the actual purchase you could do this:
The seller creates a graph of price vs size of the production run, as now. They specify how often they would like to do production runs (sales).
Each buyer specifies the maximum amount they would be willing to pay, by clicking on the purchase graph. They specify how long they are willing to wait until it reaches that price. They enter all their credit card and billing details into the system, and have made a promise to purchase at that price or below.
When the sale ends, the system attempts to solve the graph for price. Everyone who "bid" above this price pays the solved price, everyone below is moved to the next run, unless their stated "latest date" would be passed by waiting that long.
You then bill everyone who said that they would pay. You make the lump sum available to the retailer who then satisfies the orders. This way there is no risk to a buyer that they will pay more than they want, and no risk to a seller that you will set the wrong price.
When I say solve for price, what I mean is that
- 1 person chooses the 1 user price (A)
- 2 people chose the 5 user price (B)
you solve, 1 user (A) gets the 1 user price, they get billed, B moves into next round (unless their time limit has expired)
now more people come along
- 5 users choose the 10 user price (C)
- 6 users chose the 12 user price (D)
+ 2 people chose the 5 user price (B)
So now you can manufacture at the 13 user price because that will satisfy everyone.