Blogs

Measurable Increases due to Drupal Conversion

moneytree.jpg

We are often asked about the efficacy and efficiency of the Drupal content management system and I wanted to share some concrete examples of how the system can be helpful to your organization or business.

Case Study: Increase in signups

One of our clients converted to a Drupal/CiviCRM mix in 2012 and that year was their biggest year in history, in terms of signups. We attribute this to the ease of use of the signup form as well as the ease with which the CiviCRM process allowed the manager to process applications and easily "weed out" applicants that didn't fit their profile, as well as easily contact those applicants who were a good fit.

In this case, the ease of use of the Drupal and CiviCRM application forms and reporting system directly contributed to the ability for staff to efficiently use their time.  "It is soooooo easy to do stuff now. In 2012 we registered more new recipients per month than we ever have in history!! We are up to our gills over here."

 

Case Study: Increase in site visitors

When we converted the A Successful Woman website to a Drupal version, we saw a measurable increase (67%) in unique visitors, most probably due to the ease of adding new content and the ability for the site to automatically update the search engines with new content. We see the "crossover" happening as new content was added on the Drupal platform. Notice the steady increase (blue line) in the baseline of visitors as time passes and the site becomes increasingly more "crawled".

crossover

 

 

 

Case Study: 10%+ increase in revenue

One of our membership organizations offers annual memberships, paid online. The previous system was somewhat difficult to manage and did not integrate with a mailing list, which was one of the premium features of membership with the organization. Converting to Drupal not only increased revenue but we saw a 10% increase in unique visitors to the site.

We attribute the increase in revenue to the easy notifications that are auto-sent from the website to the user to prompt them to renew their membership. Multiple notifications are sent in this case, to give the user ample opportunity to pay online. Because the rest of the process is automated, the user then gains access to all facets of membership such as a directory listing, access to the e-mail listserv, and all members-only content such as resources, slideshows, webinars, and event handouts.

 

Jan 1 through Apr 30 2012 Revenue (before conversion)

Total revenue = $66,677 in that timeframe


Jan 1 through Apr 30 2013 Revenue (after conversion)

Total revenue = $74,280.50 in that timeframe

Using Organic Groups Mailing List to Post By Web and Post by E-mail within a Membership Association

Daily Digest sample

For our membership directory clients, or those who are trade associations, dues-paying groups, or closed networks of users, the combination of Drupal, Ubercart, Organic Groups, and Organic Groups Mailing List is a powerful one.

The Drupal framework allows users to add, edit, and delete information based on their level of permission; so, for example, a user may contribute their own "directory listing" to a main "member directory", or purchase their own advertising, or contribute to the blog, or participate in the forum.

Ubercart can handle all sales and assignment of "roles" based on the product purchase; for example, a "One-Year Membership" fee can be collected, and upon payment the role of "paid member" may be assigned for a certain time frame (usually 365 days). This can be split into a recurring fee, such as a monthly charge that allows access for the next 30 days of service.

Organic Groups is a powerful tool to allow logged-in members only to access the content that is marked as belonging only to the group. This can pertain to links, articles, news, resources, or even file uploads.

The Organic Groups Mailing List feature offers the ability for users within a particular group to communicate with each other either via e-mail or via web posts. Its convenience lies in the fact that any post written via e-mail can be cross-posted automatically to the website (for members-only access), and any post writen via the website can be e-mailed automatically to all those who have elected to receive e-mail.

The mailing list feature can be further broken down into on-the-fly e-mails, which are delivered as they are sent, vs. digest-only e-mails, which are concatenated upon a daily cron run (for example, at 8pm in the evening), and delivered as a digest of all the day's activity, similar to Yahoo! listservs. 

Yet another added bonus is the ability, with some additional "tweaking",  for digests to be stored on the live website in a calendar format, which allows for additional archiving and retrieval of past digests sent.

For those membership groups that allow member-specific information and sharing of resources and information, this complete set of mailing list tools is a wonderful way to support the connections and networking that can be found within the pool of members. By automating much of the setup and role assignments, membership group administrators and staff can then focus on programming, conferences, industry partnerships, and other ways to provide added value to members, rather than using precious time to manage the website or deal with registrations, dues renewals, or administrative tasks.

