There are too many things that go into writing a truly helpful step-by-step guide to setting up an online store. So instead of tackling each of them, this is a tutorial of tutorials. I will explain what I did, in the order I did it, and which third-party tutorials I used. This is a useful how-to guide for webcomic creators who are ready to launch an online store. Note that this post describes a specific process that requires your site to be self-hosted and based on the WordPress content management system (click: more about hosting webcomics).
If you want to host an online store on your own domain using WordPress and the plugin Woocommerce, integrated with the Print on Demand (POD) solution Printful, this article is meant for you.
This post assumes a certain level of web development know-how. You won’t need to know programming languages, but you will need to understand the basics of back-end functionality (i.e. application integration, API use, plugin installment and activation, etc.). However, if you want to download and customize a WordPress theme for your store, you’ll need to know HTML and CSS. Here’s what we’re going to use:
WordPress: This is the most widely-used content management system (CMS). If your site is not using WordPress, then much of this post will be meaningless to you. WordPress comes packaged in a single install with core files. For enhanced functionality, you will download add-ons, which for WordPress are called “Plugins”.
Woocommerce: Woocommerce is used by millions as an e-commerce solution. It is a plugin for WordPress which allows you to have a store fully integrated with your WordPress website.
Paypal: It’s necessary to have a Paypal account in order to receive payments from customers and to pay Printful for their fulfillment services.
Printful: Printful is an online Print-on-Demand (POD) service. Your users will purchase a product through your Woocommerce shop, and that order will automatically forward to Printful, which takes care of printing the product and shipping it from their “fulfillment centers” in California and North Carolina.
There are several reasons why I chose this online store solution, among them that creating an account with Printful is free, Woocommerce is self-hosted, and Printful ships to most countries.
Let’s get started.
Steps to launching a self-hosted, automated e-commerce store using Woocommerce, Paypal and Printful
Here are the consolidated steps for installing and launching an online store using these platforms:
- Install WordPress on your web server
- Install the Woocommerce plugin
- Test Paypal Standard
- Create a Printful account on Printful.com
I will go over these steps in order, each of which has several internal steps to take which are not listed here. Remember, this post is a tutorial of tutorials, otherwise it’d be way too long. So I will link you to or embed the tutorials I used to set up my online store.
Refer back here to check off steps as you complete them.
Step 1: Install WordPress
This post generally assumes that you already have WordPress installed. If you do not, refer to your web host’s tutorials to find out how to do it. Many web hosts offer one-click installation of WordPress, such as Bluehost (here’s their brief WordPress install guide), often using Softaculous auto-installer. In other cases, you may have to install WordPress on your web server from scratch.
I had to install it by hand. I used the official WordPress.org Codex tutorial on how to install WordPress. The WordPress Codex is the huge knowledgebase for this CMS. For a more visual and user-friendly tutorial, check out this tutorial from WP Beginner. NOTE: If you have a WordPress.com account, then steps described in this article won’t work for you unless you have invested $299 per year in a business account. Read about the differences between wordpress.com and wordpress.org. This section will now address chronological considerations you’ll have to take when installing and configuring WordPress on your server.
Choosing a domain to install WordPress on
When you install WordPress, you have to choose a directory where it will be located. For example, thingsinsquares.com is the parent directory for my entire website, and it has a WordPress installation. However, my store is located at https://shop.thingsinsquares.com. The ‘shop’ is called a sub-domain, which you can control from your cpanel. I could have also opted to place the store at thingsinsquares.com/shop, in which case the ‘shop’ would be a sub-directory of thingsinsquares.com. Using a sub-directory is purported to be better for your Search Engine Optimization (SEO), but I liked the look of the sub-domain because it does a better job of psychologically separating the shop from the rest of the site.
So you’re asking yourself–does he have two WordPress installations for Things in Squares? Yes. I have one for the main comics site (thingsinsquares.com), and a separate WordPress install for the shop (shop.thingsinsquares.com). Do you have to do this? No. I could’ve downloaded the Woocommerce plugin on thingsinsquares.com. HOWEVER, it’s important to note that oftentimes, plugin interaction can get complicated. There is a lot of functionality on thingsinsquares.com. I foresaw headaches caused by plugin incompatibility. I wanted to be able to make decisions for my e-commerce online store irrespective of how they might affect the rest of the site. Opting for a separate WordPress install altogether allows me to dedicate wholly different security parameters to the shop, for example. More on that right now.
Ensuring your WordPress site is secure
The first thing you’ll want to do once your WordPress admin dashboard is active (yourdomain.com/wp-admin) is secure the site. This Codex WordPress security page gives you some insight. Here’s a more legible blog post about keeping WordPress secure. A primary lesson here is to make sure you have a very good web hosting provider. Since your store will be handling sensitive customer information, this is crucial.
So, how can you secure your WordPress site? Some standard things which you read at the linked sites above are:
- Keep WordPress, plugins, and themes up-to-date
- Only install themes and plugins that are vetted
- Use an extremely strong password
- Backup and scan your website regularly
Here are the three principle steps I took to secure my shop:
1) All in one WP security: I downloaded the All in One WP Security and Firewall plugin. Refer to this tutorial:
Note: Later, when you install and activate Woocommerce, you’ll have to make some adjustments. For example, you’ll have to make sure that Force Logout under User Login, and Enable manual user registration approval, are NOT activated. Otherwise, customers will not be able to register at your store.
2) I installed an SSL certificate: A Secure Sockets Layer (SSL) encrypts all data transferred between a browser and a web server. Here’s a better explanation. You know if a site is safe to send information to because of the little green secure lock beside the URL, which is https, not http:
I did not install the certificate myself. My web host is Knownhost VPS, and they did it for me. You can save yourself from the inadequacies of cheap shared hosting support and sign up for a Knownhost account. If you can handle Cpanel back-end installs yourself, here’s a tutorial of how to install an SSL certificate. Note than if within your code if you have any resources that use http requests, the SSL will not load. You must make sure all your page’s resources use https requests (i.e. <img src=”https://resouce.com/image.jpg”>. Download and activate the plugin “Easy HTTPS redirection“, which changes all http requests to https once you configure the settings.
3) I changed the permalinks on my site: Permalinks settings tell WordPress how to create post and page URLs. This is ugly: thingsinsquares.com/2016/05/boo. This is nicer: thingsinsquares.com/comics/boo. The latter is not only better for SEO, but you’ll need to change permalinks in order for Woocommerce-Printful integration to function properly (more on this later). Refer to this tutorial on how to change permalinks.
Choose a theme
Now to aesthetics. You’ll want to download a theme that functions well with Woocommerce. There’s an official Woocommerce theme, or you can opt to research other options on WordPress.org. The Things in Squares online store uses “Maxstore.” To customize a store, you’ll need to know how to manipulate HTML and CSS. The WordPress Codex has all the complex information you need to customize a theme. If you don’t know how to code at all, hiring a developer might be your best option. But most comic creators are poor, so why not invest some time to learn HTML and CSS, then follow this tutorial on how to customize a theme.
Step 2: Install the Woocommerce online store plugin
Now the fun part. You’ve got a secure WordPress site and a good theme, so now you’re ready to install the software for the online store. Download the Woocommerce plugin and activate it.
Understand Woocommerce
Before we go any further, you should understand how Woocommerce works. Woocommerce has an entire user interface within the WordPress dashboard where you can see orders, coupons, reports, settings and more. But how does it work? As you know, WordPress comes bundled with ‘Posts’ and ‘Pages’. Woocommerce creates a third post type called ‘Products‘. Basically, when you create a new product, it’s like creating a new post, and WordPress processes and displays these products the same as it does for posts. The only difference is that Woocommerce instructs WordPress how to tweek the display, how to deliver additional fields (price, add to cart, etc.), and how to act according to its rules for user browsing and checkout. When you go to ‘create new product’, you’ll see a Woocommerce container below the content where you fill out shipping, tax cost, pricing, product description, etc. Don’t worry–we’re going to integrate with Printful so you’ll never have to add a new product directly on the WordPress half of your online store. Woocommerce also creates additional Pages for you that that are crucial to its functionality, but which you will not have to edit. These are “My Account”, “Shop”, “Cart”, and “Checkout”.
Configuring Woocommerce
With Woocommerce, you can count on an exhaustive knowledge base. You can either read the getting started documentation, or dive head-first into the Woocommerce guided tour videos. For our purposes, know that you will not have to configure shipping or tax settings because Printful will handle these. Just be sure that in Woocommerce > Settings > General, “Enable taxes and tax calculations” is checked. Finally, if you install a caching plugin (used to increase site speed), make sure to exclude the 4 automatically generated Woocommerce pages.
Enabling user registration
I want to address this specifically. Users who register will show up on your WordPress dashboard > Users. They will be automatically assigned the role of “customer”. In order for visitors to be able to register, go to WordPress dashboard > Settings > General, and make sure that “Anyone can register” is checked. To avoid spam, make sure that form captcha is enabled by going to WP security > User registration > Registration captcha (assuming you’ve activated the All in One WP Security and Firewall plugin). Also, if you test the front-end Woocommerce user registration form on your site, users are redirected to a WordPress back-end login screen, which is not good. Download the plugin “Woo Login Redirect“, and set the redirect pages to “My Account” at Woocommerce > General. Finally, I mentioned earlier and I say it again: ensure the WP Security > User Login, Force Logout option is not checked.
That’s all there is to it. Follow the Woocommerce video guides and you’ll have your online store up and running quickly.
Step 3: Test Paypal Standard
Woocommerce works best with Paypal Standard. This payment option, which you’ll activate at Woocommerce > Settings > Checkout > Paypal by checking the “Enable Paypal standard” box, allows users to pay with their Paypal accounts or by credit card.
This tutorial video explains how to set up Paypal standard with Woocommerce.
Given that the online store will be accepting live payments, you want to make sure that it works before launch. That’s why Paypal offers developers a way to test the full checkout process. This test takes place in what’s called a digital “Sandbox“, which isolates code and uses fake e-mails through the Paypal developer site to ensure seamless functionality. This is a great tutorial about how to do it. Or, refer to this video tutorial:
Note: I highly recommend using the Mailgun E-mail Validator to deal with fake e-mails during user registration. However, make sure this plugin is deactivated during the Paypal sandbox test.
Step 4: Create a Printful account
I chose to use Printful, but here’s a great post on other POD options. The reason I went with Printful is because they have great reviews, some fellow comic artists also use them, their many tutorial videos are well-produced, and they don’t take as big a commission from your sales as some other POD companies.
Understand how it works
When a customer buys a product from the Woocommerce store, the order is automatically sent to Printsome to be printed and shipped. The customer pays you for the product, and Printful charges you for the order. So if you’re selling a product at $20, the customer pays you that, and Printful charges you, say, $10 for their service. You can adjust your earnings on each product and variation thereof.
Connect Printsome with Woocommerce
When you create a free Printful account, you’ll be prompted to choose your store integration, in this case Woocommerce. A tutorial unfolds to guide you through the process of this online store platform. A few things of note: you’ll need to activate Woocommerce’s REST API in Woocommerce > Settings > API, to ensure that you changed the permalinks as I’ve already described, and to generate a Woocommerce API, among other things. By the end of this process, your Woocommerce store will be linked to your Printful account.
Fully integrating Printful and Woocommerce
Once logged in to Printful, click on your name in the top right, and click ‘Billing’. Set a default payment method. This is necessary for automatic order fulfillment.
Next, to allow Printful to handle all tax and shipping calculations, download the “Printful Integration for Woocommerce” plugin and activate it. You’ll need a Printful API key for Woocommerce. This video tutorial describes how to set up tax rates:
And this video describes how to set up Printful shipping:
Create products
Printful allows you to create a shipping logo and a custom packing slip message. There are probably other things they offer that I’ve yet to discover. If you ever see this on a package, you’ve done me a solid:
When it comes to creating products, I do it all via printful.com. I use high-resolution png files. Most of my old comics are 1340 pixels wide, but the newer ones are 3000px. This allows me to create more variations of, say, a print offered at 10×10”. The old comics at 1340px might not look good if I offered a variation at 12×12”, but the 3000px comics can get printed on even 18×18” paper. What kind of online store would it be if I didn’t try to offer the most options possible?
Expand your e-commerce horizons
This post has been interesting to write. I can’t imagine how long it’d be if I wrote out each tutorial that I’ve here linked. It would be a tome. I hope this page has been useful for you. If you have any commentary, please do not hesitate to post here. These blog articles are made better by your participation.
A final conclusion when it comes to e-commerce online stores is that with this Woocommerce-Printful solution I am not limited to using just Printful. I can easily create other non-product pages on my Shop that link to products printed elsewhere. Perhaps I could create a Zazzle store in order to offer products that Printful does not, and link to them individually from a dedicated Page. I don’t think I could do that with third party-hosted platforms.
The possibilities are endless.
Other useful articles:
Coming from someone who works for a web host I would say… Step 1: Don’t use WooCommerce. Step 2: Use something else. Step 3: Anything else.
That’s fine, but your comment would be much better if you gave some reasons, maybe tell a story, etc. Then give some alternatives you use that you prefer!
Thanks for the tutorial. Currently using it to setup my ecommerce store. What I didn’t see mentioned is how you have a subdomain for your webstore with a shop prefix. I wound up creating a wordpress install on my subdomain to achieve the same affect. It meant installing everything twice. I’m sure there was a faster way but this is the route I took.
Thank you so much, I am just starting out and your posts are 100% relevant and clear and just brilliant basically.