File upload setup

Shopify File Upload Option Setup — All File Formats Complete Guide

File upload lets customers submit artwork, logos, documents, or embroidery stitch files. It's the broader category above photo upload — covers vectors (SVG/AI/EPS) for logo work, PDFs for print jobs, DST for embroidery. Here's the complete setup for all format types.

Last updated: August 14, 2026~9 min readBy the Print It My Way team

File upload vs photo upload — what's the difference

Photo upload is a subset of file upload restricted to photos (JPG/PNG/HEIC). File upload accepts everything relevant to your product category. For photo mugs, use photo upload. For corporate logos on tumblers, use file upload (accepts vector SVG/AI/EPS for scalable logos). For embroidery, use file upload (accepts DST/EXP stitch files).

Shopify's native file upload — the limitation

Shopify supports file inputs via <input type="file" name="properties[Artwork]"> in theme code. Three fatal limitations for production use:

  1. Page-style cart only — doesn't work with drawer cart most modern themes use (Shopify Help Center documents this)
  2. No format validation — customer can upload PSD, DOCX, or anything
  3. No file size cap — 20 MB PSD will succeed and fail at POD partner

Every meaningful upload flow uses a personalizer app. The app uploads to its own cloud storage, validates + converts, attaches URL as line-item property.

Setup with Print It My Way Pro (10 minutes)

  1. Install Print It My Way Pro ($13.99/mo — file upload requires Pro; free plan is text-only)
  2. Dashboard → New Personalizer → drag in File Upload field
  3. Configure accepted formats: JPG, PNG, HEIC (default photo set) + SVG, AI, EPS, PDF (add vectors) + DST, EXP, PES (add embroidery)
  4. Set max file size: 10 MB (Basic), 25 MB (Pro), 100 MB (Unlimited)
  5. Enable auto-conversion (HEIC → JPG, PSD → PNG rejected)
  6. Enable DPI validation (photo uploads only)
  7. Attach personalizer to product
  8. Test upload from mobile + desktop

Accepted file formats — complete reference

Photo formats (consumer products)

FormatBest forNotes
JPG / JPEGUniversal photosLossy compression; smaller file size; safe default
PNGLogos with transparencyLossless; larger file; alpha channel for transparent backgrounds
HEICiPhone photos (default since iOS 11)Auto-convert to JPG server-side + preserve EXIF orientation
WebPModern web formatNot universally accepted by POD partners; convert to JPG server-side
GIFRarely useful for printReject; usually accidental upload

Vector formats (logo work, print shops)

FormatBest forNotes
SVGWeb-native vector logosBest for scalable print; small file size; opens in any editor
AIAdobe Illustrator nativeIndustry standard for professional design; accept on Pro+
EPSLegacy vector formatWidely supported by print shops; accept for corporate customers
PDFPrint-ready documentsBusiness cards, flyers, brochures; validate has bleed marks if you need them

Embroidery-specific

FormatMachine compatibilityNotes
DSTTajima (universal)Industry standard; accept as default
EXPBernina, MelcoCommon commercial embroidery
PESBrotherHome + commercial Brother machines
PXFPfaffLess common; accept if you have Pfaff customers
Reject these formats: PSD (editable, not print-ready — reject with message "Export to JPG or PNG"), DOCX / DOC (Word documents — reject), CDR (CorelDRAW — convert to AI or EPS), SKP (SketchUp — not for print).

File size limits

TierMax file sizeRationale
Free / Basic10 MBFits most JPG at 300 DPI up to 20×24 inches; mobile-friendly
Pro25 MBCovers PNG with transparency at high DPI
Unlimited100 MBVector AI files, RAW photos, embroidery masters

Above 100 MB: upload experience degrades on mobile networks (multi-minute uploads that fail on connection drops). Encourage customer to compress or offer alternative delivery (email attachment to your support).

DPI validation (for raster uploads)

Raster formats (JPG, PNG, HEIC) need DPI validation to prevent blurry prints. Vector formats (SVG, AI, EPS, PDF) don't — they scale infinitely.

DPI = pixels per inch at print size. Configure per product:

Cart display for uploaded files

App stores file URL as line-item property. Cart template renders as image thumbnail if URL is image, or as link if URL is non-image:

Dawn theme handles this automatically. Older themes need cart-item.liquid customization:

