The Complete Guide to Magento 2 Virtual Products, and how to import them

Modern digital trading World is full of products, that must be delivered digitally. The products that don’t need shipping, packing or downloading. Such products don’t have size, weight, but they play a prominent role in global trading.

There is a dedicated type, for such kind of products, in Magento 2 ‘Virtual Products’. In this article you will learn the main aspects of using virtual products and get the instructions on how to import and export them from your Magento 2 store.

The complete guide to virtual products, and how to import them is a part of the blog posts that FireBear team composed for you. From these guides, you will learn peculiarities of the Magento 2 tools, and understand the basics and advanced methods of import and export of different entities.

The index post containing all guides can be found by the link below:

Magento 2 import and export guide list by Firebear

What is Magento 2 virtual product

You can consider virtual products as another way of using simple products. Whereas simple products offer the physical goods that actually need shipping, Magento 2 virtual products are mean to offer virtual goods or services at the store. Examples of virtual products include:

  • Services
  • Warranty options
  • Subscriptions
  • Memberships

As stated previously, Magento 2 virtual products are very similar to simple product type; however with some peculiarities:

  • Virtual products have no weight – this what makes virtual product type virtual. You do not have to store these products, rather specify the quantity of the services or virtual wares you offer. Because virtual products have no weight, you can’t ship them, making the order closing process a matter of invoicing.
  • Virtual products can’t be downloaded – in other words, you do not store these products on your servers or cloud drives. You will probably need to consider writing a license policy customers have access to, and that’s it.
  • Virtual products can be a part of a bundle product – extended warranty for electronics, gym membership with a yoga set. Virtual products act as simple or downloadables in bundles. Of course with the exception to shipping.

That’s it, virtual products are very simple to use, handle, and sell. There is no shipping involved, you don’t need to upload any files for customers, rather sell something that customers can’t feel on their hands 😉

How to create Magento 2 virtual products

The process behind creating virtual products from your Magento 2 administrator panel is similar to that of simple products. With the only exception – you don’t need to specify the weight of the product.

Notice how ‘Weight’ field is set to ‘This item has no weight’. That’s it, the main setting when you aim to create virtual products. Other than that, the process is similar to that of other Magento 2 product types, with no special settings.

How Magento 2 virtual products work

Virtual products look exactly the same as simple or downloadable products at the store’s catalog. Customers can only identify such products as virtuals by the value they offer.

This Gym membership product serves as a nice sample of what virtual products offer. A customer gets a virtual membership in the gym. Your task, as the store owner, is to make sure that you track this subscription.

The checkout process is also simple.

A customer only needs to specify billing credentials. No shipping method selection needed, as the goods require no delivery.

Order management is limited to a single step. Issuing an invoice. Once the invoice is issued the order is considered ‘Complete’.

Magento 2 virtual product import and export

Magento 2 import and export are complex processes involving much knowledge on how to compose tables, adjust attributes, and create new entities. That’s why Firebear team compose a list of extensive guides covering every possible question you might have, explaining how to import and export step by step, and expanding on every attribute you meet.

The most important information can be found here:

Magento 2 import and export Guide List. Find all answers here


Read complete guide to Magento 2 product import

Back to the topic. There are two ways of importing and exporting virtual products to Magento 2:

Both solutions will let you import and export virtual products; however, native Magento 2 functionality is pretty limited. First, you are stuck with only CSV file format and can’t really map product attributes or apply any filters, next, some of the errors may prevent you from taking full advantage of creating virtual products with import.

On the other hand, using Improved Import and Export extension you have full control over the import and export processes with the available features:

  • Import and export process automation with cron-scheduler
  • CSV, XML, Json, XLSX, ODS file formats supported
  • Direct file upload, direct url, FTP, SFTP, Dropbox, Google Sheets import sources available
  • Products, categories, product attributes, orders, cart price rules, customers, addresses, CMS blocks, CMS pages, and other entities can be imported and exported
  • Magento 2 B2B and MSI entities can be imported and exported with add-ons to Improved Import and Export
  • Mapping of the entity attributes – full support of custom names to the entity attributes
  • Mapping of the categories – create new categories, map categories to different paths, create new categories during import
  • Mapping of the product prices – increase and decrease product prices during import by a percent or flat values
  • Filters for export processes
  • Open code and customization endpoints – your developers can take full advantage of the extension to customize it to your needs

Buy Improved Import and Export extension for Magento 2

Whatever solution you are using the files you will be importing should have a proper set of columns, attribute values, and other settings. Below you will find recommendations on how to edit and compose files for importing virtual products to your Magento 2.

Detailed instructions on how to use Improved Import and Export can be found in the extension user manual.

Magento 2 import file requirements

With Improved Import and Export extension you gain access to using CSV, XML, Json, XLSX, ODS file formats. However, if you are new to Magento 2 import and export processes, we advise to learn how to compose import tables using CSV files.

