We quietly made everything faster and better!

  • Jason@DPD
  • August 8, 2017

Harder, Better, Faster, Stronger

Over the past few months we’ve been working on setting up a new environment for DPD to run on that will be scalable, handle bursts in usage better using magical load balancers, be more secure and resistant to attack, and deliver better database performance when people do those really big customer and purchase list searches that used to seem to take forever.

I’m happy to say we’ve completed our migration of the DPD database, admin, cart, and ftp to our new expanded Amazon Web Services environment and everything is… fast. Like, really fast. You should see a noticeably faster admin and checkout for your customers immediately!

This is what we’re using!

Want to nerd out over some technical sounding acronyms? Here you go!

  • ELB – Elastic Load Balancer – to balance load, natch.
  • EC2 – Elastic Computing Cloud – The cart and admin are running on EC2 now, so we can scale and spin up more instances when the ELB says we need to.
  • RDS – Relational Database Service – to store and serve customers, purchases, and product records
  • AWS DynamoDB – Storing all those admin sessions and bajillion cart sessions for every buyer
  • AWS Lambda – Doing fun little things like stamping PDFs and creating MP3 samples, sandboxed and safe away from other code.
  • S3 – Product storage, backup, and delivery
  • Cloudfront – CDN for serving up assets across the entire platform
  • Route53 – DNS service, making sure all our domains and the cart domains work.
  • Cloudwatch – monitoring all that other stuff

In addition to all the cloud stuff, we still have local cache servers running on physical boxes for product storage and delivery, and we utilize numerous smaller services like Hund.io for our status page, sandboxed environments for each blog like this one so that if a zero-day exploit for WordPress is discovered it won’t compromise the rest of our service, Zendesk for customer support ops, 3rd party monitoring services that wake us up at night if there is a problem, etc.

Whats Next?

We’ve got a major update coming, here is a sneak peak:

Scheduled Maintenance Event: Database Migration / Upgrade – 26 April, 2017

  • Jason@DPD
  • April 24, 2017
  • No Comments

On Wednesday, 26 April, 2017 at 9PM Eastern (Check time in your time zone) we will be performing a database migration on DPD that will lead to improved performance for all vendors and buyers.

We have run simulations of this move and expect less than 5 minutes of downtime where the site may fail to load when the procedure is started and then degraded performance during the migration, which may last up to 2 hours. During this period of degraded performance certain pages may be slow to load, including “database heavy” pages like purchase and customer list pages, reports pages, and possibly the dashboard depending on your recent sales volume.

We apologize for any slow page loads this process may cause, but it will be temporary. The migration to new database hardware will provide expanded memory and processing power for all database operations and will represent a significant speed increase for all vendors when completed. More importantly, this migration will be to a scalable platform that we can expand on demand as load increases.

Thanks in advance for your understanding during this maintenance event. If you have any questions drop us a line on live chat after logging in, or send us a support ticket and we’ll do our best to help!

DPD Update: Basically like, the world’s most boring DPD update ever.

  • Jason@DPD
  • March 8, 2017

I’m going to level with you guys: this update is pretty boring. Nothing here is of much consequence to the average user, so if you don’t like reading stereo instructions then you can probably skip this one. Its full of boring back-end bug fixes and minor changes and one fairly boring interface change. Still, I’m going to blog about it so people know we’re doing stuff behind the scenes!

Fixed the dashboard graph so it’s not wonky. There was a bug that made no-sales days not show up for some people. We fixed that. We also addressed some weird time zone issues where datapoints would show up on the wrong day due to the earth being round and everyone setting their clock differently.

Dealt with silly, undocumented PayPal changes. We actually do this pretty often, but in this release there were some tweaks to the PayPal Standard code we use to validate IPNs and activate purchases because they decided to randomly stop sending us crucial bits of information we look for.

Fixed the affiliate purchase search. In some cases searching transactions by affiliate didn’t work, so we crushed that bug so hard it screamed.

