VirtueMart: Turn Joomla into an Online Store in 30 Minutes

25.03.2026
14:52

VirtueMart is a free extension that adds full online store functionality to Joomla CMS. If you already have a Joomla site and need to start selling products — VirtueMart lets you do this without building a separate platform from scratch.

Project history began in 2002 as a phpShop fork for Mambo CMS. After Mambo split into Joomla in 2005, developers renamed the solution to VirtueMart and fully focused on the new platform. Over 22 years of active development, the system built a huge community, thousands of extensions, ready-made themes.

Main VirtueMart advantage — integration with Joomla ecosystem. All Joomla plugins, modules, templates work with the store without additional hacks. Content management, SEO, multilingual, access rights — unified CMS system used. No need to learn separate e-commerce platform admin, everything in familiar Joomla interface.

Current version VirtueMart 4.6.4 compatible with Joomla 3.10.x, Joomla 4 and Joomla 5. Developers support three CMS generations simultaneously, simplifying migration — updated Joomla from 3 to 4, VirtueMart continues working without reinstallation.

Who VirtueMart Suits

VirtueMart optimal for small and medium businesses with catalogs up to 5,000-10,000 products. Clothing stores, electronics, books, gifts, food products, auto parts — typical applications. If need quick sales start on existing Joomla site without big budgets — VirtueMart solves the task.

Limitations become noticeable under high loads. Stores with tens of thousands of products, hundreds of simultaneous buyers, complex B2B processes hit architectural constraints. For such scales choose Magento, OXID, Shopware.

Typical VirtueMart client profile:

  • Small/medium business with limited development budget
  • Already have Joomla site, need to add sales
  • Catalog from dozens to several thousand products
  • Traffic up to 1,000-2,000 visitors per day
  • No specific B2B requirements
  • Important ease of management without programmers

If planning store from scratch and budget allows — might consider specialized e-commerce platforms. If already Joomla and need fast — VirtueMart logical choice.

Technical Requirements

VirtueMart inherits Joomla requirements plus adds its specific ones:

Required components:

  • Joomla 3.10.x, Joomla 4.x or Joomla 5.x
  • PHP 8.0 or 8.1 (for Joomla 4/5), PHP 7.4 (for Joomla 3)
  • MySQL 5.7+ or MySQL 8.0+, MariaDB 10.4+
  • Apache 2.4 or Nginx with mod_rewrite
  • PHP extensions: GD Lib, JSON, XML, Zlib, cURL, mbstring

Recommended PHP settings:

  • memory_limit: minimum 128 MB, recommended 256 MB
  • upload_max_filesize: 32 MB (for product image uploads)
  • post_max_size: 32 MB
  • max_execution_time: 300 seconds

Server configuration:

Minimum for start (up to 500 products, 100 orders/month):

  • 1 vCPU / 2 GB RAM / 20 GB SSD
  • Shared hosting handles

Recommended (1,000-5,000 products, up to 1,000 orders/month):

  • 2 vCPU / 4 GB RAM / 40 GB NVMe
  • VPS or managed hosting

For active store (5,000+ products, 2,000+ orders/month):

  • 4 vCPU / 8 GB RAM / 80 GB NVMe
  • Dedicated or powerful VPS
  • Caching via Redis/Memcached
  • CDN for static assets

VirtueMart relatively undemanding on resources compared to Magento or PrestaShop. Works comfortably on average shared hosting with proper caching configuration.

Installing VirtueMart on Joomla

Installation process consists of several stages: Joomla installation (if not yet), VirtueMart component installation, additional modules and plugins installation, basic configuration.

Step 1: Joomla Installation

If Joomla already installed — proceed to step 2. For new installation:

Download latest Joomla version from joomla.org. At time of writing, Joomla 5.2 current, but VirtueMart works on Joomla 3.10 and 4.x.

Extract archive to server document root:

cd /var/www/html
wget https://downloads.joomla.org/cms/joomla5/5-2-2/Joomla_5-2-2-Stable-Full_Package.zip
unzip Joomla_5-2-2-Stable-Full_Package.zip
rm Joomla_5-2-2-Stable-Full_Package.zip