For CSV file requirements you will need to stick to the following:

Character set Unicode (UTF-8)
Field separator Comma, Tab
Text delimiter

For editing CSV files we strongly advise using Google Sheets. MS Excel, Open Office, and other editors tend to mess up with the file formatting, adding new delimiters, encoding, and applying date local date formats. That’s why Google Sheets is the best tool for editing CSV files.

The best way to start editing a CSV file is to get a sample. You can get such a sample several ways:

  • Export your product catalog from Magento 2 using native export or Improved Import and Export extension.
  • Visit Firebear Studio GitHub – we have composed sample files for every Magento 2 entity and every product type. Every file has sample data and sample attribute values.
  • Visit Google Sheet Master Table – we have composed a Master Table for you, where we have gathered every entity sample file, with every attribute explained and expected values listed. You can save it to your drive or use as a reference.

Whatever way is preferred for you we have it covered.

Magento 2 virtual product-specific attributes

There are no product attributes specific to virtual products. In terms of import and export processes, virtual products act as Magento 2 simple products.

The only thing you need to consider is a minimal set of attributes required for creating virtual products:

Attribute name Reference Values Value example
sku SKU must be a unique value for every product. It is used to identify the product and is the only mandatory field. SKU is the first field of the table and canNOT be removed.

Can be up to 64 Latin characters in length, without spaces, can contain “-“, “_”.

attribute_set_code Defines Attribute Set assigned to the product It should look exactly the same as an attribute set name including capital letters (e.g. “Default”, “Man shoes” etc.) Default
product_type Indicates the type of product Allowed values:







categories Categories can be found under Catalog > Categories.


Indicates each category that is assigned to the product. Separate categories and subcategories with a forward slash.

New categories that are not available within Magento 2 are created automatically according to the specified values.

To indicate multiple category paths, separate each path with a pipe “|” symbol.

Default Category/Shop
name Name of the product imported Note: if the name of the product does NOT correspond to the existing product name with the same SKU it can be updated depending on your import job settings My virtual product
price Defines the price of the product For the price value, you can only use numerals.

The price format should be either full values, such as 1, 10, 15.

Or, decimal values 1.110, 10.500, 15.789.


NOTE: this is a set to minimum attributes required to CREATE any product in Magento 2. Each product has much more attributes. The list of all available attributes with explanations you can find in the Firebear Guide List to Magento 2 import and export.

Read Magento 2 import and export Guide List

Importing Magento 2 virtual products

With native Magento 2 import you can get acquainted yourself, so let’s try using Improved Import and Export extension to get full experience in this post.

Make sure to check Firebear Magento 2 demo store with Improved Import and Export extension installed and follow the steps below.

Navigate to the administrator panel of Magento 2 and proceed to System > Improved Import / Export > Import jobs.

This is the Import Jobs grid. Here you can see all the import jobs you created and can quickly edit jobs right in the grid. To create a new import job click ‘Add New Job’ button.

Use the General Settings section to name the job, apply a schedule to run the job automatically if required and enable or disable the job.

In the Import Settings select the entity you want to import and apply necessary settings. Settings depend on the selected import entity.

Import Behavior controls how the extension should handle entities you have in the import file. Whether these entities should be added, replaced or deleted from the store.

Use Import Source section to select the format of the file you are importing, specify the source you will be importing from, and uploading or specifying the link to the table you are importing.

Once done, hit ‘Validate file’ button. The extension will proceed with the necessary checks to ensure the file meets import conditions.

You can leave the import process here and hit ‘Save & Run’ button. This would be the simple import run with little additional features. However, after the imported file has been validated, you can scroll down to find more features offered by Improved Import and Export extension.

Attribute Mapping helps you map your custom attributes with Magento 2 attributes. This is useful when you are importing data from your management software where you were storing data with convenient naming.

In the section, you select the attribute from the imported file and tell the extension which Magento 2 attribute should it be tied with. Once the import process executed, the extension will take all values of the custom attribute and apply it to the specified Magento 2 system attribute.

Category mapping and attribute value mapping sections work in a similar way – you specify the category or value from the file you are importing and decide which Magento 2 category of value should it be tied with.

Another section you may want to pay attention to is Price Rules. This section allows for increasing and decreasing prices of the products you import by a flat or percent value depending on set conditions.

You can use this section whenever a supplier sends you price updates, or when you running a promotional campaign, to increase or decrease product prices in a couple of clicks.


That’s it. Now you know every you should about Magento 2 virtual products and can use them to your business advantage. You can now also compose import tables and create virtual products in bulk using import processes.
If you still have any questions on using Improved Import and Export extension – make sure to contact Firebear support team via chat in the bottom right corner of your screen, or leave a message using a contact form.