How to Sell Products on WordPress Without WooCommerce

WooCommerce has long been the default solution for selling products on WordPress sites. Now don’t get me wrong, its place on the Mount Rushmore 🗿 of ecommerce plugins is well deserved. However, that doesn’t always make it the best choice for every single product-selling scenario.

Depending on what you’re selling and how you want to sell it, WooCommerce might actually be overkill. It can add unnecessary complexity to your site, slow down page loading times, and require costly add-ons for features that come standard with other solutions.

Fortunately, WordPress offers several fantastic alternatives. One of my personal favorites is a plugin called WP Full Pay. What I love about it is its adaptability – it can be extremely lightweight and simple if you want it to be, but it’s also highly customizable if you need a more complex solution.

I’ll show you how to get started with it in just a moment, but first I want to briefly compare WP Full Pay to WooCommerce so that you can decide whether it’s the right choice for you.

WP Full Pay vs WooCommerce: At a glance 👀

WP Full PayWooCommerce
PricingFree + PremiumFree + Extensions
Payment MethodsVia Stripe integrationVia WooPayments extension
Setup DifficultyScalable complexityComplex from start
Page Speed ImpactLightweightPotentially heavy
Best ForSimple to medium-sized operationsFull-scale stores
⚖️ DISCLAIMER

The WP Full Pay plugin is being maintained by the same team that’s behind Themeisle.

How to use WP Full Pay to sell products on your WordPress site 💰

If you’ve looked at the chart above and decided WP Full Pay might be a good fit for your product-selling needs, then it’s time to set it up. The process itself isn’t difficult, but it does take a bit of time to get everything in place. Roughly speaking, it looks something like this:

  1. Install and activate the plugin
  2. Connect to Stripe (and set up Stripe business account if you don’t already have one)
  3. Add your first product to Stripe account
  4. Optionally: set tax rates and other details
  5. Create a payment form. Import product from Stripe into WP Full Pay.
  6. Insert the form into a page or post
  7. Test and adjust or test and go live

Of all the steps, probably the most time-consuming one (if you haven’t done it already) is signing up for a Stripe business account. Be prepared to set aside a few minutes for that and have all the information about your business handy. Other than that, the rest should flow like water – especially since I’m going to be walking you through it.

1. Install and activate WP Full Pay

The very first thing you’ll need to do is install and activate the plugin.

  1. From your wp-admin dashboard, go to PluginsAdd New Plugin.
  2. Then in the Search Plugins window, type in WP Full Pay.
  3. When you see it populate, tap on Install Now, followed by Activate.
Find, install, and activate WP Full Pay from the wp-admin dashboard.

Nothing too complicated here. After you activate the plugin, you’ll be redirected to a setup wizard that will prompt you to…

2. Connect to Stripe

This step could either take less than a minute or potentially five to ten minutes.

Connect WP Full Pay to Stripe.

If you already have a Stripe business account set up, then you will get through it faster than you can count to 20:

Connecting an existing Stripe account.

On the other hand, if you don’t have one yet, you’ll need to fill out this extensive questionnaire about your business:

Setting up a new Stripe account using the WP Full pay setup wizard.

As I mentioned a moment ago, this can potentially be the most time-consuming step of the entire process. But as long as you have all of your business information ready, then it shouldn’t take excessively long.

3. Add first product to Stripe account

Once you’re connected to your existing (or new) Stripe account, you can add your first product.

Using the lefthand side menu, go to Product catalog.

Then click on either Add a product in the bottom center of your screen or Create product on the top right.

Accessing the product catalog in Stripe.

Both buttons lead you to the same place so you can eenie-meenie-miney your way to either one.

The Add a product window will then slide out and you can add your first product. The form itself is straightforward. It contains:

  • Name of product
  • Description
  • Product image
  • Toggle between recurring (i.e., subscription) and one-off
  • Price

There are also two drop down menus:

