WooCommerce print shop – complete guide to accepting print orders online

bank phrom Tzm3Oyu 6sk unsplash

Let’s imagine you’d like to know how to set up a print shop with WooCommerce. In this article, I’ll walk through how to start accepting orders for your print shop, including how to let your clients customise products.

WooCommerce print shop

Let’s just clarify exactly what we mean by a print shop. Often, this can refer to a physical or online store where you’d get various items printed, like documents, photos, business cards.

In this article, we’ll look at various products that a print shop might offer. We’ll step through how to let your customers upload their own images and documents to be printed, as well as how to let them customise other aspects of the product through custom fields.

Physical shop or online only?

It doesn’t matter if you have a physical shop and you’re looking to extend your services online, or if you only have an online presence, we’ll look at how you can quickly and easily set up your own web to print service using WooCommerce.

Creating your products

In our scenario, we’ll imagine that we’re a bricks and mortar print shop that also offers web to print services. So sometimes our clients will come in to the store with items to print; other times, they’ll send us items via our website.

The products that we’ll look at are:

  • Business cards
  • Letterheads

We’ll look at setting up each product in turn.

Additionally, we’ll cover some extra options to offer our customers – e.g. a surcharge for a same-day service.

You should be able to apply these examples to your own requirements.

WooCommerce print shop plugin

In this article, we’ll be using the WooCommerce Product Add-Ons Ultimate plugin, which will extend WooCommerce to give us the extra functionality we need for our print shop.

WooCommerce Product Add-Ons Ultimate featured image

WooCommerce Product Add-Ons Ultimate

Personalise products with extra fields and custom options

Find Out More

For the examples below, we’ll need the Pro version of the plugin. However, if you only have the Basic, you can modify the guidance to achieve similar results.

Example 1: How to create a business cards product in WooCommerce

For our first WooCommerce print shop example, let’s look at how we can accept orders to print business cards.

We’ll create a product for business cards and add some extra options so that the customer can upload their own artwork and specify other parameters as they wish. This is what the product will look like:

WooCommerce business cards product for print shop

You can view the working demo product here.

To create the business cards product:

  1. Go to Products > Add New and create your product
  2. On the ‘General’ tab of the “Product data’ section, set the price to 0. This is because the product price will be set by one of the options we’ll add
  3. Write some alternative text for the price in the ‘Price label’ field
WooCommerce price label

Now we’re going to add some extra product options using the Product Add-Ons Ultimate plugin. We’ll add the following options, but you can adapt these to your own requirements.

Adding extra options to our business cards product

Our WooCommerce print shop provides the following options to customers who want us to print their business cards:

  • Quantity
  • Size and format
  • Finish
  • Front and reverse side printing

Let’s walk through each option.

Adding a quantities field to our print product

To add a quantities field to our print product:

  • Click the ‘Product Add-Ons’ tab in the ‘Product data’ section
  • Click ‘Add Group’ then ‘Add Field’
  • Choose ‘Select’ as the field type and enter ‘Quantity’ as the label
  • Click ‘Add Option’ to add an option for each quantity that you wish to offer
  • Enter a price against each quantity option

Adding a size field for our print product

For the size field, we’ll include a nice graphic for each option to help the customer visualise what they’re ordering:

  • Click ‘Add Field’
  • Select ‘Image Swatch’ as the field type (note that you’ll need the Pro version for this field type)
  • Click ‘Add Option’ for each size option you’re offering
  • Upload an image to use as a visual guide for each option
  • Optionally enter a price if certain options have a surcharge
WooCommerce image size for business card size

Adding radio group options

In the demo product, you’ll see that a couple of the fields, ‘Finish’ and ‘Sides’, use radio groups. You set them up in the same way:

  • Click ‘Add Field’
  • Choose ‘Radio Group’ for the field type
  • Enter a label for the field
  • Click ‘Add Option’ to add each option
Radio group options for business card

Adding a file upload field for artwork