{% for property in item.properties %}
  {% unless property.first[0] == '_' %}
    {% if property.last contains 'https://' %}
      {% if property.last contains '.jpg' or property.last contains '.png' %}
        <img src="{{ property.last }}" width="60" alt="{{ property.first }}">
      {% else %}
        <a href="{{ property.last }}" target="_blank">{{ property.first }}</a>
      {% endif %}
    {% else %}
      {{ property.first }}: {{ property.last }}
    {% endif %}
  {% endunless %}
{% endfor %}

POD partner file handoff

Uploaded file URL passes to POD partner as line-item property on order. Partner:

  1. Reads order via Shopify Order API
  2. Extracts file URL from properties
  3. Downloads file to their print queue
  4. Prints at target DPI + format
  5. Ships to customer

Zero merchant intervention if configured correctly. Print It My Way + Printful/Printify/Gelato work this way natively.

Copyright + legal handling

Customer uploads potentially copyrighted artwork — you print it — you're legally the reproducer. Mitigations:

Print It My Way includes terms checkbox + screening (Pro tier) + manual review queue (Unlimited tier).

Common issues + fixes

IssueCauseFix
Upload fails on mobile silentlyFile exceeds mobile network stabilityCap max upload at 10 MB for mobile; show progress bar; auto-retry on connection drop
PSD uploaded — customer confusedFormat not rejected in UIReject at file picker with clear message "Please export to JPG, PNG, or PDF"
Vector logo rasterized incorrectlySVG not preserved through pipelinePersonalizer must pass SVG as-is to POD; some rasterize wrongly
DST embroidery file rejectedPersonalizer app doesn't accept embroidery formatsEnable in field settings; if not supported, switch to embroidery-focused app
Print file wrong color profileCMYK vs sRGB mismatchConvert on server; most POD partners want sRGB PNG
Upload URL expires before POD readsStorage retention too shortSet retention to at least 90 days post-fulfillment

Best app comparison

AppPhoto formatsVector (SVG/AI/EPS)Embroidery (DST)Max sizeEntry price
Print It My Way ProAll + HEICYesYes25 MB (100 MB Unlimited)$13.99/mo
ZakekeAll + HEICYesPartialVaries~$29.99/mo
CustomilyAllYesNoVariesFee variants
Bold Product OptionsAllPartialNo10 MB$14.99/mo
Fancy Product DesignerAll + HEICYesNoVariesMid-market

Frequently asked questions

How to add file upload to Shopify product?

Personalizer app required (Print It My Way, Zakeke). Shopify's native file input only works on page-style cart + no validation. App uploads to own cloud storage + attaches URL as line-item property.

What file formats to accept?

Photo products: JPG, PNG, HEIC. Logo work: add SVG, AI, EPS. Print jobs: add PDF. Embroidery: add DST, EXP, PES. Reject PSD, DOCX, CDR, SKP.

Max file size for Shopify uploads?

10 MB Basic, 25 MB Pro, 100 MB Unlimited. Above 100 MB, mobile uploads degrade.

HEIC iPhone photos — support?

Required for consumer photo products. Auto-convert to JPG + preserve EXIF orientation. Missing = 40-60% mobile abandon rate.

DPI validation on file upload?

Raster formats (JPG, PNG, HEIC) yes — warn 150 DPI, block 100 DPI at print size. Vector formats (SVG, AI, EPS) scale infinitely, no DPI check needed.

How to display uploaded file in cart?

App stores URL as line-item property. Dawn theme auto-displays; older themes need cart template edit to render as thumbnail if image, link if document.

How does POD partner get the file?

File URL passes as line-item property on order. Partner reads via Shopify Order API, downloads file, prints. Zero manual handoff.

Best app for embroidery file upload (DST)?

Print It My Way Pro supports DST, EXP, PES natively. Bold + Customily focus on photo formats; less embroidery support.

Handle copyrighted uploads legally?

Terms checkbox before upload + automated screening for known IP + DMCA safe harbor registration + manual review queue for high-value orders. Print It My Way includes all four.

Where are uploaded files stored?

Print It My Way: AWS S3, encrypted, US default (EU on Unlimited). 90-day retention post-fulfillment. GDPR-compliant deletion on request.

Related setup guides

File upload on Shopify — done right

Print It My Way Pro ($13.99/mo) accepts all major formats (JPG, PNG, HEIC, SVG, AI, EPS, PDF, DST, EXP, PES). POD partner sync included.

Install Print It My Way