We’ve written tens of thousands of words on selecting an eCommerce plugin for WordPress, and we’ve also continued to update our reviews as new versions are released. However, there’s another option for WordPress eCommerce that we haven’t yet discussed, and you probably already have the tools for.

You probably use (or have heard of) Gravity Forms. While it’s gained popularity as a form builder, Gravity Forms can actually be used as a standalone eCommerce solution for stores that only sell a limited number of products, and can even be used for donations (or other user-defined pricing). If you don’t need advanced order management or inventory tracking, Gravity Forms can provide an easy solution for creating purchasing forms.

I like it best for shops that sell a few simple products, or for shops that sell complex products that are purchased individually (such as build-your-own computers), as you can have a build + purchase form on each product page.

All you’ll need to use Gravity Forms for eCommerce is the Gravity Forms developer license, which is regularly $199 (though if you’re an avid reader, you know we have a 30% off coupon 😉 ). If you’d like to use a third party add-on instead, you could use Gravity Forms + Stripe with any GF license, though I haven’t used this myself.

So how long will this take you to set up? If you’re familiar with basic Gravity Forms functionality, you can start using Gravity Forms for eCommerce in as little as 28 minutes by following these steps (depending on how your site will be structured).

Step 1: Accept Payments link

Time to complete: 4 min

Before we get into configuration, let’s quickly discuss how you’ll be accepting payments via Gravity Forms. This is why you’ll need the developer license instead of a lower license tier, as integrations with payment gateways are only available for these licenses (or a third party add-on for Stripe as stated above). You’ll be able to choose from:

  • Authorize.net (AIM) – includes support for ARB (recurring billing)
  • PayPal Payments Standard – no SSL needed
  • PayPal Payments Pro
  • PayPal Pro (old API)
  • Stripe

If you’re not using a payment processor currently, we have some tips available for you to select one. My personal favorite is Stripe, but I’m going to use Authorize.net in this example.

If you go to Forms > Add-ons, you’ll see all available add-ons for you to install and activate.

Gravity Forms for eCommerce | Addons

You’ll want to grab the appropriate payment gateway integration, and enter your API credentials to get up and running. You can do so under Forms > Settings and selecting your payment gateway.

Gravity forms for ecommerce | Authorize.net

Enter your payment gateway credentials, save, and you’re ready to start your form!

Step 2: Basic Form Fields link

Time to complete: 6 to 13 min

Before we decide how we’ll structure our store and set up our form, we can create the form and begin to add basic fields.

There are some fields we know that we’ll need to add to any form: name and address will definitely be needed for billing and/or shipping, and email and/or phone may be necessary as well. You may also want to add a separate address field if you’ll ship to an address other than the billing address (you’ll probably want to include a recipient name field if you do). We can add these fields to our form under “Advanced Fields”:

Gravity Forms Advanced Fields

Gravity Forms Advanced Fields

We’ll also want to add a couple fields from the “Pricing Fields” list:

Gravity Forms eCommerce | Pricing Fields

Gravity Forms Pricing Fields

Regardless of how your form is set up, you’ll need the “Total” and “Credit Card” forms to finish the checkout process, so we can add those now. You may want to also add the “Shipping” field and enter any shipping options (i.e., Ground, Expedited, etc) and the associated fees (if applicable).

Finally, we’ll want to configure some of the settings for our form. Go to “Form Settings”. You’ll probably want to change the button text to something like “Place Order” instead of “Submit”. You may also want to change the default confirmation message under “Confirmations” to something like this:

Thanks! Your order has been received and a receipt will be emailed shortly.

Finally, you may want to send a receipt via email. If you’d like to do so, you can create a user notification by duplicating some of the admin notification and pulling in the email field. For example, you probably want to include customer details, the order details and total, and some info below these fields about contacting your store and return policies.

Step 3: Tying Forms to Payments link

Time to complete: 3 min

