WooCommerce can absolutely sell digital downloads — ebooks, software, music, templates, courses, anything deliverable as a file. It’s free, it’s already on millions of sites, and the downloadable product type is built into core.

But there’s a gap between “can” and “set up properly.” Out of the box, WooCommerce will happily ask your ebook buyers for a shipping address, leave paid orders sitting in “processing” so download links never arrive, and — if you upload files the default way — leave them in a folder anyone can link to. This guide walks through the full setup, the settings that actually matter for file security, the checkout fixes most tutorials skip, and an honest look at when WooCommerce is the wrong tool for a digital-only store.

Quick answer: selling digital downloads in WooCommerce takes 5 steps

  1. Create a product (Products → Add New) and tick both Virtual and Downloadable
  2. Upload your file(s) in the Downloadable files section and set the price
  3. Set a download limit and expiry to stop link sharing
  4. Configure delivery under WooCommerce → Settings → Products → Downloadable products (use Force downloads)
  5. Connect a payment gateway, then run a test purchase end to end

That’s the happy path. The rest of this guide covers each step properly, plus the three fixes that separate a working digital store from a frustrating one.

First: downloadable vs. virtual (they’re not the same thing)

This one setting confuses more store owners than everything else combined. WooCommerce has two independent checkboxes on every simple product:

  • Virtual means “no shipping needed.” It hides shipping fields and skips shipping calculation.
  • Downloadable means “this product delivers files.” It adds the file upload fields and grants the buyer download access after purchase.

A digital download should have both boxes ticked. Tick only Downloadable and WooCommerce still treats the order as shippable — your PDF buyer gets asked for a delivery address. Tick only Virtual and there’s no file to deliver (fine for services, wrong for downloads).

[SCREENSHOT: Product data panel with Virtual + Downloadable both checked]

Step 1: Create your downloadable product

Go to Products → Add New. Give the product a name and description — this is also your product page copy, so write it for buyers, not for yourself. In the Product data box, keep the type as Simple product and tick Virtual and Downloadable.

If you sell variations of the same product — say, a personal and a commercial license of a font — switch to Variable product and mark each variation as virtual and downloadable individually, each with its own file and price.

Step 2: Add your files and price

With Downloadable ticked, a Downloadable files section appears in the General tab. Click Add file, give it a buyer-facing name (“Invoice Template Pack v2”), and either upload through the media library or paste a URL.

Two things worth knowing here:

  • One product can deliver multiple files. A course can ship the videos, the workbook and the bonus templates as separate rows — buyers see all of them in their account.
  • External URLs work. WooCommerce only needs a valid URL, so files hosted on Amazon S3 or Dropbox can be delivered too. But be careful: a raw public link on external storage bypasses WooCommerce’s access control entirely. If you host externally, use signed/expiring URLs from that platform.

Set your Regular price (and optionally a sale price) as with any product.

Step 3: Set download limits and expiry

Right below the files you’ll find:

  • Download limit — how many times the buyer can download. Empty = unlimited.
  • Download expiry — days until the link stops working. Empty = never.

There’s no universally right answer, but the pattern that works for most stores: a generous limit (5–10 downloads) with a long or no expiry. Tight limits (1 download, 24 hours) punish legitimate buyers whose download failed on mobile, and generate support tickets rather than stopping determined pirates. Limits are a speed bump for casual link-sharing, not DRM.

Step 4: Configure how files are delivered (this is your security settings page)

Go to WooCommerce → Settings → Products → Downloadable products. The File download method dropdown is the most important security setting in your digital store:

  • Force downloads — files are served through PHP, so the real file location is never exposed and direct linking doesn’t work. Use this unless you have a specific reason not to. Its one weakness: very large files (hundreds of MB+) can hit PHP memory/timeout limits on cheap hosting.
  • X-Accel-Redirect / X-Sendfile — the best of both worlds (protected and efficient for large files), but it requires server-side support. Ask your host if they support X-Sendfile (Apache) or X-Accel-Redirect (Nginx); many managed WordPress hosts do.
  • Redirect only — the buyer is redirected to the actual file URL. The URL is exposed and shareable. Avoid this except as a last-resort compatibility fallback, and never for paid products.

Below the dropdown, keep “Append a unique string to filename for security” enabled — it renames uploads so filenames can’t be guessed (ebook.pdf becomes ebook-x7k2m9.pdf). Note it only applies to files uploaded after you enable it.

Access options on the same page:

  • “Grant access to downloadable products after payment” — when checked, buyers get their files as soon as payment clears (order status Processing) instead of waiting for Completed. For a digital-only store, check it. If you sell mixed carts (physical + digital), definitely check it — otherwise your buyer waits for the t-shirt to ship before they can open the ebook.
  • Downloads require login — optional; forces guest checkout off for downloads. Good for stores building customer accounts, annoying for one-off impulse buys.

[SCREENSHOT: Downloadable products settings screen]

Step 5: Payments and the test purchase

