Skip to content
Quaflow

Shopify4 min read

How to collect print-ready files from customers on Shopify

Custom print orders stall when the artwork arrives by email, in the wrong size or at low resolution. Here is how to take file uploads on the product page, check them automatically and price by size.

By the Quaflow team

A store that sells custom prints depends on a file the customer makes. Whether you print DTF transfers, stickers, posters or signs, the order can't move until usable artwork has arrived, and that is where most of the delay in custom orders comes from.

This guide looks at the usual ways of collecting artwork on Shopify, what goes wrong with them, and what a setup needs so that files arrive ready to print.

Where custom orders get stuck

Artwork sent after the order. The customer pays, then receives an email asking for the file. Some reply days later, some send the wrong file, and every order needs someone to match an email attachment to an order number.

Files that can't be printed. A logo saved from a website at 400 pixels wide. A JPEG with a white background. A photo of a business card. Nobody notices until production opens the file, and then the order waits for a new one.

Prices that don't match the job. A 3 inch sticker and a 20 inch one need different prices, but a fixed product price can't see the file. Stores work around it with dozens of size variants, or by quoting by hand.

All three have the same cause: the store learns about the file too late.

What a good upload flow does

  1. It takes the file on the product page, before the customer adds to cart. The file belongs to the order from the first moment.
  2. It checks the file while the customer is still there. If the image is too small or the wrong type, the customer hears it immediately and can pick another file. Fixing it later costs an email thread.
  3. It prices from the file. The size of the artwork, the quantity or the number of files sets the price, so one product covers every size.
  4. It attaches the file to the order. Production opens the order and finds the artwork there.

Ways to add file uploads to Shopify

ApproachChecks the filePrices by sizeEffort
Ask for the file by emailNoNoManual work on every order
A file input added to the themeNoNoTheme code to write and maintain
A file upload appYesYes, depending on the appInstall and configure

A plain file input in the product form is fine for an occasional attachment. It doesn't validate anything, and large print files are a problem for it. For a store whose products are the customer's files, an upload app is the practical route.

Which rules to set for print files

The right rules depend on what you print, but these cover most cases:

  • File types. Allow what your workflow can open. For DTF and stickers that is usually PNG and PDF.
  • Minimum resolution. 300 DPI at the printed size is the common target for sharp prints; many shops accept 150 DPI for large items seen from a distance.
  • Dimensions. A maximum that matches your printer, such as 22 inches for a DTF roll, and a minimum below which the print isn't worth making.
  • File size. High enough for real print files. Gang sheets regularly run to hundreds of megabytes.

Explain the rules next to the upload field in plain words. "PNG or PDF, at least 300 DPI" prevents more problems than an error message does.

Free toolDTF Print File Checker

See what these checks look like on a real file: drop in a PNG, JPEG or PDF and read its size, resolution and gang sheet fit.

Pricing by size

Print costs follow area: more film, more ink, more material. Size-based pricing lets the price follow the file. The store sets a rate, for example per square inch, and the price is worked out from the dimensions of the upload.

Two details decide whether that feels fair to the customer:

  • Measure the design, not the canvas. Artwork is often saved with wide empty margins. Charging for a 12 × 12 inch canvas when the design is 6 inches wide leads to complaints. For products where only the design is printed, the transparent edges should be left out of the measurement.
  • Know when the canvas is the product. On a gang sheet the customer has laid out the whole sheet, so the canvas size is the right one to charge for.

How Upload Center handles it

Upload Center is our Shopify app for stores that sell from customers' files. It adds an upload field to the product page through a theme app block, without editing theme code.

  • Validation on the product page. Allowed file types, and size, dimension and DPI rules, checked as soon as the customer picks a file.
  • Custom pricing. Prices calculated from the width and height of the upload, the quantity or the number of files.
  • Measured in the browser. The app reads a file's dimensions without waiting for the upload to finish, so even very large files get an instant answer. It is the same engine that runs our print file checker.
  • Files attached to orders. Every upload is linked to its order, with bulk export and an API for production workflows.

Whichever tool you choose, the principle is the same: take the file before the payment, check it while the customer is there, and let its size set the price.

FAQ

Questions and answers

Can't find your answer? Talk to our team.

Not as a standard product option. A theme developer can add a basic file input to the product form, but it comes without checks on the file, without size-based pricing and with a small file size limit. Most stores that sell custom prints use an app.

Yes, with an app that measures the file. Upload Center reads the dimensions of the uploaded artwork and calculates the price from its width and height, the quantity or the number of files.

Set rules on the upload field: allowed file types, minimum and maximum dimensions, and a minimum DPI. The customer sees what is wrong while they are still on the product page and can fix it before paying.

Upload Center: file uploads, validation and custom pricing for Shopify

Let customers upload artwork, photos and documents on product pages, validate them automatically and price products by size, quantity or file attributes.