The Complete Guide to Virtual Product in Magento 2

- E-Commerce, Magento 2, Our extensions

virtual product in magento 2

The modern e-commerce world is full of all possible tools and options. Even digital products are divided into numerous categories with unique peculiarities. And today, we are going to talk about a virtual product in Magento 2. Products of this type don’t need to be shipped, packed, or even downloaded. They don’t have either size or weight but play a prominent role in global trading. In this article, we explore the main aspects of using the Magento 2 virtual product type. You will learn what a Magento virtual product is and get instructions on how to create one. After that, we focus on the frontend appearance and describe how to import and export virtual products in Magento 2.

Defining Virtual Product in Magento 2

The Magento 2 virtual product type represents non-tangible items that require neither packing and shipping nor downloads. The latter is especially important because downloadable products in Magento 2 also require no packing and shipping but cannot exist without downloads.

You can consider virtual products as another way of using simple products. Whereas simple products offer the physical goods that need shipping, the virtual product type is meant to offer virtual goods or services at the store.

As stated previously, Magento 2 virtual products are very similar to simple products but with some peculiarities:

  • Virtual products have no weight – this is what makes the 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 a virtual product in Magento 2 has no weight, you can’t ship it, 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 products or downloadables in Magento 2 bundles, except for shipping and downloads.

Magento Virtual Product Example

Let’s name a few virtual product examples common to Magento. Here is a short list of items considered virtual products:

  • Services. At Firebear, we offer a bunch of customization services available as virtual products. A customer can purchase them, and we start our work. No shipping or downloads are involved.
  • Warranty options. While purchasing a physical item or service, a customer can select a warranty option that guarantees free repair, replacement of the product, or provision of the service again during the specified period. Again, no downloads or shipping are involved. All the necessary information is specified in an invoice.
  • Subscriptions. With subscriptions, customers are charged a recurring fee for access to a product or service instead of a one-time expense. They just pay for it and get an invoice after every payment.
  • Memberships. Membership is similar to a subscription. Memberships introduce another way to provide products, services, or benefits but with different access controls based on the membership type a customer acquires. Think about premium content available only to club members.

virtual product in magento 2

Virtual Products vs. Downloadable Items

Below, you can see the core distinguishing features between virtual and downloadable product types in Magento 2:

Magento 2 Virtual Product Magento 2 Downloadable Product
Weight No No
Size No No
Shipping No No
Inventory Endless Endless
Downloads No Yes

As you can see, if a non-physical product has a link to download, it is a downloadable product. If there is no link to download, you deal with a virtual item.

Magento 2 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, but rather sell something that customers can’t hold in their hands. To learn more about other product types Magento 2 offers, follow our Magento 2 import and export guide list. You will find links to the corresponding guides there.

Creating Magento 2 Virtual Product

The process behind creating a virtual product in Magento 2 is similar to the corresponding procedure associated with simple products. You can create a virtual product under your Magento 2 administrator panel as follows:

  1. Proceed to the Catalog > Products;
  2. Click the Add Product button to display the dropdown;
  3. Select Virtual Product from the list of the available Magento 2 product types.
    create virtual product in magento 2
  4. Configure the product settings.
    Note that they are similar to the ones available in the Magento 2 simple product configuration but with the only exception – you don’t need to specify the product’s weight. The Weight field is by default set to This item has no weight. That’s the main setting when you create a Magento 2 virtual product.
    configure virtual product in magento 2
  5. When done with other parameters, save your virtual product.

Now, let’s check the appearance of your newly created product on the storefront.

Virtual Product in Magento 2: Storefront Appearance

A virtual product in Magento 2 looks exactly the same as a simple product in the store’s catalog. A customer can identify an item as virtual by its description and the lack of a link to download.

example of a virtual product in magento 2: membership

For instance, this Gym Membership item serves as a nice sample of a virtual product in Magento 2. By adding it to the cart and then checking out, a customer gets a membership in the gym.

The checkout process associated with virtual products is also simple. A customer only needs to specify their billing credentials. No shipping method selection is needed, as virtual goods require no delivery.

virtual product in magento 2: checkout

Order management is limited to a single step – issuing an invoice. Once the corresponding document is issued the order is considered Complete.

virtual product in magento 2: order processing

As a store administrator, you have to track this subscription after the order gets the Complete status. You can use the export procedure described next. 

Magento Virtual Product Import & Export

Magento 2 import and export are complex processes involving much knowledge of how to compose tables, adjust attributes, and create new entities. That’s why the Firebear team composed 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 and Complete Guide to Magento 2 product import. But let’s return to our main topic – virtual products. There are two ways of importing and exporting virtual products in Magento 2:

Both solutions will let you import and export virtual products; however, native Magento 2 functionality is pretty limited. Let’s start with the export process.

How to Export Virtual Products from Magento 2

If you decide to export virtual products from Magento 2 with the help of its default tools, the main issue is that you have to export all products and then look for virtual items among them. If your catalog consists of hundreds of products, it may take a significant amount of time for you to filter out the desired items manually.

