WooCommerce 2.2 is being released today, and we have all of the details on the new release! We’ll go over the major changes to WooCommerce Core that have been made in this version, as well as all of the cool stuff that’s been added in this WooCommerce 2.2 Review.

Remember, as a best practice you should always upgrade on a staging or testing site first, then upgrade your live site once you’ve confirmed that there are no issues. It also helps to update extensions first, then WooCommerce core.

WooCommerce 2.2 Review: Overview

There are fewer structural changes to WooCommerce than there were in WooCommerce 2.1, which should make upgrading smoother. Version 2.1 added the REST API as well as endpoints, which changed the WooCommerce pages that were installed. While this made setup less intensive and made it far harder to break or delete core pages, it required updates to several core templates. As a result, themes that improperly override WooCommerce templates sometimes broke at update.

The major changes in WooCommerce 2.2 are related to orders and payments, but are far smaller changes and should not affect the frontend of the site. However, some nifty features were added because of the order status structure changes.

WooCommerce 2.2 Review: Orders

The Edit / Add order screen has been tweaked in WooCommerce 2.2 to provide a bit more information and to pave the way for refund support.

As a minor change, the payment method used has been added below the order title:

WooCommerce 2.1 Edit Order

2.1 Edit Order

WooCommerce 2.2 Edit Order

2.2 Edit Order

The “Order Details” table has also been updated. All costs are now included in the order details table so that they can be refunded if needed.


 
WooCommerce 2.1 Order Details

2.1 Order Details



WooCommerce 2.2 Order Details

2.2 Order Details


Note that admins can no longer edit paid orders with WooCommerce 2.2. If you need to add something to an order, such as a gifted product, you’ll have to change the order status to on-hold or pending, then back to processing or completed. Unpaid orders can be edited:

WooCommerce 2.2 Unpaid Order

Unpaid Orders

WooCommerce 2.2 Review: Payments & Refunds

The most significant change in WooCommerce 2.2 is now possible because of the changes to the order structure and orders page: refunds directly from WooCommerce and automatic refunds for gateway extensions that support refunds. To issue a refund, you’d previously have to log into your merchant account and issue a refund, then update the order status to “refunded” in WooCommerce. However, there was no way to note partial refunds if one item out of a multi-item order was refunded. This has now been added to WooCommerce core.

While only a small number of gateways support refunds at the moment (mostly just the core payment gateway methods), developers are now starting to add refund support to their gateways. For example (since I have insider info here 😉 ), we’ve already begun working on this for several gateways at SkyVerge.

Want to start using refunds immediately? The core PayPal Standard gateway can process automatic refunds from WooCommerce, as well as the brand new Simplify Commerce gateway.

WooCommerce 2.2 Simplify Commerce

Simplify Commerce is replacing Mijireh as a core payment processing option, and the Mijireh integration is now available as a free Mijireh extension. If you previously used Mijireh, the Mijireh installation will be available with one click when you upgrade WooCommerce.

One major benefit to including Simplify Commerce is the addition of another core gateway that supports refunds, WooCommerce Subscriptions, Pre-Orders, and Bookings.

Now how about some more detail about refunds?

Manual Refunds

Manual Refunds can be executed for any WooCommerce payment gateway. A manual refund will allow you to mark certain order items as refunded, and will include tax fees as well as optionally allowing you to refund shipping or other fees. This will not automatically send a refund to your payment gateway, but can be done for any payment method in WooCommerce.

Clicking the “Refund” button will bring up a refund screen where a shop admin can select which items or enter an amount to refund, then optionally add refund notes for reference.

WooCommerce 2.2 Refund Manually

Refund manually

Refunded items will now have refund details shown, and the order total will also include a “Refunded” total for reference.

WooCommerce 2.2 Order Refunded

Partial Refund

Manual refunds will not change order status or add order notes, so you’ll need to change the order status to “refunded” manually if you process a manual refund for an entire order.

Gateway Refunds