Under WooCommerce → Settings → Payments, enable your gateway — Stripe and PayPal cover the vast majority of digital stores. Then do the thing most people skip: buy your own product. Use Stripe’s test mode or a 100%-off coupon, complete checkout, and verify that (a) the order email arrives, (b) it contains the download link, (c) the link works, and (d) the link stops working after your limit/expiry. Ten minutes now saves your first real customer being your QA department.

Fixing the digital checkout (the part every tutorial skips)

Here’s where WooCommerce shows its physical-products DNA. Three problems appear the moment you run a digital-only store, and none of them has a native switch:

1. Orders stuck in “Processing.” WooCommerce considers Processing = “paid, now go ship it.” Digital orders have nothing to ship, but WooCommerce won’t auto-complete them (except for orders containing only virtual+downloadable products in some gateway configurations — behavior varies). Stuck-in-processing orders confuse customers and clutter your admin. Fix: an autocomplete-orders plugin, or a small code snippet that flips paid digital orders straight to Completed.

2. Payment methods that make no sense. Cash on Delivery for a PDF? WooCommerce doesn’t restrict gateways by product type natively — hiding COD (and check payments) for digital carts needs a conditional-payment plugin.

3. Checkout friction. Even with Virtual products, the default checkout carries fields digital buyers don’t need. Trimming the checkout for digital goods measurably reduces abandonment — but again, that’s an extra plugin or custom code.

None of these is hard to fix individually. The point is the pattern: a proper digital-only WooCommerce store is WooCommerce plus 2–3 helper plugins plus a snippet or two. Which brings us to the honest question.

Common mistakes with WooCommerce digital downloads

  • Uploading paid files through the regular media library and linking them in content. Anything in /wp-content/uploads/ with a known URL is public. Files should only be attached via the Downloadable files field with Force downloads on.
  • Leaving “Redirect only” on because a download failed once during setup. You’ve just made every paid file link shareable.
  • Forgetting “Grant access after payment” and then wondering why customers email “where’s my file?” while their order sits in Processing.
  • Setting download limit to 1. Downloads fail — flaky wifi, phone storage, browser quirks. You’ll refund more than you protect.
  • Never testing the expired-link path. Check what a customer actually sees when a link expires and make sure your support email is on that screen.
  • No backups of the files themselves. Your database backup doesn’t help if the product files are gone. Include woocommerce_uploads in your backup scope.

When WooCommerce is the wrong tool for digital downloads

If you sell physical products too, stop reading — WooCommerce is the right call, one system for everything, and everything above is all you need.

But if your store is digital-only, look at what we just did: installed a full physical-commerce platform, disabled its shipping logic product by product, then added helper plugins to auto-complete orders, hide irrelevant payment methods, and slim the checkout. And we haven’t touched licensing (for selling software/themes), EU VAT invoices, or cart recovery — all extra plugins or paid extensions on top.

A dedicated digital downloads plugin for WordPress inverts that: digital-first out of the box. Instant delivery on payment, no shipping concepts anywhere, digital-appropriate checkout by default — and in our plugin’s case, licensing, VAT handling and invoices included rather than sold separately.

WooCommerce (digital-only setup) SiteMile Downloads
Core plugin Free Free
Auto-complete paid orders Helper plugin Built in
Digital-only checkout Helper plugin Built in
Software licensing Paid extension Built in (Pro)
EU VAT + invoices Paid extension(s) Built in (Pro)
Total moving parts 4–6 plugins 1 plugin ($129 one-time for Pro)

Rule of thumb: mixed store → WooCommerce; digital-only → dedicated plugin. And if you’re currently on WooCommerce with a digital-only catalog and the plugin stack is wearing on you, we’ve covered the broader options in how to sell on WordPress without WooCommerce and compared the dedicated tools in best Easy Digital Downloads alternatives.

FAQ

Can WooCommerce sell digital downloads for free? Yes — downloadable products are in the free core, and Stripe/PayPal gateways are free. Costs appear when you fix the digital-store gaps (auto-complete, checkout, licensing, VAT) with extensions.

What file types can I sell? Anything WordPress allows for upload — PDFs, ZIPs, MP3s, video, images, fonts. For unusual extensions you may need to permit the file type, or simply ZIP the file (which is good practice for delivery anyway).

How big can my files be? Upload size is capped by your hosting (PHP upload_max_filesize), and very large files served via Force downloads can hit PHP limits. For files over ~200–300 MB, use X-Accel-Redirect/X-Sendfile if your host supports it, or external storage with protected links.

Can customers re-download their purchases? Yes — every downloadable purchase appears under My Account → Downloads until the limit or expiry you set is reached.

Do download links expire? Only if you set an expiry. By default links live as long as the order does, within your download limit.

Can I sell digital and physical products together? Yes, and that’s WooCommerce’s strongest argument. Just enable “Grant access after payment” so digital items unlock immediately instead of waiting for the physical part of the order to complete.

This entry was posted in Uncategorized. Bookmark the permalink.