Using Ubercart for E-commerce

Ubercart

On the Ubercart e-commerce solution that we typically use, there are many, many different options to handle different types of needs, such as:

  • Collecting membership dues and assigning appropriate permissions and roles based on the product purchase
  • Selling products from a single store
  • Selling products in a marketplace situation, with multiple sellers
  • Offering a "catalog" of items
  • Selling event tickets
  • Providing digital downloads


There are many options within the available "universe" of tools. Here are some tips that we've used to great effect:

1) Integrating Follow-ups

If your customer is in the process of purchasing something, and then decides against fulfilling the order so that the cart is now "inactive" or "abandoned," it's possible to set up the "Follow-ups" module to send a reminder e-mail to that person within a certain time frame. We use this with a coupon and/or a gentle prompt with a customer service phone number if the customer is having issues. This e-mail typically encourages the user to complete their chectkout.

This can also be used as a follow-up prompting a product review, or some other action that you'd like the customer to take, if the followup is sent within a certain time frame (such as 100 hours after an order is marked as shipped).

2) Offering discount coupons

The coupon code is a time-honored way to encourage your followers to peruse the catalog. Our clients offer codes to their Facebook or Twitter or Pinterest users, driving them back to the website to purchase a product or service.

3) Assigning a role upon purchase

For membership organizations, being able to track a user's status can be made more automatic by offering a certain role for a certain time frame (for example, "paid member status for 365 days") after the purchase is made. There is an automatic followup that can be sent to the member within, say, two weeks of their expiration date. By using "views" of the data to figure out who is due to follow up, or who is recently expired, you can retain your general membership and increase the automation of collecting dues.

4) Digital download upon purchase

It's possible to offer a digital purchase, such as a music track, a set of images, or a white paper or report. By offering the digital download, when a customer checks out, they receive a unique e-mailed link to download a copy of the file. The link is valid for a certain number of downloads and/or must be used within a certain time frame. The link expires after the download is complete.

5) The "Marketplace"

The Ubercart Marketplace module allows a store owner to offer "sub-classes" of products where other storekeepers may sell products within the e-store, with a potential for a commission to be charged on any sale originated in that marketplace. The Marketplace module offers a powerful way to aggregate multiple sellers' products into one catalog and automate the process of notifications and checkout in exchange for a variable fee, such as a fee charged to set up a storefront and/or a fee charged on every purchase.

 

6) Affiliate sales

With affiliate marketing, an affiliate may use their own code and generate a link to a product on your store, gaining a percentage of any sales that originate through that link. Ubercart Affiliates offers a way for the store owner to control, report on, and manage affiliate-generated sales and commissions, on both physical products and digital downloads.

7) Shipping, taxes, additional fees

It's possible to configure your store to match your business-specific needs regarding shipping, taxes, or other fees. For example, California-based companies add extra "Rules" to collect tax based on the customer's city, based on Board of Equalization requirements.

 
In general, the Ubercart solution is powerful enough, and elegant enough, to cover 95% of our customers who need e-commerce.

Making a Difference

All Aboard

Through our work at 10K Webdesign, we have always done our best to support the kinds of causes and clients we most resonate with, including organizations that

1) support women, children, and families

2) increase access to music, film, and the arts

3) are green and clean businesses with a focus on sustainability

4) carry some measure of increasing civic/political involvement

5) increase women's economic access through entrepreneurship and job creation/training

Over the last 9 years, we've been privileged to play a behind-the-scenes role in helping grow innovative and effective programs in California, Hawaii, and the East Coast - you can read more in our "Testimonials" section.

Now we're in a more mature stage of our development and we're looking forward to doing more to support those who need a website refresh or more complex functionality such as member-created content, members-only content, dues-paying online, e-commerce, or surveys/quizzes/online courses.

We're focusing on building the LOHAS / social justice / conscious creative / green-and-clean community, so if any of the below fit, please contact us:

Typical clients:
* Public agencies
* National, state and local nonprofits
* Membership organizations
* E-commerce vendors / Startup vendors

We are excited if your project:
* Builds community
* Fosters a feeling of connectedness
* Aspires to make the world a better place (more tolerant, more understanding, more compassion)
* Is fair trade, organic, holistic, sustainable, and/or a B-corp

