DPD Loves Olark

  • Jason@DPD
  • December 8, 2010
  • No Comments

This week we added a new feature to our website- live chat through Olark. The verdict so far? We love it. We don’t often write about other services here, but we’re really pleased and think that live chat could be a powerful tool to help our vendors with their sales and conversions so we’re going to tell you our experience thus far-

Olark has a different approach to live chat than many other services- they use the common XMPP protocol for their chat servers instead of proprietary software. For those not up to date on chat protocols, the XMPP protocol is the same thing that Jabber, Google Talk, Facebook Chat, and a host of other chat services use. XMPP support is built in to every multi-protocol chat client and is a snap to set up.

Here at DPD that’s pretty important- I’m on Windows 7, Jacob is on a Mac, and Scott gets the geek badge for developing on Ubuntu. We needed something that would work on all platforms and even our Android phones- Olark fit the bill.


Olark provides you with a bit of javascript to place in the footer of your site. Thats it. It took 30 seconds to integrate Olark with DPD, and 25 of those were waiting for the editor to open.

Client Setup and Usage

Using Olark with Pidgin
Olark integrates with your chat client like any other service and gives you interesting user information
On my Windows desktop I use Pidgin to keep in contact with the other DPD guys as well as friends and family. Olark integrates with Pidgin using the XMPP protocol as you can see in the screenshot to the right. Visitors to your website are shown with some basic information- where they’re from, what page their looking at, what page referred them to the site, and how long they’ve been browsing around on DPD.

We did a little programmer magic using Olark’s API to automatically display usernames for logged in DPD users to help us be even more effective with support (the logged in visitor’s usernames are blurred in the screenshot to protect our users privacy).

When a user sends a live chat request, it broadcasts a message to all the operators who are online and not “away.” Any operator can reply and “claim” the chat, and if needed you can transfer them to someone else with a simple !transfer command in the chat window. You can also be proactive and pick someone from the list to initiate a chat from your end- you just open a chat window and start typing like you’re sending a message to your Aunt Ruth.


Olark Customization Options
Olark gives you several themes and lets you further customize them
Olark lets you customize the chat box to your hearts content. They have several pre-made themes, and you can further customize the available themes to your liking.

There are a lot of extra customization features too- You can customize your offline message (as we’ve done with a link to our knowledge base), specify what email to send offline messages to, window behavior and options, and more.

Reports, Transcripts, and More

In addition to integrating with Google Analytics, Olark has built in stats from Mixpanel that show how many visitors have been to your site while you were online, how many you missed when you were offline, and how many chats you had for a given time period. This is great for figuring out the best times to offer live support!

Olark Stats
Olark's built-in stats show engagement numbers

Olark can also optionally record transcripts and email them to a specified address, great for quality control, follow-up, and supervisory functions.

Olark’s Hatchery is their experimental playground with some neat stuff in the works- you can optionally enable an auto-translate plugin that uses Google Translate or check out some new experimental themes. It’s great to use a service that is under active development!


We haven’t really had any problems with the service, but Olark has a well documented API that let Jacob add our user data to the chat widget in minutes. For the one question I had, I chatted up Olark on their site and spoke to Zach, one of the Olark founders who promptly answered my question. He seems like a pretty swell guy too 🙂

Olark does have premium email support for paid users and I expect that will be just as great as the rest of our Olark experience when we need it.

The Verdict? We love it.

There are a lot of things we like about Olark– it’s pretty awesome to see the visitors on your site, where they came from, and where they are in the world in real time. The live chat works well and the extreme ease of setting it up in our own chat clients, with no annoying software, gets bonus points in our book. We’ve generated new happy customers with the live chat feature, and thats really the bottom line.

Olark plans with unlimited conversations start at $15/mo and they even offer a free plan limited to 20 conversations a month so you can try it out and see if you like it. This is one service we wholeheartedly recommend to our vendors and we bet it will improve your conversions too.

DPD is not affiliated with Olark in any way, we’re just happy customers 🙂

Recent PayPal IPN Issues: Postmortem

  • Jacob@DPD
  • December 8, 2010
  • 1 Comment

Instant Payment Notifications (IPNs) are key to how DPD processes and validates PayPal orders. We receive an IPN for each successful purchase that triggers an email and activates the buyer’s purchase. To make sure we are receiving an actual IPN from PayPal to prevent unauthorized download, DPD contacts and verifies each IPN with PayPal. We either get a VALID or INVALID response.