Gateway refunds will provide automatic refunds from WooCommerce for payment gateways that build-in support for refunds. When you set up a gateway, you may now see more settings needed to process refunds. For example, PayPal Standard has extra settings to complete if you’d like to automatically process refunds:

WooCommerce 2.2 PayPal Settings

When you process a gateway refund, a “Refund $$ via GATEWAY” button will be added if the gateway supports automatic refunds.

WooCommerce 2.2 PayPal Refund

Gateway refunds (PayPal)

If you do a gateway refund, the refund details will automatically be sent to your payment gateway so that you don’t have to log into your merchant account to complete a refund, then mark or note this within WooCommerce. This will save huge amounts of time for merchants that process hundreds or thousands of orders each month.

Order notes will also be added to signify that a refund has been processed. If you refund the total amount for the order, the order status will even automatically be updated to “refunded”.

WooCommerce 2.2 Refund Order Notes

Refund Order Notes

Order statuses will not change for partial refunds, as part of the order has still been processed and completed.

WooCommerce 2.2 Review: Other Changes

There are a few other significant changes in WooCommerce 2.2 to be aware of.

Language packs have been removed from WooCommerce core, as they add a lot of code that may not be necessary for your site. Instead, the appropriate language packs will automatically download if your WordPress language is set as something other than English.

Inventory management has also gotten some refinement. Backorders and stock can now be configured on a per-variation level rather than simply for the parent product. In WooCommerce 2.1, “In stock” vs “Out of Stock” had to be managed for a parent product:

WooCommerce 2.1 Variable Product Stock

2.1 Inventory

In WooCommerce 2.2, the “Stock Status” has been moved to the variation level, but the ability to set a parent stock level and allow backorders remains.

WooCommerce 2.2 Inventory

2.2 Inventory

In WooCommerce 2.1, stock level could be managed on a per-variation basis, but backorders and stock status could not be managed.

WooCommerce 2.1 Variations

2.1 Variations

A “Manage Stock” option for variations has been added, which allows for backorder and stock status management on a variation level if enabled.

WooCommerce 2.2 Variation

2.2 Variation

The new error logs tool is also really handy for troubleshooting. This gives you access to error logs right within your WooCommerce admin so you don’t have to retrieve them via FTP. A new “Logs” tab has been added under System Status:

WooCommerce 2.2 Error Logs

The final small change has to deal with shortcodes. WooCommerce core has an add-to-cart shortcode that allows you to simply output a price and “Add to cart” button for a product anywhere on your site. This is handy for stores that sell products on landing pages, via blog posts, or anywhere outside of the WooCommerce product page. However, these shortcodes had no way of adding a quantity of greater than one.

The shortcode previously looked like this: [add_to_cart id="" style="" sku=""]. You could add an id or a SKU to identify the product, then optionally add styles to the button. Now the add_to_cart shortcode accepts a custom quantity attribute as well: [add_to_cart id="" style="" sku="" quantity=""].

When the “Add to Cart” button is clicked with a quantity set, the specified quantity of the item is added to the cart.

WooCommerce 2.2 Review: For Developers

The other major changes to WooCommerce 2.2 are great from a development perspective. The WooCommerce REST API functionality is now well-rounded with the addition of PUT / POST / DELETE methods for products, orders, and coupons with v2 of the API. This means that external systems, such as the WooCommerce iOS app, will now have the capability to read, create, update, and delete products, coupons, and orders from your store if you’re running WooCommerce 2.2+.

This really opens the API up for further external integrations, so I’ll be curious to see what springs up over the next few months once these REST API changes are in place.

Webhooks were also added in WooCommerce 2.2. Webhooks will allow notifications to be created for core WooCommerce actions, such as adding items to the cart, creating orders, new customers, updating inventory, and more. This opens up easy integrations for push notifications or other external services, which can use these webhooks to trigger actions of their own.

