WooCommerce Product Types Explained: When to Use Each
Every WooCommerce product has a type, and the type decides how it is sold, shipped and added to the cart. Learn the four product types, simple, grouped, external or affiliate, and variable, plus the Virtual and Downloadable checkboxes, and when to use each.
Watch the tutorial
This tutorial explains the four WooCommerce product types, simple, grouped, external or affiliate, and variable, plus the Virtual and Downloadable checkboxes, with only stock WooCommerce on a demo coffee shop. For each one we cover when to use it, how it looks on the shop and at checkout, and how shipping and stock work. Then we go through four mistakes that catch people out. No code needed.
Also on YouTube (opens in a new tab)
Read the transcript
Every product in WooCommerce has a type. And the type decides how it's sold, shipped, and added to the cart. In this tutorial, we'll go through the product types. Simple, grouped, external, and variable. Then the Virtual and Downloadable checkboxes. For each one, we'll see when to use it, how it looks on the shop and at checkout, and how shipping and stock work. Then we'll go through the mistakes that catch people out. It's all stock WooCommerce, so there's nothing extra to install.
First, the big picture. Two things describe a product. The product type is how it's sold. Simple, grouped, external, or variable. The two checkboxes say what it is. Virtual means there's nothing to ship. Downloadable means the customer gets a file. We'll use the Ridgeline Coffee Roasters demo shop, and check each one on the shop, and at checkout.
Both live in one place. Open Products, then Add new product. Scroll down to the Product data box. The drop-down at the top is the product type. It starts on Simple product. Open the list, and there are four types. Next to it are the two checkboxes. Virtual, and Downloadable. The tabs below change with what you choose. We'll see how, one type at a time.
Start with Simple product. It's the default, and the one you'll use most. One product, one price. Use it for anything customers buy as it is: a bag of coffee, a dripper, or a pack of filters. Stock is on the Inventory tab. Tick Manage stock, and enter a quantity. Sunrise Blend has twenty-four. Shipping comes from this product's own weight, size, and shipping class. On the shop, a simple product shows its price, and an Add to cart button. Add it, and it's one line in the cart. At checkout, shipping is worked out from the product. Here that's a flat rate of $6.00.
Next, grouped products. A grouped product is a shelf for products that already exist. Choose Grouped product, and look at the tabs. There's no General tab, so there's no price. A group has no price of its own. On the Linked Products tab, add products under Grouped products. Here, the dripper, the filters, and a bag of Sunrise Blend. Stock and shipping stay with each of those products. The group has none of its own. On the shop, the group shows a price range, from $6.50 to $32.00. Open it, and each product has its own price, and its own quantity box. Choose the quantities, and click Add to cart. In the cart, they're separate lines. The group itself never shows up. Use it for a set of related products that customers can mix.
External, or affiliate, products aren't sold on your shop. They send the customer to another website. Choose External/Affiliate product. Two new boxes appear: Product URL, and Button text. Enter the address of the product on the other site, and the words for the button. You still show a price, here $79.00. There's no Shipping tab, and the Inventory tab has no stock. Your shop isn't selling it, so it isn't shipping it or counting it. On the shop, the button says Buy at Grindworks. There's no quantity box, and no Add to cart. It can't be added to the cart, so it never reaches checkout. Use it for affiliate links, or for products someone else sells and ships.
Variable products are one product with choices. A size, a color, or a bag weight. Customers choose on the product page, and the price follows the choice. Stock and shipping can follow it too. There's already a full video on this. It's called How to Set Up Variable Products and Attributes in WooCommerce. The link is in the description.
Now the checkboxes. Virtual first. Tick it for anything with nothing to ship: a gift card, a class, or a service. Look at the tabs. The Shipping tab is gone. A virtual product has no weight, size, or shipping class. On the shop, it looks like any other product. But add the gift card on its own, and checkout asks for no shipping address, and shows no shipping options. Add a bag of coffee as well, and shipping comes back, for the coffee only. Stock still works on a virtual product. Tick Manage stock, for something like a class with limited places. And a paid order for a virtual product still lands as Processing, until you mark it Completed.
Downloadable is for files. Tick it, and a Downloadable files section appears. Click Add File. Give it a name, then choose the file from your computer. Here, that's a PDF. Set a download limit, and when the link expires. Leave them empty for unlimited. A download is usually virtual too, so tick both. Tick only Downloadable, and the Shipping tab stays. The shop will still ask for an address. Now a customer, June, buys the guide. She pays by check, so the order is on hold. There's no download link yet. Customers get one only once the order is Processing or Completed. Mark the order Completed, and the permission appears on it. Three downloads, thirty days. June now finds the guide in My account, under Downloads. It shows how many downloads are left, and when it expires.
Here's the difference in shipping and stock. Simple has its own price, its own shipping, and its own stock. Grouped has none of those. Each product inside is priced, shipped, and counted on its own. External isn't sold here. So no cart, no shipping, and no stock. Variable sets price, stock, and weight for each choice. Virtual removes shipping. Downloadable adds a file. Do both, and a paid order completes by itself.
Mistake one: the wrong type. Customers can't choose a size on a grouped product. And they can't buy an external one from you. For choices, use a variable product. For one you sell yourself, change the type. Open the grinder, choose Simple product, and click Update. The price stays, $79.00, and now there's an Add to cart button.
Mistake two: Virtual on something you ship. It's one click, and it switches shipping off. Here, the home roaster has Virtual ticked. Checkout asks for no shipping address, and charges nothing for shipping. That's a sixteen pound roaster, shipped for free by mistake. If a product ships, leave Virtual unticked.
Mistake three: changing a download limit later. The limit and expiry are copied onto each order when the customer is given access. Change them on the product, and old orders keep the old numbers. Only new orders get the new ones. To help one customer, edit it on the order, in the Downloadable product permissions box.
Mistake four: a file in the wrong place. WooCommerce only allows downloads from approved directories. When an administrator adds a file, its folder is approved automatically. When a shop manager adds one from a new place, WooCommerce refuses it, and lists the folder as disabled. An administrator can enable it, under WooCommerce, Settings, Products, Approved download directories.
That's the WooCommerce product types. Simple for one product, grouped for a set, external for another site, and variable for choices. Virtual means nothing to ship, and Downloadable means a file. If something looks wrong, check the type first. More WooCommerce tutorials at plugincity.net.
What you will learn
- What each product type does, and when to choose it
- How a simple product, a grouped product and an external product look on the shop and in the cart
- Why a grouped product has no price of its own, and why an external product never reaches checkout
- What the Virtual checkbox changes: the Shipping tab, the shipping address at checkout and the order status
- How to add a downloadable file, set a download limit and an expiry, and why an unpaid order has no download link
- How shipping and stock differ between the types
- Four mistakes: the wrong type, Virtual on a product you ship, changing a download limit later, and a file in a directory WooCommerce has not approved
Good to know
Everything shown is stock WooCommerce (version 11.2.2 in this video) with no extra plugins, and screens may look slightly different in other versions. Variable products get only a short look here, because the PluginCity tutorials hub already has a full tutorial on them: How to Set Up Variable Products and Attributes in WooCommerce (/tutorials/variable-products-and-attributes). Filmed on a demo shop (Ridgeline Coffee Roasters) with sample products and prices in US dollars. The voice-over is a computer-generated voice.