So here are the requirements:
- Support for special pricing (we do sales a couple times a year)
- Support for wholesale pricing by customer group
- Support for configurable and simple products.
Seems simple enough, but here are some of the complications:
Initially I used Tiered Pricing to accomplish wholesale pricing - works great for breaking down pricing by customer group and quantity. But it's broken for configurable products.
So I did something similar to what Simple Configurable Products does which is just to always add the Simple product to the cart whenever a customer adds a configurable to the cart.
But then I stumbled onto another problem, which is that in our case - and I'm not sure if this is normal for wholesale workflows or not - we need wholesale pricing to kick in across different products. So for example, someone buys 4 units of Product A and 2 units of Product B, since they're buying more than 6 units and are in the wholesale customer group, they need to get the wholesale discount.
So at this point I switched over from doing Tiered Pricing to simply using Shopping Cart Price Rules to accomplish the same discount based off of the product category and the customer group.
But now I have a problem when a product has a special price, because now the wholesaler will get their wholesale discount stacking with the special price, which we don't want.
It would be great if I were using Tiered Pricing b/c Magento already has that case handled natively - it picks the lower of the two if both Special Prices and Tiered Prices are used. But I can't do that because of the above issues.
So what I'm planning to do now is simply use Shopping Cart Price Rules for the sale pricing and avoid using Special Prices altogether. The downside there is that I won't get my nice original price / final price per product that I can use to show the original price striked-out with the sale price in bold.
Is there a simpler way of implementing the business logic I'm getting at? And/or on a less technical and more business level (that's allowed here right?) - is any of this business logic unnecessary / overkill for standard wholesale workflows?