We are thrilled about:
* Cornell graduate in leadership or management

Brownie points for:
* woman-owned
* minorities
* locavores / vegans / vegetarians
* DIY people
* artisans / craftspeople / producers

Not a good fit (nothing personal):
* gambling
* casinos
* violent gaming

If your company, business, or project fits any of the above and you are looking for a website presence that measurably builds your business/campaign/project, please use our pricing estimator or contact us for more details.

There are many open-source, cost-effective, highly functional tools that can help get you from Point A to Point B, C, and beyond.

Let us help you get to your destination.

 

Integrating an E-junkie Store into your Drupal site

E-junkie code

For one of our clients, they have an E-junkie store to handle digital downloads as well as to accept payments for physical products.

You have an option to integrate E-junkie into your regular Drupal pages as widget code that is generated by E-junkie, OR you have the option, which we took, to create a new content type and do a little "finagling" to get the E-junkie product to display.

We created a new content type called "E-junkie item" and then changed the node template for that type of node so that it has a customized display of information for the mandatory "Add to Cart" and "View Cart" buttons.

For the display of merchandise itself, we simply created a View of all the available "E-junkie items" organized by ascending title.

Here's the code for how we integrated the unique E-junkie "id" to display the Add to Cart and View Cart button.

 

 

Creating a "Badge" for Directory Members

Badge Logo display

For many membership directories, it is important to allow fully paid members to download code with a "badge" in it that links back to that organization, sort of a "Certified Member" or "Current Member" badge that demonstrates that member's participation.

For a website we created for a membership directory, we created a new content type specific to different types of artwork, and uploaded a variety of graphics (pngs and jpgs) using this new content type.

Then, we rearranged the node template (in our case, node-artwork.tpl.php) with the following code:

This rewrites the display of each artwork to show itself as a downloadable badge.

Members can then choose which badge they desire and add it to their own website, typically in the footer or sidebar.

Custom variable output for location CCK field to pass to Google Calendar

I recently worked on a Drupal 7 installation with a custom node.tpl.php template for the Event Calendar. 

What I wanted to do was add a quicklink where the event details could be easily posted to a user's Google Calendar. 


To do so, in the node-event.tpl.php file, I first identified all the variables available to the node using the

<?php print_r($node); ?>

This helped identify all the variables, including the location fields and date fields.

I then created some code to parse the event date field into a format that Google Calendars can understand using the explode and preg_replace PHP commands.

What this does is convert a regular date entry like 2012-08-31 17:30:00 into this string:  20120831T003000Z.

 

Google uses the following format:

<http://www.google.com/calendar/event?action=TEMPLATE&dates=STARTDATE/ENDDATE&text=TITLE_OF_EVENT&details=DETAILS_OF_EVENT&location=LOCATION_OF_EVENT>

where, in my template, I pulled out the variables as follows:

 

START_DATE= $node->field_date_of_event['und']['0']['value'];
END_DATE= $node->field_date_of_event['und']['0']['value2'];

 

LOCATION = $node->field_locationofevent['und']['0']['name'];
ADDRESS= $node->field_locationofevent['und']['0']['street'];
CITY= $node->field_locationofevent['und']['0']['city'];
 

What happens then is a nice way to take an existing Date CCK field and turn it into something that can then be posted to Google Calendars. In combination with the AddThis module, this makes for a great way to share and store the data about the event.
 
See it in action:
 
Here's the new node--event.tpl.php file with a Google Calendar icon on the far left:

 

When you click on the icon, it brings you to Google Calendar where you can then save the calendar item to your own calendar.

 

 

Quick Payments and Donations with PayPal and Google Checkout

Payment Processors

The vast majority of 10K Webdesign clients choose to use one or all of the following for payments online:

1) PayPal

2) Google Checkout (Google Wallet)

3) Authorize.net

In our projects, we typically use Ubercart to handle the shopping cart and checkout functionality, along with one or more of these payment processors.

PayPal is free to sign up with an e-mail account and charges a 2.9% transaction fee, with lower rates for more monthly volume.. You must have a bank account to which you'll attach your PayPal account. By setting up a PayPal account, you accept payments from Amex, Discover, Mastercard, and Visa, as well as from someone who already has a PayPal account. Buttons can be created and placed directly on your site, and you receive a simple e-mail notification when you've received a payment.

