WooCommerce – #1 eCommerce platform

It’s official: WooCommerce is the world’s most used e-commerce platform.

According to WooThemes who recently published some statistics based on data from BuiltWith, WooCommerce is installed on more sites than any other e-commerce software. WooCommerce outranks not only other WordPress plugins like WP e-Commerce or Shopp, but all self-hosted solutions including ZenCart, PrestaShop, osCommerce, Shopify, you name it. It even surpasses Magento – while it should be admitted that Magento still has a greater share with high traffic sites.

You should read the blog post on woothemes.com – there are many interesting stats and diagrams about countries or business types, but my favorite is certainly this one:

WooCommerce market share - January 2014


If you’re a developer or theme designer who has used other content management systems or e-commerce platforms in the past, this is the time to reconsider – and focus on WordPress and WooCommerce. With WooCommerce powering over 10% of all e-commerce sites and WordPress powering more than 20% of the whole web – both numbers are still increasing exponentially! – there is no doubt where all the fun will be in the future…

If you’re a shop owner and thinking about migrating to WordPress / WooCommerce: Do it. It will require some one time effort, but you’ll be rewarded with a stable, future-proof and maintainable e-commerce solution which is loved by developers and search engines alike. No more “I’m sorry, but I’m afraid I can’t do that” from your dev guy because implementing your wishes would require messing with the core your e-commerce software and make future updates a nightmare – a skilled developer can do almost anything with WooCommerce, without every touching the core.

That’s why I predict a huge number of talented developers will be focussing on WooCommerce and WordPress in the future – eventually it might be hard to find someone skilled enough to fix your ZenCart site…

Let me know what you think in the comments. Is WooThemes doing right? 

How big will WooCommerce or WordPress be in one year from now?

Create custom listing shortcodes for WP-Lister

If you have ever wondered how you could create custom listing shortcodes to be used in your WP-Lister listing templates then read on… it’s easier than you might think.

Where to start

Since WP-Lister 1.2 each listing template has its own functions.php file – which is different from your WordPress theme’s functions.php. Both work in a similar way, but your theme’s functions.php affects your whole WP site while a listing template’s functions.php affects only your eBay listings and preview.

Why not use your theme’s functions.php? For two good reasons: First custom listing shortcodes should be bundled with the listing template where they are used, so when you duplicate, download or upload listing templates, the required code will always remain attached. Second, if you make a mistake or typo, you won’t shut down your entire site – only the listing preview won’t work.

Simple example: Hello World

To get started, open up your listing templates functions.php (from now on referred just as functions.php). You can use your favorite code editor to edit the file via FTP – but you can just edit the template and scroll down until you see the current functions.php content.

You will find some example code – which is inactive since it’s wrapped in a /* ... */ comment block:

