var breeze_prefetch = {"local_url":"https:\/\/www.xeroom.com","ignore_remote_prefetch":"1","ignore_list":["\/cart\/","\/checkout\/","\/my-account\/","\/my-account\/","\/wp-content\/uploads\/xeroom\/xeroom.zip","\/wp-admin\/"]};
var jQueryMigrateHelperHasSentDowngrade = false;window.onerror = function( msg, url, line, col, error ) {
// Break out early, do not processing if a downgrade reqeust was already sent.
if ( jQueryMigrateHelperHasSentDowngrade ) {
return true;
}var xhr = new XMLHttpRequest();
var nonce = '22872e699b';
var jQueryFunctions = [
'andSelf',
'browser',
'live',
'boxModel',
'support.boxModel',
'size',
'swap',
'clean',
'sub',
];
var match_pattern = /\)\.(.+?) is not a function/;
var erroredFunction = msg.match( match_pattern );// If there was no matching functions, do not try to downgrade.
if ( null === erroredFunction || typeof erroredFunction !== 'object' || typeof erroredFunction[1] === "undefined" || -1 === jQueryFunctions.indexOf( erroredFunction[1] ) ) {
return true;
}// Set that we've now attempted a downgrade request.
jQueryMigrateHelperHasSentDowngrade = true;xhr.open( 'POST', 'https://www.xeroom.com/wp-admin/admin-ajax.php' );
xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
xhr.onload = function () {
var response,
reload = false;if ( 200 === xhr.status ) {
try {
response = JSON.parse( xhr.response );reload = response.data.reload;
} catch ( e ) {
reload = false;
}
}// Automatically reload the page if a deprecation caused an automatic downgrade, ensure visitors get the best possible experience.
if ( reload ) {
location.reload();
}
};xhr.send( encodeURI( 'action=jquery-migrate-downgrade-version&_wpnonce=' + nonce ) );// Suppress error alerts in older browsers
return true;
}
var errorQueue = [];
var timeout;function isBot() {
const bots = ['bot', 'googlebot', 'bingbot', 'facebook', 'slurp', 'twitter','yahoo']; // Adicione outros bots, se necessário
const userAgent = navigator.userAgent.toLowerCase();
return bots.some(bot => userAgent.includes(bot));
}window.onerror = function(msg, url, line) {
var errorMessage = [
'Message: ' + msg,
'URL: ' + url,
'Line: ' + line
].join(' - ');// Filter bots errors...
if (isBot()) {
return;
}
errorQueue.push(errorMessage);
if (errorQueue.length >= 5) {
sendErrorsToServer();
} else {
clearTimeout(timeout);
timeout = setTimeout(sendErrorsToServer, 5000);
}
}
function sendErrorsToServer() {
if (errorQueue.length > 0) {
var message = errorQueue.join(' | ');
//console.log(message);
var xhr = new XMLHttpRequest();
var nonce = '72dab68dc3';
// var ajaxurl = encodeURIComponent('https://www.xeroom.com/wp-admin/admin-ajax.php?action=log_js_error&_wpnonce=72dab68dc3');
var ajaxurl = 'https://www.xeroom.com/wp-admin/admin-ajax.php?action=log_js_error&_wpnonce=72dab68dc3';
xhr.open('POST', encodeURI(ajaxurl));
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
if (200 === xhr.status) {
try {
//console.log(xhr.response);
} catch (e) {
console.log('error xhr not 200!');
}
} else
{
console.log('error 2');
}
};
xhr.send(encodeURI('action=bill_js_error_catched&_wpnonce=' + nonce + '&bill_js_error_catched=' + message));
errorQueue = []; // Clear the error queue after sending
}
}
window.addEventListener('beforeunload', sendErrorsToServer);
1.Common issues – Please read the most common issues listed below. If you have an old version search our forum below for an immediate answer.
2.Known issues – These are listed on the Updates page and will be fixed for the next release.
3. Use the latest releases – Update your system to have the latest versions below (as of 22nd Mar 2022) of all the key components to see if it resolves the issue. We do not support earlier versions more than 6 months old:
Xeroom – 2.3.2 or latest
WordPress – 5.9.2 or latest
Woocommerce – 6.3.1 or latest
php – 7.4.28 NOT 8.0
4. Plugin & theme conflicts – With dozens of Woo related plugins being used we cannot guarantee that Xeroom will work with any of them. Xeroom is coded to a high standard by one of the best specialist developers of Woo plugins around but this is not the case with many others which inevitably can causes issues. To identify any conflicts try using the default theme and disabling any Woocommerce or Xero related plugins that might be affecting orders and their content. We recommend setting up a clone of your site for testing purposes. This will also prove useful should we need to login to try any fixes as we will not change anything on a live site. The WooCommerce debug logs will also show conflicts – see below.
5. Xeroom Debug Screen – Always check this as a first port of call as Xeroom feeds back any error messages from Xero and displays them here. They may not always be what they appear but please take a screenshot and include when contacting support.
6. WooCommerce Debug Log – Please check for any serious error messages in Woocommerce\Status\logs. Other errors will show in the Woocommerce debug.log file found in the WP-content directory for any warnings relating to Xeroom. To set this see here https://docs.woocommerce.com/document/woocommerce-product-search/api/debugging/ and for general WordPress debugging here https://wordpress.org/support/article/debugging-in-wordpress/ This file will be large and log all messages including advisory ones. Remember not to leave it on otherwise it will show to the users. Copy and paste the relevant Xeroom messages if any are found.
Open a Support Ticket
Before opening a ticket please follow the steps above. We think we are bright (lol) but are not mind readers so please provide as much info as possible so we can help you!
To open a ticket either email [email protected] or else click on the “Support” widget in the bottom right hand corner and filling in as much info as possible so we can quickly understand your issue and help you. Please include the following:
Xeroom and Woocommerce version nos.
Brief explanation of the issue and what triggers it.
How often is the issue occurring?
Screenshots or short video of the issue including of the Xeroom debug page, Xeroom settings pages, the Woocommerce order and any error messages or behaviour or results in Woocommerce or Xero.
You Xeroom licence key and name of purchaser if it is not you.
We aim to respond within 2 working days. If you have had no answer and it is over 2 days please send a reminder as we are fallible and sometimes miss a ticket. If your annual licence has expired please renew it to get another year’s support. If your licence was purchased via somebody else in your company please include the original purchaser’s name and company with yours.
Pre-Sales Questions
Search our forum below and if not answered then send a brief email to: [email protected] with the word Presales (along with the rest of your title) in the subject.
Note: To keep our licence prices low we do not do free presales phone calls, presentations, installations, troubleshooting or fixes – these are available for a low-cost fixed-price paid service in our shop.
Versions
Please see the Updates page for details of each version.
Frequently Asked Questions
Known Issues – Any know issue will be posted on the Updates page.
Incident 8th June, 2022 Xero dropped all connections to their API resulting in this error message when trying to send. It happens approx. once per year and is usually in a specific region.
What does this error mean? – This error message indicates that the connection to Xero is broken due to the Xero security token failing or expiring.
How do I fix it? – You can fix it by clicking on the Authorise button in the Xeroom settings and reconnecting – see pics below. If it is showing as already connected then select continue with existing organisation and it will reconnect. The status button should then go to Active, ie green, and orders should then send again. Try sending or resending an order to check it is working. If this fails to re-establish the connection then go to connection settings in Xero and disconnect the Xeroom app and then go back and try again to reconnect in Xeroom.
What is the cause? – Apart from when Xero drops all connections this error most commonly happens when you – or someone in your organisation – tries to connect another app above the 2 app limit to Xero (ie 2 “unauthorised apps” which means that they are not separate SAAS platforms but accessing via the Xero API) , as it kicks out an existing app. Alternatively a person may have removed the app or the person who created the app is no longer a Xero user in your organisation.
Will it happen again? – To avoid this happening we have improved the connection stability with an automatic Xero token refresh every 15 mins which prevents other apps from taking the connection limit. If it is still happening frequently eg every few days, then please check the cause above and ensure that you are using the latest version of Xeroom. If you are then submit a ticket to our support desk.
Error 500 cannot connect – If you get this error then it indicates that the app is not configured correctly any more eg due to a change in url or permalinks. The correct url to use is shown in Xeroom in bold blue and this will need updating in your Xero app if there has been a change. Detailed troubleshooting for this is given here https://www.xeroom.com/installation-instructions/.
If this doesn’t fix it then try:
1. Recreating the API keys from your Xero app – In Xero go to Settings/connected apps select your app and first try creating a new secret and if that doesn’t fix it a new Client ID too – these must be copied into the Xeroom settings boxes as shown below. This will create a new security token for your connection. 2. A common cause is that the person who created the app in Xero has been deleted from Xero which removes their apps. If this is the case then you will need to recreate the app as per the step-by-step instructions on our website https://www.xeroom.com/installation-instructions/.
3. Permalinks – If someone has changed your permalinks structure this will break the connection due to the Xero URI in the Xero app changing. In version 2.2.3 we added the display of the URI link for your site in the Xero settings section of Xeroom. This is what must be used in the Xero app for it to find the end-point. If it is wrong you will also get an Error 500.
Installation Errors
To install Xeroom – Download the plugin zip file from the link provided in your order confirmation email to your pc. Then go to Plugins/New/Upload/Choose File. Pick the downloaded zip file /Upload and it should install. Enter this and then click activate which will give you a green success message.
If you deleted a previous install to reinstall the new install will fail if the old files and xeroom directory have not been deleted so check if you get an error saying installation failed. Also ensure that the new install is in the plugins\xeroom\ directory and not any other.
“Your licence has expired” Message
The licence is checked once a day and if it cannot authenticate for any reason, eg network or server issues will go into a 7-day grace period countdown which should clear the next day unless it is a genuine licence expiry. If it doesn’t clear within 2 days and your licence has not expired then please contact support to check.
oauth_problem=signature_invalid&oauth_problem_advice=Failed%20to%20validate%20signature or ‘o’ mean in the debug table
When the “Active” button is not showing as green in the settings page it means that Xeroom is not able to communicate from Woo to Xero. This is usually accompanied by an “oath authorisation” error message in debug that sometimes gets truncated to ‘o’ . It means that the comms are not working between Woo and Xero so the API keys are either missing or wrong or that the certificate used to create them doesn’t match the one on your server. Ensure that you have used exactly the same security certificate in the Xero app to create the keys as is in the \xeroom\library\certs\ folder which is normally the default one that ships with the app OR if you have created a custom one then it is the same in both locations. The easiest and quickest way to fix this is to recreate your API keys using the cert supplied with Xeroom. It can also mean that some of the settings are wrong or some information is missing in the settings page. Try checking the installation instructions again. Common errors include; the wrong code from Xero is being used, or incorrect words in the Sales Tax Account Name box.
I don’t have any sales tax what should I put in the Sales Tax Account Name box in settings?
For no sales tax then you have a choice of any tax method in Xero that is zero rated eg “No VAT” – see here for examples http://prntscr.com/j84wds
Why am I still unable to receive invoices in Xero even through all the Xeroom settings are correct?
It may be helpful to remove and reinstall the plugin. Make sure that the old Xeroom director is deleted using the File Manager plugin. This often fixes any errors left by other conflicting plugins. You may also wish to try a new set of API keys.
What plugins should I avoid when using Xeroom?
Some people have found that other plugins which affect the Woocommerce order data or link Woocommerce to Xero can conflict with Xeroom. We recommend that you test any connections in Xero and any suspect WC plugins one at a time to reduce any conflicts. Other plugins that speak to Xero such as Zapier or the WooCommerce connector for Xero should be deactivated and preferably removed. Then reinstall Xeroom and clear all caches so that no Xero API conflicts are left hanging around.
I don’t charge shipping what code should I use in Xeroom settings?
The default in Xero is 200 (the same as for sales) however you can create your own code in Xero chart of accounts if you want this revenue stream broken out.
What bank code should I use?
This is a clearing account and can be the code for your bank, a dummy bank or a creditor ac which must be ticked so it can accept payments. The code must be the Xero code not the bank code itself. Xero does not have one set in the default chart of accounts so label your account with one usually 100 makes sense to use but you can change this in Xero if you wish.
Invalid Documents debug error
This will occur if you have not used a valid Xero ac code for your payment/bank accounts in Xeroom. Any preceding zeros or blanks are not permitted in this code despite being able to set them like that in Xero it will not permit payments to be made against them!
Old Versions Support Forum
This is being converted into a new easier to use knowledgebase but is here for completeness.
var smuzform = {"ajaxurl":"https:\/\/www.xeroom.com\/wp-admin\/admin-ajax.php","errorMessages":{"required":"This field is required.","email":"Please enter a valid email address.","number":"The value you have entered is not a numeric value","url":"URL is not valid."}};
var wc_add_to_cart_variation_params = {"wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_no_matching_variations_text":"Sorry, no products matched your selection. Please choose a different combination.","i18n_make_a_selection_text":"Please select some product options before adding this product to your cart.","i18n_unavailable_text":"Sorry, this product is unavailable. Please choose a different combination."};
var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/www.xeroom.com\/cart\/","is_cart":"","cart_redirect_after_add":"yes"};
var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"ajaxurl":"https:\/\/www.xeroom.com\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}};
var DIVI = {"item_count":"%d Item","items_count":"%d Items"};
var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"};
var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"};
var et_pb_custom = {"ajaxurl":"https:\/\/www.xeroom.com\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/www.xeroom.com\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/www.xeroom.com\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"e3798df531","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"a3b7a900e8","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"1689","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"yes","is_shortcode_tracking":"","tinymce_uri":"https:\/\/www.xeroom.com\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#003156","waypoints_options":[]};
var et_pb_box_shadow_elements = [];
var shield_vars_notbot = {"strings":{"select_action":"Please select an action to perform.","are_you_sure":"Are you sure?","absolutely_sure":"Are you absolutely sure?"},"comps":{"notbot":{"ajax":{"not_bot":{"action":"shield_action","ex":"capture_not_bot","exnonce":"7f062a53d3","ajaxurl":"https:\/\/www.xeroom.com\/wp-admin\/admin-ajax.php","_wpnonce":"daa1f49be6","_rest_url":"https:\/\/www.xeroom.com\/wp-json\/shield\/v1\/action\/capture_not_bot?exnonce=7f062a53d3&_wpnonce=daa1f49be6"},"not_bot_nonce":{"action":"shield_action","ex":"capture_not_bot_nonce","ajaxurl":"https:\/\/www.xeroom.com\/wp-admin\/admin-ajax.php","_wpnonce":"daa1f49be6","_rest_url":"https:\/\/www.xeroom.com\/wp-json\/shield\/v1\/action\/capture_not_bot_nonce?_wpnonce=daa1f49be6"}},"flags":{"required":true}}}};