Now that we have our basic fields filled in, we can configure this form to work with Authorize.net. Go to Forms > Authorize.net (or your payment gateway), click “Add Form”, and select the form you’re tying to Authorize.net. We need to map our form fields to billing information so that Authorize.net has the information needed to validate our form.

Gravity Forms eCommerce | Add Authorize.net Form

Add Authorize.net Form

This part is pretty easy. You can simply select which form fields belong to which Authorize.net field. You can also opt to send Authorize.net Receipts via email.

The Authorize.net menu is also where you’ll view your entries list and view individual entries (you can also access them from the “Entries” menu). You can click on an order entry to see all customer details, add notes, and print orders from one screen.

Gravity Forms eCommerce Entry

Gravity Forms eCommerce Entry

Great! Now we’ve got a payment gateway connected to Gravity Forms, tied to our form, and we have a start on our form setup. We can proceed by adding the products we’ll sell to our form.

Step 4: Purchasing Structure link

Time to complete: ??? min (estimated 10 min)

Before we begin to create our purchasing forms, we’ll need to decide how you want to structure your store. You can use Gravity Forms as a checkout page form, or you can use it as a purchasing form on each product page. You won’t be able to leverage a cart system with this, so it depends on which structure suits your store.

For example, if you sell only simple products or single purchases, you can probably create one purchasing form for your site. For example, this works great if you’re sending someone from a pricing table – you can dynamically populate the product selected and the form is ready to go.

However, if you sell products with variations or options, you may need to create multiple forms. Typically, Gravity Forms is best for this if customers only purchase one product at a time. If they’d want to purchase multiple complex products in one sitting, you probably want to look at a different eCommerce solution.

Think about your workflow and what kind of products you sell. Think about how many products you sell. If you sell more complex products (like build-your-own computers, which require options or add-ons), you probably want to create a purchasing form on each page for a one-page purchase. If you sell a couple simple products or versions of one product, a checkout page form may be best.

This section is the wild card. If you haven’t settled on Gravity Forms previously and already thought this out, you may need to sit down and plan out your site structure before we start creating forms.

Step 5: Finish Your Form link

Let’s give two examples here. In one example, I’m going to pretend that I sell customizable products – my customers will purchase directly from the product page, but I don’t need a cart system. Let’s use 5k race registrations for this, but this type of form is great for any product that would be purchased by itself, and not with other products (think customized computers, concert tickets, services, etc).

In the second example, I’ll assume that I sell one major product for which I’d like to have a select field and checkout form. This is handy for shops with just a handful of products, as you can add all of these products on the same form. I’m going to use a plugin license as an example for this.

No matter which example we start with, you may want to duplicate the form we’ve started building rather than using it. This will keep that form as a starting point for more forms so you don’t constantly have to keep adding name, credit card, and other fields.

Just remember to create a new Authorize.net form (or change the one we’ve already made to use the duplicated form instead) for each purchasing form.

Example 1: Product Page Purchasing

Time to complete: 9 – ??? min (depends on number of forms)

I’m assuming you’ve duplicated our basic form in each of these examples so that we can just start adding fields for our product. Your single-purchase form could look very different when compared to mine, but here are some basic tips.

First, use product fields for major aspects of your product (I’ll use one for registration). Each major component of the “sale” (in this case, a registration) should use a product field. You can also mix and max pricing fields with regular fields if you need to gather more info (I’ll do this for some of the racer information).

You can use “Quantity” fields that correspond to your product field. I’ll use one here to update the number of registrations that should be processed. The thing I like best about quantity fields is that I can base conditional logic around them. In my example, I’m going to add extra racer gender / tee shirt size fields when quantity is greater than 1, greater than 2, etc.

You can also add “Options” fields. These are also tied to product fields. Option fields can be added on to products with optional costs (I think of them as “add-on” fields). In my example, I’ll use an option field to modify the registration – I can add a cost if the racer would like to attend the barbecue after the race. This will also change based on quantity – if multiple registrations are purchased, then multiple options will be included as well.