Google Checkout is also free to sign up with a Google Account and has a 2.9% + .30 per transaction, with lower rates for more monthly volume. You must display your business' Federal Employee Identification Number, or you may offer your own Social Security Number with a credit card to "enable" your account. 

Authorize.net has a registration fee and monthly fees/transaction fees, depending on your package. Check the website for the most up-to-date details. If enabling Authorize.net, you'll also need to have a dedicated IP address on your host as well as a (strongly recommended) SSL certificate (both of those can be purchased through your Nexcess hosting account).

 

Payments through all of these processors work in a similar fashion: the shopper assembles items into their cart, then "checks out" using a payment, then the notification of the payment is sent back to your website and some additional actions may be set up (for example, upon receipt of member dues, the shopper is "promoted" to member status, or upon receipt of payment, the shopper may access a digital download of PDF or JPG file/s.

 

Depending on your requirements and budget, either one, two, or all three options for payment are available to you. There also may be other ways that emerge as being a good "fit" for you, depending on your needs, such as Amazon Payments, WePay, and more.

 


PayPal

http://www.paypal.com
2.9% + $0.30 per transaction
No Setup Fee
No Monthly Fee
No Cancellation Fee


Google Checkout/Google Wallet

Monthly Sales Through Google Checkout Fees Per Transaction
Less than $3,000 2.9% + $0.30
$3,000 - $9,999.99 2.5% + $0.30
$10,000 - $99,999.99 2.2% + $0.30
$100,000 or more 1.9% + $0.30

No Setup Fee
No Monthly Fee
No Cancellation Fee


Authorize.net

Payment Gateway Fees
  Setup Fee $99.00
  Monthly Gateway Fee $20.00
  Per-Transaction Fee $0.10
  Batch Fee $0.25
 
Standard Features
  Payment Methods
All Major Credit Cards
Signature Debit Cards
Electronic Checks (additional fees apply)*
FREE
  Virtual Terminal FREE
  Batch Upload FREE
  Merchant Interface
Transaction Review and Management
Online Reports and Statements
Account Configuration
FREE
  Processor Connections FREE
  Customer Support
Phone, E-mail, and Live Chat
FREE
  Fraud Prevention and Security
Address Verification Service (AVS)
Card Code Verification (CCV)
FREE
  Connection Methods FREE
 
Value-Adding Products (Optional)
  Automated Recurring Billing™ (ARB)
Setup Fee
Monthly Fee

$0.00
$10.00
  Advanced Fraud Detection Suite™ (AFDS)
Setup Fee
Monthly Fee

$0.00
$9.95
  Customer Information Manager (CIM)
Setup Fee
Monthly Fee

$0.00
$20.00
 
  * Please see the fees page in the application for complete information

 

Using Cacheing on your Drupal site

Cacheing

With many of our websites, there is a desire to balance load time against the importance of displaying updated content.

We recommend a simple "cache" mechanism for your most commonly-used views and blocks, so that a version of the content for that section is held in memory and served to specific types of users.

For example, you can offer a cached version of the view for anonymous and authenticated visitors, whereas the administrator coming to the site will always see the most updated item.

Cacheing within Drupal views comes in time-based increments:

  • Never
  • 1 minute
  • 5 minutes
  • 30 minutes
  • 1 hour
  • 6 hours
  • 6 days

Depending on your needs, you can offer a cached version of your site to allow your site visitors to have a speedier download. In our own properties, we've put a cache of up to 6 days on front page information to allow editors the chance to "vet" the content before it goes live.

 

 

 

Displaying a User's Unique Content

Import a View

In terms of usability, it is helpful to a website user to have easy access to all their existing content that they've created on the site.

We've created some code you can use as a "View" in Drupal: this allows access to the user to view their own unique content in a page and in a block format.

When users can access their most recent items, they can then remember what their most recent activity on the site was, at least in terms of new node content added like blogs, events, announcements, profiles, stories, or resources.

A logged-in user may navigate to //path/to/website/myuniquecontent for a review of all available content they've posted to the site.

To import this as a view, log in to your website as the "user #1" and go to Views | Import.

Copy and paste the text into the import window.