Let customers upload a logo or photo to a WooCommerce product
WooCommerce has no upload field on product pages. Three ways to accept customers' logos and photos for printing, what makes an upload printable, and how to handle storage, privacy and image rights.
Published , updated , by the PrintBlob team.
WooCommerce has no file upload field on product pages, so customers’ logos and photos reach you in one of three ways: by email after the order, through an upload field that a product add-on plugin adds, or through a product designer, where the customer places the image on the product before ordering.
A shop that prints on demand needs the customer’s artwork: a company logo for workwear, a photo for a gift mug, a drawing for a t-shirt. This guide compares the three common ways, then covers what makes an uploaded image printable and what you owe customers for the files they give you.
Three ways to accept customer images
1. Ask for the file after the order
The customer orders, then emails the file or replies to the confirmation. It needs nothing installed, and it’s how many shops start.
It costs orders. Customers who can’t attach their logo at checkout often don’t come back to do it. You spend time matching emails to orders, and you find out the image is too small only after they’ve paid. For a few orders a month it works; past that it doesn’t scale.
2. A file upload field on the product
Product add-on plugins add fields to the product page, and most offer a file upload field. WooCommerce’s own Product Add-Ons extension, a paid extension, has one, as do many other plugins. The customer picks a file, it’s attached to the order item, and you download it from the order.
It’s a big step up from email: the file arrives with the order. But the customer never sees their image on the product, so they can’t judge its size or position. You still have to place it yourself and decide how big it prints, and you’ll still meet logos that are 200 pixels wide.
3. A product designer
A product designer plugin lets the customer upload the image and place it on a photo of the product: drag it, resize it, rotate it, add text next to it. They see what they’ll get before ordering, and you receive the image already positioned at its print size.
With PrintBlob, which is free:
- Customers upload PNG, JPEG or WebP images, up to 20 MB by default. You can change the limit under WooCommerce › Settings › PrintBlob.
- While they resize an image, the designer works out how sharp it will print. Below 150 DPI at the chosen size it says the image may print blurry, before they order.
- Every order keeps the design and its preview, and with PrintBlob Pro arrives with print files per printed side: a transparent PNG at 300 DPI, a vector PDF and an SVG, each exactly the print area’s size, with the image where the customer put it and embedded in the PDF and SVG as they uploaded it. See print-ready t-shirt files for what that means for your printer.
The trade-off is set-up time: the designer needs a photo of each product and its print area in centimetres. The t-shirt photo guide covers that, and PrintBlob comes with a t-shirt ready to use.
What makes an upload printable
Whatever way files reach you, the same rules decide whether they print well.
Pixels, not file size, decide sharpness. A 4 MB photo can be too small and a 300 KB logo can be fine. What matters is the image’s pixel width against the width it prints at. At 300 DPI, a 28 cm wide print needs about 3,300 pixels; at 150 DPI, about 1,650. Below that, edges soften, and phone screenshots and logos copied from websites are usually far below it. To check an image before it is ordered, the image print size calculator shows the largest size it prints sharp.
Logos want transparency. A logo saved as JPEG has a white box around it, which prints as a white rectangle on a coloured shirt. Ask for PNG with a transparent background, the format most designers and logo services hand out. A designer plugin shows the white box on the preview, so customers notice it themselves.
Photos are fine as JPEG. For a photo printed edge to edge, a high-quality JPEG straight from the camera or phone is what you want. Avoid images re-saved through messaging apps, which shrink them.
Vector files need a decision. SVG, PDF and EPS logos scale to any size, which printers love. But SVG files can carry scripts, so letting the public upload them to a WordPress site is a security risk, and WordPress blocks SVG uploads by default. PrintBlob accepts raster images only, as do most designers. If you print from vectors, ask for them by email for the orders that need them.
Storage, privacy and rights
Customer artwork is personal data the moment it’s a family photo, and business data when it’s a company logo. Treat it accordingly.
- Know where files live. A self-hosted plugin keeps uploads on your own server, while a hosted customizer keeps them on someone else’s. PrintBlob stores previews in the media library, and customers’ images and print files in a folder that isn’t public; it sends customers’ designs and files to no outside service.
- Delete what you don’t need. Most designs are never ordered. PrintBlob deletes saved designs that never became an order after seven days by default, and deletes an order’s designs when the order is deleted.
- Answer data requests. WordPress’s Tools › Export Personal Data and Erase Personal Data cover PrintBlob’s designs, so a customer’s request includes their uploads. Ordered designs follow WooCommerce’s own setting for order data.
- Make customers confirm their rights. You print what customers send, but you shouldn’t print other people’s trademarks or photos without permission. A line in your terms, and a sentence near the designer such as “Upload only images you own or have permission to use”, sets the expectation and gives you grounds to refuse an order. What to refuse, and how to check orders before printing, is in Printing customers’ designs: copyright, trademarks and what a print shop should refuse.
Which one to choose
- A few custom orders a month: email works. Add a line to the order confirmation asking for the file.
- Products where placement doesn’t matter much, like one logo in a fixed spot on a mug: an upload field is enough.
- Products where customers choose size and position, such as t-shirts, hoodies and tote bags: a designer saves you the most back-and-forth. Customers see the result, and you get files you can print without preparing them.
How a print shop takes these orders with PrintBlob is in a print shop taking custom orders online, and how a live preview replaces most proof emails in artwork approval for custom prints. Which kind of plugin fits which personalised product is in product add-ons or a product designer.
Questions shop owners ask
Can customers upload an image to a WooCommerce product?
Not with WooCommerce alone: it has no file upload field on product pages. A product add-on plugin adds an upload field, or a product designer plugin lets the customer upload the image and place it on a photo of the product.
How many pixels does an uploaded image need to print well?
Enough for the width it prints at: a 28 cm wide print needs about 3307 pixels across at 300 DPI, and about 1654 at 150 DPI. The file size says nothing about it: a 4 MB photo can be too small and a 300 KB logo can be fine.
Should customers upload a logo as a PNG or a JPEG?
A PNG with a transparent background. A logo saved as a JPEG has a white box around it, which prints as a white rectangle on a coloured shirt. A photo printed edge to edge is fine as a high-quality JPEG straight from the camera or phone.
Should customers be able to upload SVG files?
SVG files can carry scripts, so letting the public upload them to a WordPress site is a security risk, and WordPress blocks SVG uploads by default. PrintBlob accepts PNG, JPEG and WebP images only; if you print from vectors, ask for them by email for the orders that need them.
Where are customers’ uploaded images stored?
A self-hosted plugin keeps them on your own server, a hosted customizer on someone else’s. PrintBlob stores previews in the media library, and customers’ images and print files in a folder that is not public, and sends customers’ designs and files to no outside service.
Try PrintBlob’s designer with your own image: upload a logo, resize it until the sharpness note changes, and download the print file it makes.
Get PrintBlob Pro
Pro adds print-ready files, back printing, a 3D view and a production print queue to the free designer. Paid with Stripe in US dollars, no tax added; one domain per licence.
$69 a year
Full refund within 14 days
Limited-time offer until 31 December 2026
$99 once
Full refund within 14 days