function my_tpl_process_html( $html, $item, $images ) {
  $html = str_replace( '[[my_custom_listing_shortcode]]', 'MY CUSTOM CONTENT', $html );
  return $html;
add_filter( 'wplister_process_template_html', 'my_tpl_process_html', 10, 3 );

Remove the comment wrappers to activate the code and change the shortcode and content to whatever you like. A simple hello world example would look like this:

function my_tpl_process_html( $html, $item, $images ) {
  $html = str_replace( '[[hello_world]]', 'Hello World!', $html );
  return $html;
add_filter( 'wplister_process_template_html', 'my_tpl_process_html', 10, 3 );

Save your template and use [[hello_world]] somewhere in your template. You will see that it gets replaced with “Hello World!”.

However, you wouldn’t want just to replace some text – that doesn’t make much sense as you could write “Hello World!” right in your template.

Usually, you want to fetch some product details from the database, check if it’s empty and if not, prefix it with some label:

Real world example: Special Price

The code below will fetch the product meta field _sale_price, format it using woocommerce_price() and prefix it with “Sale Price: ” – unless it’s empty:

function my_tpl_process_sale_price( $html, $item, $images ) {
  $sale_price = get_post_meta( $item['post_id'], '_sale_price', true );
  $sale_price_html = '';
  if ( $sale_price ) {
    $sale_price_html = 'Sale Price: '.woocommerce_price( $sale_price );
  $html = str_replace( '[[sale_price]]', $sale_price_html, $html );
  return $html;
add_filter( 'wplister_process_template_html', 'my_tpl_process_sale_price', 10, 3 );

Now you can use  [[_sale_price]] anywhere in your template – which will be replaced by the formatted and labeled value, or removed if there is no sale price.

Complex example: Product Reviews

As an example for a more complex shortcode, let’s look at the following code snippet, which shows the latest product reviews in your eBay listing:

function my_tpl_process_product_reviews( $html, $item, $images ) {

    // get all approved comments
    $comments = get_comments( array( 'post_id' => $item['post_id'], 'status' => 'approve' ) );
    if ( empty( $comments ) ) return $html;

    // build reviews html
    $reviews_html  = '<h3>Reviews</h3>';
    $reviews_html .= '<ul class="product_reviews">';
    foreach ($comments as $comment) {
        $reviews_html .= '<li>';
        $reviews_html .= $comment->comment_content;
        // show author and date - remove the next line if you like
        $reviews_html .= '<br><small><i>' . $comment->comment_author . ' on ' . date(get_option('date_format'), strtotime($comment->comment_date) ) . '</small></i>';
        $reviews_html .= '</li>';
    $reviews_html .= '</ul>';

    // replace shortcode with generated html
    $html = str_replace( '[[product_reviews]]', $reviews_html, $html );
add_filter( 'wplister_process_template_html', 'my_tpl_process_product_reviews', 10, 3 );

As you can see, you can just use any WordPress function as you would do in a plugin or any other code snippet. With a a few lines of PHP you can create custom listing shortcodes for almost anything.

Let me know in the comments if you liked this post – or what you would like me to blog about next. 😉


What’s new in WP-Lister Pro 1.3

Version 1.3.1 of WP-Lister Pro has been released today and should show up in your WordPress dashboard soon. This release features some important updates to the inventory sync process that you should know about.

Locked Listings

WP-Lister 1.3 introduces the concept of locked listings which can be very useful if your products have been imported from eBay – or if you just want to keep the inventory synced but nothing else.

When a locked listing is revised, WP-Lister will only revise the inventory status / stock level on eBay, but leave other details untouched. This will happen by default each time you update a locked product in WooCommerce – it’s very fast so you probably won’t notice the delay – and you won’t have to revise all changed items after updating locked products.

Transactions vs Orders

In the past, WP-Lister fetched information about new sales on eBay by requesting the latest transactions – which was the only available way to do so when development on WP-Lister started – and it could not combine multiple transactions into a single order in WooCommerce.

The new version though fetches the latest orders from eBay and will create combined orders in WooCommerce – all you need to do is to switch the update mode from Transaction to Order in general settings. This will replace the old Transactions page with a new Orders page, but you will still be able to access the old transactions via a link on that page.

Other new features

There have been countless fixes and improvements since version 1.2.8:

  • new permission management
  • create eBay customers as WordPress users
  • customize WP-Lister main menu label
  • archive listings instead of deleting them
  • search box and status views on orders page
  • auto complete eBay sales when order is completed option
  • disable email notifications when orders are created by WP-Lister
  • support for shipping cost paid by option in return policy
  • support for cash on delivery fee
  • lots of bugs fixed
  • new action hooks for 3rd party developers
  • tested with WordPress 3.7 and MP6

See the changelog for the full list of changes – and please report any bugs to [email protected]

The free version on wordpress.org will be updated next week.



Import your products from eBay to WooCommerce

Great news for active eBay sellers who want to sell their products on their WordPress powered website as well:

The new Import from eBay to WooCommerce plugin will create an exact copy of your eBay store right in WooCommerce – including all products, variations and store categories.

Since this plugin uses WP-Lister to connect to eBay, you need to install WP-Lister first – both WP-Lister Pro or the free version will do. In return you’ll find all your listings already set up in WP-Lister after the import – so you are ready to go if you want to use WP-Lister to manage all your products in one place from now on.

You’ll find more details and screenshots on the plugin page.

If you have any questions or feedback please contact us or leave a comment below.


WP-Lister supports MarketPress

We are glad to announce that we’ve added support for MarketPress to WP-Lister.

This not only means that another 5 digit number of WordPress shop owners can list their products on eBay now – it means you can choose and migrate any time between the four most popular e-commerce plugins for WordPress: WooCommerce, WP e-Commerce, Shopp and MarketPress. While keeping all your listings and settings!

If you want to test drive WP-Lister on MarketPress, contact us to become a beta tester. This invitation won’t last forever 😉

Don’t forget to subscribe to our blog or follow us on twitter if you want to get informed of latest updates. We’re going to have some interesting news.

Update 29.07.13: Support for MarketPress had been deprecated – future versions of WP-Lister will support WooCommerce only.

List your products with item specifics recommended by eBay

Hi everyone,

We’ve just added an exciting new feature to WP-Lister Pro: Custom Item Specifics

What are item specifics?

Item specifics are custom product attributes like Brand or Size. While including item specifics in your listings is optional for most categories, eBay requires them for some categories like Clothing & Accessoires.

So if you want to list T-Shirts for women on eBay, you would select this category…

… and you will be presented with all required and recommended attributes:

If all your items share the same brand and style, you can enter these right here in the profile.

For some item specifics eBay only allows to choose from a list of provided values – like “Size Type”. For other item specifics you are free to enter your own values, but you will see some recommended values while typing.

If you want to use a custom attribute as a source for an item specific value, you can select any already defined attribute in the third column. WP-Lister will pull the value from there when listing your products.

On WP e-Commerce you will have to use the “Custom Meta” feature, on WooCommerce you just set up “Attributes” with a single value like this:

I hope you like the new feature. More will come soon.

If you have any questions, just write a comment or an email.


WP-Lister is preparing for launch

We are pleased to announce that WP-Lister passed the eBay compatible application check and we are now preparing for launching version 1.0 beginning of next month.

If you still want to get a free license by becoming a beta tester you should do it now.

We made a screencast about the general workflow using WP-Lister:

Besides, we are currently implementing basic support for Shopp – which will be included in the final release.

stay tuned,


WP-Lister is looking for beta testers

Do you run an e-commerce site on WordPress?

Did you ever wish for an easy way to list your products on eBay?

Without entering all the details again and again. Just select the products you want to list and be done with a few more clicks.

Your wish is becoming true: WP-Lister is  a complete package for managing your listings on eBay right from your WordPress Dashboard.

We already put a lot of work in making this plugin flexible, easy to use and extendable. Now we need you to test drive it, hunt down those nasty bugs and submit them to us so we can fix them. Right now, WP-Lister has been successfully used on eBay sites in Europe, but we’re looking for testers from all around the globe.

So go on and fill out our beta test application form download WP-Lister and let WP-Lister work for you.

Or just follow us on Twitter so you don’t miss the release.

More plugins for Sublime Text 2

After we started digging into what’s possible with Sublime Text 2, we we published two other plugins:

Search WordPress Codex

Based on the helpful Search Stack Overflow plugin, this enables you to search the WordPress Codex quickly from within Sublime Text 2.

You can search by selection or by manual input and you can decide to actually search the codex or directly open the Function Reference page for the selected function.

You can even right click on a WordPress function, select “WordPress Function Reference” from the context menu and the documentation for this function opens right in your browser. That’s only two clicks!

Install via Package Control – search for “WordPress Codex” – or read more on GitHub.


As a follow up to the previously released PhpTidy, we wrote a companion plugin to tidy up the HTML code that PhpTidy won’t.

You can even fine tune its behavior with your own HtmlTidy.sublime-settings file.

Install via Package Control – search for “HtmlTidy” – or read more on GitHub.


Tidy your PHP code with Sublime Text 2

I recently made the switch from Coda to Sublime Text 2 which is an amazing code editor available on all major platforms.

Usually you don’t get this kind of tweets about an editor:

Sublime Text: The text editor you’ll fall in love with http://bit.ly/wRiTJq (@chierotti)

Today is one of the happiest days in my life as a developer.
I discovered sublime!! (@sssilver)

The community around Sublime Text 2 is growing rapidly with new plugins being published nearly every day. It shares a common reason for success with WordPress: You can extend Sublime Text 2 to become everything you want it to be.

It seems you can even tweet from within Sublime Text 2:

Haha, it’s funny, I’m tweeting from #sublimeText (@diestrin)

After I stumbled upon a blog post about a modified version of phptidy, which formats PHP code according to WordPress Coding Standards, I decided to write a plugin for Sublime Text 2 that would allow me to use wp-phptidy.php directly in the editor.

This plugin is now available on GitHub and can be installed via Package Control, just search for “PhpTidy”.

For more information visit PhpTidy on GitHub.