This is actually by design.
Magento will show the minimum price, because the retail price should always be higher then the group prices (otherwise, why wouldn't the customer just not login then attempt to checkout).
This is evident in the following function:
/**
* Apply group price for product
*
* @param Mage_Catalog_Model_Product $product
* @param float $finalPrice
* @return float
*/
protected function _applyGroupPrice($product, $finalPrice)
{
$groupPrice = $product->getGroupPrice();
if (is_numeric($groupPrice)) {
$finalPrice = min($finalPrice, $groupPrice);
}
return $finalPrice;
}
Source: app/code/core/Mage/Catalog/Model/Product/Type/Price.php
So running through you scenario above, using EE 1.13, I logged into a customer account. The regular price of the product was $150. The retailer group price I set as $250, and the wholesale group price I set as $125. The wholesale displayed as $125, however the retailer group price was $150. Again, this is as design, it's not a bug but a feature.
You can also try the logic by trying to add a "special price" that is greater then the regular price. The special price won't show.
Solutions for your needs.
- Make sure your regular price is always higher then groups
- Possibly create an extension that extends the logic in app/code/core/Mage/Catalog/Model/Product/Type/Price.php (this may not be the only file you need to extend, however it is the file with the majority of the pricing logic).
If you do end up creating your own extension, always remember to never edit core code.
The issue you're having around tiered pricing and configurables is quite a common one.
An example of what you're describing is as such:
Configurable A - Has 2 simple products, Simple A and Simple B
Tiered pricing for Configurable A is Buy 2 and save 10%.
But if 1 Simple A and 1 Simple B is bought, no discount is applied.
The very simple solution is to use this free extension: http://www.magentocommerce.com/magento-connect/spranks-configurabletierprices.html
With this you would get the required functionality so:
Configurable A - Has 2 simple products, Simple A and Simple B
Tiered pricing for Configurable A is Buy 2 and save 10%.
1 Simple A and 1 Simple B is bought, system add's 1 & 1 simples within the configurable bought. Discount is applied.
Hope this helps.
Best Answer
Here's a quick approach to hack it to work, i use grouped & associated simple products so this may not work with configurable ones. But could easily enough be made too.
In this example the Trade group is 4 & the adjustment is /0.8
in: app/code/core/Mage/Catalog/Model/Product/Type/Price.php
make function getFinalPrice look like this:
and function getTierPrice look like this: