Case study · VirtueMart
Own brand in four languages, for retail and wholesale customers
A food supplement manufacturer's e-shop moved from Joomla 3 to Joomla 5 and VirtueMart 4, keeping its orders, customers and page addresses.
- Czech, Slovak, German and English, each language with its own addresses
- Retail and wholesale: wholesale prices after approval, recommended retail price on every product
- PPL and Packeta straight from the administration, shipment status on every order
- Card and QR code payments, bank transfer and cash on delivery
- Instant search with prices and a mini cart showing what's left to free shipping
- Meta descriptions, structured data, social media previews and llms.txt for AI
The client, a Czech manufacturer of vitamins, minerals and food supplements under its own brand, sells to consumers and businesses at home and abroad. Its e-shop ran on Joomla 3 with a purchased template that could no longer be updated. We moved it to VirtueMart on Joomla 5 without losing orders, customer accounts or page addresses, and added what a shop with two kinds of customers and four languages needs.
What the e-shop looks like
Click an image to enlarge it. The logo, company name and contacts are blurred at the client's request, customer names, order and shipment numbers are made up.
For the customer









In the administration




Details that make the difference
From Joomla 3 without losing data
The original e-shop ran on Joomla 3 and a purchased template that no longer received updates. We moved products in all languages, customer accounts and order history, and redirected 235 indexed addresses to the new ones, so neither customers nor search engines hit a missing page.
Four languages in one e-shop
Czech, Slovak, German and English. Each language has its own addresses, translated products, menu, e-mails and order statuses, and the switcher leads to the same page in the other language, not to the home page.
Retail and wholesale
A business applies for wholesale prices when registering and the owner approves it in the administration. A company ID is mandatory for wholesale and is checked on the server. Retail customers also see the recommended retail price.
Instant search and mini cart
Typing into the search box shows products with an image and price. Hovering the cart lets you change quantities or remove items, and a bar shows what's left to free shipping.
PPL and Packeta from the administration
SemaShipping PPL and Packeta offer pickup points on a map right in the cart. Labels and shipment submission work from the order list, and each order shows where its parcel is.
Card and QR code payments
Customers pay by card or QR code through the Comgate payment gateway. Bank transfer and cash on delivery remain for those who prefer the traditional way.
Online contract withdrawal
SemaReturn gives customers a form for withdrawal or a complaint. The request arrives in the administration with its deadline and items, and the customer gets a confirmation e-mail.
Sign-in with e-mail
Customers sign in with their e-mail and password, no username to remember. Registration is protected by Cloudflare Turnstile instead of an annoying captcha.
Know where orders come from
Sema Track sends purchases to tracking from the server, according to consent from the cookie bar. SemaFeed prepares a Google Merchant Center feed every day.
Search engines, AI and social media
Every product has its own meta description and structured data with price, availability and brand, so Google and AI assistants read it accurately. The SemaSitemap sitemap covers all four languages and hreflang sends search engines to the right language version. An llms.txt file describes the range and the offer for businesses to language models, and a link shared on Facebook or Messenger shows the product photo, not the logo.
What the e-shop is built from
Joomla and VirtueMart form the foundation, with our ready-made extensions and add-ons written specifically for this shop on top. Each layer can be updated separately.
Foundation
Joomla, VirtueMart and a custom template, no purchased template or page builder.
Joomla 5
Content management, four languages, users, task scheduler.
VirtueMart 4
Products, price groups, orders, statuses.
Custom template
Dark look matching the brand, side menu of categories by purpose.
One-page cart
Details, shipping and payment by card, QR code, transfer or cash on delivery.
Our extensions
Ready-made products from our catalogue — you can have the same ones.
SemaShipping PPL
Pickup points, labels and PPL shipment tracking.
SemaShipping Packeta
Pickup points and Z-boxes, submission and shipment status.
Sema Online Return
Online contract withdrawal and returns.
SemaFeed
Feed for Google Merchant Center.
Sema Track for VirtueMart
Server-side purchase and conversion tracking.
Sema Cookie Consent
Cookie bar and GDPR consent management.
SemaSitemap
Sitemap with products and categories in all four languages.
Custom
Add-ons we wrote for the needs of this shop.
Wholesale
Wholesale price request at registration, mandatory company ID, owner notification.
Business inquiries
A form for wholesale prospects with spam protection.
Instant search and mini cart
Results with prices while typing, cart changes without leaving the page.
Sign-in with e-mail
Registration without a username, password rules with a strength meter.
Terms with every order
The terms valid on the day of purchase attached to the order confirmation.
Administration for staff
Clear dark look, a menu with only what staff need, changing shipping and payment on an order.
Looked after after launch too
An e-shop doesn't end at launch. With our Website management and monitoring service we monitor website availability, versions of Joomla, VirtueMart, extensions and PHP, security alerts and backup status. We know about a problem before your customers do, and once a month you get a report. For e-shops we built, the Monitoring plan is free.
Want a similar e-shop?
Tell us what you sell, to whom and in which languages. We'll suggest which parts you can have ready straight away and what would need to be added — a free inquiry takes two minutes.