Create database for Joomla:

mysql -u root -p

In MySQL console:

CREATE DATABASE joomla CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'joomla_user'@'localhost' IDENTIFIED BY 'strong-password';
GRANT ALL PRIVILEGES ON joomla.* TO 'joomla_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Configure permissions:

chown -R www-dаta:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

Open browser, navigate to http://your-domain.com — Joomla installation wizard launches. Follow instructions:

  • Select language
  • Enter site name, admin email, password
  • Specify database connection details (host, DB name, user, password)
  • Can install demo data for familiarization

After completion, Joomla ready for use.

Step 2: Download VirtueMart

Navigate to virtuemart.net/downloads

Download latest stable release. At time of writing this is VirtueMart 4.6.4. File named com_virtuemart.4.6.4_extract_first.zip.

Extract archive locally on computer. Inside find three zip files:

  1. com_virtuemart.4.6.4.zip — main VirtueMart component
  2. com_virtuemart.4.6.4_ext_aio.zip — AIO (All-In-One) package with modules and plugins
  3. com_tcpdf_1.0.0.zip — TCPDF library for PDF invoice and packing slip generation

These three files installed sequentially via Joomla admin. Order important — first main component, then AIO, then TCPDF.

Step 3: Install Main Component

Access Joomla admin: http://your-domain.com/administrator

Login and password specified during Joomla installation.

In main menu select System → Extensions → Install

Land on Extension Manager page. Switch to Upload Package File tab.

Click Browse (or Choose File), select file com_virtuemart.4.6.4.zip, press Upload & Install.

Joomla uploads and installs component. Process takes 10-30 seconds depending on server speed.

After successful installation see message Installing component was successful and page with two buttons:

  • Install Sample Data — install demo products, categories, settings for familiarization
  • Go (Directly) to the Shop — skip demo data, straight to store

For first acquaintance recommended installing demo data — click Install Sample Data. System creates example products, categories, customers. Later can delete and create your own.

If making production store — press Go to the Shop, get clean installation.

Step 4: Install Modules and Plugins (AIO)

Return to System → Extensions → Install, Upload Package File tab.

Upload second file: com_virtuemart.4.6.4_ext_aio.zip

After installation see success message. AIO package installs at once:

  • Modules for displaying categories, cart, products
  • Payment system plugins (PayPal, Stripe etc.)
  • Shipping plugins
  • Tax plugins
  • Product search plugins

Step 5: Install TCPDF

Third file com_tcpdf_1.0.0.zip install same way via Extension Manager.

TCPDF needed for PDF document generation — invoices, packing slips, reports. Without it these functions don't work.

Step 6: Activate Modules

After installation VirtueMart modules not automatically activated. Enable needed ones:

Navigate to Content → Site Modules

Find VirtueMart modules:

  • VirtueMart Product Categories — product category display
  • VirtueMart Shopping Cart — buyer cart
  • VirtueMart Currencies — currency switcher
  • VirtueMart Manufacturers — manufacturer list
  • VirtueMart Products — product block (new, bestsellers)

Open each module, change status to Published, assign position in template (usually sidebar, footer). Configure display parameters.

For categories module recommended left sidebar position, for cart — right sidebar or header.

Step 7: Activate Plugins

Navigate to System → Plugins

Find VirtueMart plugins:

  • Search - VirtueMart — product search via standard Joomla search
  • VmPayment - Payment plugins — various payment systems
  • VmShipment - Shipping plugins — delivery methods

Enable needed plugins with Enabled status.

For payment and shipping plugins later configure parameters in VirtueMart section.

Step 8: Basic Configuration

In Joomla main menu appeared Components → VirtueMart section

Navigate there — VirtueMart control panel opens.

First go to Configuration (gear icon).

Shop tab:

  • Shop Name — store name
  • Shop Email — email for notifications
  • Shop Address — physical address (for invoices)
  • Default Currency — main currency (USD, EUR, GBP)

