add order validation

validates that there is enough stock to supply all variants
fixes an issue where you could order an assembly and a part, and it
would allow you to purchase more than was in stock.

Change-Id: I75d085d5a844cffa333c9622b3dd006790abe7b0
test didn't need to be using js

Change-Id: I97f75d9ddc7af2165fb4a5ceaf65b516923cf2f2