Magento Certification: How do Magento price rules work?

Magento Certification: How do Magento price rules work?

Developers of Amasty Team, who have already passed Magento Certification continue to highlight the most difficult and tricky questions included in the examination. This week we asked Ruslan to explain what types of prices exist and how Magento price rules work.

Nikolay BalashBy the way, we’ve got some more good news for you. Another Amasty developer has successfully passed Magento certification. We take the chance to congratulate Nikolay with this professional success. Now our team can boast of 5 certified Magento developers, which one more time confirms high the high quality of the extensions offered.

But let’s get back to the point. Last time we discussed how the amount of products in the shopping cart is calculated. And this time we will talk about prices. Prices in Magento are one of the key elements of the platform. No wonder Magento price rules are paid a lot of attention to in Magento Certification.

How Magento rules are stored?

First and foremost one should admit that in Magento price is always stored in 2 fields, which are price (price in Magento store currency) and base_price (price in the default currency of the entire Magento installation). Let’s see how product price is formed.

What are the types of prices in Magento?

All the types of prices existing in Magento can be organized in the following table.

Types of prices in Magento

As you can see, besides the major price Price a product has an additional attribute Special Price, which enables setting a special price for a certain period of time. This special price will be displayed above the crossed major price of the product.

Besides that, we can set Tier Price, which will define the price for the product depending on 2 factors: how many products are in the cart and what group of customers one belongs to at the moment.

Here is how the price for the product is calculated.

Price for the product calculated

And this is the way it is displayed for a not logged in user. In this case Special Price worked (one sees the regular price crossed and new price displayed), since there are no rules for not logged in users.

Special Price works for not logged in users

At the same time in the cart regular Price is not displayed. One sees only Special Price.

Special Price in the cart

Here one sees price $530 since the user is logged in, so he belongs to the group General, for which Price $530 is set.

Price for group General

In case there is more than one price set for the product and in Tier Price or Price and (or) Special Price other values are set, the cheapest price is chosen. This is how the Group Price worked.

The cheapest price is chosen

And this is how the Tier Price worked.

Tier Price worked

How Magento price rules work?

Besides, price can be influenced through Magento price rules, which are set in the menu section Catalog Rules. They allow to change the product’s price in accordance with the preset rules instead of changing the product’s attributes. This way the rules are applied at the price received from attributes.

Catalog Rules have a wide set of conditions that can be set.

Catalog Price Rule

One should mention that the discount (60%) is taken from the regular Price, not from the Special Price.

Discount is taken from the regular Price

The highest level is applying Magento shopping cart rules that deduct the product’s price and are displayed as a discount on the cart page.

Another option is using Magento price rules for adding taxes.One can adjust in the settings whether taxes will be added before or after discount, which lets take or not take into account various actions in the product’s taxation system.

This is how Shopping Cart Rule works. Pay attention that 60% is discounted from the current (!) price in the cart.

Discount is taken from the current price


Please write a discount strategy for the goods according to the following plan.

  • The product costs $1000, the discount between Christmas and New Year is 30%, it should not be displayed in the cart.
  • If a customer belongs to a group of wholesale buyers, the price for him is $800 per unit for the orders of 10 units or more. Any customer who buys 30 units of the product or more, no matter what group he belongs to, pays $800 per unit as well.
  • Besides, one should provide a 10% discount from the final cost to anyone, who orders delivery to California.
  • In the last day of the year one needs to set a special price $600 per unit.

If you’re looking for a way to extend Magento price rule functionality, have a look at Special Promotions from Amasty.

Ruslan Aharodnik

Ruslan Aharodnik

Ruslan is an expert in all what concerns shipping and promotion modules. Usually he is the person, who gives you a hand with setup of sophisticated promotions or shipping combinations. Ruslan has very analytical mind. By the way, he teaches computer science at a local University.

You may also like...