Checkout tab:

  • Terms of Service — mandatory terms agreement checkbox
  • Privacy Policy — privacy policy link
  • Guest Checkout — allow purchases without registration

Templates tab:

  • Select Theme — store design theme selection
  • Products per Row — products per row on category page
  • Show Prices — whether to show prices (can hide for catalog without purchases)

Site tab:

  • Invoice Logo — logo for PDF invoices
  • Invoice Format — invoice numbering format

Save settings — basic configuration ready.

Creating Store Structure

After installation create product categories and add products.

Creating Categories

In VirtueMart panel select Products → Product Categories

Click New to create category.

Fill fields:

  • Category Name — category name (e.g., "Smartphones")
  • Category Description — description for SEO
  • Category Image — category image
  • Parent Category — parent category (for nesting)
  • Published — publish immediately or leave draft

VirtueMart supports unlimited category nesting. Can build tree:

Electronics
  ├─ Smartphones
  │   ├─ Apple
  │   ├─ Samsung
  │   └─ Xiaomi
  ├─ Laptops
  └─ Accessories

Save category — appears in list and on site (if categories module activated).

Adding Product

In VirtueMart panel select Products → Products

Click New to create product.

Product Information tab:

  • Product Name — product name
  • Product SKU — article (unique identifier)
  • URL — SEF URL for product page
  • Short Description — brief description (shown in list)
  • Description — full description (on product page)
  • Manufacturer — manufacturer (select from list or create new)

Price tab:

  • Product Price — base price
  • Product Tax — tax rate
  • Currency — price currency
  • Discount — discount in percent or absolute amount

Images tab: Upload product images. First becomes main, rest — additional in gallery.

Product Categories tab: Assign product to one or multiple categories.

Custom Fields tab: Add additional characteristics — color, size, material, weight. These fields shown on product page and used for filtering.

Dimensions tab: Weight, length, width, height — used for shipping calculation.

Save product — appears on site in assigned categories.

Configuring Shipping Methods

In VirtueMart panel navigate Shop → Shipment Methods

Click New to create shipping method.

Fill:

  • Shipment Name — name (e.g., "Courier in New York")
  • Shipment Logo — shipping method icon
  • Published — publish
  • Shipment Method — select cost calculation plugin

Typical shipping plugins:

Standard Shipment — fixed cost. Specify price, applies to all orders.

Weight Based Shipping — calculation by weight. Configure table: weight from/to — cost.

Example:

0-2 lbs: $10
2-10 lbs: $15
10-20 lbs: $25
20+ lbs: $40

Country Based Shipping — calculation by delivery country. Different rates for different regions.

DHL, FedEx, USPS — courier service integration (require API keys and configuration).

For simple start use Standard Shipment with fixed price. Later add complex calculations as needed.

Create several shipping methods:

  • City courier — $10
  • Suburban courier — $15
  • USPS — $12
  • Store pickup — free

During checkout buyer selects convenient option.

Configuring Payment Systems

Navigate Shop → Payment Methods

Click New to add payment method.

Payment Method — select payment system plugin:

Standard Payment — cash on delivery, bank transfer — methods without automatic processing. Order created, payment confirmed manually.

PayPal Checkout — PayPal integration. Specify PayPal account email in plugin settings. Buyer redirects to PayPal, pays, returns to site with confirmation.

Stripe — card acceptance via Stripe. Need Stripe account, API keys. Buyer enters card details on your site, money goes to Stripe account.

Authorize.Net, eWay, Skrill — other popular payment gateways. Each requires registration and API configuration.

For start sufficient:

  • Cash on delivery (Standard Payment)
  • Bank transfer (Standard Payment with details)
  • PayPal (if have account)

Complex integrations connect as grow.

Order Management

When buyer places order, appears in Orders → Orders section

See order list with statuses:

  • Pending — awaiting processing
  • Confirmed — confirmed
  • Shipped — shipped
  • Cancelled — cancelled

