Xeroom Version 2.2.0 - Release Notes January 2021

Modified on Sun, 12 Feb 2023 at 06:03 PM


Version 2.2.0 is a major release with many bug-fixes and useful extra features.  It has taken over 250 manhours of development effort by one of the World’s top WooCommerce plugin development firms.  This release has 9 major bug fixes, 12 minor ones, various security improvements and 20 new features many based on practical operational feedback from our customers, making Xeroom the best WooCommerce-Xero plugin available by far.


Upgrade from Version 2.1.0

  1. Deactivate your existing version of Xeroom and delete it.  Any settings will be retained in the database.  
  2. Download the zipped Version 2.2.0 from the download link onto your local pc.
  3. In Plugins/Add New/Upload Plugin upload the zip file, install and activate.

Upgrade from Version 2.0.8 and older 

These versions use Oauth1a which is now a deprecated and about to be expired connection to Xero. A new Xero app and connection will need to be created – detailed instructions are given here www.xeroom.com/installation-instructions/.


The IonCube encoder that was used to encode/decode is no longer used.



New Features & Enhancements

Improved Layout and New Sleek Logo


Licence Validation Check and 7-Day Grace Period 

Xeroom now does a licence check only once/day instead of on each order.  This reduces processing load/failures on checkout and also deals with the situation where server issues or comms between your server and ours prevent authentication of the licence leading to failed postings.

If authentication now fails for any reason or if your licence has expired then it gives a 7-day grace period before it stops working.  If the reason is a temporary comms or server issue then the next day it will authenticate and reset the timer.  If it does not then the countdown continues with a message. If it has not reset after a few days then you need to check to see if your licence needs to be renewed.   If not then please contact our support desk so we can verify it.


Invoice Send Trigger on Processing – For Payment on Account Process

Previously the triggers for Xeroom to post the invoice were manually or either when the order was created or when the process status changed to Completed.  We have now added “On Processing” to the triggers.


Processing status in WooCommerce generally means payment has been received and stock has been reduced and the order is awaiting fulfilment.   Some customers need to be able to post the order to Xero automatically not just when the order is created but once the goods have been sent out which will be before payment and before completion.   This happens typically when a customer is paying on account, he pays all of his orders for the month at the end of the month in one payment having previously received invoices for each order.  Once payment is received then all the orders can be marked as Completed in a batch in WooCommerce.


Cancelled Orders – No Credit Note Generated and Inventory Reversed

In WooCommerce a Cancelled order status is triggered when the admin or customer cancels an order of Failed status or where the payment via the payment gateway has failed or is over the set time limit which is usually a few hours.  Since no payment has been sent to Xero no credit note is created and the stock movement on order creation is reversed, ie increased.  Xeroom now follows this logic.  


Automatic Credit Note Generation on Refunded Orders

Previously only Cancelled orders would automatically generate a credit note in Xero.  Now Refunded orders will generate a credit note whether in full or partially.   

Refunded orders – these are ones that have been Completed in WooCommerce (ie paid for or on account and shipped) and also payment has been sent to Xero (and internally posted in the ledgers so are no longer easily deletable) and hence require a credit note to be applied to reverse them.  

Exception - If the order is for “payment on account” in which case payment is not normally made until the end-of-the-month in Xero manually, so any refunds for invoices of Approved status in Xero do not need a credit note but should be voided.  Since they are usually – but not always – due to returns then the stock is increased.  

Partial refunds – These are also now handled with a credit note automatically generated for the amount.


Add Purchase Order Numbers to the Woo Order and Xero Reference

For customisations WooCommerce offers a neat hook called filters which are ignored if not used.   We have added this one, kindly provided by one of our customers, to enable PO numbers to be captured and added to orders.  It requires some additional work to implement such as a field to be added on the checkout form.  Send us a ticket for full details.


Send Additional Email on Order to Accounts Payable 

We have added another filter that means a split of role where the person placing the order (the “Billing” person) is not the one to pay for it.  So, the Xero invoice is sent instead to the accounts payable dept of the company or organisation of your customer.  Send us a ticket for full details.


Repost Failed Orders with Alphabetic Suffixes

Xeroom uses a flag that gets set once an invoice is posted to prevent it from being posted twice.   Sometimes on checkout (which is the most complex part as many processes are taking place across 3 platforms) this flag can get set despite the order nothaving been posted.  We have added a new button on the order screen and new option in the in the Bulk Action dropdown list on the WooCommerce order manager screen to resend an order.  

