How to sell things online or create a donation form using PayPal

Created by Ben Shell, Modified on Thu, 6 Feb, 2020 at 9:14 AM by Karla Timbang

Note: DD Commerce requires your organization to have a PayPal account to use this feature.


Your content management system makes it easy to sell things online using the DD Commerce module, which allows orders to be placed on posts or within webforms. This includes, but is not limited to:

  • Simple fixed-priced items
  • A product order form (e.g. a T-shirt order form) with different prices
  • A more complex order form with quantities and totals
  • A multi-step questionnaire with different pricing levels depending on the way a user answers the question
  • Subscriptions or access to premium content by selling a role (e.g. Member) which can be used in conjunction with content peeking to allow the user to get a glimpse of the premium content, enticing them to buy access 
  • Access to a single post for a certain amount of time (e.g. one year) 


Note that Digital Deployment needs to do some site configuration for you before the following instructions will work. Contact us at [email protected] if you'd like to request that Commerce be set up on your site.


Quick Start Tutorials


Tutorial 1: How to create a simple fixed-price item
  1. Go to Commands > Create Post (or edit an existing post). You can choose any post type or create a new post type if you wish
  2. Add an appropriate title for the post, e.g. "Veggie Bag" 
  3. Add an appropriate description of the product in the Body field, e.g. "Organic signature veggie bag, delivered fresh to your door"
  4. Scroll down to the "Commerce" Tab
    (Don't see the Commerce Tab? That's because PayPal hasn't been set up on your site. Submit a support ticket for assistance.)



  5. Expand the "PayPal Integration" fieldset if necessary
  6. Enter in the price you wish to sell the item for, e.g. $40. (These are some fancy veggies.)
  7. You may leave the "What happens if this post is purchased" section blank for this tutorial; it's just not that complicated yet :)
  8. Save the post
  9. You will now see a "Buy for $40" button added to the top of the post. This button will initiate a PayPal checkout, allowing any user with a credit card to check out.



Tutorial 2: How to create a items with differently-priced options and donations


In this tutorial, we're going to make a fictitious "Website Training Session" where there are two different ticket prices as well as other options and the ability for the end-user to make a donation while registering. In this form, we want the user to be able to register as many attendees as they want. Each attendee cost $75, unless they are part of a Service Level Agreement, in which case they get a $50 discount and only have to pay $25. Regardless of how many people register, they can purchase zero or more upgrades ranging in price: the Veggie Bag service for $5 or the foot massage service for $20. The user also may enter in a donation. 


  1. Create a new post of any post type with the title "Website Training Session" and the body text "A terrific half-day seminar to enrich your skills. Open to the public!". 
  2. Save the post.
  3. Click on the edit hover icon and choose "Configure Webform".
  4. First, we're going to need to collect the user's e-mail address, so we can contact them later if needed. Add an field of type "email" with the label "Your Email". 
  5. Leave all other options as default and click "Save Component".

First, we're going to add the two quantity fields for the two types of registrations: SLA and Non-SLA. 

  1. Add a new textfield with the label "# SLA Attendees ($25/person)"
  2. When configuring the new field, locate and expand the "Commerce" fieldset.
  3. Choose "Quantity: The user enters a number of this item to buy" and enter 25 into the "Price for this item" field.


  4. Click the "Save Component" button

  5. Add another textfield with the label "# Non-SLA Attendees ($75/person)"

  6. Locate and expand the "Commerce" fieldset.

  7. Choose "Quantity: The user enters a number of this item to buy" and enter 75 into the "Price for this item" field. 

  8. Click the "Save Component" button

Next, we're going to add the "Extras" that the group can purchase to enhance their training session, including Veggie Bags and Foot Massages.
  1. Add a field of type "Select" to the webform with the label "Extra Options for Your Group"
  2. Locate and expand the "Commerce" fieldset.

  3. Choose "Each option represents something which can be purchased"

  4. Leave "Default price for each option" blank

  5. Scroll down to the "options" fieldset and add two options: "Veggie Bag Service ($5 for your group)" and "Foot Massage Service ($25 for your group)". By specifying the price in the option label, we tell the DD Commerce module how much to add to our order.

  6. Because we want the user to be able to check either or both options, check the "Mutliple" checkbox, which will turn this element into a series of checkboxes instead of radio buttons. (Remember—"mutliple" is like toppings on a pizza. Not choosing multiple will only allow the user to choose one option at a time, which is great for t-shirt size, where you want the user to choose S, M, or L, for example.)


  7. Click the "Save Component" button.

And next, we're going to add a Donation field
  1. Add a field of type "textfield" with the label "Donation" to the webform
  2. Locate and expand the "Commerce" fieldset
  3. Choose the option titled "Amount: The user enters a dollar amount to pay for this item (e.g. a donation)"
  4. To make this field extra pretty and concise, let's enter "5" for width, set "Label placed to the left of this textfield" to "$", and set "Label display" to "inline".
  5. Click the "Save Component" button.

Finally, we'll add a coupon field.
  1. Add a field of type "textfield" with the label "Coupon code" to the webform
  2. Locate and expand the "Commerce" fieldset
  3. Choose the option titled "Coupon"
  4. In the Coupons textarea you'll need to add coupons which can be used for discounts. Add "SAVE10 | $10", or another example as described below the textarea.


  5. Click the "Save Component" button.

Now, we have created a simple webform that will do all the basic things we need it to do. Note: if this were an actual production registration form, we would may want to collect other information about the user, although name, address, and email are typically collected by PayPal so may be unnecessary to collect here. Also, we would want to use advanced webform validation to ensure that at least one of the two registration quantity fields had a positive integer value.

Your Webform should now look like this:


Click "View Current" and you should now see your beautiful new form! As you choose options, you'll see it total up the order at the bottom. When the user submits the form, the webform will be submitted and they will be redirected to PayPal for checkout. After successfully checking out, they will be redirected back to the site and the site will log their purchase.


Tutorial 3: How to sell a premium subscription or access to member-only content


In this tutorial, we will grant "member" access to the site for 1 year upon successfully buying a veggie bag (in Tutorial 1) or registering for a website training session (in Tutorial 2). 

  1. Complete either Tutorial 1 or Tutorial 2 above.
  2. Edit the post
  3. Scroll down to the "Commerce" tab
  4. Choose "member" under the section called "Give the user a certain role"
  5. Set the "When does post/role access expire?" to 1 year.
  6. Save the post
Now, when this transaction is successfully completed, the user will be granted a role upgrade. If the user is not logged in, the user will be prompted to log in or create an account after checking out. Note that subscriptions or access to premium content by selling a role (e.g. Member) can be used in conjunction with content peeking to allow the user to get a glimpse of the premium content, enticing them to buy access. After one year, the user's role will be removed.


Frequently Asked Questions


Why don't I see the "Commerce" tab? 

in order to use this functionality, you will need to send a support ticket through the helpdesk to enable the DD Commerce module. The support staff will also work with you to enter your PayPal API keys into the site to activate the features described below.


What payment methods are supported?

Currently, only PayPal is supported. Fortunately, PayPal is a popular and reputable provider and accepts most major credit cards and also does not require users to have a PayPal account, allowing anyone with a major credit card to purchase your products or services.


Can users without a PayPal account check out? What if we just want to have people pay by credit card? 

No problem! Although, PayPal is the payment processor, but anyone with a credit card can simply checkout and will not be required to create an account.


Does DD Commerce help me do Sales Tax Calculations: 

Unfortunately, no. PayPal also does not automatically or easily calculate sales taxes for shipped items. Calculating sales tax for physical items is not a trivial task. If you are planning to sell lots of physical items online, please consult with your accountant or attorney about how your organization can be in compliance with Sales Tax laws and consider a third-party full service shopping cart solution.


Does DD Commerce integrate with Shopify?

We have also been experimenting with Shopify integration, however, we are finding that it creates a more confusing checkout experience, is significantly less flexible and difficult for our clients to set up. If you are using Shopify, please let us know via a support ticket, as we'd like to learn more about how our clients are using Shopify in their sites.


Does DD Commerce integrate with EventBrite?

No, however, it doesn't need to. EventBrite is a standalone solution that has widgets that can into a post using the HTML Embed field. Please submit a support ticket and we'd be happy to help you integrate EventBrite into your site!

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article