Insightful look into Joomla! VirtueMart eCommerce engine : Part2

“Joomla Version 3 is adopted by 49.2% of all the websites who use Joomla.”

“So many books, so little time.”

Below is countrywise websites using Joomla! as of 2016 for their CMS and eCommerce requirements.

(Source: BuiltWith )

OK,  let us continue our insights into Joomla! and VirtueMart architectures that we have started in previous article.

If you haven’t gone through previous text, you can navigate to and read it at this URL:


  1. Joomla! presentation framework

VirtueMart is originally developed as Joomla! component. It can NOT be installed on other types of CMS.

Emerged from version 1.0, Joomla!  since has been re-written from ground up

Its presentation structure follows MVC ( Model-View-Controller ) model.

Joomla! is a complete web application as opposed to desktop application.

Each of its file consists HTML code.

Aimed at making life of developers easier, MVC architecture is adopted by many open source projects.

“According to Baymard Institute, 2 out of 3 shoppers on traditional (desktop) e-commerce websites abandon their shopping carts without purchasing the items they shopped for.

It’s even worse on mobile, where checkout rates are 70% lower than the already low desktop rates.”

In the past, to generate dynamic URLs of targeted webpages, spaghetti code(all codes including that of database and backend language  intermingled in a single file) had to be managed by software engineers which used to prove nightmare for maintenance before introduction of MVC.

  • Models

Of  3 tier architecture of MVC, Models  represents the most backend tier – data tier.

It describes how data is stored and retrieved from database server.

Strictly speaking, there are no provisions for format of data, it can be in any format from plain simple CSV or TSV to the most complicated RAC database server.

  • Views

It is front-end tier.

From a given dataset, data can represented in multiple ways.

For example, statistical data can be represented as

  • Pie chart
  • Bar chart
  • Tabular format

It is function of View tier to present piece of data to visitor in proper style.

Notably, this tier will showcase skill-set of web designer and therefore if theme-colour scheme-icons etc. will fail to attract visitor, site will reflect high bounce rate.

So views should NOT be under-estimated.

Each representation, like pie chart mentioned above is called a view.


  • Controllers

As we said, Models are data related components and Views are User Interface( UI / UX ) related components.

There is need of logic that converts data in required format and then only Views can organize data to show them to users.

Controller component takes care of this conversion that can feed desired data type to Views component.

Controllers are routines or functions written any programming language.

Therefore, separation of data and interface makes it possible to give new look and feel to existing web application without touching data.  Re-designing can be frequent.

  • VirtueMart presentation framework

Before release of Joomla! 1.0, MVC pattern was NOT adopted and widely spread in industry.

Hence VirtueMart is built-on loosely coupled MVC.

That is, it is divided in 3 tiers but follows different nomenclature than standard MVC.

1st source documentation from Joomla! website does NOT define 3 tiers officially.

  1. Data tier – class files

Class files serve as data tier.

They reside under ‘classes’ subdirectory in Joomla! root, we saw this previously. They start with ‘ps_’

For instance, ps_product.php will define products data of an online store.

  1. Presentation tier – template files

These are complete HTML files and are sent back to browser for display

They can be compared to Joomla! views.

These are basically template files.

So if you change one of the template to display vertical list instead horizontal banner, all related products will change their look to adjust in vertical list.

  1. Business logic tier – page files

To convert data into proper format before sending to presentation component – template files,  page files of Joomla! are used and have extension .html.

But  they are NOT strictly controllers or business logic files, few times code of business logic tier intermingles with actual data.

They  reside under ‘administrator’ directory of Joomla! and you can recognize them easily as they follow this naming convention:

{ module }.{ page }.php

Keep reading more Joomla! tactics in part 3 of this discussion, it will be final bit of this blog.

Continue exploring more at..

Simply to read more articles on

  • web application development
  • eCommerce related ideas or
  • to  get practical inputs or techniques to enhance your own mobile application navigate to

Bliss Web Solution Pvt. Ltd. is a top-notch web development company specializing in optimization of  high traffic websites.

To delve deeper into technicality or optimize your large scale Magento web portal, just drop an e-mail to us at  

and we will reply you within 24 working hours.

You can freely attend weekend discussions held at our office in Ahmedabad.

Just call us on  +91 98256 77818 to raise a ticket or to input new project in our system to complete it within tight deadlines of time.

About admin

I am a very motivated and enthusiastic person, highly creative, and recognized as a result-oriented and solution-focused individual.

Add a comment