28 Responses

  1. sam says:

    can you apply tax to product Price only even with special price?

    ie tax rule is 10%. product price is $100; special price is $75. Tax at checkout should be $10. Grand total $85?

    • Ksenia Dobreva Ksenia Dobreva says:

      Hi Sam, thanks for your question!

      You can find the settings at System > Configuration > Sales > Tax > Calculation settings.

      Apply Tax On setting is responsible for this in Magento versions before 1.9:

      It was slightly changed in 1.9, now it’s Cross-border trade.

      Cross-border trade: (Also referred to as pricing consistency.) We support European Union (EU) merchants operating across regions and geographies who want to show their customers a single price. Pricing is clean and uncluttered regardless of tax structures and rates that vary from country to country.
      To enable cross-border trade in the Admin Panel, click System > Configuration > SALES > Tax > Calculation Settings, option Enable Cross Border Trade.

      Hope that helps.

  2. Nicola says:

    Hi, I have a problem with group price..
    I have some products, where there are some normal prices, but when logged in as a customer (in a specific group) the prices correctly changes. These price-changes works only on the product-view,
    but when adding a product to the cart, the price is the same as the “logged-out”-price.

    Why isn’t the group-price getting added to the cart?

    Thanks in advance

  3. pan says:

    Magento pricing structure is actually quite nice. However, I think they totally left out the custom options price which are part of subset. In our site, we are trying to give our ‘wholesale’ group a discount (including options’ price), we are not able to do it in individual product level. We can only do it in invoice by using coupons/shopping cart discount rules which applies on invoice level.
    If I am missing feature that can do what we need, it will be great to know. Thanks.

  4. Martin says:

    Hi guys! We are trying to apply a discount on products with fixed special price using catalogue price rules and it seems it can’t be done. Do you know how or does exist any extension for this?

    • Ksenia Dobreva Ksenia Dobreva says:

      Hi Martin,
      Thanks for your question.
      Sorry, but we don’t have any extensions that work with catalog price rules, and for now we cannot recall any extension that does what you need.

  5. Chanthorn says:

    Dear All,

    I have once question to ask all of you.

    My question is why Catalog Price rule in Magento need Cron Job?

  6. Simone says:

    Hi is possible to apply a special-price discount ( 20% ) at catalog level ?


    • Ksenia Dobreva Ksenia Dobreva says:

      Hi Simone,

      we’d love to answer your question, but we’re not sure what you mean. Could you please explain what you need, with more details?

  7. Steve says:


    We’re using group prices for our clients who have individual discounts applied – however – on our test account – once logged in only products (or in our test case, product) is showing in the catalogue. What am I doing wrong to cause this? Do you know of a solution?

    • Ksenia Dobreva Ksenia Dobreva says:

      Hey Steve, thanks for asking.
      Do you mean that you can’t see prices for products?

      • Steve says:

        Hello Ksenia, Thank you for writing back so quickly.

        No, once logged in with a id that has the correct customer group products that do not have a special price simply do not appear in the front end.

        For example, I have around 600 SKUs and have tested the group price function on only 1 product. When logged in from the front end I can only view that product. Ideally I want to show all products and for individual products that have an agreed price to show that.

        I hope I am making sense, it is confusing me so I’m probably not explaining it very well.

        • Ksenia Dobreva Ksenia Dobreva says:

          it’s hard to tell from here, but it looks like the issue is not about prices. Maybe you have any settings that don’t show prices to logged users (customer group settings?) Or some kind of a hide price extension is configured with a mistake?

          • Steve says:

            Its very confusing whatever it is. As soon as the customer group price is removed from the test product it, and everything else appears as normal. We dont have a hide price extension running as everything can be brought. Is there a section where greater customer group settings can be altered just in case?

            Thank you for your time. I can assure you we are amasty customers already via our developer :)

            • Ksenia Dobreva Ksenia Dobreva says:


              I see. I consulted with my colleagues, it doesn’t look like a bug, though (or it will be a very rare one, we haven’t seen something similar before). As far as I know, Magento itself doesn’t have customer group settings that could give such a result, but lots of extensions do it (for example, Amasty Customer Group Catalog). We recommend to thoroughly look through each and every extension you have installed and check their settings (even if you think that the extension is not connected to the issue at first sight).
              If nothing is found, I’m afraid you’ll need some help from a developer =)

  8. Silvy says:

    I am searching for a solution with the tier prices. The main product price is the same like the tier price.
    main product price = 200 USD
    tier price = 1 and above = 200 USD
    tier price = 2 and above = 150 USD
    tier price = 3 and above = 100 USD
    The result is only the prices 2 and 3. How I can get 1 also inside the table? What can I do that qty1 will be equaled to the first tier?
    Thanks, Silvy

    • Ksenia Dobreva Ksenia Dobreva says:

      Hey Silvy,

      thanks for asking.

      Looks like you’ll need to edit the template to have this information on frontend. Hope it helps.

      • Silvy says:

        Hey Ksenia,
        thank you very much for writing back so quickly. Unfortunately I dont know how to edit the template, I hoped I can do it in magento.
        Thank you and greetings

  9. Elva Sandoval says:

    Hi Guys!
    We have a clothing ecommerce, and have a custom price attribute for “Made to Order” dresses, this price should never change or be discounted. At the same time we have a “Ready to ship” pricing option which is allowed to be discounted (this is using the main “Price” attribute). So my question is, how do I get “Special pricing” to ONLY discount our “Price” attribute and not our “Made to Order” pricing attribute?

    • Ksenia Dobreva Ksenia Dobreva says:

      Hi there and thanks for your question!

      I’m afraid, if your Magento now applies discounts to both the Price and Made to Order attributes, nothing can be done here (I mean, with the settings or Amasty extensions).
      But a customization could solve this problem.

      Hope that helps!

  10. Antony says:

    Hi Guys,
    Been struggling on what I thought would be a quick fix/addon…
    “Apply shopping cart rule on Original Price & not with Special Price” By default Mag does not give the option to work the discount from the Original Price (like you could in a Catalog Price Rule). This is a bit surprising, I’m hoping I have missed something.
    Thanks for any pointer.

    • Ksenia Dobreva Ksenia Dobreva says:

      Hey Antony, thanks for the question.
      I’m not sure I got your question right, but I’ll try to answer. You need to open the rule and select one of Amasty actions, there’s no such option in the default Magento settings.
      Please let me know if that’s what you asked about.

      • Antony says:

        Hi Ksenia,

        This is just what I’m looking for – which of your extensions gives this option to the store. I had a look at all of yours and could not see one that might be suitable…

Leave a Reply

Your email address will not be published. Required fields are marked *