Gravity Forms eCommerce | Options Field

Options Field

Once I’ve added my fields, I can check out my finished product page (you may want to open this in a new tab):

Gravity Forms Purchase form

One Page Purchase

There are far more options for product page purchasing that you can explore. The beauty of using Gravity Forms for this is that you can sell fairly complex products directly on your sales page, and add costs per item or option.

Example 2: Checkout Page Form

Time to complete: 3 – ??? min

The best part about using a checkout page form is that you probably don’t need to add many more fields. We’ll simply need a field for each product that we’ll be selling. I’ll only use one field here for Plugin License, which I’ll populate via URL (we’ll assume I’m sending customers to this from a pricing table). However, if I want to sell a couple of small products and maybe some add-ons, I could add more fields. Again, we don’t want to clutter this, and you could use different checkout pages as needed.

I’ll begin by adding a “Product” field to my form. Product fields have a few types; since I’m creating a product with a few versions, I’ll use a dropdown. Here’s some helpful documentation on product field types if you have a different kind of product.

Gravity Forms eCommerce | Adding a product

Adding a product

Notice that I’m showing values and setting them manually. We’ll need this to pre-populate the field for the customer depending on which pricing table option is selected. Once I’ve entered all versions of my product and the corresponding price, I can switch to the “Advanced” tab.

Gravity Forms eCommerce | Advanced tab

Here I’ll enable the ability to dynamically populate the form via URL. The basic structure for this is /?parametername=value. As I’ve set my parameter name to “license_type”, I can now pass a license type into the form. I’d use the URL of my checkout page, then append the license type. It will look something like this:

mystore.com/gfcheckout/?license_type=business

If you have more fields populated dynamically, you can add them by adding ¶metername=value for each.

Finally, if you don’t want customers to be able to change their selection, you can opt to have this field accessible to the admin only instead of visible to everyone.

Now, my form will display my products, and the total will adjust depending on which option is selected.

Gravity Forms eCommerce checkout

Checkout Page example

Step 6: Embed Your Form & Start Selling link

Time to complete: 2 – ??? min

Last, but not least! Don’t forget to add your forms to your pages – if you’re using a checkout-style form, you probably want to use a new page for your checkout. If you’re allowing purchasing on a product page, you can simply embed your form on the relevant page(s).

You’ll use the Gravity Forms shortcode (like this: [gravityform id="2"]), or you can use the “Add Form” button at the top of each post / page edit screen.

Conclusions link

Since you may already be using Gravity Forms, leveraging your forms for eCommerce can be an interesting option. This setup works best for complex products that are typically purchased alone, as you can sell them easily and directly from the product page.

It’s also a handy option for sites that only sell a few products, as you can create a checkout form with a tool that you probably have installed already. While this setup is not for stores that need a cart process, it makes a very handy option for sites that have a limited product offering and don’t require inventory or order management within WordPress.

Want to check this out? You can get Gravity Forms if you need a new license, or you can visit our coupons page to grab a 30% off code. Get a developer license for official payment gateway integrations, or check out the Gravity Forms + Stripe add-on with any GF license.

Get Gravity Forms


Have your own cool setup or implementation with Gravity Forms? I’d love to hear about it! Drop a line in the comments 🙂 .

Articles you may also like:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.