We made it where you can edit the purchase status on purchase/edit. You know, for those cases where you might want to edit the purchase status when editing a purchase.

Updated the VAT rate for Romania to 19%. They decided to change their VAT rate, so we did too. This actually went out quite a while ago, but it’s included in this publish cycle so I’m using it to pad out this list a little more.

Added a drag-and-drop asset uploader for the theme system. This is the most visible feature in this update; now you can drag and drop images, css, and js files to the theme page and it uploads them. You can select these assets from the little image inserter thingy on the editable regions of the theme pages. It works really well!

We made DPD delete things more better. Things like when you delete a theme, we delete the assets now instead of just leaving them sitting there, looking all lonely without a theme. #OrphanAssetsMatter

We did all sorts of stuff so assets will be uploaded directly to AWS S3. We’re not going to store cart assets (like images) on our servers–they’ll be in the cloud! This is pretty funny since AWS had their first S3 outage in years and pretty much broke half the Internet last week. ¯\_(ツ)_/¯

(Kidding! Amazon S3 is super reliable, over 99.99% uptime. Half the Internet, including DPD, runs at least in part on their services. This change greatly increases the availability and scalability of cart asset hosting.)

Slightly changed the layout of the theme page so it works better on smaller device screens. Now the layout works down to the minimum layout with in our admin CSS. Thrilling, I know.

Tweaked product key delivery to handle higher frequency sales. There were some conditions where high frequency sales (like 100s an hour) would occasionally cause keys to be over-sold even when that option was disabled. We addressed that, so you guys sell as many product keys an hour as you want!

We found a query that was making DPD slow for lots of people and then removed it. Hopefully this will drastically improve page load speed for certain high volume vendors with tons of products, sales, and customers.

Made some not-random but minor and undisclosed code changes you’ll never even notice. We pretty much futz with something every day to make it a little better, a little faster, or to address a security or support issue. We did quite a bit of futzing in this update, but its all really minor and we’re not going to itemize them all. Just know we’ve been doing stuff to make stuff better!

DPD Update: Manual Purchase Creation, Edit Existing Purchases, More

  • Jason@DPD
  • December 15, 2016
  • No Comments

In this update we’ve added a couple often requested features and added improvements to several areas of DPD.

Manual Purchase Creation

Vendors have asked for a way to create a purchase in DPD so that their offline sales, mail order sales, etc. can be accurately reflected in DPD and so they can send product updates to buyers who purchased through other channels. We’ve added a manual purchase creation page where you can build a purchase using existing products or a blank line item (useful for adding a service or other arbitrary charge), billing and shipping information, etc. Manual purchases will not charge the customer, but they will be reflected in your DPD sales stats and reports.

To create a manual purchase, go to the purchases page and click the Create button in the top right corner of the page.

Edit Existing Purchases

We’ve added the ability to edit the billing and shipping details to orders created through the shopping cart. We have also added an adjustment field where you can adjust the total charged if you have issued a refund outside of DPD.

Updated Music Player

We’ve updated the music preview player for mp3 files to not require Flash like the old preview player. We all kinda hate Flash.

