NOTE: This method uses Google Cloud Print, which will no longer function after December 31, 2020. I’m actively looking for a new method and will update this page when I find it.
Original article follows:
A very common request I see from WooCommerce store owners (particularly those in food delivery or those who have a warehouse that may not check email frequently) is a way to print out new orders as they come in. In this post, using the power of WooCommerce, Zapier, and Google Cloud Print, I’ll show you a quick way to print WooCommerce orders automatically… For free.
Table of Contents
You’ll need a few things to pull this off:
- A WooCommerce site that correctly sends out emails (the next post I publish will cover this issue, so stay tuned).
- A free Zapier account. Of note, the free Zapier account will allow 100 actions per month, so if this is your only use, it allows 100 emails/orders per month. If you need more, then you can upgrade to a different tier.
- A free Google account, giving you access to Gmail (which we’ll be using for this process) and access to the (also free, thanks Google!) Google Cloud Print feature. If you already have your site’s emails going to a Gmail account or an email managed by Google, then you’re all set.
- A printer. Most any printer will do, though you’ll need one either built to accept Google Cloud Print (many do) or at least a printer that can connect to Wifi (which is what I used, following the guide here). We’ll get to setup on the printer in a minute.
- Google Chrome on a full computer – macOS, Windows, or Linux. This won’t work if you’re on mobile or a Chromebook – sorry, folks, and yes, it needs to be Chrome. You only have to use it for this setup and then you can go back to your choice, but it’s my favorite browser anyway.
All said and done, the process will practically take longer to read than to configure, so let’s jump in.
Setting up the tools to Print WooCommerce Orders
Now that we have all of our required components, it’s time to set it all up! It can be a bit tricky, so we’ll go step-by-step through each process.
Configuring your WooCommerce Email
Set up your WooCommerce site so it can accept orders and you receive emails, yadda yadda. Then, go to WooCommerce > Settings > Emails. Find the New Order email that is sent to the site administrator and click on it to open its settings:
When you open that settings window, you’ll see something like this:
There are two things to note here:
First, if you’re already using a Gmail account as your admin account (so the Gmail account appears in the Recipient field), then you don’t need to add another email. If not, then add the newly created Gmail account for this purpose, separated by a comma
Second, grab whatever text is in the Email heading. Change this to whatever you’d like (it’s used in the title of the email sent only to administrators). For this guide, we’ll leave it unchanged, but it’s important to make a note of that text.
Save any changes you made. For now, we’re done with our WooCommerce site.
Setting Up Google Cloud Print
Google Cloud Print is a free little service I hadn’t actually utilized until I tried to solve this problem. Basically, it allows you to print anything you find from whatever device, even if you’re not at home. Really cool, and a great way to scare your parents or roommates if you type messages like “HUMANS MUST BE ERADICATED”, but that’s getting sidetracked.
To set up Google Cloud Print, sign in to the Gmail/Google Account you want to use in the Chrome browser (it won’t work with any other browser, and as mentioned, it needs to be an actual computer. No tablets or chromebooks.) This can be your main Gmail where you receive order emails or a dedicated Gmail – it doesn’t really matter. After you’re signed in, open Cloud Print from this URL: https://www.google.com/cloudprint/.
In the sidebar, you’ll see a few options. Depending on if you have a Cloud-Ready Printer (you can search by model number here) or just a printer with Wifi determines your next step, but they’re both pretty painless. In the demo, I’ll use my Brother MFC-J450DW (a printer I don’t particularly recommend, for the record), which appears to be Cloud Ready but can be set up normally anyway.
Now, the fun part. In a new Chrome window, enter this in the address bar:
chrome://devices and then press Enter.
A window will come up, and you’ll be able to see any printer or device that your computer can currently use. Select that device, and connect to it. You will be taken to a confirmation page with something like this:
You can go back to the main Cloud Print page – keep it open for the time being.
Setting up Zapier
Both services use if/then statements to automate something. An example could be “If my phone senses I’ve left the house (via GPS), then turn off Wifi” or “If I say “Alexa, trigger find my phone” to my Amazon Echo, then it will call your phone through a VoIP line so you can follow the ringtone”. There are tons of neat automation tricks, of which we’re going to use to our advantage.
Sign up for Zapier and confirm/connect your account. A free one will do the job just as well as a paid one – Zapier will run every 15 minutes on a free plan and every 5 minutes on a paid plan, and you get more uses on a paid plan, but for now keep it simple. Zapier terminology can be a bit confusing, but there are zaps (the workflow you set up) and tasks (the number of times the workflow can run).
Once you’re back at the Zapier home page, you’ll see “Make a Zap!” in orange at the very top. Click it, and buckle in.
Building your Zap, Part 1: Creating the Trigger
We need to establish the initial “if” statement. In this case, we’re using Gmail because it has a robust trigger system, so after naming your Zap (in the top left corner – something simple like “Print WooCommerce Orders”), search for the Gmail app and select it in the main search bar. You’ll now see a page like the one below:
In our case, we want to select New Email Matching Search, then click Save + Continue.
Zapier will now need to connect and authenticate with your Gmail. Click “Connect an Account” and choose the Google Account that you’re using for your mail/Cloud Print and authenticate/log in. Save + Continue.
We will now see an area titled Set up Gmail Email Matching Search. Here is where we enter the search criteria – we want to search by the Subject line and print any email that has “New customer order”, the text we copied from WooCommerce earlier. You’ll enter that verbatim, so your text will be
subject:New customer order. Keep Saving + Continuing.
Zapier will now want to test the connection. You’ll need to have a recent email with that text in the subject line in your inbox. I do not believe the email’s open/read status impacts this. Click Fetch & Continue – you’ll hopefully see a happy message:
After connecting your account, click Continue.
Building your Zap, Part 2: Creating the Action
Now that we’ve completed the “if” statement (“If I receive an email in my Gmail inbox with a title that has ‘New customer order’ in it…), we move on to the “then” – what to do now.
You’ll see a familiar search bar with the Choose an Action App heading. There, search for Google Cloud Print and click it. You only have one main option visible, Submit Print Job, so select that and click Save + Continue.
Again, you’ll need to verify your connection to Google Cloud Print. This is the same process as you did when you connected your Google account – it may even carry over, but if not then it’s the same process. Save + Continue.
Now, we’re building what we want to display on the page that prints. Click the button in the right side of the text area to show a huge variety of content options. I suggest choosing the “Body HTML” option, with any other fields you might need. This part is open for experimentation.
You’ll see a huge wall of HTML appear. Don’t worry, that’s only the code that makes up the body of your email. Move on to fill out the other sections like so:
- For Content Type, choose HTML.
- In Which Printer, select the printer you want to use (which you connected earlier via Google Cloud Print).
- Under Title of Print Job, you can optionally add a title that will show up in the Google Cloud Print admin panel (under job history).
- For Number of Copies, it’s pretty straightforward. How many times do you want it to print?
- Color or Monochrome, this is up to you. I chose Monochrome to save my color ink, since I don’t need to see my brand colors.
- In regards to Duplex, in most cases you can leave it blank. If you’ve got a fancy printer capable of printing on both sides of the paper then go for it, but I certainly can’t afford that. 🙂
All-in-all, you have something like this:
Continue on and “Send Test to Google Cloud Print” on the next page to ensure the connection is valid.
The End Result
TA-DA! After a bit of thinking and processing, you’ll have a neat printout with the customer order information, just like you’d have gotten in an email:
Using this method, you could take it further in a number of ways:
- Print a copy for your records in the main office and a copy in your warehouse, using different content. (You can make a second, third, fourth, or however many new actions necessary in Zapier).
- Add the information to a spreadsheet in Google Drive or Office Online.
- Send a text message when you receive an order.
- Connect it with practically any service you’d want, all in the ever-growing library of apps.
- I can’t get this to work. Should I ask WooCommerce Support for help?
- No. This isn’t something WooCommerce supports, unless you have the official WooCommerce Zapier extension (in which case, support is still handled by the developer OM4). That extension also does it differently, so… No all around.
- I don’t need the formatting, and just want a plain text email. Can I do this?
- Of course. When selecting the content to display in your Action, use plain text instead of HTML.
- Is this compatible with Product Add-Ons, Composite Products, Subscriptions, Bookings, etc.?
- Yes. Anything that adds information to the New Order email will be displayed if you select the HTML display, including options.
- If I use Order Barcodes, will they print?
- Only if the barcodes would usually print in the New Order email, which I don’t believe they do by default. This can easily be added to your New Order template by a developer, though.
- Is this compatible with _____ theme?
- Probably. Assuming it doesn’t block emails, it will print whatever you’d normally see in an email.
- What about _____ plugin?
- Probably, for the same reason as above.
- How can I pull in specific order information to use, or have different triggers aside from email?
- You would probably want to check out that official WooCommerce Zapier extension. This is a workaround to cover the use cases where you don’t need that level of control.
Hopefully this serves as a handy tutorial on how to set up Zapier to automatically print WooCommerce orders for your store. As always, questions, comments, and suggestions are welcome!
Have any questions or comments about this article, or ways you think it can be improved?
Join the conversation in the comments below, or sign up for my newsletter to recieve periodic updates!