30 Comments

  1. I wish gravity form devs would add repeater fields and group fields, so we wouldn’t have to use such heavy conditionals with extra field creation. that makes registering multiple people for events or selling multiple types of tickets, or even crowdfunding with gifts like tshirts, much easier to do with just the gforms.

    1. I thought the same thing with the race registration form 🙂 . Was considering using lists with columns (i.e., columns for Racer 1, Racer 2, etc, and using this for quantities of 2-4, adding another list for 5-8, etc), but this would be more confusing on the frontend for whoever is filling out the form – they have to add their own rows to fill in what I’m asking for. I’d love to see something like a “repeater” field that gets added every time quantity (or another field) is increased.

      1. Totally agree.
        I have been using Advanced custom fields which does this kind of thing nicely, but of course is not easy to integrate with gravity forms.

        They do have their own front-end form filler, but that too is not as easy to implement. In my opinion, this would be the biggest improvement one could possibly make to form capabilities in WordPress. It would open up alot of options that are currently the purview of several additional (and hefty) plugins related mostly to events.

        I know you guys are coding geniuses! So when can we expect that?

        1. Haha, should be easy, right?? 😉 We’ve not done much development work extending GF actually, but I’d definitely love this as a user. Agreed that it would be huge for events!

  2. Hi, I love this method and think it’s a great idea to avoid all the bloat with an ecommerce plugin.

    Any thoughts on using gravity forms for a paid membership site with private members only content? The membership has a hard start and expiry date as well. (Jan 1 – Dec 31)
    Perhaps it would work integrated with MemberPress or Paid Membership Pro for example?

    1. Hey David, I think you’d be better off using the built-in checkout system with each, as you’d have to build a connection to Gravity Forms that registers a member when payment is received. I’m pretty sure PMPro can do memberships with defined dates, and the checkout process also registers the member.

  3. Great Article!

    Is it possible to use gravity forms like above but also for selling digital files with instant delivery? Is there an addon for that? I’m currently using WC, but have had some problems and am trying to find an alternative.

    1. Literally the second after I posted that I saw your post with Easy Digital Downloads and Gravity Forms! Thanks!

      1. Hey Rick, glad you found that, as that’s where I would have pointed you 🙂 . The EDD Gravity Forms checkout plugin is awesome, and the author is great. Highly recommended!

        1. Thanks Beka! I’m definitely going to look into it!

  4. Love the tutorial! I’m wondering if there is any way to implement some kind of stock/ inventory management using Gravity Forms for eCommerce. I have been using WooCommerce, but I want to have more control over the checkout process.

    Thanks!

    1. Hey Anthony, there’s not really an inventory, but here’s a tutorial from one of the GF devs that could help, as well as a free plugin.

  5. Nice tutorial, thanks Beka! I was able to set up with Paypal as the payment gateway pretty simply following your steps. I’m wondering, how would you go about giving people the option to use different gateways, such as offering a choice between paypal and credit card (with stripe, say)?

    1. Hey Winston, so glad to hear this worked out for you! I’m afraid that Gravity Forms only allows one credit card field per form, so I don’t think this would be possible at the moment.

  6. Hi all !
    Thanks for this awesome post! Actually gravity forms is the best tool for creating forms.

    I have a question for You and I need help.
    I have a custom product that be ordered using gravity forms using manu conditional logic rules. Is there any way to gain access to customers to track (see order status) the orders they completed using gravity forms, a kind of table viewable by the customer to see order status, price, delivery date, eventually the pdf invoice using his logins in the wordpress website. Can this be possible & how?

    Thanks again for this awesome post!

    1. hey Morchid, there’s no way to add “statuses” to Gravity Forms entries, as they’re not true “orders”, but rather just form submissions. It sounds like you’ll need a full eCommerce solution here to be able to manage customers and build a customer area to do this. Since you’ve already got your form created, I’d recommend integrating with Easy Digital Downloads and the Gravity Forms Checkout add-on.

      This will give you the flexibility of your ordering form with the eCommerce capabilities of EDD, such as customer accounts, customer areas, order statuses, etc. We’ve got an article on using EDD Gravity Forms Checkout as well.

  7. That’s nice!

    I’ll check it and tell you back how I found it.

    However I have a custom service to offer, it is based on forms, my service is publication of legal ads on official journals. So need conditional logic for fields, for pricing, exporting form entries to PDF, getting invoices in PDF…

  8. Assuming that this can be done, how can I link the woocommerce quantity with the gravity form quantity without having users to enter quantity twice?

    1. Hey Jason, you’d have to use the Gravity Forms Add-on for WooCommerce to use the two plugins together. This would let you use Gravity Forms to configure products, but use the WooCommerce checkout process.

      1. Yes, I’m using the plugin, but the quantity does not sync from my testing… I’ll see what else I can find, thanks.

  9. Hi I have the Gravity form working out shelves per bay (instead of simple total quantity of shelves). So the user only has to work out how many shelves per bay they want.

    http://eon.org.au/eonew/test-4/

    The question I have is with the Woocommerce extension, how does shipping work? Will it work out the total number of shelves and add the correct weights and dimensions automatically? The shipping plugin I am using uses the standard Woocommerce weights and dimensions. Thanks.

    1. Hey Ross, I don’t think Gravity Forms Add-ons ties into weight or dimensions, but you’ll probably want to check this with the pre-sales team.

  10. Hi,
    I found your tutorial very useful. I am in the process of searching for a solution to sell event tickets on my website. The problem is that I have to have the event registration forms in 2 languages (Romanian and English) and sell the event tickets in 2 currencies (RON and EURO). I have the WPML plugin, and they also make WooCommerce multilingual. Do you think this could be a workable way to do it? Like, creating the registration form (multilingual) with GF/WPML and then when the users click buy send them to the checkout process of the multilingual WooCommerce.
    I purchased an event plugin, too – Event Espresso, which is very nice, but doesn’t allow multilanguage and multicurrency.
    Any advice will be highly appreciated.
    Thanks,
    Emil

    1. Hey Emil, I don’t think you’d need WooCommerce in this scenario, as Gravity Forms could process the payment as part of the registration form. Here’s a plugin to change currency per form that could help – I think you’d need to do 2 forms to handle both currencies, but I’m honestly not sure.

      1. Hi Beka,
        Thanks for your kind answer, I will look into that plugin and see if it helps.
        Thanks again,
        EMil

      2. Beka – this is exactly my problem! I have an event form in English and German, so dollars and Euros.

        I was going to use Events Calendar Pro with WooCommerce. I think I’ll try just using Gravity Forms with Calendar Pro. Should be doable – thank you for the tutorial!

  11. I was with ya, and thought i found the way to not have to make 10 forms for each product based on diferent subscription time frames, using paypal payments pro addon, until you said “Here I’ll enable the ability to dynamically populate the form via URL.”

    Where is “here” …second… gravity forms doesn’t have a checkout page. i don’t want to use woocommerce and i do have edd but that’s for other products. i have woocommerce and the gforms extension/subscription addon, but i hate woocommerce because it’s essentially very expensive garbage that adds 3 times more work to accomplish what you want to do.

    But again I need to know where “here” is and I’ll be good to go. Also where on earth do you add the link to the “here” location. Also the checkout page – i’m quite confused. what if i have stripe and paypal payments pro. i honestly cannot find a good e-commerce solution for wordpress…i spent alot of money trying to find one, and they all just add extra work. gravity forms was supposed to be the answer, but at this time, i’m just going to keep making 4 or 5 forms for each subscription. However if you tell me where “here” is, perhaps this may be the answer 🙂

    1. Hey James- I think she is talking about your chosen payment gateway. In this example, she is using authorize.net, but I use gravity forms and paypal invoices as my solution- so my “here” is paypal. The person fills out the form on my site, then they go to paypal, where the invoice is populated with data they provided on my (client’s) site. It passes query strings beautifully and for the particular client I use this for, it is an ideal solution.

  12. Thoughtful article . I Appreciate the points – Does someone know if my business would be able to obtain a template 2014 AU Form 1263 document to complete ?

It's been over 2 years since this post was published, so comments have been closed. Thanks for reading!