For example, webhooks for inventory updates could be used by external inventory services (such as TradeGecko) to update inventory for your store. Webhooks also open up some exciting development opportunities with WooCommerce.

WooCommerce 2.2 Review: Conclusions

The refund support in WooCommerce 2.2 is a really awesome addition. Not only does this greatly improve record keeping an order management within WooCommerce, but the ability for gateways to tie into this functionality to automatically process orders is a great benefit for shop owners. Refunding orders was a big hurdle for larger shops, so it’s great to see some support for this.

The “For Developers” changes shouldn’t be underestimated, however. The completed REST API and webhooks open up some really great opportunities for WooCommerce integrations outside of WordPress. With the REST API and webhooks, external systems can interact directly with WooCommerce rather than requiring an integration plugin to do so. I’m definitely looking forward to seeing what projects implement these new changes.

WooCommerce 2.2 Review: Read More


Want to read more about this release? You can check out the changelog for a full list of changes, or check out one of the following sources:


Note: This post may contain affiliate links, which means we get a commission from the plugin, theme, or service provider if you choose to purchase. Regardless of this, we are committed to providing high quality, unbiased resources. Have more questions? See our affiliate policy. You can use the plain links below if you prefer that we not receive a referral commission:
Articles you may also like:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.

13 Comments

  1. I’m absolutely blown away by these updates—especially the error log and webhooks additions! Automatic refunds are a very impressive feature as well.
    Is there an overview on what payment gateways currently/will support refunds? I would have assumed Stripe would be among the first.

    This was an excellent review; thanks for the details/screenshots.

    1. Hey Joshua, thanks for the kind words! I’m pretty sure Stripe 2.1+ supports refunds already along with the core gateways. I don’t think there’s a list available yet as a lot of gateways are working on adding this now.

  2. Awesome review Beka! Thanks so much for setting all this out so clearly 🙂

  3. How can i translate woocommerce for my own ??

    1. Hey there, WooThemes does have some language packs available, as they maintain these via Transifex. If you’d like to add your own translation, you can check out this great tutorial (requires free signup) or this document from WooThemes.

  4. […] SellWithWP has also written an excellent review. […]

  5. Hi Beka,

    Awesome detailed review, loved it! But just one question, transitioning from Woocommerce 2.1 is tricky, one problem that i am having trouble with is that i added custom fields in the variable product, and they can be retrieved previously from the shopping cart data in 2.1, but after upgrading to 2.2, it doesn’t let me to retrieve custom field values anymore in the Cart page, as the data that stores this disappeared, would you by any chance know how to fix this?

    Thanks! Awesome stuff

    1. Hey Vincent,

      Assuming you’re using the ‘woocommerce_get_item_data’ filter to add the cart item data, as long as you’re using get_post_meta you shouldn’t have any issues displaying the custom field values.

      Hope that helps 🙂

  6. Dominique Taylor October 6, 2014 at 3:43 am

    Thanks for your interesting and useful review. It helped me a lot.

  7. Hi Beka,

    I’m trying to find the answer to my problem but i can’t do it, i hope someone here does :), here we go:

    i’m a designer and i sell exclusive designs for each client, woocommerce product is standard price to purchase but after i need to upload exclusive files to each customer account, how can this be done? is possible?

    I want to upload a exclusive file downloadable for my clients to their account in “my downloads” section so they can click download when i finish the job and i uploaded.

    I hope it is clear and you understand my needs.

    Kind regards,
    Carl.

    1. Hey Carl, it will be a bit difficult to do in the “My Downloads” section, as you’d have to create a new product with an associated download for this. I’d recommend using a note on the order instead – you can set up a customer note and include a link to download from your site, Dropbox, Amazon S3, etc. When you add a customer note, the customer is emailed the note content:

      They can also view this note as part of the order from their account.

      1. Hey Beka,

        thanks so much for the tip, i’ll try out and see how it works 🙂

        Cheers!

It's been over 2 years since this post was published, so comments have been closed. Thanks for reading!