Xeroom User Guide

How Xeroom Synchronises WooCommerce and Xero Data



Finance Process Overview

Xeroom integrates the WooCommerce (WC) WordPress plugin with the Xero online accounting application to create a seamless integrated e-commerce system.

  1. The customer goes to the checkout and places an order which is captured as normal with the WC plugin.
  2. During checkout the Xeroom plugin takes the captured customer data ( ie name, address and order product details) and passes it to Xero to create a new invoice which can be of status draft, awaiting payment (ie approved) or paid.
  3. If the order is not paid for at checkout, ie COD or bank transfer then the status of the order is set to processing or put to on hold awaiting payment.
  4. The draft or unpaid status invoice in Xero can be further edited as required.
  5. If the order is paid by card or Paypal then the payment is applied to the order during checkout and also passed to Xero and applied to the invoice to create a Paid invoice.  The status of the order is set to Complete in WC.
  6. If Autocomplete is set to no then the payment is not posted to the invoice in Xero automatically on checkout with an immediate payment permitting further manual editing of the invoice in Xero.  Payment will be posted once the order is manually completed in WC or if the Post Payment to Xero button is clicked.
  7. Once an invoice status changes to Paid in Xero then only limited editing of the customer name and date is possible as the figures have been posted into the appropriate accounts as per the Xeroom settings.  From here on there is an audit trail kept in Xero and so an invoice can only be removed by reversing the transaction ie by manually issuing a credit note against it.
  8. The inventory balance in Xero is updated by the order quantity and the transactions posted to relevant sales tax, sales and COGS accounts.
  9. Orders can be also entered into the WC order screen manually ie not via the front-end customer shop and checkout.  Such orders can be manually posted using the Post to Xero button.
  10. Historic orders can be uploaded by using the post to Xero buttons one at a time or if you have a lot of them due to migrating from another system then you can use the Bulk Data Uploader.  This works by downloading a list of all the orders in WC into a spreadsheet.  You can then select which ones you want to be sent to Xero, whether they are reexported and loaded (ignore status for example in a test system) or if the order is already in Xero then don’t repeat (ie ignore status).  Orders can be loaded as status paid or awaiting payment.  The results are given in a log file.
  11. Orders that are cancelled can create credit notes automatically or manually.  Credit notes are not posted so they can be reviewed and posted.
  12. All orders and payments can be quickly reconciled in Xero using the automatic facility.
  13. Xeroom gives full flexibility to posting of sales into separate accounts for different geographies of customer or different product categories.  Different payment checkouts can be posted to separate payment or bank accounts in Xero.
  14. Sales taxes can be set to be copied from those calculated in WC or set to be calculated in Xero using the relevant Tax methods and rates mapped from WC across to Xero.  Standard, reduced, zero and custom rate methods can be mapped in either simple (one tax rule and rate per method) or complex (all georgraphic rules in WC are mirrored).
  15. Memo notes are posted against each order in WC and each invoice in Xero giving the history of when the posting was made and other details.

Multiple WordPress Sites To Xero

Xeroom can transfer orders from multiple WooCommerce sites and bring them all together into one instance of Xero using the one Xeroom licence and one Xero subscription.  The sales and other account settings can be set to be different for each WordPress site so that you can see the sales from all your different sites broken out in Xero.  This is useful if you have for example different lines of business or maybe the same site but in different languages of countries.  This avoids have the complexity and cost of multiple subscriptions to Xero. See the architectural dataflow diagram below.  To do this the URL for each website is added to the Xero application and the same Xero credentials used across all the websites.

Inventory Synch Master Setting

Xeroom uses the SKU to match up the products in the two applications.  Xeroom uses the the descriptions and prices in WC in the matching invoice created in Xero instead of what exists for the product in Xero but only for the order being posted, there is no overwriting of Xero product info at checkout time.  Hard product updates can be made to Xero from WC if the Global Product Synch is used.  If there is no matching SKU found in Xero then Xeroom will create a new product item using the Product ID from WC.

The Inventory Synch Master will control which starting figures are used for the order inventory movements.   The order is sent to Xero and the final inventory amount is passed back to WC.  Note that the two systems are synchronised only when transactions occur.  The Global Inventory Synch handles all of the products in one go and can be from WC to Xero or vice-versa.  For go here a detailed discussion on using inventory.



Auto Complete enables the payment to be applied to the Xero invoice automatically once the payment is taken by a payment gateway with a card, Paypal or similar method.  Setting this to “No” means that the invoice can still be edited manually in Xero if required for say any changes or corrections.  Once everything is fine the invoice can be manually paid and saved after which no full editing is possible.

An example of a final invoice created by Xeroom is given below.


User Settings

The Xeroom settings page allows you to specify and control how the data from WC is sent to Xero and processed.  You can set which accounts in Xero are used for posting the accounting entries from the created invoices.  These cover the bank, sales, COGS, inventory asset (for inventory management) and taxes.  The prices, taxes, discounts, coupons, product codes, descriptions, inventory, reference, customer details and payment information are all transferred and taken care of by Xeroom.  Detailed explanations of each field are given in the installation page.  Here we provide additional explanation for certain features.