To enable easy spotting of any resent orders that are not needed these resends are given invoice numbers with alphabetic suffixes.  In operation, the unwanted invoices can be quickly found and deleted.

Xero Reference – Custom Prefix & Gateway Payment Reference



You can now add a 4 digit custom prefix to the Xero reference which is made-up of the order number concatenated with the payment gateway used.  In the case of a card payment or PayPal then the last 10 characters of the transaction are added.  This enables actual payments to be easily identified and matched when doing reconciliations with the live bank feeds into Xero.


Integration with Woocommerce PDF Invoices Plugin 

Many customers use this plugin to generate pretty invoices with lots of flexibility from WooCommerce.  Xeroom will now use this invoice number as the reference in Xero so they all tie-up.


Stop Automatic Purchase Bills in Xero

Each time inventory is reduced by an order Xero was automatically generating a bill for the same amount to top-up the inventory, which was messy and confusing. This has now been prevented so that any additions needed to inventory must now be explicitly and manually made.

Payments – into Xero Asset or Liability accounts

Previously we had to use dummy bank accounts in Xero to accept payments as the clearing account which is not clean.  It is now possible to use asset or liability accounts to accept payments which is what most bookkeepers typically.  The multicurrency version of Xero remains limited and dummy bank accounts must be used with that.


Custom Due date Setting 


There was an issue with Xero not picking up the set Due Date on invoices.  We have managed to overcome this so that the default of 3 days can be used or any other date up to 30 days.  This is essential for B2B customers who use “payment-on-account”.



Payment Gateway Automatic Send Control  


This gives granularity of control to the automatic sending of payments by gateway.  If you use instant payment gateways like credit card or PayPal then you want the payments automatically sent.  

Payment-on-account customers – Many B2B users use POA which means no payment is sent from WooCommerce as they do not pay until the end-of-the-month or later when they are all paid in one go.   Ticking the relevant boxes enables this mix of automatic and not payment sends to be handled.  

The WooCommerce Invoice Gateway plugin works great for this (rather than the standard default COD or bank transfer payment methods) and gives additional flexibility and options for the order status post checkout.  It can also be used with the Wholesale Prices plugin to only show this gateway to B2B customers and not retail ones.


Full Product Details Posted Saved in Xero

When WooCommerce is Price Master and a product is on an order but doesn’t exist in Xero then it gets created in Xero.  Before it only saved the SKU and description only but now we have added all the other details which get saved , ie price, COGS and sales accounts, tax rates for both Purchases and Sales.









Name and Address Mapping to Xero


The contact name mappe in Xero can now be the order first and last name, company name or email address.   If it is a company then the company name will be taken from the order and made the first line of the address since Xero doesn’t have a company name field.

There is also a choice of whether to use the existing address in Xero or to use the WooCommerce one (which will update the Xero one).


Batch Processing Rate Control

When batches of orders are selected to be sent to Xero a cron job is created.  Previously the cron job was not showing a completion message and the progress message was not clearing sometimes which has been fixed.   The cron job was sometimes running very slow appearing to hang.  Since Xero has limitations on the rate and number of calls resulting in failed postings if breached, we have had to throttle it down.  We have added a setting for the throttle so the batch rate/min can now be set along with a running countdown of the progress.  

Cron Jobs - If you are experiencing big delays or any hanging check that cron jobs are running properly on your server.  There are various plugins that will show this.  Cron jobs may have been set by your web designer to run on a 5-15min schedule in cpanel which will mean there will be delays before a batch process can run.   Also, too frequent a schedule eg every minute, can lead to multiple cron jobs running and overloading your allocated memory on your server resulting in hanging until they time out.  


Main Bug Fixes

  1. Canadian customer tax error.
  2. Deprecated Coupon Code and UnitPrice error.
  3. Variable product with 3 or more variations not being posted.
  4. Batch loading success message missing.
  5. OAuthSignatureMethod_HMAC_SHA1 class already in use.
  6. Credit notes on cancelled orders charging GST twice.
  7. Guzzle http undefined function and other “class-in-use” conflict errors with other plugins fixed.
  8. Xero connection status not updating when connection broken.
  9. Rest API route definition callback permissions error.


Issues & Next Release

If you find any of these features are not working please send an email to our helpdesk support@xeroom.com which will open a ticket.  Whilst we have done dozens of hours of testing on all these features, we know that sometimes bugs still creep through undetected.   With this in mind we plan to do a further update in approximately 6 weeks time with fixes for anything that arises.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article