Get the current customer role in Magento


Looking at the old articles on our website that long for a rewrite, I sometimes stumble upon a gem that can be useful. One of those is the piece of code enables us to do custom stuff if our customer is assigned to a certain customer group.

You can find customer groups in Magento Administration.

  • Customers->Customer Groups is where customer groups are managed.
  • Customers->Manage Customers->Click on a customer->Account Information tab->Customer group dropdown is where you would assign a customer to a group.

The way I see it, the possible implementation of this code would be using it in an observer to add custom javascript to our page’s head if a customer is assigned to the ‘Wholesale‘ group.

Let’s do that.

Begin by registering your module. I presume you’ll know how to do this, or have your existing module you can use.

Now, create a configuration file for your module. Since my example module is called ‘Customergroup‘ with namespace ‘Inchoo‘, the code below goes in


<?xml version="1.0"?>

Now, we’ll create our observer.

class Inchoo_Customergroup_Model_Observer
    public function placeCustomJs()
        $roleId = Mage::getSingleton('customer/session')->getCustomerGroupId();
        $role = Mage::getSingleton('customer/group')->load($roleId)->getData('customer_group_code');
        $role = strtolower($role);
        $headBlock = Mage::app()->getLayout()->getBlock('head');
        if($headBlock && $role=='wholesale')
        return $this;

This isn’t the only use case. You can, of course, use this anywhere else you see fit. For example showing a message for certain customers, a different newsletter box, etc.

Just keep in mind that $role will equal ‘not logged in‘ if a customer isn’t logged in.

Note: This is a revamp of an article originally written in March 2009.


  1. hi..i am new to magento i am creating one e commerce website in it,but i have one problem that different customer group should be able to see different price of same product after login.

  2. Is there a way of showing the customer group type (this might be called customer code) on the new order email?

    I have tried using:

    {{var order.getCustomerGroupCode()}}


  3. Hi, Roshni.
    In this example, the javascript file would need to be placed in: /js/test/myScript.js

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.