Welcome to Xeroom - Our website is currently being revamped [email protected]

Managing B2B Purchase Orders & Payments-on-Account in WooCommerce

This article discusses how commonly used payment processes can be setup in WooCommerce using Xeroom. This covers both Business-to-Consumer and Business-to-Business customers where orders are placed using purchase orders for monthly payment or with pre-deposited funds or payments-on-account.

 

WooCommerce B2B Customer & POA Limitations

WooCommerce is great for creating and taking orders but has no built-in accounting features or ability to handle or manage Business-to-Business (B2B) orders that are usually made with a purchase order and not all paid until the end of the following month in one go.  Xero on the other hand, has this built in and is great for invoicing, applying payments and managing accounts and credit control for B2B customers.  Whilst there are a number of plugins that extend WooCommerce by creating PDF Invoices (that can be automatically emailed to the customer) these do not enable a B2B process to be used.

Likewise are a number of Funds-on-Account plugin that will enable Payments-on-Account (POA) to be made in WooCommerce, however they don’t integrate with a real accounting package like Xero. Whilst useful as an interim step for small one-man businesses this is going down the wrong road as WooCommerce is not, and never will be, an accounting system anything like Xero (with the core fraud and loss safety features of audit trails, bank reconciliations and double-entry bookkeeping) and so are not a safe or recommended solution for a proper business.

 

How Xeroom Enables a Business-to-Business Process to be Used

Xeroom enables these two perfect-halves (WooCommerce and Xero) to be joined together in a seamless manner to create an integrated and powerful fully-fledged e-commerce system. This provides really useful benefits for managing not only B2B customers but Business-to-Consumer (B2C) as well.

  1. Enable monthly settlements of multiple purchases – This important process can now be handled with your existing systems and with no new investment or risks in a bespoke development or having to use different platforms. When a customer orders he simply checkouts out using a Purchase Order number.  Xeroom will immediately post the order to Xero and also email the customer an invoice from within Xero.  At the end of the month a statement is sent to the customer from Xero and when the total payment is made for all the orders this can be easily applied to all the customer invoices in the account and Xeroom will then update WooCommerce with these payments.  This enables you to look very professional to your customers.
  2. Enable Deposits, Payments-on-Account and use of pre-authorized funds – If you use the Funds on Account plugin with Purchase Order numbers then this can also enable POA order authorization to be implemented.
  3. Avoid Costly Errors – Accurate invoices are issued without costly and time-consuming errors that need human intervention to resolve.
  4. Time-saving – The Xero invoices are automatically generated in Xero (but triggered in WooCommerce) and sent to customers saving hours. Xeroom tracks these and shows them on the modified WooCommerce Order Dashboard.
  5. Professional Looking – Impress your customers with proper professional looking tax invoices from Xero that are tied-in to their orders placed.
  6. Avoid Delayed Payments – Invoices from Xero are sent immediately after checkout so no delays are created for you to get paid on-time.
  7. Management of the Process – It is easy to set-up and you have full control of how the process is run.
  8. Visibility of Order Status – You can easily see with colour-coded dashboard.

Furthermore, if you are already using a PDF Invoice plugin then Xeroom will work with it to harmonise the invoice number in Xero thus avoiding any confusion for your staff or customers.

 

How the Payment-on-Account Process Works

The B2B customer process can be further enhanced to allocate authorized approved funds. Your customers can deposit funds for use against future orders (instead of or as well as using a PO number) known as Payments-on-Account (POA).  In this case a payment is made at the WooCommerce checkout which is then sent to Xero explicitly for the purpose. These funds are then available to designated users to apply against future purchases.

The overall process flow is typically as follows:

  1. For scenarios where the customer has to pay for purchases immediately – The customer manager who controls the budget makes a deposit of funds onto their account using the WooCommerce checkout.  Xeroom immediately synchs this payment to Xero.
  2. The customer’s staff can then place orders and pay for them using the deposited funds which show as a separate payment gateway.
  3. Alternatively if payment is to be delayed as with many B2Bs then multiple staff members can make purchases using the Purchase Order gateway to checkout. This captures the PO number and any other relevant details. The order status is set to hold, pending or processing (ie paid) depending on the setting.
  4. The order is posted to Xero by Xeroom – again triggered by the desired setting ie status change or manually.
  5. The Xero invoice is sent to the customer either automatically by Xeroom for WooCommerce or manually from Xero. The invoice due date can be set in Xeroom to 30 days, end-of-month, the default Xero setting or a custom setting.
  6. The order is processed and goods dispatched.
  7. The Xero statement sent to the customer at the end-of-the-month with all invoices due for payment or in the case of POA new funds can be added by the manager.
  8. The customer makes payment and Xero is automatically updated by the live feed.
  9. The bookkeeper reconciles the bulk payment to the relevant invoices and marks them as paid.
  10. Xeroom updates the status in WooCommerce to “Paid in Xero” and completes the order.

 

Process Steps – Instant Payment Gateways for B2C Customers