Finally, a key aspect of any WooCommerce print shop is the ability to upload files. In this case, users will want to upload artwork – perhaps a file for the front of the business card and a separate file for the reverse.

To add a file upload field:

  • Click ‘Add Field’
  • Choose ‘Upload’ as the field type
  • Enter a label for the field

In our case, we’re going to create two upload fields. But we’re only going to display the second field if the user has chosen to have their business cards printed on both sides.

We can do this using conditional product options:

  • Click ‘Add Condition’
  • Choose ‘Show this field if’
  • Create the condition to ensure the field is only displayed if the user selects ‘Both Sides’ from the ‘Sides’ field
WooCommerce conditional artwork upload for print shop

There’s a longer article on how to upload files to a WooCommerce product page here.

That’s it for the business cards product for our print shop. Check out the demo to see how the price is set according to the quantity selected.

Example 2: How to create a letterheads product in WooCommerce

Now let’s look at another classic product for any WooCommerce print shop: letterheads. Take a look at the demo product here.

WooCommerce letterheads product for print shop

This product will allow customers to:

  • Choose one of our own letterhead templates or upload their own
  • Select a quantity
  • Choose a standard or next day turnaround option

Create your product in the same way as the business cards product above, then add the extra options.

Adding extra options for our letterheads product

As before, these extra options are only examples of what you might want to do for real in your WooCommerce print shop so feel free to adapt these as required.

Allowing the customer to choose a template

This is actually a combination of three fields:

  • A radio group for the user to choose between template or own artwork
  • An image swatch field if they choose template
  • An upload field if they want to use their own artwork

Create the radio group using the settings in this screenshot:

Radio group to choose design for WooCommerce print shop

You can see that there are two options:

  • Choose a template
  • Upload your own design

Now add the image swatch field which features images of our letterhead templates so that the user can visualise how theirs will look.

Choose a template field for WooCommerce print shop

Notice that we’ve added a condition to this field so that it will only display if the user selects ‘Choose a template’ in the ‘Design’ field.

Finally, add an upload field for the customer’s own artwork.

Upload your own artwork

Again, note that we’ve got a condition so that the field will only show when the user selects the option to upload their own design.

Adding a quantities field

Because we want to restrict the user to certain quantities, e.g. 500 prints, 1000 prints, etc, we’ll create a select field with quantities as options. We’ll also define the price of the product here.

Create a select field as follows:

WooCommerce select field quantities

You can see that the first column, under ‘Option’, is where we define the quantity. Then, in the second column, under ‘Price’, we define the price for that option.

Adding a surcharge for the express service

Now, as an optional extra, we’re going to give the customer a chance to select a ‘Next day’ service. Of course, we’ll add an extra charge on for this.

WooCommerce next day service surcharge

Don’t forget to check out the demo product.

Examples of other businesses offering web to shop print services

Here is a incomplete list of businesses that might fall under the print shop definition. Each of them might have some kind of web to shop print service.

  • T shirt printing
  • Signs and banners
  • Photo albums, canvases and framed prints
  • Labels and stickers
  • Badges and button printing
  • Awards and trophies
  • School uniforms, work outfits, sports strips

The techniques we looked at in this article will apply to most, if not all, of the above.

Other useful tutorials

You might also find the following tutorials useful:

File approval or proofing process

Do you need a process for customers to approve amendments or revisions to files? For instance, your customers might want the option to approve different versions of their business cards before they go to print.

If so, you can use the WooCommerce Review and Approve plugin. This allows you to create a workflow between you and your customer, giving them the ability to review and approve files.

WooCommerce Review and Approve featured image

WooCommerce Review and Approve

Create a workflow that allows your customers to sign off on designs

Find Out More

There’s a complete tutorial on file approvals in WooCommerce here.

Video tutorial on uploading files to WooCommerce product pages

Bonus content – using the Thank You page effectively

Having set up your print shop, you can start to think about taking orders and how to start marketing your products more effectively.

