File upload
When released, the File upload option will let a customer attach a file to their order — artwork to print, a logo to embroider, or a document to reference.
It supports flat fee, percentage of product price and quantity tiers — the charge is for supplying a file at all. There is no per-megabyte or per-file rule: the pricing function never sees the bytes, and billing by filename length would be absurd.
Limits
Section titled “Limits”| Maximum file size | 25 MB per file |
| Maximum files per option | 5 |
| Accepted kinds | Images, documents, fonts, audio |
You choose which kinds a given option accepts. An option expecting print artwork should accept images only, so a customer does not attach a spreadsheet and discover the problem at fulfilment.
Set the size limit to what you can actually use. The customer is told the limit up front and warned immediately if their file is over it, rather than after a long upload.
How uploading works
Section titled “How uploading works”The file goes directly from the customer’s browser to storage — it does not pass through your Shopify store. The order line records a reference to the file, not a public link, so a customer’s uploaded artwork is not sitting behind a guessable URL in an order record.
An upload has to complete before it counts. If a customer closes the tab mid-upload, nothing is attached, and the required-field check stops them adding to cart with a half-finished upload. This is deliberate: an upload that silently did not happen is discovered at fulfilment, by which point the order is paid for.
Getting files at fulfilment
Section titled “Getting files at fulfilment”Open the order in your Shopify admin and follow the reference on the line item. See Reading a customer’s choices.
Common problems
Section titled “Common problems”“That file is larger than N MB.” The customer’s file exceeds the limit you set. Either they compress it or you raise the limit.
“Uploads are still loading. Please try again.” The upload component had not finished loading when the customer picked a file. Waiting a moment and retrying resolves it.
“That file could not be accepted.” The file’s type is not one this option accepts, or it failed the server-side check. The check runs on the file’s actual contents, not its extension, so renaming a file does not get it through.