Significant performance improvements in Commissions 3.4

Today, we’re happy to announce the next major update to the Commissions add-on for Easy Digital Downloads. Commissions for Easy Digital Downloads allows you to easily record and split revenue between multiple users. Version 3.4 brings many enhancements, including the migration to custom database tables, which will improve the performance of your commissions-enabled Easy Digital Downloads store.

In Commissions 3.4, all site owners will be presented with a dialog instructing them to run an upgrade routine after updating. This migration will move all existing commissions records to our new database table that is built specifically to house this data in a more performance-minded way.

Clicking on the “learn more” link will explain what is occurring with this upgrade routine:

There are two ways to run the migration routine:

  1. Through the wp-admin area by clicking on the “here” link inside of the upgrade notice
  2. Via WP CLI by using the wp edd-commissions migrate_commissions command

For large sites, we strongly recommend using the WP CLI command as it will be significantly faster and less prone to server timeouts or browser problems.

In a real-world example, we were able to speed up commissions reporting on our production sites by ~3x, and removed nearly 230,000 rows from our existing tables, significantly shrinking the total amount of space taken up in the database. During the upgrade routine, all existing data will be moved from wp_posts and wp_postmeta into the new tables. Once the migration is complete, an option to delete all legacy data will be shown.

Note: the migration is written such that new commission records can be created while the routine is running, meaning your store can be left live while the commissions database is upgraded.

Please make a backup of your site prior to running the upgrade routine. We have been testing it extensively on our own sites (including our main production sites) and we are confident in its reliability, but it’s still always in your best interest to be extra safe and create backups before making large data changes.

Backwards compatibility

The data generated by EDD Commissions has been stored as a post type with postmeta for several years now, which means it’s likely that stores with custom development may have additional data stored within these tables we aren’t aware of. In an effort to maintain complete backwards compatibility, we have included a compatibility layer that helps to translate queries to the legacy data structure and reroute it to the new tables.

If you’re a developer and have made custom integrations for Commissions, please see our Development blog post outlining the details of this backwards compatibility.

Improved commission emails

One of the more popular requests was the ability to customize the delivery of commission notifications to recipients. With version 3.4 we’ve added the ability to use some custom tags in the emails that go out to commission recipients. They include:

  • {commission_id} –  The ID of the commission record
  • {item_price} – The amount paid for the item sold
  • {item_tax} – The amount of tax collected for the item sold

Along with these enhancements, commission recipients can now choose whether they want to receive email notifications within the WordPress profile editor.

Other improvements and fixes

Along with the above there are a number of other improvements in version 3.4:

  • Commissions now properly account for negative fees when calculating commission amounts
  • The export tool now allows commissions of specific statuses to be exported
  • The Commission add/edit screen now includes better data validation
  • A new hook called eddc_before_commissions_overview has been added to the Commissions Overview screen
  • A new hook called eddc_commissions_overview_table_head has been added to the Commissions Overview screen
  • A new hook called eddc_commissions_overview_table_row has been added to the Commissions Overview screen
  • A new hook called eddc_after_commissions_overview has been added to the Commissions Overview screen
  • Improved responsiveness in the Admin area
  • Product name was incorrectly shown for commissions created without a download ID specified

This update is available today to active license key owners, and can be updated from within your WordPress Updates section or downloaded from your account.

As always, if you run into any issues please don’t hesitate to reach out to our support team.

Comments

Awesome update! Regarding performing the post migration, I can really recommend WP Background Processing – extremely simple to setup and super robust for tasks like yours. Highly recommended!

Reply

Thanks @ewout,

We full intend to implement a background processing method for some of our future migrations. I appreciate the recommendation!

Reply

Congratulations to the team. I think optimizing the database is the great move. 3x better performance is a great achievement!

Reply
Josh Terrell

Any plans to add stripe connect support?

Reply

We hope to in the future but there are not any current ETAs on it.

Reply

I’ve thinking of using EDD and this option makes it even more appealing. Love the split commissions feature, can think of many ways to use that. Plus a faster platform makes it even better. 🙂

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

If you need assistance, please open a support ticket.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>