If you have instant payments typically used for B2C websites with gateways such as Stripe, Paypal or Credit Card then the following steps take place depending on your settings. The table shows how Xeroom ties both WooCommerce and Xero together to work seamlessly and automatically in a way that is fully under your control. Green is the desired status, orange is an intermediate step.

Process Steps – Delayed Payment Gateways for B2B

If you are using a delayed payment for a B2B website with gateways such as payment-on-account, bank transfer, cash on delivery then the following table details the processing steps that take place. As you can see the key difference is that the order process can move forward without receiving the actual payment but instead a request or “intent to pay” is created often using a purchase order number.

Occasionally it may be paid soon after by bank transfer (the second row) but normally is paid at the end of the current or next month following receipt of the invoice. So the crucial thing is that the invoice is created in Xero and sent to the customer immediately following order and so becomes a debtor (yellow box action). Statements are then sent to the customers at the end of the month and a consolidated payment made. Once received and applied to the invoices in Xero by reconciliation Xeroom then automatically will post the applied payments and status back to WooCommerce to complete the order status there (the blue boxes).

How Xeroom Works with Multiple Payment Gateways & Wholesale Prices

Can Xeroom handle both B2C and B2B setups?  Absolutely! Many companies have a mix of B2C and B2B customers and need to be able to handle one or the other or both in their setup. WooCommerce enables the use of multiple payment gateways (including “buy now pay later” gateways such as Klarna, Afterpay which are increasingly popular).  Xeroom can handle an unlimited number of  gateways and each can map to a separate bank account in Xero.  It also gives detailed control of how each gateway can send the payment ie automatically or not, eg Stripe and Paypal will need to be sent immediately but PO, bank transfer or other delayed payment methods will not.

A further extension can be implemented for businesses that use different prices for wholesale and retail customers.  The WooCommerce Wholesale Ordering plugin by Stephen Sherard is great and enables this situation to be setup.  We have enabled Xeroom to work with this plugin.

 

Payment Synch Back to Xero from WooCommerce

Having received invoices or monthly statements from Xero a customer can then proceed to make a payment. Once it is made then it will then show in Xero’s automatic bank feeds either as an individual payment, which can be matched with payments sent by Xeroom, or as an aggregate consolidated payment that covers multiple invoices. Your bookkeeper will reconcile these actual payments into the bank with the invoices and “bank accounts” in Xero using the automatic matching rules to save time.  Auto reconciliations are based on matching up 4 parameters: name, date, reference and amount. When an invoice is paid off in Xero this will trigger Xeroom to automatically update the order status back to WooCommerce using a webhook (see below for setup). It will show the order Xero status as “Paid in Xero” in blue and also change the order status to “Completed”. It takes around 2 mins for the update to show in WC.

The light blue outline to the box indicates that the invoice has been sent automatically by Xeroom earlier in the process.

How to Set-Up Xero Payment Synch Webhook  

Xeroom uses a webhook that gets triggered by Xero on the occurrence of certain events such as payment. To obtain your webhook you need to go to your Xero app in https://developer.xero.com/ and you will see a menu item for webhooks.  Open the tab and you will see the following:

We use the invoices box along with a delivery URL which is: https://www.websitename/wp-json/xeroom/v2/invoice_callback where websitename is your own website name with correct ending ie .com or.co.uk etc.

When you hit save it will generate a webhook and status box. Copy this webhook into the box in Xeroom and save it.  Then go back and hit the “Send intent to receive” button. If everything is good then you will get an “ok” message. If it fails the status will be red which means it has failed for some reason (Go back and check your settings are correct).

 

Errors and Troubleshooting

If the webhook has failed you will get the following message.

  1. Check if your server firewall or any security plugs are blocking the request.
  2. Check for Cloudflare or other caching or anti-botapps that you are using to see if they are blocking it.
  3. Check that your server has Ngnix enabled and set the default application to Xeroom.
  4. Install the Rest API Log plugin which is under tools and that gives a lot more info on the request https://www.websitename/wp-admin/tools.php?page=wp-rest-api-log-view-entry&id=1087

 

How to Set-UP Purchase Order Numbers for Order Payments

With this set-up the first step is to install the Purchase Orders for WooCommerce plugin.  This enables the PO number and any other details such as name and address to be captured at checkout – The settings for this are found under WooCommerce/Settings/Payments.

The PO number will then appear in the order and Xeroom will pickup this info and post it with the order into the invoice created in Xero .  At present Xero doesn’t permit custom fields so the information is presented as a line item on the invoice.

 

OTHER GUIDES

WHY XEROOM?

SIMPLE TO LEARN

EASY-TO-SETUP

USEFUL FEATURES

STABLE & ERROR FREE

FULLY AUTOMATED

GREAT COMPATIBILITY

AFFORDABLE PRICING

EXPERT SUPPORT

FAST LOW-COST INSTALL

EASY TO MIRROR

LOVED BY CUSTOMERS