The second notable issue of the default Magento 2 virtual product export is that you cannot filter out the latest virtual items that haven’t been exported yet. The Improved Import and Export extension, however, solves these two issues. At the same time, the module lets you export the latest orders that contain virtual products. Let’s see how to export Magento 2 orders with virtual products since this procedure may dramatically simplify your daily management duties:

  1. Go to System > Export Jobs and click the Add New Job button.
  2. Name your job, select the frequency of updates, and configure other parameters in the General Settings section. You automate your Magento 2 virtual product export here.
    export orders with virtual products in magento 2: automation
  3. In Export Settings, choose Orders from the Entity dropdown and enable Consecutive Export. The latter exports only the orders placed after the latest job execution.
    export orders with virtual products in magento 2: consecutive export
  4. Configure other parameters: choose a file format, delimiters, and export source.
  5. Map attributes if you wish to create a unique output compared to the standard Magento 2 attributes.
  6. Use filters to export orders that contain only virtual products:
    Choose Order from the Entity dropdown;
    Select is_virtual from the Field dropdown;
    Specify the To and From parameters to narrow down the selection of orders you export.
    export orders with virtual products in magento 2: filters
  7. Configure email notifications.
  8. Save and run your export job.

You can also use the Improved Import & Export extension to export virtual products from Magento 2. In this case, it is only necessary to choose Products as your export entity and create a filter that transfers only virtual products. Detailed instructions on how to use Improved Import and Export can be found in the extension user manual.

How to Import Virtual Products to Magento 2

When it comes to the Magento 2 virtual product import, the files you use should have a proper set of columns, attribute values, and other settings, no matter what import tool you use. Below you will find recommendations on editing and composing files for importing virtual products to Magento 2.

File Requirements

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

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

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

We strongly advise using Google Sheets for editing CSV files. 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 with Magento 2 virtual product data.

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

  • Export your product catalog from Magento 2 using native export or the Improved Import and Export extension, as we described above.
  • 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 it 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, and can contain “-” and “_”.

PRDCT-1
attribute_set_code Defines Attribute Set assigned to the product It should look 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:

  • simple
  • configurable
  • bundle
  • grouped
  • downloadable
  • virtual
virtual – it is the only value you can use to indicate a Magento virtual product
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.

123

NOTE: This is a minimum set of attributes required to CREATE any product in Magento 2. Each product has many more attributes. The list of all available attributes with explanations is available in our Magento 2 product import guide.

Importing virtual products to Magento 2

Below, you will find two ways of the Magento 2 virtual product import. First of all, we describe the default procedure. Next, you will learn how to import virtual products with the help of Improved Import & Export.

Default Import

When a CSV file with virtual products is ready, follow these steps to import them to Magento 2:

Magento 2 virtual product import

  1. Navigate to System > Data Transfer > Import.
  2. Choose Products from the Entity Type field.
  3. Pick Add/Update as your Import Behavior.
  4. Click the Browse button on the right to Select File to Import to pick a CSV table with your virtual products.
  5. Hit the Check Data button to verify the virtual product attributes.
  6. Click the Import button to import virtual products to Magento 2.
Improved Import

With the Improved Import and Export extension, you can import not only CSV but also other file formats. The module lets you transfer data from multiple sources. At the same time, you can automate the Magento 2 virtual product import as well as modify any third-party product attributes following the Magento 2 requirements right during the import process. Let’s take a look at this process in detail.

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

Magento 2 virtual product import: import jobs

This is the Import Jobs grid. Create a new import job for virtual products – click the Add New Job button.

Magento 2 virtual product import automation

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

Magento 2 virtual product import: select entity

In Import Settings, select Products as the entity you want to import. A bunch of other parameters display.

Magento 2 virtual product import behavior

Import Behavior controls how the extension should handle your virtual products: whether they should be added, replaced, or deleted from the store.

Magento 2 virtual product import file format and source selection

Use the Import Source section to select the format of your Magento virtual product file, specify the source you will be importing from, and set up other parameters.

Once done, hit the 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 the 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 the Improved Import and Export extension.

Magento 2 virtual product import attribute mapping

Attribute Mapping, for instance, helps you map your custom attributes with Magento 2 attributes. This is useful when you import virtual products from a third-party system. The section lets you select an attribute from the imported file and tell the extension which Magento 2 attribute it should be tied with. Once the import process is executed, the extension will take all values of the custom attribute and apply them to the specified Magento 2 system attribute.

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

Magento 2 virtual product import: price rules

Another section you may want to pay attention to is Price Rules. It 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 to update the prices of your virtual products in Magento 2. Detailed instructions on how to use the Improved Import and Export extension are available in the extension user manual.

Final Words

That’s it. Now you know what virtual items are, how to create virtual products in Magento 2, and how to import/export them. As you can see, managing virtual products is an easy and intuitive task and you can enhance it even more with the Improved Import & Export extension. Feel free to compose import tables and create virtual products in bulk using the import processes. If you still have any questions about the Improved Import and Export extension in terms of the Magento 2 virtual product import and export – make sure to contact Firebear support by leaving a message using a contact form.