WooCommerce supports six product types out of the box, but most tutorials only cover two. Understanding all six – and knowing which to use in which situation – is what separates a store that’s easy to manage from one that becomes a maintenance headache as it grows. This guide explains each type, when to use it, and how to configure it correctly.
Overview: WooCommerce Product Types at a Glance
WooCommerce ships with these product types built in: Simple, Variable, Grouped, External/Affiliate, Virtual, and Downloadable. Additionally, plugins like WooCommerce Subscriptions add types like Subscription products and Variable Subscriptions. This guide covers the six native types – the ones available in every WooCommerce installation without additional plugins.
| Product Type | Physical Shipping | Inventory Tracking | Best For |
|---|---|---|---|
| Simple | Yes | Yes | Single physical item |
| Variable | Yes | Per-variation | Items with size/color options |
| Grouped | Yes (per child) | Per child product | Product collections/bundles |
| External/Affiliate | No | No | Products sold elsewhere |
| Virtual | No | Yes | Services, consultations |
| Downloadable | No | Optional | Digital files, software |
Simple Products: The Foundation
Simple products are the most straightforward WooCommerce product type. They represent a single product with a single SKU and no variations. A coffee mug, a printed book, a single-size doormat – these are simple products. The customer views the product, clicks Add to Cart, and the product goes directly into the cart at the configured price.
Configuring a Simple Product
When creating a simple product in WooCommerce, the key data entry points are:
- Regular Price and Sale Price: Set the base price. Sale price can be scheduled to start and end automatically.
- SKU: Stock Keeping Unit – your internal identifier for the product. Useful for inventory management and order fulfillment.
- Manage Stock: Enable this to track inventory. Set the stock quantity, the low stock threshold (triggers admin email), and what happens when stock runs out (don’t allow purchase, allow backorders, or allow backorders with notification).
- Shipping: Weight and dimensions are used to calculate shipping rates if you’re using weight-based or dimension-based shipping methods.
- Linked Products: Upsells appear on the product page; cross-sells appear in the cart. Both are effective revenue optimization tools that simple products make easy to configure.
Simple products are the right choice whenever your product doesn’t have options that change the price or inventory. Even if a product comes in multiple colors, if those colors are cosmetic and share a price and stock count, a simple product with an attribute (not a variation) may be sufficient.
Variable Products: Handling Size, Color, and More
Variable products are simple products that have options (called “variations”) where each combination can have its own price, stock level, SKU, weight, and image. A t-shirt available in three sizes (Small, Medium, Large) and four colors (Red, Blue, Green, Black) would be a variable product with 12 possible variations (3 x 4).
When to Use Variable vs Simple with Attributes
This is one of the most common points of confusion in WooCommerce setup. The deciding factor is whether different options need different prices or different inventory counts.
- Same price, same stock pool for all options? Use a Simple product with product attributes. Attributes show as informational options on the product page but don’t create separate inventory records.
- Different prices per option (e.g., Large costs more than Small)? Use a Variable product.
- Tracking inventory separately per option (e.g., only 3 Size Small Red left)? Use a Variable product.
- Need different SKUs per option for fulfillment? Use a Variable product.
Setting Up Variable Products
Creating variable products involves two steps that must be done in order:
First, create the attributes. In the Product Data box, select the Attributes tab. Add your attributes (Size, Color, etc.) and check “Used for variations.” You can create custom attributes or use global attributes (which appear across multiple products and enable filtering in WooCommerce).
Second, generate the variations. In the Variations tab, you can generate all possible combinations automatically from your attributes, then configure price, stock, SKU, and images for each variation individually. For a product with many variations, you can also set prices for all variations at once using the bulk edit dropdown.
Managing Variable Product Performance
Variable products with many variations can cause database performance issues. A product with 100+ variations creates significant lookup overhead on the product page and in the cart. If you’re dealing with products that have more than 50 variations, consider using attribute-based add-ons (via WooCommerce Product Add-Ons) rather than creating individual variations for every combination.
Grouped Products: Collections Without Bundles
Grouped products let you display a set of related simple products together on a single product page. The customer can add one, several, or all of the individual products to their cart from one page. Each item in the group retains its own pricing and inventory and is purchased individually – there’s no group discount or package pricing built into the grouped product type.
A good example: a guitar store selling a guitar, a case, a tuner, and a set of picks. A grouped product would display all four on one page, allowing customers to choose which combination they want without forcing them to visit four separate product pages.
Grouped vs Bundle Plugins
A common misconception is that grouped products are the same as product bundles. They’re not. Grouped products don’t have special bundle pricing – customers pay the individual price for each item they select. If you need bundle discounts (e.g., buy all four guitar accessories and save 15%), you need the WooCommerce Product Bundles plugin, which adds a distinct product type specifically for discounted sets.
Grouped products are best for display consolidation rather than pricing strategy. They reduce navigation friction when customers typically buy from a product family but may not always want everything.
External/Affiliate Products: Sending Traffic Elsewhere
External products appear in your WooCommerce catalog but don’t have a standard Add to Cart button. Instead, they have a custom button (typically “Buy Now” or “View Product”) that links to an external URL. When the customer clicks, they leave your site and are taken to wherever you specify – an Amazon listing, a ClickBank product page, a Gumroad listing, etc.
The primary use case is affiliate marketing. You’re presenting products in your WooCommerce store’s format, customers can search and filter them alongside your own products, but the actual transaction happens on the merchant’s platform and you earn affiliate commission on sales you refer.
Configuring External Products
For external products, the Product Data box shows two fields unique to this type: Product URL (the destination link) and Button Text (what your custom button says). The price field still exists and appears on the product page – enter the retail price of the product so customers can see it before clicking through.
No shipping, inventory, or variation configuration is needed for external products since the transaction happens off-site. WooCommerce tracks no sales data for external products – your affiliate platform handles that.
Virtual Products: Services, Consultations, and Memberships
Virtual products are products that don’t require physical shipping. They’re appropriate for services, consultations, coaching sessions, one-time fees, registrations, or anything else that doesn’t involve shipping a physical item to the customer’s address.
When you mark a product as Virtual in WooCommerce, the shipping configuration tabs disappear from the Product Data box, and the checkout process automatically removes the shipping step when the cart contains only virtual products. The customer is never asked for a shipping address, which reduces checkout friction significantly.
Virtual vs Downloadable: The Critical Distinction
Virtual and Downloadable are often confused because both don’t ship. The difference is whether a file is delivered.
- Virtual: You’re selling a service, time, or access that doesn’t come with a file download. A 1-hour consultation, a web design service retainer, a workshop registration.
- Downloadable: You’re selling a digital file. An ebook, a Photoshop preset pack, a music album, software, a PDF guide.
A product can be both Virtual AND Downloadable – for example, a software license with a downloadable installer file. In practice, most downloadable products should also be marked as virtual to suppress the shipping step.
Downloadable Products: Selling Digital Files
Downloadable products are WooCommerce’s built-in solution for selling digital files. After purchase, customers receive a download link via email and in their My Account area. You can attach multiple files to a single downloadable product and configure download permissions.
Download Configuration Options
WooCommerce gives you three important controls on downloadable products:
- Downloadable Files: Add one or more files. Each file gets a name (shown to customers) and a file URL. You can upload directly through WooCommerce or provide a URL to a file stored on S3 or another CDN for large files.
- Download Limit: How many times the customer can download the file after purchase. Set to -1 (or leave blank) for unlimited downloads. Limiting to 3-5 downloads is reasonable for software or ebook sales.
- Download Expiry: How many days after purchase the download link remains active. Set to -1 for no expiry. For products updated regularly, expiry encourages customers to download promptly.
Secure Download File Storage
By default, WooCommerce stores downloadable files in WordPress’s uploads directory. Files uploaded here are technically accessible via direct URL if someone guesses the path. To prevent this, use a storage method that requires WooCommerce to validate purchase before serving the file:
- Enable the “Force Downloads” method in WooCommerce → Settings → Products → Downloadable Products. This serves files through PHP, checking payment status before delivery rather than serving the file directly from the server.
- For large files (100MB+), use Amazon S3 with pre-signed URLs via a plugin like WooCommerce Amazon S3 Storage or Easy Digital Downloads S3 integration. This offloads the file serving burden to S3 while maintaining secure delivery.
Choosing the Right Product Type: Decision Guide
When adding a new product to your WooCommerce store, run through these questions in order:
- Does the product ship physically? If no, mark it Virtual. If it also comes with a file, also mark it Downloadable.
- Does the actual sale happen on your site? If the product is sold on Amazon or another platform, use External/Affiliate.
- Does the product have options (size, color) where different options have different prices or inventory? If yes, use Variable. If options are cosmetic only with the same price and shared stock, use Simple with Attributes.
- Is this product part of a family of related products you want to display together? If yes, consider creating a Grouped product as a presentation layer alongside the individual products.
Using the wrong product type doesn’t just affect how your products look – it affects inventory accuracy, checkout friction, and the complexity of your order management workflow.
Common Questions About WooCommerce Product Types
Can I change a product type after customers have purchased it?
Yes, but do it carefully. Changing a product type after purchases exist can cause data inconsistencies in existing orders. If you change a Variable product to a Simple product, the order line items for old orders will still reference the variation attributes – those records don’t disappear from the database. For active products with purchase history, create a new product of the correct type and retire the old one rather than changing the type in place. Mark the original as a draft or set it to out of stock to prevent new purchases while preserving order history.
How do I set up product variations correctly?
Variable products require two steps that beginners often miss. First, you define Attributes on the product (for example, Size with values Small, Medium, Large). Then you go to the Variations tab and generate variations from those attributes. WooCommerce can auto-generate all possible combinations, but you must then set price and stock for each variation individually – WooCommerce does not inherit the parent product price for variations. If you skip setting the variation price, customers will see an error when trying to purchase. Each active variation also needs its own SKU for inventory tracking to work correctly.
What is the difference between Virtual and Downloadable?
Virtual and Downloadable are independent checkboxes that can be used separately or together. Virtual means the product requires no shipping – appropriate for services, subscriptions, or consultation bookings. Downloadable means the product includes a file that customers receive after purchase. A software license key is both Virtual and Downloadable. A print-on-demand book is Downloadable but not Virtual (it ships). An online coaching session booking is Virtual but not Downloadable (nothing to download). Understanding the distinction prevents configuration errors that cause checkout friction or incorrect shipping calculations.
How many variations can a Variable product have?
WooCommerce by default limits the number of variations displayed in the shop to 30 per product for performance reasons. This is a configurable limit (woocommerce_ajax_variation_threshold filter), not a hard cap. The real constraint is database performance: products with hundreds of variations create a large number of post records and meta rows that slow down your database queries. If you need more than 50 variations per product, consider whether a product configurator plugin or a custom solution would serve your use case better than native WooCommerce variations.
Building Your WooCommerce Store Right
Getting product types right from the start saves significant cleanup work later. Variable products with well-configured attributes improve customer experience and reduce support requests. Virtual products eliminate checkout friction for service businesses. Downloadable products with Force Downloads protect your files from unauthorized access.
Ready to set up email marketing alongside your WooCommerce store? See our guide to WordPress email marketing with MailPoet and Mailchimp to build your customer list from day one. For the essential plugins every new site needs, check our roundup of must-have WordPress plugins for new websites.
eCommerce Simple Products Variable Products WooCommerce WooCommerce Products
Last modified: April 6, 2026