The WooCommerce Thank You Pages plugin will help you to provide more information to your customers at the exact moment they place their order. This will cut down on the time you need to spend answering customer queries: for instance, including a map of your store location on the order confirmation page will let the customer know exactly where they need to come to collect their order.

Check out the Thank You Pages plugin here:

WooCommerce Thank You Pages featured image

WooCommerce Thank You Pages

Start marketing to users the instant they check out

Find Out More

WooCommerce web shop – a recap

In this article we looked at how to accept orders online from your customers for your printing services. We looked at a couple of real-life examples, business cards and letterheads, using methods that could be adapted to any online printing service.

Don’t forget to check out the WooCommerce Product Add-Ons Ultimate plugin – it’s all you need to start your own print shop.

WooCommerce Product Add-Ons Ultimate featured image

WooCommerce Product Add-Ons Ultimate

Personalise products with extra fields and custom options

Find Out More


  1. User image

    When user uploads image, I want him to be able to crop and adjust image dimensions acording to the print size that he wants. EX:
    order canvas printe for X paper size -> Upload image + adjust, crop and resize image acording to the paper size (X) -> send order to us via mail with the new image after the user resized it.
    X = paper size, can be A4 or any other size (depend what prudoct and prudoct option)

      • User image

        Hey Gareth, great walkthrough and plugin! Curious if you’ve made progress on your proofing option? For my needs I think it could be fairly straight-forward – allow a team member to upload a PDF proof that is associated with an order, notify the customer via the email attached to the order and include a link to a landing page on the website that gives the customer the option to Approve As Is, or Request Change for each page in the proof. Requesting a change would require the customer to enter feedback about what changes are needed. Once approved or change request is submitted an email is sent to the shop owner. It would be great if the approval stage was updated on the order in Woocommerce (for easy reporting). Some possible hurdles could be around handling change requests and multiple proofs. I’d be interested in collaborating with you on this if it’s coming up in your product roadmap.

  2. User image

    Hi Gareth
    I have been trying to get a web printshop running since 2012 using Wordpress then Shopblocks .. inteligent.co.uk and printworkuk.com respectively. Shopblocks is ok but the layout editor is hard to use. I’m reasonably familiar with WP environment and especially visual editors like WP Bakery in Divi theme
    Your WooCommerce plugin looks the biz. Would it be compatiable with Elementor Builder if I decided to rebuild my WP site from scratch?

    • User image

      Hi Mark

      Yes, the plugin is compatible with Elementor. Please note that it inserts the additional fields automatically so they’re not added through an Elementor block.



  3. User image

    Is it possible to do a calculation between regular fields, and global field
    Ie: my global field is different paper options (using the image swatch setting)
    My regular field is a square meter calculation.
    I would like these two fields to be multiplied by each other to give the product pricing, but at the moment I only get it to update the options total.

    My thinking is I have variable sizes, and a few material options. But I do not want to go into each product and update material pricing as this would be time consuming, so I thought if I could create a global field, I can set it up, and change it, in one place only
    Hope that make sense

  4. User image

    Hello, we are a printing company. We do not print labels with specified dimensions but in freely selectable sizes. So we would have to query the width and height of the label to be printed on the product side. The sales price is then calculated from the label area x number of items x price per square millimeter. In addition, a fixed amount per order must be added to the final amount.
    In addition to the final amount, the unit price per label should be displayed (not per square millimeter). Can you do this with your plugin?

    • User image

      Hi Michael

      Yes, it sounds like you can do what you want. One question: I’m not sure what you mean about freely selectable sizes. Does that mean the user can enter values via a number field or do you have set sizes that can be selected from a dropdown list. Either can still work with the calculations.



      • User image

        Hi Gareth,

        a drop-down list with stored prices would be easy. No, the customer can enter values via a number field – a dimension (width and height) individually. Therefore, the plugin has to calculate the price from the individually label size, the individually desired number of pieces and the stored price per square millimeter.
        The total price and the unit price per label are then displayed.
        Is that possible?

    • User image

      Hi Simone

      Yes, it looks like that website uses this plugin. You can style the fields as much as you like, either using the Customizer or your own CSS.



  5. User image

    I am currently setting up a wallpaper site, and I have an “image swatch” to choose the texture vinyl required. Each different textured vinyl has a slightly different square meter pricing. The problem I am having is that on selecting the texture, it puts this amount in the final options total by the final billing price. I do not want this to happen. What I want is to run a calculation which multiplies the vinyl price by the square meters required only. And not for that option amount to also appear by the subtotals. Could you advise please.

    • User image

      Hi Luke

      You’ll either need to subtract the image swatch field option price in the calculation. Or you can set the calculation field ‘Action’ to ‘Set Product Price’ which will exclude all other field prices in the product price.


  6. User image

    Hi, nice tutorial.
    I have an issue. I want to build a product page that takes orders for photo printing. I just bought the basic version but I can’t see how get a total from choosing the photo dimension which is a dropdown multiplied by the number of files.
    Do you know how could I do that? Please help me

  7. User image


    I would like to use this plugin to create an online photo print shop and then collect your product with click and collect. Do you think this is the best tool to select many different pictures and choose the print options (such as gloss or mat, margin..) ?

    Thank you for your reply,

    Best Regards,

    • User image

      Hi Eléonore

      Yes, absolutely. You can use this plugin to allow your users to upload multiple photos. You can also create other options, like gloss / matt, etc.


  8. User image

    Is there a way to set where the file uploads go. for example to dropbox

    i am trying to rename files based on order number, but would like the actual files to to stored in dropbox, this would allow auto sync with desktop machine running the rip

  9. User image

    Hello, could we use that plugin as online photo print shop?
    The user will have the following abilities:
    1. Choose printing dimensions.
    2. Mass upload images.
    3. Fit images on canvas.
    4. Checkout using woo commerce payment ways.

    Is that possible? Do you have any example about that?

  10. User image

    when you enable only registered user can upload files.
    Can you add a link to register page ?,
    Bruno from imprimitusfotos.ar

  11. User image


    Is it possible to create a multiplicator before the price calculation to make a margin ?


    business card
    initial price : 0
    Colour : 0,057€
    finitions : 15 (+ 0,25€ / card)
    paper : 0,032€

    so for 1 card = 15,33€
    100 cards = 40,33€

    Then add a multiplicator of 275%

    so final price : 110€

    is it possible ?

  12. User image

    Hi Gareth,

    All makes sense however I would like to know if you can reference an attribute for setting an add on.

    Business card attribute ” cards per version” “pa_cards_per_version” value for variations ” 250, 500, 750, 1000″. Woocommerce has the price in the variation i.e 250 cards = £20, 500 cards = £25 etc. I want to add a value for add on “double sided print” The trigger for the add on value is the number of cards 250, 500 etc. That way this can be used as a block for any business card because it is taking the number of cards and not price £20. If I use the price, i need create a different block for every type of business card I print.

  13. User image

    Hi Gareth,

    I am looking for an album paper option selection with quantity and price. i.e, I select an album with 30 pages where I can select the paper type as matte with quantity 20 and glossy with quantity 10, and also total quantity should be equal to album size. I should be able to define multiple albums like that. Is it possible to configure by using this plugin?


    • User image

      Hi Avinash

      It sounds like you can do what you want with the plugin. The user can select paper type and quantity etc. I’m not clear on what you mean about total quantity equalling album size?


  14. User image

    Hi – Currently using ArtStoreFronts for Printshops – I need to be able to have customers upload a file – crop it and choose from various sizes and media can yours do that?

  15. User image

    I have followed your Business Card tutorial above.
    When adding sides, on both sides selection I added a 50% price. However, when selected this does not add 50% because it is trying to look for the Product Price (which is set to 0 as the price is structured from the quantity field which is in options, not product price).

    How do I get around this?

Leave a Reply

Your email address will not be published. All fields are required.