How Do I Let Customers Add Photos to a Product on Shopify?
-
Table of contents

Shopify has no native field that lets customers upload their own photo to a product. So how to add upload photo option in Shopify comes down to two routes: install an app, or customize your theme code. Theme code customization means adding a file upload field, by hand or with an AI assistant like Shopify Sidekick, Claude, or Codex. A product customizer like Teeinblue is one app option.
An app from the Shopify App Store is faster and needs no code. Theme code customization costs nothing in app fees, but every extra is more Liquid code to maintain. This guide covers photos customers send with their order. Those differ from the product images you, the seller, upload to show your product. Let's look at each route.
Key Takeaways
Here is the short version of each way to collect customer photos on Shopify:
- Customize your theme code: code a file upload field yourself, or let Shopify Sidekick, Claude, or Codex write it
- Install an app: add a photo upload option alongside many other options, and with a product customizer app, show the photo on the product before checkout and get a print-ready file after it
- Test every setup: some carts and quick add buttons drop the photo, so place real test orders
Should You Use an App or Edit Theme Code to Let Customers Upload Photos on Shopify?
Pick theme code customization when orders are few and the photo is only a reference. It also needs someone who can fix the code after Shopify theme updates. Pick an app when the photo is printed on the product or customers should see a live preview. An app also suits stores that sell more options than a photo, sell at volume, or have nobody to own custom code.
The table below compares both routes on what matters once orders start coming in.
| Shopify app | Theme code customization (by hand or with AI) | |
|---|---|---|
| Coding needed | No | Yes, or an AI assistant writes it, and you review it |
| Setup | Install and configure in the app | A few lines for a basic field, much more with extras |
| Customer sees the photo on the product | Yes, with a product customizer app | Possible, but you build it in JavaScript |
| Crop, filters, and photo effects | Built in, depending on the app | Possible, more code to write and test |
| File type and size limits | Set in the app | Basic file type filter, unless you add more |
| Where the photo lands | Link on the Shopify order, plus the app's own order page | Link on the Shopify order |
| Print-ready file | Generated by customizer apps | Possible, but you build and size it yourself |
| Theme changes | Turn the app block or embed on in the new theme | Custom code may need redoing |
| Cost | Monthly app fee | No app fee, paid in developer time |
A live preview means the product image updates as customers upload a photo. Customers then see the finished mug or t-shirt before paying. Many stores also sell a name, a date, or a clipart on the same product. An app handles them all in one option set.
Theme Code Customization: Add a Photo Upload Field to Shopify Without an App
You add a file upload field inside your product form, which is the part of a Shopify product page that holds Add to cart. A customer picks a photo and adds the product to the cart. Shopify then uploads the file and attaches a link to it on that cart item, which Shopify calls a line item property. After checkout, you open the order in your Shopify admin and click the link to download the photo.
Shopify's theme documentation says these fields must be named properties[property-name] and sit inside the product form. You can write the code yourself, generate it with Shopify Sidekick, or ask an AI assistant like Claude Code or Codex to write it.
Write the Code Yourself in the Theme Editor
Writing the field by hand takes a few lines of Liquid, Shopify's theme language. It works in themes like Dawn or Horizon. It suits stores where someone already edits theme code. Duplicate your theme first, because a later theme update can remove custom code changes.
- In your Shopify admin, go to Online Store > Themes, click ... next to your theme, and choose Duplicate.
- On the theme you will edit, click ... and choose Edit code.
- Search for {% form 'product' to find the file that holds your product form. In Dawn 15, it is buy-buttons.liquid in Snippets, not main-product.liquid.
- Inside that form, above the Add to cart button, paste the code below. The text inside the brackets, Your photo, becomes the label your team sees on the order.
<div class="customer-photo-field">
<label for="customer-photo">Upload your photo</label>
<input type="file" id="customer-photo" name="properties[Your photo]" accept="image/*" required>
</div>
<style>
.customer-photo-field { text-align: center; margin-bottom: 1.5rem; }
.customer-photo-field label { display: block; margin-bottom: .8rem; }
#customer-photo { display: block; width: 100%; text-align-last: center; }
#customer-photo::file-selector-button { display: block; margin: 0 auto .6rem; }
</style>
- Click Save, then place a test order.
The style block centers the Choose File button with the file name below it, so the field matches a centered Dawn product page. Leave it out if you prefer your theme's default look.

We added this field to Dawn 15.5 on our own Shopify test store in October 2026. It showed above Add to cart right away. A test photo reached the cart as a Your photo property. That property links to the file on the Shopify CDN, the server that stores Shopify files.

One catch showed up in the same Dawn test. The Dawn product form switches off the browser's built-in form checks, so Chrome and other browsers ignore required. We added the product to the cart with no photo at all, and blocking that takes extra JavaScript or an app.
Generate the Field with Shopify Sidekick
Shopify Sidekick is the AI assistant in your Shopify admin. It can write the upload field as a theme block from a plain language description. Shopify says block generation works on every Theme Store theme since December 10, 2025. In our October 2026 test, Generate appeared in the Horizon product section but not in Dawn 15.5.
- In your Shopify admin, go to Online Store and click Edit theme.
- Switch to a Products template and open the product information section.
- Click Add block, then Generate.
- Describe the block in at least five words, for example: "A required photo upload field above the Add to cart button that saves the photo to the order".
- Check the block on desktop and mobile, type follow up instructions if needed, then click Save.

With that exact prompt, Sidekick built a "Required photo upload" block in under a minute on Horizon. The block came with settings for the field label, the order property name, the help text, and the width. You can change the wording without touching code. If Generate does not show in your theme, use the hand-written code above.

Ask AI Assistants to Write It with Shopify CLI
AI assistants like Claude Code and Codex can edit your theme files on your computer through Shopify CLI, Shopify's command line tool. This route suits a photo field with more than the basics, such as a preview or size checks. The Shopify AI Toolkit gives both assistants Shopify's docs and checks Liquid. Here is the guide:
- Install the Shopify AI Toolkit plugin in Claude Code or Codex.
- Run shopify theme pull to download your theme.
- Ask the assistant to add a required photo upload field to the product form as a line item property.
- Run shopify theme dev to preview it on a hidden development theme, then run shopify theme check.
- Run shopify theme push to an unpublished theme, place a test order, and publish once it works.
We used the same pull and push commands to build our Dawn test theme without touching the live store. Review every line Claude or Codex writes before it goes live.
Whichever way you add the code, test two traps on your Shopify store before you trust it. Some themes add products to the cart without reloading the page, and a few of them drop the photo on the way. Dawn 15.5 kept the photo in our test. Quick add buttons on Shopify collection pages skip the product form, so the order arrives without a photo.
Claude, Codex, and Sidekick make the extras faster to write, including a live preview, cropping, and even a print file. The catch is upkeep, because each feature adds code that can break on mobile, with large photos, or after a theme update. You also handle photo storage and print sizing yourself, so an app carries less risk if nobody will look after that code.
💡 You may also like: Let Customers Add Photos on Custom T-Shirts With an App or Theme Code
Which Shopify Apps Let Customers Upload Photos, and How Do You Choose?
Two kinds of apps add a photo upload option on Shopify: product options apps and product customizer apps. Both install from the Shopify App Store and attach the photo to the order. They differ in what customers see before checkout, what your team gets after it, and how much setup the product needs.
Product Options Apps with a Photo Upload Field
A product options app on Shopify adds extra fields to a product, such as dropdowns, text boxes, swatches, and a photo upload field. Many of these apps also go beyond the variant limit Shopify sets on each product, so you can sell more combinations. You set the options up in a form builder, with no design work, and the photo link lands on the Shopify order.
Some options apps, and apps built only for file uploads, check file type, file size, and minimum image size. Some also let customers crop the photo they picked. The common limit is the result: customers rarely see the photo on the product, and the app does not create a print file. Your team places each photo into the design by hand.
This kind of app fits a reference photo, such as a pet portrait drawn by hand or a logo that needs approval. Options apps with a photo upload field include Qikify Custom Product Options, Easify Custom Product Options, and Infinite Options. Uploadery focuses on file uploads alone.
Product Customizer Apps with Live Preview
A product customizer app places the customer's photo on the product mockup on Shopify. Customers see the finished mug, canvas, or ornament before they pay. Setup takes longer than an options app, because you build a design and mark which parts customers can change. In return, the photo, text, and clipart all update the same preview.
Customizer apps differ in how far they go after checkout. Some only save the customer's design image as a JPG. Others also create a PNG or PDF print file for each order, or send orders to a print-on-demand provider like Printful or Printify. Check those two points, plus the photo tools you need, such as cropping, moving, or AI photo effects, before you install one. A side by side list of the best Shopify product customizers helps you compare them.
This kind of app fits stores that print the photo on the product or whose customers want to see it first. It also fits products that mix several personalization options. Product customizer apps with photo upload and live preview include Teeinblue, Zepto Product Personalizer, Qstomizer, and PixCustom.
Use the table below to match your need to an app type.
| Your need | App type |
|---|---|
| The photo is a reference, and the product also needs size, color, or text fields | Product options app |
| The photo must be sharp enough for your team to edit by hand | Product options app with file checks |
| The photo is printed on the product, and customers should see it first | Product customizer app |
| You want print files made for you after each order | Product customizer app that creates print files |
| You also sell other personalization, like names, maps, or clipart | Product customizer app |
Let Customers Upload Photos with Teeinblue in 10 Minutes
Teeinblue is an end-to-end ecommerce product personalizer and customizer for merchants who sell custom products, on Shopify, Etsy, WooCommerce, and other platforms. It covers design, personalization options, live preview, print-ready files, and order fulfillment through print-on-demand suppliers. Merchants can publish a first personalized product in about 10 minutes.
On your Shopify store, customers upload a photo and see it on the product in real time. They can crop it into a custom shape, choose which part of the photo shows, and move or resize it on the design. AI styles such as cartoon, watercolor, or portrait sketch can also apply automatically.
To get started, install Teeinblue from the Shopify App Store and follow the main flow below.
- Create an artwork: open Artworks and click New artwork, or import a PSD file
- Add a photo upload option: click + Layer, add a photo upload layer, and set its title and instructions

- Connect it to a product: pick an existing Shopify product or one imported from a print-on-demand supplier
- Launch and test: publish the product and place a test order

After each order, Teeinblue generates a high resolution print-ready file in PNG, JPG, PDF, SVG, AI, or EPS. In our test cart, each Teeinblue item already linked to its preview image and print file before checkout. With a supplier connected by API, such as Printful, Printify, merchOne, or Gelato, the order goes straight to fulfillment. Our guide on how to dropship personalized products walks through that flow from first design to delivery.
You can also skip most of the clicking. Connect Claude Code, Codex, or Claude Desktop to your Teeinblue account through MCP. Then ask it in plain words to create the artwork, attach it to your products, and publish them.
Watch how we set up a photo upload option for canvas prints on Shopify:
FAQs: Letting Customers Upload Photos on Shopify
1 - Can Shopify let customers upload photos without an app?
Yes. Add a file upload field named properties[Your photo] inside your Shopify product form. Each uploaded photo then shows as a link on the order. You can write the code yourself, generate it with Shopify Sidekick, or ask an AI assistant like Claude Code or Codex to write it. The basic version has no preview, and you maintain the code.
2 - Can customers see their photo on the product before they buy?
Yes, with a product customizer app like Teeinblue, which places the photo on the product mockup as customers upload it. With theme code customization on Shopify, you can build a preview in JavaScript, then test and maintain it. Product options apps usually show only the file name or the photo alone.
3 - What photo rules should I set before customers upload?
Set a clear label and instructions, make the field required, and accept image files like JPG and PNG. Add a maximum file size and a minimum image size to catch blurry photos before checkout. If the photo is printed, let customers crop it to the print shape. Say in your privacy policy how long you keep customer photos.
4 - Where do customer photos show up after an order?
On Shopify, the photo appears as a link on the order in your admin, under the product the customer bought. The packing slip and the order confirmation email do not show it unless you edit those templates or your app adds it. With Teeinblue, the order details also show the customer's choices and the print-ready file.
5 - Why is the upload button missing, or why didn't the photo come through?
If an app's upload button is missing, turn on the app embed under Online Store > Themes > Customize > App embeds on Shopify. It is often off in a theme you just switched to. If the photo is missing from the order, check how products reach the cart. A cart that adds products without reloading the page, or a quick add button, may skip the product form.
6 - Can customers upload more than one photo to one product?
Yes. With theme code customization, you add one file upload field per photo. Teeinblue's Multiple Uploads lets customers add up to 3 photos. An AI effect then combines them into one image, such as several pets in one portrait. To place photos in separate spots, add one photo upload layer per spot.
Knowing how to add upload photo option in Shopify comes down to who maintains the setup. Theme code customization, by hand or with Sidekick, Claude, or Codex, gives you full control and all the upkeep. If the photos end up printed on your products, Teeinblue shows them before checkout. It then turns each order into a print-ready file. Have a question about your setup? Join the Teeinblue Global Community for Print on Demand Personalization and ask other sellers.
More About Product Personalization on Shopify
Compare 9 Best Shopify Product Customizers Side by Side
Choose a Shopify Product Customizer With Photo Upload for Your Store
Create Customizable Products in Shopify in 2 Ways That Convert
Add a Custom Text Field to Your Shopify Product Page Step by Step
Sell Customized Products on Shopify With These Best Practices
Newsletters
Subscribe to get exclusive POD tips, trends, and insights!