Appearance
Moving from another Joomla cart
VirtueMart 4 does not run on Joomla 6, and J2Store reaches end of life on 19 October 2026. If your shop runs on either, or on HikaShop or Phoca Cart, this guide moves your catalog to NXCart with the free CSV importer.
NXCart runs on Joomla 5 and 6. You don't have to upgrade Joomla first: install NXCart next to your current shop, bring the catalog over, check it, and only then retire the old cart and upgrade Joomla.
What moves and what doesn't
| Moves with the import | Set up again in NXCart |
|---|---|
| Products, titles, descriptions | Orders and customers (keep the old database for your records) |
| Prices, VirtueMart override prices as sale prices | Tax rates, shipping rules, payment methods |
| Stock and weight | Coupons |
| Images | Downloadable files of digital products |
| Categories, including nested ones | Brand details such as addresses and EU safety contacts |
| VirtueMart child products, HikaShop variants and Phoca Cart options as variants | Reviews |
| Barcodes (EAN, and J2Store UPC codes) | Old category links (see Old links) |
| VirtueMart, HikaShop and Phoca Cart manufacturers, as brands | |
| Old product links (see Old links) |
Orders and customers are deliberately not imported. Their payment and tax history was recorded by your old cart, and NXCart's invoices and order history only cover orders NXCart handled itself. Keep a copy of the old database for accounting and for looking up past orders.
Before you start
- Take a full backup of the site and its database.
- Use a staging copy if you can. Run the whole migration there first, then repeat it on the live site once you are happy with the result.
- Install NXCart (see Installation) and set your base currency first. Prices are imported in the store currency, and the importer warns about rows in a different one.
Step 1: Export your catalog
From J2Store or J2Commerce
Use J2Store's Simple CSV Import/Export app, which J2Commerce also ships, and export your products. NXCart recognises this file on upload.
Worth knowing about this export:
- One row per product. The app does not export product options or variants, so a product with options arrives as a single product. Add its variants in NXCart afterwards.
- Categories. J2Store products are Joomla articles, and the export names each one's article category only by its id. If you import on the same site, NXCart looks the category up and recreates it by name (for example My Blog > Technology). On a different site it arrives as Category 12; rename it in NXCart → Categories.
- Hidden products stay hidden. Products that are disabled in J2Store, whose article is unpublished or trashed, or that are not visible in the shop are imported as inactive.
- Images are referenced as paths such as
images/products/mug.jpg. On the same site they keep working. On a new site, copy the old site'simagesfolder across first. - Barcodes. A 12-digit UPC is stored as its 13-digit EAN form.
From HikaShop
In Components → HikaShop → Products, tick the products to move (the box at the top of the list ticks all on the page; show all products first), then click Export. NXCart recognises the file on upload, whatever separator your HikaShop settings use.
Worth knowing about this export:
- Variants. Each product's variants (for example Size and Colour) become its variants in NXCart, named after your HikaShop characteristics. A variant without its own price, weight or name uses the product's, as in HikaShop.
- Categories arrive with their full tree. Manufacturers become brands.
- Prices. The price for all customers when buying one is imported. Quantity tiers, customer-group prices and HikaShop discounts are not; set up coupons or sale prices in NXCart instead.
- Stock. Unlimited stock becomes 999.
- Images come from HikaShop's image folder (
images/com_hikashop/upload). On a new site, copy the old site'simagesfolder across first. - Downloadable products import as digital products; attach their files afterwards.
- Unpublished products import as inactive.
From Phoca Cart
In Components → Phoca Cart → Export, click Export, then Download. NXCart recognises the file on upload, even though Phoca Cart separates its columns with semicolons.
Worth knowing about this export:
- Prices. Phoca Cart's "Original Price" is the crossed-out price, so a product with a higher original price arrives with that as its price and Phoca's price as a sale price.
- Options become variants. Each combination of a product's options (for example Size S and Size L) becomes a variant, with its own SKU, stock and price.
- Categories and manufacturers. The export names them only by short codes. If you import on the same site, NXCart reads the real names and the category tree from Phoca Cart; on a different site they arrive named after their aliases (Pc t shirts), so rename them afterwards. Manufacturers become brands.
- Images come from Phoca Cart's product image folder (
images/phocacartproducts). On a new site, copy that folder across first. - Unpublished products import as inactive, and digital products as digital; attach their files afterwards.
From VirtueMart
VirtueMart has no CSV export of its own. Use CSVI, the import/export tool most VirtueMart shops use, and export your products. NXCart recognises the file on upload.
Add these fields to the CSVI export template:
| Field | Why |
|---|---|
virtuemart_product_id, product_parent_id | Connect child products to their parent, and keep old links working. |
product_sku, product_name, product_in_stock | Required. NXCart recognises a VirtueMart file by these. |
product_price, product_override_price, override, product_currency | Price and sale price. |
category_path | Categories, including nested ones. |
file_url | Images. |
slug, product_s_desc, product_desc, published, product_special | Address, descriptions, published and featured. |
product_weight, product_weight_uom, manufacturer_name, product_gtin | Weight, brand and barcode. |
Worth knowing about this export:
- Child products. A child product without a category of its own, such as each size of a shirt, becomes a variant of its parent product, named after what sets it apart (small, large). A child you placed in a category stays a product of its own, as your shop shows it.
- Inherited values. VirtueMart children often leave their price, images or description to the parent. NXCart fills these in from the parent, the way your shop displays them.
- Prices. VirtueMart stores prices before tax, and NXCart imports them as they are, so leave Inclusive off on your NXCart tax rates. Override prices become sale prices when VirtueMart applies them. Only the base price comes across, not quantity price ranges or shopper group prices.
- Images are paths such as
images/virtuemart/product/shirt.jpg. On a new site, copy the old site'simagesfolder across first. - Manufacturers become brands.
- Custom fields that shoppers fill in or pick in the cart (gift wrap, engraving text and the like) are not imported.
- Unpublished products import as inactive.
Step 2: Import
- Open NXCart → Import / Export.
- Choose your CSV file. The source platform is detected from the header row and marked (detected); pick it yourself if it isn't.
- Leave Update existing products off for a first import.
- Start the import and wait for it to finish. It runs in batches, so large catalogs don't time out, and an interrupted import resumes where it stopped.
See Import & Export for details, including how to re-import an updated file later.
Step 3: Check the result
- Categories: rename placeholder names, arrange the tree, and add category images in NXCart → Categories.
- Products: open a few with variants and check prices, stock and options. Products imported without a category are placed in Imported.
- Digital products always import as physical products, because no CSV format carries the files. Switch each one to digital in the product editor and attach its file.
- Brands: check your brands in NXCart → Brands (VirtueMart and Phoca Cart manufacturers arrive as brands), add the manufacturer and EU responsible person details if you sell in the EU, and choose a brand for products that have none.
- Store setup: tax, shipping, payments (Stripe and PayPal are built in, with no paid add-ons), store details and emails in NXCart → Settings.
- Place a test order end to end before you open the shop.
Old links
NXCart products get new addresses. So that links to your old product pages (bookmarks, search results, links from other sites) keep working, NXCart remembers each imported product's old address and sends visitors to the same product in NXCart:
- VirtueMart, HikaShop and Phoca Cart: handled automatically by the NXCart - Old Shop Links plugin, which is switched on when NXCart is installed or updated to the version that adds it (if you switch it off, updates leave it off).
- Import while the old cart is still installed. NXCart then also records the old search-friendly addresses (like
/shop/t-shirts/basic-tee). If you import after removing the old cart, only its plainindex.php?option=…links can be redirected. - J2Store: products are Joomla articles, which stay on your site, so their links keep working.
- Products you unpublish in NXCart are not redirected to.
For category pages and other old addresses, use Joomla's own Redirects component (Components → Redirects). With the System - Redirect plugin's Collect URLs option on, it lists the old links visitors still request, which shows you which ones matter.
Step 4: Switch over
- Point your shop menu items at NXCart's shop and category pages.
- Unpublish the old cart's menu items and modules, but keep the old cart installed for a while in case you need to check something.
- Once you no longer need it, keep a database backup, uninstall the old cart, and upgrade Joomla if you are moving to Joomla 6.
- Clear the Joomla cache and any CDN cache.