Open order — see:

  • Order items with prices
  • Buyer data (name, email, phone, address)
  • Shipping and payment method
  • Total amount with breakdown (products, shipping, taxes)

Can:

  • Change order status
  • Send email to buyer with update
  • Print invoice or packing slip (PDF via TCPDF)
  • Add internal comment

Typical processing flow:

  1. New order → Pending status
  2. Verified payment → Confirmed status
  3. Handed to shipping → Shipped status
  4. Buyer received → Completed status

Each status change can automatically send email to buyer with notification (configurable).

Extensions and Customization

VirtueMart out of box covers basic store needs. For additional functions use extensions.

Popular extensions:

VirtueMart Product Scroller — product carousel on homepage. Shows new items, bestsellers, promotions as slider.

VirtueMart Wishlist & Compare — wishlist and product comparison. Buyer adds products to wishlist, compares specifications.

One Page Checkout — one-page checkout. Instead of multi-step process everything on one screen — faster and more convenient.

VirtueMart CSV Import — bulk product import from CSV file. Upload supplier price list, products created automatically.

VirtueMart Invoice & PDF — improved document generation with template customization.

Product Reviews & Ratings — buyer product reviews and ratings.

Extensions installed via Extension Manager same as main components. Some free, some paid ($20-100).

Design Themes:

VirtueMart uses Joomla templates for overall site design. Additionally can install specialized store themes.

Popular templates:

  • Horme — base VirtueMart theme, comes bundled
  • JM Store — premium template for Joomla + VirtueMart
  • SJ Market — modern responsive design for marketplaces

Premium themes cost $30-70, include ready product page layouts, categories, cart, mobile adaptation.

Performance Optimization

VirtueMart on standard hosting works acceptably up to 1,000-2,000 products. For large catalogs need optimization.

Joomla Caching:

In Joomla admin navigate System → Global Configuration → System

Enable CacheProgressive Caching

Configure Cache HandlerFile (simplest option) or Redis/Memcached (if available on server).

Cache Time set 15-30 minutes.

Cache stores ready HTML pages, doesn't generate each time anew — 3-5x speedup.

Image Optimization:

Product photos often weigh megabytes. Compress before upload:

  • WebP format instead of JPEG/PNG — 30-50% size savings
  • Sizes adapted for site — don't upload 4K if showing 800x800px
  • Plugins like JCH Optimize compress automatically on upload

Database Optimization:

As operate database fragments, queries slow.

Periodically execute:

OPTIMIZE TABLE jos_virtuemart_products;
OPTIMIZE TABLE jos_virtuemart_product_prices;
OPTIMIZE TABLE jos_virtuemart_categories;

Table prefix jos_ may differ — specified during Joomla installation.

CDN for Static Assets:

Product images, CSS, JS serve via CDN (Cloudflare, KeyCDN). Reduce server load, speed loading for users from different regions.

Multilingual Support

VirtueMart natively supports multiple languages. Enable multilingual in Joomla settings, create product and category translations.

Configuration:

In Joomla admin: System → Manage → Languages

Install language packs — e.g., English and Spanish.

Navigate System → Manage → Content Languages

Create content languages:

  • English (en-GB) — primary
  • Spanish (es-ES) — additional

In VirtueMart when creating product see tabs for each language. Fill name, description in English and Spanish.

On site appears language switcher (Language Switcher module). Buyer selects — content changes.

Payment and shipping methods also translate via Joomla language constants.

Use Case Examples

Case 1: Local Brand Clothing Store

Small clothing production, online sales. 300 items (dresses, blouses, pants), courier delivery in city and postal to regions.

VirtueMart solution:

  • Categories by clothing type (dresses, blouses, pants, accessories)
  • Custom fields for sizes (XS, S, M, L, XL) and colors
  • Product photo galleries with models
  • Payment: card transfer, cash on delivery
  • Shipping: USPS, FedEx, city courier
  • New arrivals module on homepage

Costs: shared hosting $5/month, design theme $50 one-time. Total launch for $50 + $5/month operation.

Case 2: Book Online Store