In the past week or so we noticed a spike in failed IPN verifications from PayPal due to the continued rollout of PayPal’s new site. These sort of breakages aren’t uncommon with PayPal and they’re reasonably quick to address these types of issues. We normally don’t have to make any changes on our end before PayPal rolls out a fix. This time was different- There was no fix or even mention of the issue on PayPal’s site and failed IPN verifications were piling up.

So we dug into the logs and figured out what changed. Yesterday we rolled out changes to address the problem. We’re happy to report that we are now seeing a 100% success rate in validating IPNs.

If you are seeing new purchases with the “Error” status, this is most likely caused by an incompatable character encoding in your PayPal account profile having trouble with names and addresses with special characters in them. Please take a moment to enable UTF-8 (item #5) in your PayPal account. This fixes 99% of the remaining IPN validation errors.

What follows is a technical analysis of what happened and how we fixed it. We are posting this in hopes of helping other PayPal developers.

Geeky Programmer Stuff Below…

(Code samples are in PHP.)

The first problem is with generating the validation params. In every IPN validation sample out there, including on PayPal’s own site, you will see the following code to build the validation request:

$req = 'cmd=_notify-validate';

    foreach($params as $key => $value) {
      $value = urlencode(stripslashes($value));
      $req.= "&$key=$value";

There are two things wrong with this snippet. First, PayPal sometimes sends three extra parameters. The most important of those is the cmd parameter. This causes the validation command to switch from _notify-validate to whatever PayPal includes in their IPN and PayPal responds with a 400 Bad Request error. The CONTEXT, myAllTextSubmitID, and form_charset parameters do not have any effect on validation. Adding a unset($params['cmd']); before the foreach fixes the problem.

Secondly, the call to stripslashes is not needed. PayPal likes for you to send back the string exactly as they sent it to you, and they send strings with slashes included. Go figure.

The fixed validation request builder looks like:

$req = 'cmd=_notify-validate';

    foreach($params as $key => $value) {
      $value = urlencode($value);
      $req.= "&$key=$value";

DPD Now Supports AlertPay Payments!

  • Jacob@DPD
  • December 7, 2010
  • No Comments

We’re happy to announce beta support for AlertPay as a processor choice for your DPD cart!

Adding an AlertPay product is easy:

  • Create a new website
  • Choose AlertPay from the drop-down menu and enter your AlertPay login and IPN code
  • Login to AlertPay and enable IPN support with the URL we display in your website setup
  • Add your product to the new website

DPD supports AlertPay for both instant, single item checkout as well as using our multi-item checkout cart.

We only support digital and key code products at this time. We will be adding tangible support in the future, along with more processor choices.

Using DPD Coupons for Seasonal Promotions

  • Jason@DPD
  • November 23, 2010
  • 1 Comment

In 2009, comScore reported that online spending increased 5 percent on Cyber Monday to $887 Million. With Black Friday and Cyber Monday being the two busiest online shopping days of the year, we thought it was a great time to share with DPD vendors how to make special, limited coupons to entice sales during these spending frenzies.

DPD’s coupon controls offer a couple unique features to build excitement and offer a compelling call to action for your buyers that are especially applicable to seasonal sales like Black Friday and Cyber Monday:

Use Limits – “50% Off Only To The First 100 Customers!”

DPD coupons can be configured to only work for a specified number of uses. This is great for promotions where the first X number of people get a special deal, or to limit the total number of people that can take advantage of the offer.

Activation / Deactivation Dates – “Only valid Friday, Nov. 26th thru Monday, Nov 29th!”

Vendors can set an activation date and time as well as when a coupon automatically deactivates. This can be set down to the minute so a coupon promotion can last minutes, hours, days, or weeks.

Setting up a Limited Coupon:

In the screenshot below, we’ve set the limits for a special seasonal discount coupon that will only be valid for the first 100 customers and only from 12:01AM Black Friday (Nov. 26th) through midnight on Cyber Monday (Nov 29th). This is just an example- you can set your coupon to your own discount conditions.

DPD Coupon Discount Conditions
DPD Coupon Discount Conditions

Setting up your own limited coupon is easy- you can mix and match any of the options below:

Required Product – If you only want this coupon to apply to a specific product in your store, select it here. Otherwise, leave it on Any Product to allow them to use the coupon for any purchase.

Max Uses – If you only want to allow this coupon to be used a specific number of times, such as a limited promotion for the first 50 buyers, then set this number to the number of checkouts with the coupon you want to allow. If you want the coupon to be available to all customers then leave this blank or 0 for unlimited.

This is not a limit on the number of times a coupon can be used on one checkout. DPD never allows coupon stacking where they can apply the same coupon to one order twice.

Minimum Order Amount – If you only want this coupon to apply to a minimum order, set that amount here. For example, you might have a coupon for “20% off your order of $50 or more!” In that case, you would set your 20% off coupon minimum order amount to “50”

Minimum Quantity – If you want a coupon to only work when a set number of items are being purchased, enter that number of items here. For example, “20% off when you buy 3 items or more!”

Activation / Deactivation Date / Times – This is where you set a range of time for your coupon to be active where it can be used. This is useful for both preparing promotions beforehand as well as creating limited time offers.

DPD has a handy date picker where you can select the dates for your promotion. For those wanting down to the minute control, you can set the time of day when the coupon will activate/deactivate. All times in DPD are 24-Hour time, (UTC-05:00) Eastern Time (US & Canada), and the common city associated with the time zone is New York.

Please note, if you set a coupon for a future activation date / time then it will appear as inactive in DPD until that time, even if you set the status to active when creating the coupon. DPD will automatically activate the coupon at the set activation date/time.

With DPD coupon discount conditions a whole range of “limited” promotion opertunities are available. From “Limited Time” and “First 50 customer” call-to-action offers to upsale inducing discounts on $XX cart total or X number of items, DPD offers the controls to set a promotion up just how you want and make more sales!

Important Notice: PayPal is Having Lots of Issues Today

  • Jason@DPD
  • November 12, 2010

Today has been one heck of a day for PayPal. They have been having problems with their API system, Webflow system, Website, Developer Sandbox and just about everything else. This has caused all manner of havoc for vendors and your loving DPD support staff.

It’s never fun for us to tell vendors that PayPal just isn’t working, even when it’s completely out of our control, but we’ve had to several times today. We just pushed an update to DPD that should help mitigate some of the purchase errors that some vendors are getting, and hopefully this will fix 99% of the problems that DPD vendors are having today.

Some purchases for a number of vendors were not activated when PayPal failed to send out Instant Purchase Notifications (IPNs) or malformed IPN data. DPD uses this IPN data to verify that a purchase was paid for, so when PayPal doesn’t send it (or sends garbage) then DPD can’t verify a purchase and activate a download. We’re working on identifying all those transactions that PayPal messed up and correcting them manually.

Currently there are 47 broken transactions out of 3000+ vendors but we normally average less than 1 error a day so this is unacceptable- we’re doing our best to make it right for everyone affected by the PayPal IPN sillyness. If you have transactions with the status of “Error” in your DPD Purchase List, please contact support so we can take a look at them. We can’t control PayPal’s problems, but we’ll do our best to clean up the damage for our users.

[box type=”note” style=”rounded” border=”full”]Update: We’ve activated all the transactions we could find that were affected by PayPal’s issues and were not already refunded by the vendor. We’ll continue to monitor incoming IPNs for further issues.[/box]

Internet Marketing Techniques for Selling Music

  • Jason@DPD
  • October 29, 2010
  • No Comments

Seamus Anthony, a Melbourne, Australia-based musician and DPD user has written a great article on taking advantage of internet marketing techniques to promote music as an independent artist.

He talks about not only getting more exposure for your music, but also making sales:

[quote]Classic Internet marketing is not usually the kind of thing that musicians tend to consider appropriate for promoting their art. Yet to me, giving it a go makes perfect sense because getting more Facebook “likes” or YouTube views is one thing, and an important thing, but it’s not a sale.[/quote]

He also mentions DPD as a platform for not only selling your music, but also as a content delivery network for distributing your free track downloads.

Give it a look: Do Internet Marketing Techniques Work for Selling Music?

New PDF Encryption Features

  • Jason@DPD
  • October 22, 2010
  • No Comments

Why does it seem like we only update on Fridays now?

This morning we released an update that brings enhanced security options to PDF products. In addition to PDF Buyer Tracking / Stamping that marks each page of the PDF with the buyer’s information to discourage sharing, DPD can now automatically encrypt your PDF documents to prevent tampering and minimize plagiarism and abuse.

Using the new feature, DPD will automatically encrypt your PDF document to lock future editing. You also have the option to prevent printing as well as prevent copying of the PDF contents (disables copying and pasting of the PDF text).

PDF Advanced Options Panel
PDF Advanced Options Panel with PDF Stamping and PDF Encryption Options

You can use the new PDF encryption feature with or without PDF Buyer Tracking / Stamping. When you use both, DPD will automatically add your tracking stamp to the pages you specify, then encrypt the PDF to prevent removal.

Like all DPD features, setting up PDF encryption is as simple as clicking a few options when configuring your product- no complicated encryption URLs or keys.

The same rules apply for PDF documents using the encryption feature as with the stamping feature- we must be able to edit your PDF document to apply the stamp so you must upload an unsecured PDF, but now we’ll lock it down tight when we’re done!

If anyone has any questions or comments on the new PDF encryption feature we’re here to help! Leave a comment here or submit a support request and we’ll do our best to answer any questions you may have!

Everyone Have a great weekend!

New Payment Pending Page

  • Jacob@DPD
  • October 12, 2010
  • No Comments

As many of you have noticed, the payment pending page is popping up a lot more often than it used to. PayPal released an updated website a couple of weeks ago and removed one of the features we used to ensure quick, reliable payment. Our old pending page was really meant only to be displayed in extreme cases and was in all honesty a bit scary for your customers to see.

As of five minutes ago, we’ve changed the payment pending page to be a more friendly “working” page that looks like this:
New payment pending page

We’ve also changed this page to update every 15 seconds.

Also in this update:

  • Added product purchase limits. You can now offer limited availability products.
  • Your billing history now has printable invoices for your records.
  • Product key codes longer than 40 characters can now be entered without causing the code to split.
  • Combo/bundle products can now include tangible products. Previously only digital and key products were allowed to be bundled.
  • A minor JavaScript error was fixed in the cart in Internet Explorer (all version).

MailChimp: Planned Outage on Oct 10

  • Jason@DPD
  • October 8, 2010
  • No Comments

TGIF!   This is just a quick heads-up reminder all DPD vendors using the DPD MailChimp Integration that they have a planned outage this weekend on October 10 at 1 AM ET.  They anticipate the outage will last from 2 – 4 hours while they upgrade their systems.

From the MailChimp Blog:

We’re moving a large portion of MailChimp’s brain power to a much bigger, much faster server. Our recent growth, and the rapid uptake of Social Pro (there were more than 50 million social data queries since we made it free 2 weeks ago in v5.3), mean we have to add extra capacity much sooner than anticipated.


Most of our upgrades are like changing tires on a moving car: we rarely pull over to stop, because your emails, your open tracking, and your list subscriptions never stop. But this upgrade is more like swapping out our engine (and adding in 4 turbochargers, plus a larger trunk), so we have to stop the car this time. That means open tracking, click tracking, list subscriptions, and everything will be temporarily turned off.

This means that DPD products and websites using the MailChimp integration will not pass purchasers details to MailChimp while they’re offline.

We’re sorry for the inconvenience this might cause DPD vendors, but MailChimp has picked the best time of the week to do it when both general internet traffic and DPD purchase activity is at its lowest. MailChimp is pretty awesome though (we use them for our pathetically infrequent update newsletters) and this is the first outage we’ve ever seen from them.  I’m sure they’ll be back online with more-better-faster services for everyone before you know it!

Product Coupons and Other Fixes

  • Jacob@DPD
  • October 4, 2010

We’ve added coupons that only apply to one product! Yes, we can hear you in the back muttering finally. We really don’t know why we waited this long to add them. Hop on over to your coupon list and restrict your coupons until your clicking finger gets a cramp. Percentage coupons apply to the subtotal for that product while fixed price coupons only apply that amount off, regardless of the quantity in the cart.

We’re a little up in the air about the best way to handle fixed price product coupons. Drop us a support ticket or add a comment to this post and we’ll make it work however you guys think is best.

Also in this update:

  • Google Checkout edit cart and continue shopping URLs are now automatically supported.
  • A few style fixes. The customer list has been cleaned up quite a bit. We were a bit embarrassed about that page.
  • Payment processor fees are displayed on the purchase detail page for PayPal and PayDotCom checkouts. We’re trying to find a way to record the fees for the other guys as well.
  • The customer’s billing country is displayed on the purchase detail under the processor fee.