More options lets you add statement descriptors for recurring payments, which is what your customers will see on their financial statements. It also lets you add unit labels that appear on receipts, invoices, at checkout, and on the customer portal. You can think of these as the format you’re going to sell your product in. For example tickets, seats, tiers, etc.

More pricing options lets you set your pricing model between:

  • Flat rate: Offer a fixed price for a single unit or package.
  • Package pricing: Price by package, bundle, or group of units.
  • Customer chooses price: You or your customer defines the price at the point of sale.

In addition, you can add internal pricing descriptions and lookup keys, which make it easier to stay organized if you plan on selling lots of different kinds of products.

💡 These two features are particularly useful if you have a large store, but you’re still adamant about avoiding WooCommerce to sell your products.

The add a product form in Stripe.

Finally, there’s an option to enable tax collection

4. Set tax rates

This section of the tutorial is tricky because the way you handle taxes is going to be extremely situational. There will be several variables at play, including your location and the type(s) of product(s) you’ll be selling.

With that said, let’s review two things you need to pay attention to when going through this:

  • Product tax code
  • Include tax in prices

Product tax code preset

The tax settings area of Stripe can feel somewhat overwhelming and if you were to really get heavy into all the customizations, then you could spend a while here.

Luckily, most of the default settings are already set up in a way that will suffice the vast majority of use cases. Nonetheless, there are still a few things you need to decide on.

One of them is the preset product tax code:

Setting the product tax code preset.

The purpose of the preset product tax code is for Stripe to have a default tax rate to charge on your product(s). Whatever you select here will then be reflected on the add a product form:

Using the preset tax code on the product form.

It’s useful if you exclusively sell one type of product or predominantly sell one type of product.

And if you ever need to override it, you can simply click on the drop down menu and choose another type of tax code on a per-product basis:

Choosing an alternate product tax code to override the preset.

Tax in prices

Another important decision you need to make with regards to the tax settings is how to handle the display of your taxes. Stripe gives you three options:

  • Automatic: Stripe will automatically include or exclude tax based on the currency of the purchase. For USD and CAD, tax will be excluded from the price, so it will be added on top of the price shown to the customer. For all other currencies, tax will be included in the price.
  • Yes: Tax will be included in the purchase price – the price shown to the customer will include the tax amount.
  • No: Tax will not be included in the purchase price – tax will be added on top of the price shown to the customer.

There’s no additional insight needed here. Your decision will be largely based on the pricing display culture of where you do business.

5. Create payment form

After adding your product(s) to Stripe, the next step is to go back to your WordPress site and create a payment form inside of WP Full Pay. This form will act as the go-between for your site and Stripe.

Using the lefthand side menu, click on Full PayPayment Forms.

This will bring you to the Add new form screen, where you can name your form, give it a description, choose the form type, and pick the layout:

Adding a new payment form inside of WordPress.

Most of this is self-explanatory, but I do want to highlight the form layout section. Although there are only two choices there, you should think carefully about which one to use.

The Checkout style works well in limited space or when embedding payment options within pricing tables. Stripe hosts these forms. The plugin directs customers to Stripe for payment processing and ensures they return to the original page once payment is complete.

The Inline style works best when your page has sufficient space to show all payment fields at once. They’re ideal for situations with ample screen real estate, allowing customers to complete payments without leaving the page and offering a more streamlined checkout experience.

For a more comprehensive explanation of the differences between Checkout and Inline form layouts, check out this knowledge base article.

After you’ve made your selections, click on the CREATE & EDIT FORM button at the bottom of the page.

Import product from Stripe into WP Full Pay

Once you’re inside the form customization screen, click on PAYMENT. Then tap Add products from Stripe to import your product(s) from Stripe into WordPress:

Adding products from Stripe into WordPress.

This will bring up a popup window that pulls your product data directly from Stripe:

Products feed popup window.

Select the products you want and click ADD PRODUCTS.

The way you approach this will largely be dependent on the types of products you’re going to be selling.