Book sales, 2,000 titles catalog, regular replenishment with new releases.

VirtueMart solution:

  • Categories by genre (fiction, mystery, business, children's literature)
  • Custom fields: author, publisher, publication year, ISBN, page count
  • CSV product import from publisher price lists
  • PickPoint integration for pickup points
  • Payment via Stripe
  • Product Reviews module for reader reviews

Catalog update: weekly receive publisher price lists in Excel, convert to CSV, load via import plugin. New books added automatically, prices updated.

Case 3: Auto Parts Store

Import car parts sales, 5,000 item catalog with manufacturer articles.

VirtueMart solution:

  • Categories by car makes → models → parts (engine, suspension, brakes)
  • VIN code search via custom module
  • Custom fields: part manufacturer (original/analog), article, model applicability
  • 1C integration for stock synchronization
  • Transport company delivery with weight-based calculation
  • Corporate payment by invoice with deferred payment

Feature: wholesale clients see special prices via Joomla user groups. Retail — regular, wholesale (authorized in "Partners" group) — with 15% discount.

When VirtueMart Doesn't Fit

VirtueMart good for typical small/medium scale tasks. Scenarios where not optimal:

High-Load Stores: If expect thousands of simultaneous buyers (major sales, viral products) — VirtueMart hits performance limits. Magento or Shopify handle better.

Complex B2B Processes: Individual pricing per client, order approval, budget control, buyer hierarchies — VirtueMart doesn't cover out of box. OXID eShop or specialized B2B platforms solve natively.

Marketplaces: Platforms where multiple sellers trade via single site. VirtueMart originally for single seller. Though multi-vendor extensions exist, architecture not built for this. Better take CS-Cart Multi-Vendor or Magento with marketplace extension.

Huge Catalogs: Tens of thousands of products with millions of variations (sizes, colors, configurations) — VirtueMart slows. Database not optimized for such volumes. Enterprise platforms scale better.

Headless Commerce: If need API for mobile app, integration with external systems via REST/GraphQL — VirtueMart API weak. WooCommerce REST API or headless Shopify fit better.

VirtueMart Alternatives

In Joomla ecosystem exist other e-commerce solutions, each with pros:

HikaShop — main VirtueMart competitor in Joomla world. More modern interface, better optimized, more actively developed. Free version limited in functionality, full costs €90-240. If willing to pay — HikaShop preferable to VirtueMart.

J2Store — lightweight extension turning any Joomla articles into products. Suits small stores (up to 100 products) embedded in content site. Simpler than VirtueMart, fewer capabilities.

Looking beyond Joomla:

WooCommerce (WordPress) — world's most massive e-commerce solution. Huge plugin and theme ecosystem. If no Joomla attachment — WooCommerce often simpler and more functional.

PrestaShop — specialized e-commerce platform, not CMS extension. More capabilities for stores, harder to learn. Free, open source.

OpenCart — another standalone store platform. Lighter than PrestaShop, suits beginners well.

Conclusion

VirtueMart remains relevant choice for Joomla-based online stores in 2026. Free, functional, with large community and multiple extensions.

Optimal for small and medium business: catalogs up to 5,000 products, traffic up to 1,000-2,000 visitors per day, standard B2C processes. If already using Joomla for corporate site and need to add store — VirtueMart integrates organically.

Limitations manifest when scaling: large catalogs, high loads, complex B2B scenarios better solved by specialized platforms like Magento or OXID.

For start fits ideally: zero license costs, low hosting requirements, quick deployment. Grow — migrate to more powerful solution or optimize VirtueMart for loads.

VPS on THE.Hosting with 2 vCPU / 4 GB RAM / 40 GB NVMe configuration for €10-12/month suitable for medium-sized VirtueMart store. NVMe drives accelerate Joomla and MySQL work, European locations ensure low latency for European buyers.

Other articles

25.03.2026
12
Knowledge base / Instructions / Review
OXID eShop: German Enterprise Platform for Complex Integration Projects
25.03.2026
10
Knowledge base / All about domains
.HOST Domain Zone