How to List a Virtual Product in Magento

When I think of a store, I immediately think of physical goods being sold in it, but in reality a store can contain many different types of products. Services for example are sold quite often online and with Magento, these type of “products” can be sold very easily.

In the video below, I show you how it’s done by listing a social media marketing package as a virtual product. Of course, you can sell any type of service as a virtual product because in reality, a virtual product is simply a product that doesn’t ship.

Can’t view the video? Watch it on YouTube

To start, simply go to “catalog > manage products” and then click on the “add product” button.

On the next page, you will be asked to select an ‘attribute set’ and ‘product type’. For the attribute set, you can either choose default or an attribute set that you’ve created. If you are not familiar with attributes and would like to learn more about them, I recommend this tutorial. For product type, simply select ‘virtual product’ and click the ‘continue’ button.

General information

In the ‘name’ field, enter the name of your service. In the video, I entered ‘Social Media Marketing’.

In the ‘description’ field, describe your service.

The ‘short description’ shows up in the overview section of the product view page. This is actually amongst the first few things that your visitor sees, so you’ll want to provide details about the service while keeping it brief and to the point.

As for ‘SKU’, this is the stock-keeping unit value. In the video I entered ‘SMM’ in this field. Anything can be entered in this field but remember to enter a unique value for each product.

For ‘status’, you’ll want to make sure that ‘enabled’ is selected if you want the item to be available for purchase on the site.

Select your ‘tax class’ using the dropdown menu. I have more information on setting up Magento taxes here.

For the ‘url key’, this is the URL path of the product view page. You can leave this field empty and have the URL key automatically generated using the ‘name’ field value or you can enter your own. If you enter your own, try to keep it lowercase with letters and/or numbers, hyphens (-) and/or underscores (_) only. Also remember to keep this value unique for every product that you list.

For ‘visibility’, if you want your product to show up on category pages as well as search results pages, you’ll want to choose ‘catalog, search’.

In the ‘set product as new from date’ and ‘set product as new to date’ fields, you can select a date range for the product to be considered new or you can leave these fields empty. Note that this is useful if you’d like to create a new products widget as I did here.

Once finished proceed to the ‘prices’ section.


Enter the price of your service in the ‘price’ field.

If you’d like to add a different price for customers that are associated with specific groups, you can in the ‘group price’ section.

For ‘cost’, this is what the service costs you. This field is of course optional.

If you’d like to offer the service at a bulk discount, you may do so in the ‘tier price’ section.

If you’d like to offer your service at a discounted price, you may do so by entering an amount in the ‘special price’ field. If you enter an amount in this field, the service will be sold at this price and the price that you’ve entered in the price field will be crossed out —  t would look something like this:

Special pricing

You can offer your service at this price for a limited time by entering a start date in the ‘special price from date’ and an end date in the ‘special price to date’ fields.

‘MAP’ stands for minimum advertising pricing and you can select “Yes” or “No”.

If you select “Yes” for ‘MAP’, you can also select a value for ‘display actual price’. For example, if you select ‘in cart’, the customer will see the actual price once the service is added to their cart.

If you’d like to enter an MSRP, you may do so by entering a value in the ‘manufacturer’s suggested retail price’ field.

Note that you must enable MAP in “System > Configuration”, then go to the sales section in the left column and click the ‘sales’ link and then expand ‘minimum advertised price’ for this to work.

When finished, go to ‘META information’.

Meta information

Here you can enter your META information but remember not to enter in any HTML in these fields. If you would like to learn more about META tags, I have more information on them here.

When finished go to ‘Images’.


Here you can upload images for your product. If you do not see the browse and upload button, it’s likely because you don’t have Flash installed — you can download Flash here.

You can also upload more than one image and set a sort order for those images using the ‘sort order’ field if you’d like.

You can decide where the images are displayed using the radio buttons which are positioned in the columns: ‘base image’, ‘small image’, ‘thumbnail’.

Remember to specify images for those three values because if you don’t, your product will be listed without images.

Recurring profile

If you’d like to offer your customer a subscription or other type of auto-billing plan, you can do this by going to ‘recurring profile’.


Here you can enter a specific design for the product that you are listing.

Gift Options

If you select “Yes” for ‘allow gift message’, your customer will be able to enter a gift message during checkout.


On this page, you will want to enter a number in the ‘qty’ field and make sure that ‘stock availability’ is set to ‘in stock’ because if it’s not, your item won’t be visible in the frontend.

You can change the values of the other fields as you please. Note that the ‘config settings’ are set in “system > configuration > catalog > inventory”.


Here you will want to select a category or categories for your product. I have a tutorial on creating categories here.

Related products, up-sells, cross-sells

To set these up, see my tutorial on cross promoting items.

Product reviews, product tags, customer tagged product

If you have content for these sections, you can populate these pages with that relevant content.

Custom options

Here you can specify custom options by clicking on the “add new option” button. You can select the input type, whether the a value is required, sort order and more.

In the video I created a dropdown menu which was named ‘type of marketing’ and added:

  • Facebook and Twitter
  • Facebook, Twitter and Pinterest

For ‘Facebook and Twitter’, I left the price field empty and for ‘Facebook, Twitter and Pinterest’, I entered a price of ‘50.00’. When you enter a price for an option, that price is added to the price that you entered in the ‘price’ field.

The options that I created in the video looked like this:

Options menu

Save your product

When finished, simply click the “Save” button in the top right to save and list your product.