Ok, I took a good look through the system at how the SKU is used.
There is a "FindBySku" method that exists throughout the system, but upon analysis of the stored procedure it automatically excludes any product variations. There is one exception to this - when the second parameter is set to "true" it selects all the product varations, but this function is only tied to the web services, and it is apparently not in use by BVC.
The rest of the logic doesn't seem to rely on the SKU being unique and updates to the product records are based on the bvin.
So, I removed the unique constraint and commented out the two unique SKU validators in the product variation editor. The only thing is now it is a manual process to ensure I don't use the same exact SKU as the parent - I have to ensure there is a space after the SKU on all of the variations. This fixes the display issues as well as ensuring the SKU is the same regardless of which launch page the customer orders from.
I thought about
trying to merge the variation records together as shared under the different products, but this cannot be done because each variation can have one and only one parent id - that is a much closer representation of what I would like to do and would make the inventory tracking easier.
However, I was able to find a hack for the inventory tracking that was acceptable. Although, technically we won't be keeping inventory, we just wanted a status indicator on the web site that we could change to In Stock, Out of Stock, or Low Quantity, but unfortunately there is no way to do this without also tracking the inventory because the product variations don't have individual type properties. A custom status indicator can be used on products without variations with no issues though, so I also put in an "Override Inventory Tracking" type property and a "Overridden Inventory Status" field.
As for the products with variations, I can just set up a low inventory email and manually update the inventories when they get low on a one off basis. I set up only the matching SKU (between product variation and the parent) to track inventory, so although there are 9 variations, there are only 3 inventory records in the database. Sure, depending on how the customer buys the product they will not decrement correctly, but in a perfect world I wouldn't want those values to decrement automatically anyway (after all, it is just a status).
Once the SKU problem was fixed, the inventory information could easily be found by looking up the bvin of the parent record for that SKU and then searching for the SKU in the children for that parent record. That's a mouth full, but it is how it works :).
Take a look - on all 3 of these products, the inventory is only tracked once and they lookup the status where it is needed. The result is the status is the same regardless of which actual page you view the product variation under.
http://www.foldingchairdepot.com:8080/c/Test-Main-Category.aspx Oh, the things we must do for SEO...