Other changes in this update:

  • Added sending email to Paypal for Payments Pro transactions
  • Reordered vendor navigation to move sales group above store group, since product and sales are the two most common areas used
  • Improved URL validation on product/edit to prevent some newer TLDs from being blocked
  • Automatically float priority shipping countries to top of cart pulldowns
  • Fixed an error that could occur when a product has a configured upsell product deleted
  • Improved our geolocation updates
  • Improved storefront statistics calculation
  • Fixed issues with combo/bundle product sub-product ordering on the delivery page
  • Updated EU VAT Rates as needed
  • Server / Hardware Upgrades Coming Soon

    We will soon being upgrading the hardware and software that DPD runs on in order to provide faster service for everyone. These updates may require very short periods of time where the site will be unresponsive while hardware is switched over to newer equipment.

    We will always notify vendors prior to any expected interruption of service, and only perform upgrades that would result in an impact to service during non-peak hours of usage. We will post more updates to the blog here and Twitter as our update schedule evolves.

    Zapier support is out of Beta: Integrate DPD with 700+ apps!

    • Jason@DPD
    • September 15, 2016
    • 1 Comment

    zapier-logo-blogZapier is a tool for non-technical people to easily connect together web apps. Zapier has both free and paid plans based on the number of integrations you set up and the frequency that they’re checked for updates.

    What can you do with Zapier and DPD?

    Zapier supports over 700 popular CRM, Accounting, communication, and task management tools. You can pass your customer and sales data to any one of these apps using an easy point and click interface, harnessing the power of the DPD API without having to write a single line of code.

    Zapier CRM Apps

    Some examples of what you can do with DPD and Zapier

    We’ve created a few pre-configuered shared Zaps based on what vendors often request integration with:

    But thats not all you can do with DPD and Zapier! DPD can connect and share sales data with any of the 700+ supported apps using custom setups you create using their easy point and click interface. You can learn more by visiting DPD’s page on the Zapbook.

    Getting started with DPD and Zapier:

    We have a full KB article on Using Zapier with DPD with screenshots and more in the DPD knowledgebase, but here are the basic steps:

    1. Go to DPD’s page on the Zapbook
    2. You can choose one of our suggested Zaps, or browse the Zapbook for other services to integrate with
    3. Connect your DPD account to Zapier using your DPD username and the API key from your DPD profile page
    4. Create new Zaps by matching up DPD sales data with fields in your external apps, or use one of our shared Zaps to get started.

    Need Help?

    You can always send us a support ticket through the support link in your account or DPD knowledgebase. We’ll add more shared Zaps based on your feedback too, so if you have questions about integrating a specific app with DPD using Zapier we’ll be happy to take a look and get a shared Zap set up to help you out!

    DPD Update: Test Credit Card Processor and Customer Notes

    • Jason@DPD
    • July 13, 2016
    • No Comments

    In this update we’ve added two new often requested features and several bug fixes.

    Test Credit Card Processor

    We’ve often been asked for a test credit card processor so vendors can privately test their products and stores. In response, we’ve added a test credit card processor, available under Payment Methods in the left menu, that you can activate to complete test checkouts.

    Test Card Processor in Payment Methods

    When the test card processor is activated it automatically generates and displays a unique card number to be used for testing checkout. This is the only card number that will work with your store. This is to prevent random people from using published test card numbers from Visa, Mastercard, etc. to get your products for free.

    Generated Card Number

    We place warnings all over the DPD admin and cart when the test processor is active. Obviously, it goes without saying that when a test processor is active you won’t collect any money for product sales and it should be disabled before going live.

    Cart Test Mode 1

    Cart Test Mode Payment

    When you are done using the test card processor, simply return to payment methods, edit the test processor, uncheck the “enabled” box, and save to disable.

    The test card processor works for older v2 stores, the current responsive cart theme (v3), and subscription stores.

    Customer / Purchase Notes

    Another often requested feature that we added are customer and purchase notes. Vendors can now enter notes on a specific purchase or customer record and they’ll be recorded in DPD for later reference. Notes are for vendor eyes only- they are not public or published anywhere outside of your account.

    Notes entered on a specific purchase are shown on that purchase’s details page.


    They are also shown on the customer page, with a link to the purchase they were entered on. Customer notes (unrelated to a specific purchase) can be added on customer page too. They’ll display without a related purchase ID link.


    You can edit and delete notes as needed, and you can create as many notes on a customer or purchase as you like. We hope this feature will make customer service tasks and internal tracking easier for vendors.

    Other minor changes and bug fixes in this release:

    • Tweaked back button behavior on Buy Now buttons
    • Improved flow validation during checkout
    • Updates to the Stripe gateway
    • Fixed a display issue on subscription ended timestamp
    • Performance improvements on the send product update feature
    • Fixed missing currency display on purchase/list
    • Fixed password label on login page for Chrome browser
    • Updated cart translations to include previously untranslated strings and new features
    • Updated the favicon on the cart
    • Performance improvements to the PDF stamper

    DPD Update: Streamlined Product Editing and Product Visibility

    • Jason@DPD
    • April 22, 2016
    • 1 Comment

    We’ve just released a completely redesigned product edit page that greatly reduces the length of the form and adds modern features like drag-and-drop image uploading.


    Some highlights of the new product edit form:

    • Drag-and-Drop image upload. Simply drag your image to the image area, or click to open a standard file dialog to select your image.
    • The form now puts the most crucial fields required to configure the product at the top of the page.
    • Optional features are now collapsed at the bottom of the form, including the EULA feature and Upsell feature. One click expands these options for editing and they’re automatically expanded if previously configured for the product.
    • There is a new sidebar product status / save box that is always with you on the page- no more scrolling to find the save button

    New Product Visibility Setting

    The new product visibility option replaces “show on cart index”:

    • Public – shown on cart index, default state for new products
    • Hidden – must have the buy or add-to-cart URL to purchase, not shown on cart index
    • Disabled – new status which lets you temporarily disable a product without deleting it

    In addition to the “coupons disabled” label we released in the last update, we’ve added new product status indicators throughout DPD so you can tell at a glance what visibility state your product is in by looking at the colored “dot” beside the name.



    The indicators are simple- Green for public, Orange for hidden, Red for disabled.

    Other changes in this Update:

    • paypal ship-to state support
    • updated romania vat rate
    • removed support for gif images

    New Zapier Support Connects DPD to 500+ Apps and Services

    • Jason@DPD
    • March 21, 2016
    • 1 Comment

    zapier-logo-blogWe’re happy to announce our new beta app for Zapier that allows you to pass your DPD sales data to the 500+ apps that Zapier supports. Zapier is a 3rd party service that serves as a “middleman” and connects web apps using an easy point and click interface. Zapier has both free and paid plans based on the number of integrations you set up and the frequency that they’re checked for updates.

    Because this is a new app and in beta you’ll need to follow the link below to add the DPD app to your Zapier account:

    Add DPD App to Zapier

    What can you do with Zapier and DPD?

    Zapier supports over 500 popular CRM, Accounting, communication, and task management tools. You can pass your customer and sales data to any one of these apps using an easy point and click interface, harnessing the power of the DPD API without having to write a single line of code.

    Zapier CRM Apps

    You can pass your customer data to popular CRM apps like Salesforce, Infusionsoft, or Highrise.

    You can pass your sales data to accounting apps like Quickbooks Online, Xero, or Freshbooks.

    Send your customers contact info to email marketing services such as Unbounce, Mad Mimi, or even Gmail.

    You can even use built in Zapier tools like Webhooks, SMS, and RSS to build custom notifications and connect to your own custom apps on your website.

    Setting up Zapier with DPD

    First, add the DPD beta app to your Zapier account by following this invite link.


    Once you’ve added it, you can use it as a trigger app to create new zaps that connect to 3rd party services.


    After you select the DPD app as your trigger you’ll need to connect to DPD using the API connection info in your vendor profile. To get your API connection info log in to your DPD vendor account, go to the user menu in the top right of the page, and select vendor profile. Your API credentials are at the bottom of the page.


    From there you can select which DPD store’s sales data you want this zap to use, select which customer or purchase fields will be passed, and then select which 3rd party app you want to connect the data to. Its all point-and-click and no programming knowledge is required.

    We welcome your feedback on the new Zapier support for DPD. We’re pretty excited because it lets you connect your DPD account to hundreds of external apps and we hope you are too!

    DPD Update: Redirect Products, Performance Improvements

    • Jason@DPD
    • March 4, 2016
    • No Comments

    This update contains a new feature, minor bug fixes, and several performance improvements designed to speed up the DPD admin, widget performance, and the DPD cart.

    Redirect Products

    DPD now has a new “Redirect to Web Site” purchase action you can apply to digital products. This purchase action will automatically redirect the buyer to an external page of your choosing upon completed purchase. The DPD delivery page loads for a fraction of a second to allow 3rd party tracking scripts to run (like Google Analytics) and then redirects.


    For an example of how this new purchase action works you can try the test item below:


    Use test card number 4242 4242 4242 4242, any CVV, and any expiration date in the future to test.

    Because DPD checkouts can contain more than one product and each product can have more than one purchase action there are some conditions for the auto-redirect to work:

    1. The redirect product must be the only product in the purchase. If there are other products we will not redirect the buyer away from our delivery page before they can get their downloads, keys, etc.
    2. The product must not have any other purchase actions. If the product contains a file, key, message, etc. and a redirect we will not send customers away from the download page before they get their other purchase items.

    If we are unable to redirect due to the conditions above we will display a button to continue on the delivery page and your choice of message where you can tell the buyer to continue. You can configure the message when setting up the redirect purchase action.

    This is an example purchase with multiple products with a redirect, showing the link message and button:


    Because of the conditions required to automatically redirect, we recommend using instant checkout buy now buttons with redirect products if you want to ensure that they always automatically redirect to your web site.

    Coupon Status Labels

    One of the most common support requests we receive is “Why won’t my coupon work with this product?” In 99% of the cases this is caused by the product in question being marked as coupon ineligible on the product edit page. To make this more apparent, we’ve added a label to products that aren’t marked as coupon eligible to the product lists in the DPD admin.


    To mark a product as coupon eligible edit the product and check the “Coupon Eligible?” checkbox on the edit page, then save.

    For more information: Cart shows “This coupon does not apply to any product in the cart” when trying to use a coupon

    Other performance improvements and bug fixes in this update:

    • Added translations for v3 cart error messages
    • Fixed an issue with product choosers when using add-to-cart actions
    • Improved performance on widget and custom button rendering
    • Fixed an issue where widgets would partially render using Safari browsers
    • Fixed oversized close button on v2 carts
    • Fixed an issue where the lightbox cart would cause page jumpyness due to scroll bar rendering
    • Product update email sending performance improvements
    • Started recording shipping information in PayPal for PayPal Pro checkouts
    • Fixed a case where v3 carts were not storing billing name correctly
    • Fixed a bunch of typos in emails
    • Optimized internal “can be purchased” calls in DPD for better performance
    • Query optimization for sales stats
    • Updated shipping library to address a FedEx rate quote issue
    • Fixed MailChimp integration not supporting non-ascii chars in group names
    • Updated our field validators for better performance

    DPD Update: New custom button sizes, close button on cart.

    • Jason@DPD
    • January 25, 2016
    • No Comments

    New Custom Button Sizes

    Today we released an update that gives vendors two new button sizes when creating custom buttons using the new button generator. This is based on feedback from vendors who wanted smaller buttons to integrate with their design. There are now small, medium, and large options.







    Close Button on Cart

    Also based on feedback from multiple vendors, we added a close button to the DPD cart overlay. Evidently some buyers were confused how to close the cart (you can click anywhere outside of the cart to close). You can view it by clicking any of the buttons above.

    These changes were based on customer feedback. We appreciate any feedback you can give us on the new button generator and updated overlay cart- Just drop us a support ticket or a message in live chat to let us know!

    Other Changes in this update

    • Fixed an issue with the product select box in the admin on the new button page with Firefox browsers
    • Fixed an issue with required custom fields not showing the proper field error messages when not completed
    • Fixed a cookie issue that affected the overlay cart when using Safari
    • Adjusted the z-index of the overlay cart so that sites with other overlay elements always appear below the cart
    • Fixed a double-escaping issue on the product bulk edit page that mangled some product names