Xeroom Licence Settings


The licence key is sent when you order a licence from our shop.  Enter it and hit Submit which should turn the box status to green and Active.

Xero API Key Settings & Authentication

There are 2 keys needed to enable and direct secure communications to take place between your website and WC install and your Xero account.  These are obtained from your Xero application and should be copied and pasted into Xeroom.  Then submit and authorise your Xero application by hitting the button which will take you to the connection screen in Xero where you can select your app.  Full details are given in the installation page.



General Xeroom Settings

The account codes set here MUST exactly match those in your Xero account otherwise this will not work.  The accounts in Xero cannot be of any old type but MUST be of the correct Account Type ie Expense/Revenue etc.  To be sure look in the Chart of Accounts in Xero and ask your book keeper or accountant to double check these.

Sales Account – The account to which the sales are posted.  Usually 200 in Xero.

Shipping/Carriage Costs – The account that Revenues charged to customers is posted to.  Note this is not the account your carriers costs sit in.  This can be 200 or create a new one in Xero for 210

Checkout Payment Methods

Different checkouts can be posted to separate “bank” accounts in Xero.  These are mapped in the section below.  You can use just the default account to post all payments into for example your daily checking account or you can break the payments out by gateway allowing further useful analysis in Xero eg all payments by paypal, by stripe, by direct transfer etc.

NB: The values entered here for the Xero bank accounts are NOT the bank account numbers themselves but the Xero code for them.  These have to be created in Xero as they are not set by default.  All payment methods are classified as type “Bank”.

Inventory Asset Account – The account that manages your inventory.  The default is usually 630.

Goods Sold Account – This is the account where the costs of goods sold COGS for any sales made is posted to.  It applies the cost of the product as set in Xero to the sales posted in the invoice to create an entry in this account.  The default is usually 310.

Synch Inventory Master – Set where you want the inventory master to be.  Sales will affect the master directly and the resulting balance flushed to the slave as sales take place.  NB There is no global synch of all products – that is due for release in Q2 2018.

Product and Price Master – This is no longer available.

Create Invoices as draft/awaiting payment – Do you want to create the invoice as a draft status which needs to be authorised or as awaiting payment which is approved but can still be edited and voided.  The next stage in Xero is paid which cannot be deleted as the payment and other book keeping entries have been made.  The only option to remove it is to reverse it by creating a credit note.

Post Credit Note when order is cancelled – Do you want a CN to be automatically generated in Xero once an order is cancelled in Woo?

Use Extra Sales Accounts – Do you want to be able to break down sales in Xero by geography or by product category.  With geography the idea is to use broad zones such as countries or trading blocks such as EC.  The same with products it is not intended to handle reporting by individual product (which can be done as a report in Xero) but for groups of products ie categories.  Create the separate accounts in Xero and then use this option to map them.  Note Xero doesn’t support sub-accounts.  It is not possible to mix and match geographies and categories.  You can have up to 10 separate accounts for each.


Auto Complete – Do you want payments to be posted automatically to Xero once payment is confirmed  by card or paypal?  This means that instead of appearing as invoices awaiting payment in Xero which can be further edited in Xero they will appear as Paid invoices which cannot be changed.  This doesn’t complete the order in Woocommerce but leaves its status as Processing and so is really Auto Pay.  If set to no then only when the order is completed in Woocommerce will it have the payment applied in Xero and become a Paid status invoice.

Xero Debug Link – This will open the debug page which will show both errors that have occured in Xeroom plus any error messages fed back from Xero.  They are listed by order number and time stamped.  Always check this if something is not working correctly.  You can dig deeper into any unusual errors by looking at your WooCommerce debug log file under the WP-Content directory.  Beware as this has a lot of advisory warnings as well as information on critical errors.

Sales Tax Account Name

Here you need to set your standard rate GST/VAT/Sales tax METHOD.  NB it must not be the tax account no but the method  and must exactly match the spelling in Xero as found under General Settings/Tax Rates eg “20% (VAT on Expenses)”.  Sales taxes are extended to handle all the tax options in WooCommerce in v2.0.4 including standard, reduced and zero rate bands, but version 2.0.3 only can handle one setting which is your standard rate.

Products Held Inclusive/Exclusive of GST

By default prices are received by Xero and treated as tax exclusive with whatever GST tax is specified in Xero or copied across then added by Xero. This meant that if you keep your prices as inclusive of GST in Woocommerce then it would be added again on posting into Xero so it was added twice.  Xeroom will now pick up whatever the tax setting is in Woocommerce and handle the GST accordingly.  Note that there is a setting in invoices in Xero to hard set this if you find that they are not showing correctly.

Note that Woocommerce has to be the master for the prices because if you set Xero to be master then you will have to set Xero to have prices exclusive of GST otherwise GST will be added twice due to the fact that Xero always adds it on even if it receives the prices gross.