For example, if you’ll be selling t-shirts, then most likely you’ll include different sizes on one payment form, with a separate payment form for each t-shirt style.

On the other hand, if you’ll be selling different kinds of toys, then you’ll probably only import one product at a time so that each toy has its own payment form.

Do what works best for your situation.

Customize payment form

Beyond importing your products from Stripe, you’ll also be able to customize various aspects of your form using the other tabs.

For example, the APPEARANCE tab will let you choose the product selector style. It will also let you customize the text of the payment button, including being able to display the payment amount.

Customizing the appearance of your payment form.

Note the Add custom CSS styles box as well. This is important for adjusting the color scheme of your payment form. While technically optional, if your website uses a dark background or you want the form to match your brand’s color scheme then it’s a must read.

You also have the FORM FIELDS tab. Here you can capture other customer data, such as their billing + shipping address and phone number. You can also add a Terms of Service checkbox or a Coupon field:

Customizing form fields in payment form.

Then there’s the EMAIL NOTIFICATIONS section. Although there are only two options here, deciding whether to enable one or the other (or both) is important.

This is because each type sends out notifications based on different action triggers. For example, only the Stripe option will send a notification if there is a failed payment, while only the plugin can send an email after a customer’s credit card information is added or updated.

However, the two also have some overlap. For instance, both of them can email receipts for one-time payments.

Enabling email notifications for payment receipts.

This knowledge base article has a full breakdown and should help you make a decision.

Finally, if you’re a developer and you’re interested in using webhooks to customize your payment forms, then you can read this extensive knowledge base article on the topic.

6. Insert the form into a page or post

After you finish creating and customizing your form, click SAVE CHANGES. This will redirect you to a list of your forms.

Hover your mouse cursor over the shortcode box and click it. It will automatically copy the shortcode to your clipboard:

Copying product shortcode to clipboard.

Then go to either PagesAll Pages or PostsAll Posts (depending on where you want to insert the form). Find the page or post and click on Edit.

This will bring you into the WordPress block editor.

Find the area of your page/post where you wish to add the form and do the following:

  • Tap the + icon to open up the block search box.
  • Type in shortcode.
  • Select the shortcode block.
  • Paste the payment form shortcode into the block (command + v on Mac or ctrl + v on Windows):
Adding the payment form shortcode to the shortcode block inside the WordPress editor.

7. Test and adjust or test and go live

With your shortcode added, it’s time to see what it looks like on the frontend of your website. Tap on the preview / view button on the top right:

Clicking the preview button inside the block editor.

As you can see, because I chose the Checkout layout style earlier, the presentation is rather simple:

Examining the frontend preview of the payment form.

Clicking on the Make payment button, redirects you to Stripe, where the actual checkout and payment takes place:

Stripe payment form.

If you’re curious, had I chosen the Inline layout style, the frontend would look like this instead:

Examining the alternate full-form display of the payment form on the frontend.

Assuming you are satisfied with everything, you can go back into the block editor and click Save on the top right. This will make your payment form live and you can start selling your product(s) – without WooCommerce! 👏🏻

Final thoughts 💭

That wasn’t too bad, was it?

A bit laborious perhaps, but it’s important to keep in mind that most of the “hard labor” is only when you are first setting everything up. Once you have the core settings down and have a feel for where everything is, any additional products you need to add are going to be a breeze.

Not to mention that it’s still faster and easier to set up than WooCommerce.

And unless you have a very extensive ecommerce shop with hundreds or thousands of products, it just doesn’t make sense to install a V12 engine on a car that’s going to be traveling 30 miles / 50 kilometers per hour. It’s much more efficient to go with an alternative like WP Full Pay. That’s just my opinion of course, but I think you’ll agree that it’s reasonable.

Do you have any questions on anything I covered here? If you get stuck on any step in the process, just leave a comment below and I’ll be happy to help you out.

Yay! 🎉 You made it to the end of the article!

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!