How to Sell Large Digital Downloads in Odoo eCommerce · Calibre Consulting

Sell digital downloads in Odoo, even large files.

Deliver digital products automatically from Odoo eCommerce, and get around the 128 MB upload limit by attaching a link or raising the limit.

This guide shows how to sell a digital download, such as a video course or a software installer, through an Odoo eCommerce store, including files too big to upload. The short answer: attach the file to the product as a product document and set it to appear once the order is confirmed. If the file is above Odoo's upload limit, keep it on a storage service and attach the link instead of the file, or raise the limit if you host Odoo yourself.

It is written for store owners and managers, and was verified on Odoo 19 and Odoo 20. Where labels differ, both are given.

Before you start

Where the size limit comes from

By default, Odoo refuses any single upload larger than 128 MB (134,217,728 bytes). The browser blocks the file first with a message about the maximum allowed file size, and the server enforces the same limit.

The limit is set by a system parameter called web.max_file_upload_size, a number of bytes. A new database does not contain this parameter, so the default applies until someone creates it, and it then covers every upload in the database.

Two things sit outside that setting. Uploaded files count toward your database's storage, which Odoo's documentation gives as 100 GB on Odoo Online and 512 GB on Odoo.sh shared hosting. And a web server or hosting platform in front of Odoo can apply its own request size limit that this parameter does not change. Odoo publishes no such figure for Odoo Online, so test a large upload before relying on it.

A product document can be a web address instead of an uploaded file. Nothing is uploaded, so the size limit stops mattering, and Odoo still hands the link to each buyer when the order is confirmed.

  1. Upload the file to your storage service and create a sharing link that outside people can open.
  2. Open the Sales app, go to Products > Products, and open the product you sell.
  3. On the General Information tab, set Product Type to Service. A service creates no delivery order, and a cart of services does not ask for a shipping method.
  4. Click the Documents button at the top of the product form. The product's documents open, with a New button and an Upload button.
  5. Click New and set Type to URL. The file field disappears and a Url field takes its place.
  6. Paste the sharing link into Url. Then type the name the customer will see in the title field at the top of the form.
  7. Choose when the customer can see it. In Odoo 19, in the Sales section, set Sale : Visible at to On confirmed order. In Odoo 20, open the Sales tab and set Accessible to On Order Confirmation.
  8. Save. The document appears on the product's Documents screen with a link icon.

Option 2: raise the upload limit

This suits a self-hosted database where you control the web server.

  1. Open the Settings app, scroll to Developer Tools, and click Activate the developer mode. Developer mode shows technical menus that are hidden by default.
  2. Go to Settings > Technical > Parameters > System Parameters.
  3. Search for web.max_file_upload_size. If nothing is listed, click New.
  4. Enter web.max_file_upload_size as the Key and the new limit in bytes as the Value. For 500 MB, enter 524288000.
  5. Save, then reload the browser page. The browser reads the limit when a page loads, so an open tab keeps the old limit until refreshed.
  6. On the product's Documents screen, click Upload, then open the new document and set its visibility as in step 7 above.

When the customer gets the download

A document set to the confirmed-order option appears only once the order reaches the Sales Order stage. On the website, that happens in one of two ways:

The buyer then finds it in the customer portal: Your Orders, then the order, then the Documents section. A link document opens in a new browser tab, and an uploaded file downloads.

If your payment provider has Capture Amount Manually turned on, the buyer receives the file at authorization, before you capture the money.

Check that it worked

  1. In the Sales app, create a quotation for a test customer with the download product, and click Preview. The customer's view opens with no Documents section.
  2. Go back, click Confirm, then click Preview again. A Documents section now shows the name you gave the document.
  3. Click the name. A link should open your storage page in a new tab, and a file should download in full.

Limits to know before you rely on it

Steps verified on Odoo 19 and Odoo 20. Menus and labels can differ on other versions.

Common questions

What is the file upload size limit in Odoo?

By default Odoo accepts uploads up to 128 MB per file. The limit comes from the system parameter web.max_file_upload_size, in bytes, which you can create in developer mode to raise it, although a hosting platform may still apply its own lower limit.

When can a customer download a digital product bought in Odoo eCommerce?

Once the order is confirmed. A successful or authorized online payment confirms it automatically, while a pending payment such as a bank transfer leaves it as a quotation until someone clicks Confirm. The download then appears in the customer portal under Your Orders and in the order confirmation email.

Can Odoo limit how many times a file is downloaded?

Not in standard Odoo. It does not count how often a product document is opened, for uploaded files or for links, so a download cap would need customization.

Can I sell a file stored on OneDrive or Google Drive through Odoo?

Yes. Add it to the product as a document with Type set to URL and make it visible on confirmed orders. Odoo sends the buyer on to that link, so the storage service's sharing settings decide who else can open it.

Talk to the team.

If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.

Book the call →