Kryptronic eCommerce Software Update: 9.0.3
An update was released today, January 31, 2019, for Kryptronic eCommerce software version 9. Installation of this update will increase your software version to 9.0.3. This update is intended for all clients running Kryptronic eCommerce software versions 9.0.0 through 9.0.2.
This update has been superceded by update 9.1.0. Follow the link below for more information on upgrading to version 9.1.0.
View Kryptronic eCommerce software update 9.1.0 to continue.
Public Software Release Notice: All clients are highly encouraged to update to this software version. This version marks the official public release Kryptronic eCommerce software version 9. Until now, Kryptronic eCommerce software version 9 has only been available to existing clients.
Step 1: Prepare Your Database for the Update
Access your management interface and login, then browse to the System / Database / Raw Database Admin function. Next, access the Submit Raw SQL Statement function and execute the following SQL statements, individually:
Pre-Update Database Changes
If updating from version 9.0.0 through 9.0.1: Start here, and continue to the end:
ALTER TABLE core_sessions CHANGE COLUMN id id VARCHAR(128) DEFAULT '' NOT NULL
DELETE FROM core_messages WHERE id='core.sendpass_confirm' OR id='core.sendpass_fail' OR id='core.login_fail' OR id='core.changepass_confirm' OR id='core.changepass_fail' OR id='core.createaccount_confirm'
DELETE FROM core_forms WHERE id='core.sendpass' OR id='core.besendpass'
DELETE FROM core_mail WHERE id='core.sendpass' OR id='core.besendpass' OR id='ecom.cardencrypt'
DELETE FROM core_formfields WHERE id='core.sendpass.user' OR id='core.besendpass.user'
DELETE FROM core_namespaces WHERE id='core.sendpass' OR id='core.sendpass_proc' OR id='core.besendpass' OR id='core.besendpass_proc'
UPDATE core_mail SET textincid=REPLACE(textincid,'URL below','link below'), xhtmlincid=REPLACE(xhtmlincid,'URL below','link below')
If updating from version 9.0.2:
DELETE FROM core_mail WHERE id='core.belogindevauth' OR id='core.logindevauth'
DELETE FROM ecom_gateway WHERE id='realexform' OR id='purchonacct'
Step 2: Pre-Update Manual Changes
Prior to installing and runnng the installer, there are several manual changes that need to be made to bring your software up to date. Manual changes are as follows:
Pre-Update Manual Changes
If updating from version 9.0.0 through 9.0.1: Start here, and continue to the end:
This update changes the software so that it uses a single URL (SSL Preferred) for all requests. This requires a fundamental change to the private configuration file, which must be done manually. To make this change, edit your private configuration file, which is named config.php and is located in your private installation directory. You will not be able to use the new software installer to install this update until you make these changes:
This is what the part configuration file to be changed will look like before it's modified (example only):
$config['core.url_nonssl'] = 'http://yourdomain.com';
$config['core.url_ssl'] = 'https://yourdomain.com';
$config['core.port_ssl'] = '443';
$config['core.cookie_domain_nonssl'] = '.yourdomain.com';
$config['core.cookie_path_nonssl'] = '/';
$config['core.cookie_domain_ssl'] = '.yourdomain.com';
$config['core.cookie_path_ssl'] = '/';
Remove the 'core.url_nonssl', 'core.port_ssl', 'core.cookie_domain_nonssl' and 'core.cookie_path_nonssl' lines completely. Remove '_ssl' from the remaining lines. Save and upload the file, replacing the one in your private installation directory. This is what the configuration file will look like after it's modified (example only):
$config['core.url'] = 'https://yourdomain.com';
$config['core.cookie_domain'] = '.yourdomain.com';
$config['core.cookie_path'] = '/';
If updating from version 9.0.2:
No pre-update manual changes are required.
Step 3: Get the New Installer
This update requires a new installer package to be downloaded and utilized. You can download an installer package using the following link. Once downloaded, extract the download package, and upload all of it's files (index.php, installer.php, readme.pdf and license.pdf) to your public installation directory, replacing the files of the same name with the new ones. You will not be able to download the update files without the new installer package installed.
Download the New Installer
Step 4: Run Your Software Installer
Access your installer.php script and login. Submit through steps 1-5 without making changes to your installation configuration information, unless you need to.
On Step 6 (PEAR Installation), choose 'Yes, reinstall/update PEAR modules'. Leave the 'Overwrite all files' checkbox EMPTY. It is your option whether you choose to auto-submit the steps or confirm each one. Any PEAR modules that have been updated since your last installer run will be updated.
On Step 7 (System Component Installation), choose 'Yes, reinstall/update the system component'. Leave the 'Overwrite all files' checkbox EMPTY. It is your option whether you choose to auto-submit the steps or confirm each one. Any system component modules that have been updated since your last installer run will be updated.
Submit through steps 8-11 without making changes to your installation configuration information.
On Step 12 (Component and Module Installation), choose 'Yes, reinstall/update components and modules'. Leave the 'Overwrite all files' checkbox EMPTY. Leave the 'Only install new components and modules' checkbox EMPTY. It is your option whether you choose to auto-submit the steps or confirm each one. Any component modules that have been updated since your last installer run will be updated.
On Step 13 (Database Reload), choose 'Reload with recently changed definition files only'. It is your option whether you choose to auto-submit the steps or confirm each one. If any database definition files have been updated, only those files that have changed will be updated. Do not worry about losing data or the installer overwriting your data during a database reload. The installer is smart enough not to do that to you.
Step 5: Post-Update Database Changes
After running your installer.php script you will be prompted to access your management interface. Access your management interface and login, then browse to the System / Database / Raw Database Admin function. Next, access the Submit Raw SQL Statement function and execute the following SQL statements, individually. Note that depending on the version you're updating from, you may run all or some of these statements.
Post-Update Database Changes
If updating from version 9.0.0: Start here, and continue to the end:
UPDATE ecom_prodoptions SET optsel=CONCAT(optsel,'|') WHERE optsel<>''
DELETE FROM core_reportsadv WHERE id='cms.htmlpagestop20' OR id='cms.namespacestop20' OR id='core.componentusage' OR id='core.namespacestop20' OR id='ecom.namespacestop20' OR id='ecom.productstop20'
DELETE FROM core_namespaces WHERE id='core.reportspages'
DELETE FROM core_statsfe WHERE type='PAGEVIEW'
DROP TABLE core_statsns
DROP TABLE core_incphp
DELETE FROM core_tabledefs WHERE tid='core_statsns' OR tid='core_incphp'
DELETE FROM core_columndefs WHERE cid LIKE 'core_statsns.%' OR cid LIKE 'core_incphp.%' OR cid='core_users.procinfo'
UPDATE ecom_inventory SET xprodoptionsdisp='DEFAULT, ADDON'
This last statement may generate an error, depending on the age of your current software installation:
ALTER TABLE core_users DROP COLUMN procinfo
If updating from version 9.0.1: Start here, and continue to the end:
ALTER TABLE ecom_acctsysqueue CHANGE COLUMN xid xid VARCHAR(150) DEFAULT '' NOT NULL
UPDATE cms_banneradverts SET linktype='ecom.manuscat' WHERE linktype='ecom.manus'
UPDATE cms_bannermain SET linktype='ecom.manuscat' WHERE linktype='ecom.manus'
UPDATE core_formfields SET fieldorder='700' WHERE id='ecom.guestcoship.emaillist'
UPDATE core_groups SET secstrongpass=0, secrepeatpass=0, secexpirepass=0, seclockout=0, changepassalert=0, devauthalert=0, lockalert=0
UPDATE core_groups SET secstrongpass=1, secrepeatpass=4, secexpirepass=90, seclockout=3, changepassalert=1, devauthalert=1, lockalert=1 WHERE interface='BackEnd'
UPDATE core_multisite SET matchhost=matchhostssl, url=url_ssl, cookie_domain=cookie_domain_ssl, cookie_path=cookie_path_ssl
UPDATE core_multisite SET matchhost='DEFAULT', url='DEFAULT', cookie_domain='DEFAULT', cookie_path='DEFAULT' WHERE id='DEFAULT'
UPDATE core_namespaces SET groupdeny='*' WHERE id='core.beaccountconf' OR id='core.accountconf'
UPDATE core_namespaces SET name='QBWC File Creator' WHERE id='ecom.xmodqbwcfile'
UPDATE core_users SET ktokenauth='', kcodeauth='', loginfails=0, loginfaillast=0, loginlocked=0, passchangehist='', passchangelast=lastaccess, custorderemails='', intorderemails='' WHERE ktokenuser LIKE 'K%'
UPDATE core_users SET ktokenauth='', kcodeauth='', ktokendevauth='', loginfails=0, loginfaillast=0, loginlocked=0, passchangehist='', passchangelast=lastaccess, custorderemails='', intorderemails='', sessdata='', ktokenuser='' WHERE ktokenuser NOT LIKE 'K%'
UPDATE ecom_acctsysmap SET acctnamealt='Surcharge Income' WHERE acctnamealt='Surchage Income'
UPDATE ecom_acctsysmap SET acctnamepri='Surcharge Income' WHERE acctnamepri='Surchage Income'
UPDATE ecom_acctsysterms SET disporders=1, disppurchords=1, convertdays=0
UPDATE ecom_acctsysterms SET convertdays=REPLACE(id,'Net ','') WHERE id LIKE 'Net %'
UPDATE ecom_cat SET addldisp='DEFAULT', addlheader='', addlcat='', addlsortorder=0, descshort='', multisitedescshortone='', multisitedescshorttwo='', specdescshort='', footdisplay=''
UPDATE ecom_gateway SET incdisp=REPLACE(incdisp, '$this->globals(\'core_session.sid\')', '$order[\'order\'][\'id\']')
UPDATE ecom_gateway SET incdisp=REPLACE(incdisp, 'core.url_ssl', 'core.url')
UPDATE ecom_manus SET descshort='', multisitedescshortone='', multisitedescshorttwo=''
UPDATE ecom_orders SET custorderemails='', intorderemails='', shippingmemo=''
UPDATE ecom_prod SET offergiftpromo='0.00'
UPDATE ecom_prod SET seourl='Overpayment-Item' WHERE id='OVERPAYMENT'
DELETE FROM core_columndefs WHERE cid='core_multisite.matchhostnonssl' OR cid='core_multisite.matchhostssl' OR cid='core_multisite.url_nonssl' OR cid='core_multisite.url_ssl' OR cid='core_multisite.cookie_domain_nonssl' OR cid='core_multisite.cookie_path_nonssl' OR cid='core_multisite.cookie_domain_ssl' OR cid='core_multisite.cookie_path_ssl' OR cid='core_namespaces.hreftype' OR cid='core_users.show_currency' OR cid='ecom_orders.sessionid' OR cid='core_sessions.userid' OR cid='core_users.lastsid'
DELETE FROM core_dbguided WHERE id='core.managemultisite.matchhostnonssl.TBLISUNIQUE' OR id='core.managemultisite.matchhostnonssl.TBLSUPRESSCLONE' OR id='core.managemultisite.matchhostssl.TBLISUNIQUE' OR id='core.managemultisite.matchhostssl.TBLSUPRESSCLONE' OR id='core.manageusers.lastsid.TBLSUPRESSCLONE'
DELETE FROM core_messages WHERE id='core.form_failrobot'
DELETE FROM core_modules WHERE id='ecom.XMOD_GoogleTrustedStores'
DELETE FROM core_namespaces WHERE id='core.beaccountover' OR id='core.accountover' OR id='ecom.xmodgoogletrustedstores_js'
DELETE FROM core_selectcustom WHERE id LIKE 'ecom.xmodgoogletrustedstores_%' OR id='cms.bannerslink.ecom.manus' OR selectid='core.namespaces.hreftype'
DELETE FROM core_sessions
DELETE FROM core_settings WHERE id LIKE 'ecom.xmodgoogletrustedstores_%' OR id='core.session_cookexpdays' OR id='core.session_cookrefdays' OR id='core.seo_suppresssid' OR id='core.time_store_sessions' OR id='core.banned_sids' OR id='core.sslalwayson'
DELETE FROM ecom_acctsysship WHERE id='USPS First-Class Mail Parcel'
DELETE FROM ecom_cart
DELETE FROM ecom_shiprealtimep WHERE id='USPS-US-First-Class Mail Parcel'
ALTER TABLE core_multisite DROP COLUMN cookie_domain_nonssl
ALTER TABLE core_multisite DROP COLUMN cookie_domain_ssl
ALTER TABLE core_multisite DROP COLUMN cookie_path_nonssl
ALTER TABLE core_multisite DROP COLUMN cookie_path_ssl
ALTER TABLE core_multisite DROP COLUMN matchhostnonssl
ALTER TABLE core_multisite DROP COLUMN matchhostssl
ALTER TABLE core_multisite DROP COLUMN url_nonssl
ALTER TABLE core_multisite DROP COLUMN url_ssl
ALTER TABLE core_namespaces DROP COLUMN hreftype
ALTER TABLE core_sessions DROP COLUMN userid
ALTER TABLE core_users DROP COLUMN lastsid
ALTER TABLE core_users DROP COLUMN show_currency
ALTER TABLE ecom_orders DROP COLUMN sessionid
If updating from version 9.0.2:
UPDATE core_formfields SET fieldorder=fieldorder+1 WHERE id='ecom.orderman_markpaid.reference' OR id='ecom.orderman_markpaid.acctsyslogged' OR id='ecom.orderman_markpaid.sendemail'
UPDATE core_users SET customdata='', acctsystermsavail='', autocommentsint='', invoicemail=0, invoicedisp=0, ordemaillogosup=0
DELETE FROM core_namespaces WHERE id='ecom.procgwresplink' OR id='ecom.printinvoice'
DELETE FROM core_modules WHERE id='skin.COREMI9'
UPDATE ecom_cofields SET name='Order Comments', description='<p>If there are any comments, enter them below. These comments will be shown on order summaries and mail messages.</p>' WHERE id='commentsext'
UPDATE ecom_credits SET statusinternal=0
UPDATE ecom_gateway SET refurlstr='authorize' WHERE id='authnetan' OR id='authnetss'
UPDATE ecom_gateway SET refurlstr='worldpay' WHERE id='worldpwp'
UPDATE ecom_gateway SET incdisp=REPLACE(incdisp, 'ecomrelay.php','ecomrelaymeta.php') WHERE id='epdqform'
UPDATE ecom_orders SET currshow='', currconvrate='', invoicemail=0, invoicedisp=0, ordemaillogosup=0
UPDATE ecom_orderitems SET shiptotalbasis='0.00'
UPDATE ecom_shiprealtime SET rateurl='https://onlinetools.ups.com/ups.app/xml/Rate', trackurl='https://onlinetools.ups.com/ups.app/xml/Track' WHERE id='UPSTOOLS'
UPDATE ecom_prod SET googlebase_color=REPLACE(googlebase_color, ', ', ' / '), googlebase_size=REPLACE(googlebase_size, ', ', ' / '), xcatparent=''
UPDATE ecom_vendors SET purchterms='Net 30', purchshipmethod='STANDARD'
If you have the Articles extension module installed, run these two statements:
UPDATE cms_xmodarticles SET sortorder=10, articlesortorder=0
UPDATE cms_xmodarticlescat SET splashdisp=1, articlesortorder=0, catparent='', xcat='', xsortorder=0
If you have the Batch Shipping Manager (BSM) extension module installed, run this statement:
UPDATE ecom_batchshipmanout SET billacct=''
Step 6: Post-Update Manual Changes
After updating your database, there are several manual changes that need to be made to bring your software up to date. Note that depending on the version you're updating from, you may need to make all or some of these changes.
Post-Update Manual Changes
If updating from version 9.0.0 through 9.0.1: Start here, and continue to the end:
Edit the skin.php file in your Mail Message skin ({public}/skins/MailMessage/skin.php). In that file, you will see:
$logourl = $this->globals('core.url_nonssl');
Change to the following, save the file, and replace it online:
$logourl = $this->globals('core.url');
Access the System / Component / Settings / Site Information management interface function and enter a properly formatted telephone number in the 'Site Owner Telephone Number (Link)' field.
Access the System / Mail / Mail Messages management interface function and ensure email addresses are correct on all newly added mail messages.
If you use the Cookie Information page, change information in the Session Cookies session to accurately reflect how this software uses session cookies. You can update this page using the Website / Content / Webpages management interface function. Proper language is:
These cookies are used to maintain your identity, or session, on this website. These cookies typically expire at the end of your browser session, with the exception of a special session token cookie, which will be available for 30 days.
If you have configured either Wordpress or Vanilla Forums to work with the software's Remote Skin Exporter, you will need to download and install a new theme and plugin(s). When installing the new theme in either WordPress or Vanilla Forums, simply overwrite all the theme files, but you can keep your CSS styles. Overwrite all files for plugin installations.
Get Wordpress and Vanilla Forums Themes and Plugins
If the Google Shopping extension module is installed, access the Store / Catalog / Product Offers management interface function and ensure that all product offers are either not using Google Shopping Price Overrides, or ensure any Google Shopping Price Overrides are accurate.
If you had the Google Trusted Stores extension module installed, it has been replaced with the Google Customer Reviews module, so you need to remove the Google Trusted Stores module. To do so, delete the entire {private}/apps/ecom/XMOD_GoogleTrustedStores directory, and the file {private}/apps/ecom/ECOM/includes/xmodgoogletrustedstores_js.php.
If you have installed the new Articles extension module, you may want to add the following to your main skin's all.css file at the bottom ({public}/skins/{YOUR-SKIN}/css/all.css):
.kxmodarticlescatshow, .kxmodarticleslist {border: 1px solid #F4F4F4;}
.kxmodarticlescatshowdescwrap, .kxmodarticleslistdescwrap {background-color: #F4F4F4;}
.kxmodarticlescatlistitem {background-color: #F4F4F4; border: 1px solid #F4F4F4;}
.kxmodarticlescatlistitemwrap {padding: .5em;}
If updating from version 9.0.2:
If you were using the Realex payment gateway, reactivate the gateway and enter your access info using Store / Commerce / Processing Gateways. This gateway integration was completely rebuilt.
If you were using the Purchase On Account payment gateway, reactivate the gateway using Store / Commerce / Processing Gateways. This gateway integration was completely rebuilt.
If you are using the FirstData Payeezy payment gateway, using Store / Commerce / Processing Gateways edit the gateway and in the Form Display Code section, set the timestamp variable to use the server time() function:
$x_fp_timestamp = @time();
And remove the x_relay_response and x_relay_url parameters entirely from the form defintion. These changes are due to FirstData now automatically sending relay responses and using UTC.
Remove the directory {public}/skins/COREMI9, and all it's contents. A new management interface skin was installed with this update, and this older skin is no longer needed.
Items Added/Changed In This Update
Modified the common JavaScript library to better handle click/hover menus in mid mode when the midwide modifier is present.
Modified accounting system error emails to use the site owner as the from address for the mails.
Modified Listrak coding to fire _ltk.Click.Submit() in it's own script container due to changes made by Listrak.
Added Customer Purchase Order field option to gateway form displays and added to the Purchase On Account gateway. Previously a display field was used. This opens up the possibility to accept a purchase order number when processing with stored payment tokens with other gateways.
Modified the logic associated with removing pending and cancelled orders so that future orders which have been cancelled or have a pending (non-initialized) status are also removed.
Modified the logic associated with Google Analytics and affiliate logic when orders are processed. Extra checks have been added which filter out duplicates due to double-posts and bookmarks.
Modified partially received dropship purchase order logic to better support partial receipts while leaving the purchase order open.
Modified dropship purchase order closure logic (order canceled, items canceled) to account for partial receipts.
Added a function to the Order Manager which allows orders with both completed and incomplete items to be split. The function allows moving of incomplete items to a new order, provided no customer payments have been received for the order.
Added multiple order (same customer) support to dropship purchase orders to accomodate incomplete item order splits. Referenced dropship purchase orders will remain open.
Modified the QuickBooks Web Connector extension module to order purchase order items requested by inventory id, then by create date, then by accounting system id to combat inadvertent sorting in QuickBooks when multiple items with the same inventory id created at the same time are posted in.
Modified the PayPal Website Payments Pro Express Checkout gateway to default to 'UK - England & Wales' when the country code transmitted by PayPal is 'GB'.
Added a Print Packing List(s) function to the Order Manager which prints all packing lists which have been generated for the order using the Batch Shipping Manager extension module.
Added a Custom Data field for user accounts (core_users.customdata). This custom data is made available for custom programming purposes, and is not used by this software directly.
Added the ability to lock payment terms to a single selection for user accounts who have the ability to purchase on account (with payment terms).
Point of Sale order modifications were changed to store customer purchase order number, payment terms, internal comments and external comments from the source order, allowing changes.
Modified the logic behind logging payments for unpaid and partially paid orders in the Order Manager. The payment type is now tied to the submitted payment method rather than the original order payment method.
Merged System Settings section 'Security Settings' into section 'Security' to consolidate redundant sections.
FirstData e4 gateway was renamed to FirstData Payeezy due to name change by FirstData.
Modified the UPS OnlineTools interface to transmit the newer 'ResidentialAddressIndicator' node in place of 'ResidentialAddress'.
3Dsecure display was updated to use HTML5 syntax, replacing XHTML 1.0 Strict syntax.
Modified the currency conversion system and pricing displays to provide a simplistic approach to producing converted prices in content versus emails. Orders now store the customer's currency choice during checkout, and the associated currency conversion rate. This to ensure customers always get order emails in the proper currency, no matter when they are generated.
Removed link-based gateway response processing. Realex switched to a metarefresh-based method. Referring URL strings updated for WorldPay and Authorize.net SIM.
Added a new Payment Entry extension module used to quickly apply single payments against multiple orders for customers who have purchased on account.
Removed the ManufacturerPartNumber node from XML requests relating to Purchase Orders generated by the QuickBooks Web Connector extension module.
Adjusted namespace handling for ajax requests as well as BackEnd interface requests to provide ensure uniform handling of errors.
Added the ability to create internal order comments for customer accounts and have those pre-populate on orders created both by the customer and via Point of Sale.
Added order invoice mails which can be sent in place of order completed mail messages based on customer account settings (and global Order Manager settings for guests). A printable version of the order invoice was also added. Order invoices contain slightly less information than an order summary - and should be treated as a bill sent to the customer, or printed by the customer. Items found in order summaries which are not found in invoices: Original order number, channel order number, invoices always show a balance, margins, review information, credit card type, referrer, processing method, delivery total modified indicator.
The order manager now gives options to print both customer and internal versions of both order summaries and invoices.
Added bot identification for Google Page Speed Insights and SEMrushBot.
Added payment entries for all 3Dsecure orders.
Modified the lookback for both Amazon and eBay channel orders to a maximum of 30 days.
Modified the MySQL and MySQLi extension classes to preserve the length of LONGTEXT columns when the installer makes table definition changes. LONGTEXT columns are generally manually added when needed for large data sets in columns like core_users.sessdata, core_users.addbook and core_sessions.data.
Added device information to initial device authorization mail messages to help with security audits against webserver logs.
Verified that the cookie disclosure skin widget (required in the EU) fires properly on all page loads as long as the Cookie Information skin widget is active, the 'Present Cookie Information Dialog' setting is set to true (1) using System / Component / Settings / Privacy Settings. In the event these conditions are met, the widget is presented to all users who do not have a user account or device authorization token stored as a cookie.
Added a Server Time helper which displays the current server time and calculated software time in both full and epoch formats, and displays the server time offset calculation.
Added a Full URL link settings for the Shopping Cart Promo Image, so that when presented, the image can be linked to somewhere.
Modified checkout tax calculations during standard state/province and country tax calculations so tax on shipping is no longer charged for tax exempt items. This change does not affect EU VAT tax calculations.
Added internal comments field for checkout to checkout form fields. The field is off by default, and if turned on, should only be used for Management Interface (POS) orders.
Added badge display functionality to the Google Customer Reviews exentsion module. When reviews are available, the badge can be turned on and displayed.
Added a shipping basis field to the order items table to track shipping charges calculated during checkout on the item level. This data can aid in custom calculations that need shipping basis info for each item.
Added the ability to turn on profit margin displays in the Point of Sale extension module for wholesale orders. Profit margins are shown for each item in the shopping cart, and an order profit margin is calculated in checkout.
Added the ability to use negative wholesale and wholesale premium discounts for wholesale user accounts. This functionality allows for some wholesalers to have base pricing above the normal wholesale price.
Modified the Quickbooks Web Connector extension module to transmit the order number as a Memo for invoices. This allows for the online order number to be printed on statements in QuickBooks, if necessary.
Added download and gift certificate information to printable invoices and order summaries.
Added a credit card type field (Visa, MC, Amex, Discover) to the Order Manager payment entry form as well as the Payment Entry extension module (multiple order payments).
Modified shipment rating logic to calculate per-item rate basis for each item in each shipment, and return that information with services. The checkout shipping basis calculation for items was replaced with logic which utilizes the exact item basis as calculated during shipment rating. This results in 100% accurate per-item shipping basis being stored with order items for exact shipping tax calculations on mixed origin/destination shipments, and for general custom calculations.
Modified the QuickBooks Web Connector module to encode then strip non-ASCII characters from data sent to QuickBooks. This provides better compatibility with data imported into the software from other systems.
Modified CSS definitions for several khtemeinvert class overrides in the common CSS file. Nodes adjusted to remove redundancy and to correct a reported validation error.
Modified the USPS rate function to use a maximum dimensional size of 108 inches for rated packages instead of returning an error for packages where Length+(2xWidth)+(2xHeight) exceeds 108 inches. This mimics similar functionality for oversize packages found in the FedEx and UPS rate functions.
For purchase order payments, modified payment terms display for point of sale orders to auto-select locked terms if found for the customer and no terms have been selected.
Modified the order of items in order summaries and invoices to display inventory items, then non-inventory item offers, then returned items in that order for each shipping group.
Added the ability to generate a CSV file containing a price list for wholesale customers using the Customer Viewer extension module.
Modified the QuickBooks Web Connector module to explicitly set IsToBeEmailed and IsToBePrinted for invoices whether true or false, and to disable emailing of invoices for orders which had the invoice emailed using the new invoice system.
Added internal mail versions of the Order Complete, Order Partially Shipped and Invoice mail messages. Previously there were customer-only messages sent. Added balance due language to the Invoice mail message for easy identification.
Added a flag on the customer account (user) level to allow for suppression of logo images in order mail messages. Useful for customers who print emailed invoice mail messages. Stored for each order.
Changed the maximum number of orders pulled at once by the Batch Shipping Manager extension module from 1000 to 2000.
Added support for USPS Retail Ground and Parcel Select Ground services. These services support packages in excess of 108 inches in total girth plus length.
Fixed issue with minimum and maximum price searches in the Advanced search. Numbers were not being properly formatted for SQL queries.
Modified common pricing routines to round wholesale and special pricing to two digits prior to processing.
UPS Online Tools rate and track URLs were updated, as required by UPS (URL changed from www.ups.com to onlinetools.ups.com).
Added a Toggle All Quantities to Zero function to the Purchase Order Recipt function next to the Receive Purchase Order button. This new function allows purchase order receipt quantities to be intitially set to zero, allowing just items to be received to be selected individually.
Improved the SiteMap generator to support splitting sitemaps larger than 20,000 entries into multiple sitemaps.
Added the ability to embed a Google map on the Contact Page. The map is auto-generated based on the company name and address, but can be overidden with a custom URL.
Added support for encoding/decoding special characters with a four digit HTML decimal value.
Added order review condition for delivery addresses containing PO Boxes.
Added a setting under Order Manager Settings to allow review conditions to be appended to intenral order comments.
Adjusted the description for the Vendor Purchase Order Email Address field to reflect that multiple addresses can be entered in a comma-delimited list.
Expanded the options for the accounting system log to extend to two years.
Added the ability to send low inventory alert mail messages when inventory reaches zero. Clients using low inventory alerts should set Low Inventory Alert Status to true (1) using Store / Component / Settings / Checkout.
Modified gift certificates so they are generated based on the original (comparisson) price instead of the paid price. This allows putting gift certificates on sale and can aid in avoiding MAP.
Modified behavior for textbox and textarea form fields embedded in forms which use triggered updates when field values change (ajax). Apply buttons now automatically appear when changes are made, and special controls were added to Checkout to force updates when chages are made (preventing payment form submissions).
Modified the logic for QuickBooks Web Connector extension module to better handle external QuickBooks failures. Included different handling for purchase order receipts, closures and master-slave operations.
A new simplified customer account add/edit modal was added as an option for the Point of Sale extension module. When activated, setting up new and editing existing customer accounts requires entry of a minimal number of fields.
A new function was added to the Batch Shipping Manager extension module which allows delivery method changes to be done inline while creating batches. Use the 'Change Delivery Method' link for each order in the batch to quickly change the delivery method for any or all items in an order.
Added a setting to control the display of internal order comments in the Batch Shipping Manager extension module Create Batches display. The default is off.
The UPS Online Tools Address Verification function was updated to recognize when the recommended address state/province and/or country abbrevation match the entered address. In that case, the state/province and/or country designation is maintained. This allows the usage of multiple states/provinces and/or countries with the same abbreviation correctly with UPS Address Verification.
Updated the ePDQ gateway integration to use a meta-refresh method for returns to the software. ePDQ changed return handling and this change was to compensate.
Modified the check for the online order lookup so it's case-insensitive when comparing entered email addresses to order email addresses.
The jQuery JavaScript library was updated to version 3.3.1. This required updates and modifications to all stock JavaScript delivered with the platform as well as updates to all jQuery plugins utilized. This change was done to satisfy a new PCI requirement to upgrade to jQuery 3.0.0 or higher. Eliminated unused modules and optimized for speed.
Added a new global variable named 'ecom.ship_delgroupid' which holds the delivery group id when rating shipments. This new variable can be used by custom shipping scripts to identify delivery group ids being rated.
Modified the logic for the loyalty points promo banner so it displays within search results.
Changed the Google Shopping Feed specification for colors and sizes. Google no longer allows multiple entries for size or color. To input multiple colors or sizes, use a slash (/) as a delimiter when entering sizes and colors for product offers in the Google Shopping Feed.
Software importers (V6, V7-V8) were updated to set the creation date for imported product offers to the last update timestamp for the imported products.
Amazon channel synchronization scripting changed to normalize seller skus in a different fashion to avoid duplicate offers from being created when seller skus contain invalid characters.
Set the default values for the email list sign up fields to unchecked on the following forms: Contact, Create Account, Create Account with Shipping, Guest Checkout, Guest Checkout with Shipping. These fields were set to a default value of unchecked to maintain GDPR compliance.
Added logic which triggers an Unpaid order review condition for PayPal Standard orders processed with a Pending response code. The review condition is 'Payment Processing Pending'.
Removed the x_relay_response and x_relay_url paramters from the FirstData Payeezy processor integration, and changed the timestamp parameter to use server time(). These changes are due to FirstData now automatically sending relay responses and using UTC.
Modified the order date change function to account for date/time offset settings. This functionality is applicable only to future orders to change the future order date.
A link to the Customer Viewer extension module was added to the Order Manager for orders. If the Customer Viewer extension module is installed, the customer email address for the order in the Order Manager will link to the Customer Viewer for that customer. When clicked, the link opens in a new window.
Added validation for email addresses entered in the management interface using various functions including managing users, reviews, vendors, point of sale orders, and the marketing email list. Validation is done using the validation function in the Mail class.
Added support to the Articles extension module for unlimited levels of subcategories. Subcategories and direct category parenting logic mirrors the online store catalog now, enabling fully customizable categorization of articles. Additionally, sort order controls to allow sorting article by date or sortorder were introduced for article listings in categories and related article displays.
Added a payment mailing address section to customer order email messages with unpaid balances. A new setting named 'Display Payment Address on Unpaid Customer Order Mail Messages' has been added to Order Manager settings to allow display of this section to be disabled.
Added the ability to include a promotional image with optional link, in customer order confirmation mail messages. Turn this feature on, upload a promotional image and optionally enter a custom link using the Customer Order Mail Message Promo settings in the Store / Component / Settings / Order Manager function.
Added toggle controls to the Create Batches function in the Batch Shipping Manager to allow toggling of all orders, online store orders and orders by sales channel (Amazon, eBay), for both the ready to ship and partial shipment views.
Altered checkout logic for selection of the default delivery address. The new logic selects the last entry in the address book by default, ignoring the billing address, unless required. This results in better delivery address selection for customers who change their shopping carts after having visited checkout.
Added a date range selection to the customer viewer extension module to allow for selection of a date range of orders. The selected date range is used to present the order listing for the customer, as well as the profitability report. The YTD and Last 30 Days profitability report displays were removed as the new date range selection allows for those profitability reports to be generated, as well as any other ranges desired.
Added billing account number settings to the Batch Shipping Manager extension module for UPS Standard, UPS Freight, FedEx and USPS, as well as a Default. This billing account number is available to shipping software to pull automatically during scanning.
Added default payment terms and default delivery methods for vendors. These new fields are used to pre-populate purchase orders with default values. These are only defaults, so the values for payment terms and the delivery method can still be changed when creating a purchase order.
Added a new setting named Discount Exclusion Force Display which allows turning discount exlcusions off, but forces the store to continue to display discount exclusion displays and icons. This is helpful for running sales on items which need to be marked as excluded from discounts, without actually excluding them. Ref: MAP aversion, hidden sale.
A new field was added to Product Offers for Additional Category Parents. This new field allows categories to be displayed in multiple category feature grid displays. Useful for presenting items like accessories in multiple places when using category feature grid displays.
Added a usage field to credits to allow credits to be created as available to the customer and internally (the default), and to limit them to internal use only. Internal use only credits are available only to staff using the Point of Sale extension module to enter orders, and the Credit Manager to apply open credits to orders. Customers will not see internal use only credits when checking out using the online store. Internal use only credits are noted in the memo for the credit when exported using the QuickBooks Web Connector.
Added logic to check case-sensitivity for inventory item identifiers when creating and updating product offers.
Added a ShipWorks extension module. ShipWorks provides shipping via UPS, USPS and FedEx using desktop software. This module can be used as an alternative to the Batch Shipping Manager extension module. Features supported: GetModule; GetStore; GetStatusCodes; GetCount; GetOrders; UpdateStatus; UpdateShipment.
Added a Sage Accounting extenstion module (SageBase) which exports customer and order information into CSV files. These CSV files can be imported into Sage Accounting software. This module exports basic information into Sage Line 50 compatbile files.
Added a Sage Peachtree extenstion module (SagePT) which exports customer, item and order information into CSV files. These CSV files can be imported into Sage Peachtree software. This module is compatible with legacy Peachtree software, as well as Sage Peachtree.
Future Update Roadmap
The following updates are on the schedule and currently in development: ShipStation extension module; Selective Caching; Walmart extension module; Architecture enhancements
Filesystem Changes in This Update
Filesystem changes are available below for clients with modified installations. If your installation is modified, review the file listings below to aid in backing up and manually applying your modifications after running this software update.
{private}/apps/ecom/ECOM/includes/ordermanprint.php
{private}/apps/ecom/ECOM/includes/xmodbatchshipmanmethodchange.php
{private}/apps/ecom/ECOM/includes/xmodpaymententry.php
{private}/apps/ecom/ECOM/includes/xmodpaymententryamount.php
{private}/apps/ecom/ECOM/includes/xmodpaymententrylist.php
{private}/apps/ecom/ECOM_Reviews/install/data_core_dbguided_0.xml
{private}/apps/ecom/XMOD_PaymentEntry
{private}/core/CORE/includes/helperdatetime.php
{public}/media/ecom/ordermanpromos
{public}/media/jquery/jquery-legacy.min.js
{public}/media/jquery-plugins/easyzoom/easyzoom.min.css
{public}/media/jquery-plugins/easyzoom/easyzoom.min.js
{public}/media/jquery-plugins/fancybox/jquery.fancybox.min.css
{public}/media/jquery-plugins/fancybox/jquery.fancybox.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.enhancedPieLegendRenderer.min.js
{public}/media/jquery-plugins/json/jquery.json.min.js
{public}/media/jquery-plugins/trumbowyg/ui/icons.svg
{public}/media/jquery-plugins/ui/jquery-ui-legacy.min.js
{public}/skins/COREMI903
{private}/apps/ecom/ECOM/includes/invoiceheader.php
{private}/apps/ecom/ECOM/includes/procgwresplink_conf.php
{private}/apps/ecom/ECOM/includes/procgwresplink_fail.php
{public}/media/jquery-plugins/easing
{public}/media/jquery-plugins/easyzoom/easyzoom.css
{public}/media/jquery-plugins/easyzoom/easyzoom.js
{public}/media/jquery-plugins/fancybox/blank.gif
{public}/media/jquery-plugins/fancybox/fancybox_loading.gif
{public}/media/jquery-plugins/fancybox/fancybox_loading@2x.gif
{public}/media/jquery-plugins/fancybox/fancybox_overlay.png
{public}/media/jquery-plugins/fancybox/fancybox_sprite.png
{public}/media/jquery-plugins/fancybox/fancybox_sprite@2x.png
{public}/media/jquery-plugins/fancybox/helpers
{public}/media/jquery-plugins/fancybox/jquery.fancybox.css
{public}/media/jquery-plugins/fancybox/jquery.fancybox.js
{public}/media/jquery-plugins/fancybox/jquery.fancybox.pack.js
{public}/media/jquery-plugins/json/jquery.json.js
{public}/media/jquery-plugins/trumbowyg/ui/images
{public}/skins/COREMI9
{public}/utilities/ecomrelaylink.php
{private}/apps/cms/CMS/includes/xmodarticlesshow.php
{private}/apps/cms/CMS/includes/xmodarticleswidgetcat.php
{private}/apps/cms/CMS/install/data_core_apps_0.xml
{private}/apps/cms/CMS/install/data_core_modules_0.xml
{private}/apps/cms/XMOD_Articles/install/data_core_modules_0.xml
{private}/apps/cms/XMOD_Articles/install/table_cms_xmodarticles.xml
{private}/apps/cms/XMOD_Articles/install/table_cms_xmodarticlescat.xml
{private}/apps/cms/XMOD_Articles/XMOD_Articles.php
{private}/apps/ecom/ECOM/ECOM.php
{private}/apps/ecom/ECOM/includes/3dsecure.php
{private}/apps/ecom/ECOM/includes/cartdisplay.php
{private}/apps/ecom/ECOM/includes/catfeatgriddetail.php
{private}/apps/ecom/ECOM/includes/coformfoot.php
{private}/apps/ecom/ECOM/includes/coshipinfo.php
{private}/apps/ecom/ECOM/includes/cototals.php
{private}/apps/ecom/ECOM/includes/creditcenterlist.php
{private}/apps/ecom/ECOM/includes/creditmandisplay.php
{private}/apps/ecom/ECOM/includes/creditmanmenu.php
{private}/apps/ecom/ECOM/includes/formfield_epochorder.php
{private}/apps/ecom/ECOM/includes/formfield_offertype.php
{private}/apps/ecom/ECOM/includes/formfield_ordadjustneg.php
{private}/apps/ecom/ECOM/includes/formfield_ordadjustpos.php
{private}/apps/ecom/ECOM/includes/formfield_orderitemservstatus.php
{private}/apps/ecom/ECOM/includes/formfield_orderitemshipstatus.php
{private}/apps/ecom/ECOM/includes/formfield_orderstatus.php
{private}/apps/ecom/ECOM/includes/formfield_payterms.php
{private}/apps/ecom/ECOM/includes/icondisp.php
{private}/apps/ecom/ECOM/includes/olpform.php
{private}/apps/ecom/ECOM/includes/orderlist.php
{private}/apps/ecom/ECOM/includes/ordermanmenu.php
{private}/apps/ecom/ECOM/includes/ordermanrefundconf.php
{private}/apps/ecom/ECOM/includes/ordermanreturn.php
{private}/apps/ecom/ECOM/includes/ordermanreturnconf.php
{private}/apps/ecom/ECOM/includes/ordermanservice.php
{private}/apps/ecom/ECOM/includes/ordermanship.php
{private}/apps/ecom/ECOM/includes/ordersummary.php
{private}/apps/ecom/ECOM/includes/ordersummaryprint.php
{private}/apps/ecom/ECOM/includes/ordersummarytxt.php
{private}/apps/ecom/ECOM/includes/ordersummaryxhtml.php
{private}/apps/ecom/ECOM/includes/prodaddcart_notifystock.php
{private}/apps/ecom/ECOM/includes/prodlistitem.php
{private}/apps/ecom/ECOM/includes/prodshow.php
{private}/apps/ecom/ECOM/includes/prodshowextras.php
{private}/apps/ecom/ECOM/includes/prodshowimg.php
{private}/apps/ecom/ECOM/includes/purchordmancreate.php
{private}/apps/ecom/ECOM/includes/purchordmandisplay.php
{private}/apps/ecom/ECOM/includes/purchordmanmodify.php
{private}/apps/ecom/ECOM/includes/purchordmanreceive.php
{private}/apps/ecom/ECOM/includes/purchordtxt.php
{private}/apps/ecom/ECOM/includes/purchordxhtml.php
{private}/apps/ecom/ECOM/includes/skinwidget_loyaltypointsmult.php
{private}/apps/ecom/ECOM/includes/xmodamazongetmatches.php
{private}/apps/ecom/ECOM/includes/xmodbatchshipman.php
{private}/apps/ecom/ECOM/includes/xmodcustomerviewer.php
{private}/apps/ecom/ECOM/includes/xmodgooglecustomerreviews_js.php
{private}/apps/ecom/ECOM/includes/xmodinvinsdisp.php
{private}/apps/ecom/ECOM/includes/xmodposcustdisp.php
{private}/apps/ecom/ECOM/includes/xmodposdisplay.php
{private}/apps/ecom/ECOM/includes/xmodposgetcustomer.php
{private}/apps/ecom/ECOM/includes/xmodqbwcfile.php
{private}/apps/ecom/ECOM/install/data_core_apps_0.xml
{private}/apps/ecom/ECOM/install/data_core_formfields_2.xml
{private}/apps/ecom/ECOM/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM/install/data_core_selectcustom_0.xml
{private}/apps/ecom/ECOM/install/data_core_settings_0.xml
{private}/apps/ecom/ECOM/install/data_core_settings_1.xml
{private}/apps/ecom/ECOM/install/data_core_settings_4.xml
{private}/apps/ecom/ECOM/tasks_weekly/0200_rmorders.php
{private}/apps/ecom/ECOM_Accounting/ECOM_Accounting.php
{private}/apps/ecom/ECOM_Accounting/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Accounting/install/data_core_selectcustom_0.xml
{private}/apps/ecom/ECOM_Accounting/install/data_core_settings_0.xml
{private}/apps/ecom/ECOM_Accounting/install/table_ecom_acctsysitems.xml
{private}/apps/ecom/ECOM_Cart/ECOM_Cart.php
{private}/apps/ecom/ECOM_Cart/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Cat/ECOM_Cat.php
{private}/apps/ecom/ECOM_Cat/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Checkout/ECOM_Checkout.php
{private}/apps/ecom/ECOM_Checkout/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Checkout/install/data_ecom_cofields_0.xml
{private}/apps/ecom/ECOM_CreditMan/ECOM_CreditMan.php
{private}/apps/ecom/ECOM_CreditMan/install/data_core_formfields_0.xml
{private}/apps/ecom/ECOM_CreditMan/install/data_core_forms_0.xml
{private}/apps/ecom/ECOM_CreditMan/install/data_core_messages_0.xml
{private}/apps/ecom/ECOM_CreditMan/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_CreditMan/install/data_core_namespaces_0.xml
{private}/apps/ecom/ECOM_CreditMan/install/data_core_selectcustom_0.xml
{private}/apps/ecom/ECOM_CreditMan/install/table_ecom_credits.xml
{private}/apps/ecom/ECOM_DemoStore/install/data_ecom_cat_0.xml
{private}/apps/ecom/ECOM_DemoStore/install/data_ecom_prod_0.xml
{private}/apps/ecom/ECOM_OLP/ECOM_OLP.php
{private}/apps/ecom/ECOM_OLP/ext/cardsave.php
{private}/apps/ecom/ECOM_OLP/ext/paymentsense.php
{private}/apps/ecom/ECOM_OLP/ext/paypalproe.php
{private}/apps/ecom/ECOM_OLP/ext/protxdirect.php
{private}/apps/ecom/ECOM_OLP/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_OLP/install/data_core_namespaces_0.xml
{private}/apps/ecom/ECOM_OLP/install/data_ecom_gateway_0.xml
{private}/apps/ecom/ECOM_OLP/install/data_ecom_gateway_1.xml
{private}/apps/ecom/ECOM_OLP/install/data_ecom_gateway_2.xml
{private}/apps/ecom/ECOM_OLP/install/data_ecom_gateway_5.xml
{private}/apps/ecom/ECOM_OLP/install/data_ecom_gateway_6.xml
{private}/apps/ecom/ECOM_Order/ECOM_Order.php
{private}/apps/ecom/ECOM_Order/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Order/install/data_core_namespaces_0.xml
{private}/apps/ecom/ECOM_Order/install/data_core_settings_0.xml
{private}/apps/ecom/ECOM_Order/install/table_ecom_orderitems.xml
{private}/apps/ecom/ECOM_Order/install/table_ecom_orders.xml
{private}/apps/ecom/ECOM_OrderMan/ECOM_OrderMan.php
{private}/apps/ecom/ECOM_OrderMan/install/data_core_formfields_0.xml
{private}/apps/ecom/ECOM_OrderMan/install/data_core_forms_0.xml
{private}/apps/ecom/ECOM_OrderMan/install/data_core_mail_1.xml
{private}/apps/ecom/ECOM_OrderMan/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_OrderMan/install/data_core_namespaces_1.xml
{private}/apps/ecom/ECOM_OrderMan/install/data_core_selectcustom_0.xml
{private}/apps/ecom/ECOM_OrderMan/install/data_core_settings_0.xml
{private}/apps/ecom/ECOM_OrderMan/proc/0100_procinventory.php
{private}/apps/ecom/ECOM_Prod/ECOM_Prod.php
{private}/apps/ecom/ECOM_Prod/install/data_core_dbguided_0.xml
{private}/apps/ecom/ECOM_Prod/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Prod/install/data_ecom_prod_0.xml
{private}/apps/ecom/ECOM_Prod/install/data_ecom_vendors_0.xml
{private}/apps/ecom/ECOM_Prod/install/table_ecom_inventory.xml
{private}/apps/ecom/ECOM_Prod/install/table_ecom_prod.xml
{private}/apps/ecom/ECOM_Prod/install/table_ecom_vendors.xml
{private}/apps/ecom/ECOM_PurchOrdMan/ECOM_PurchOrdMan.php
{private}/apps/ecom/ECOM_PurchOrdMan/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_PurchOrdMan/install/data_core_namespaces_0.xml
{private}/apps/ecom/ECOM_PurchOrdMan/install/table_ecom_purchords.xml
{private}/apps/ecom/ECOM_Reviews/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Ship/ECOM_Ship.php
{private}/apps/ecom/ECOM_Ship/ext/fedex.php
{private}/apps/ecom/ECOM_Ship/ext/upstools.php
{private}/apps/ecom/ECOM_Ship/ext/usps.php
{private}/apps/ecom/ECOM_Ship/install/data_core_modules_0.xml
{private}/apps/ecom/ECOM_Ship/install/data_ecom_shiprealtimep_0.xml
{private}/apps/ecom/XMOD_Amazon/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_Amazon/install/data_core_settings_0.xml
{private}/apps/ecom/XMOD_Amazon/XMOD_Amazon.php
{private}/apps/ecom/XMOD_BatchShipMan/install/data_core_formfields_0.xml
{private}/apps/ecom/XMOD_BatchShipMan/install/data_core_forms_0.xml
{private}/apps/ecom/XMOD_BatchShipMan/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_BatchShipMan/install/data_core_namespaces_0.xml
{private}/apps/ecom/XMOD_BatchShipMan/install/data_core_selectcustom_0.xml
{private}/apps/ecom/XMOD_BatchShipMan/install/data_core_settings_0.xml
{private}/apps/ecom/XMOD_BatchShipMan/install/table_ecom_batchshipmanout.xml
{private}/apps/ecom/XMOD_BatchShipMan/XMOD_BatchShipMan.php
{private}/apps/ecom/XMOD_CustomerViewer/install/data_core_messages_0.xml
{private}/apps/ecom/XMOD_CustomerViewer/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_CustomerViewer/install/data_core_namespaces_0.xml
{private}/apps/ecom/XMOD_CustomerViewer/install/data_core_settings_0.xml
{private}/apps/ecom/XMOD_CustomerViewer/XMOD_CustomerViewer.php
{private}/apps/ecom/XMOD_eBay/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_eBay/install/data_core_settings_0.xml
{private}/apps/ecom/XMOD_eBay/XMOD_eBay.php
{private}/apps/ecom/XMOD_GoogleBase/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_GoogleBase/install/table_ecom_prod.xml
{private}/apps/ecom/XMOD_GoogleBase/XMOD_GoogleBase.php
{private}/apps/ecom/XMOD_GoogleCustomerReviews/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_GoogleCustomerReviews/install/data_core_settings_0.xml
{private}/apps/ecom/XMOD_InventoryInspector/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_PointOfSale/install/data_core_formfields_0.xml
{private}/apps/ecom/XMOD_PointOfSale/install/data_core_forms_0.xml
{private}/apps/ecom/XMOD_PointOfSale/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_PointOfSale/install/data_core_namespaces_0.xml
{private}/apps/ecom/XMOD_PointOfSale/install/data_core_settings_0.xml
{private}/apps/ecom/XMOD_PointOfSale/install/data_ecom_prod_0.xml
{private}/apps/ecom/XMOD_PointOfSale/XMOD_PointOfSale.php
{private}/apps/ecom/XMOD_QBWC/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_QBWC/XMOD_QBWC.php
{private}/apps/ecom/XMOD_THUB/install/data_core_modules_0.xml
{private}/apps/ecom/XMOD_THUB/XMOD_THUB.php
{private}/core/CORE/CORE.php
{private}/core/CORE/includes/contactfoot.php
{private}/core/CORE/includes/formfield_captcha.php
{private}/core/CORE/includes/formfield_filemult.php
{private}/core/CORE/includes/formfield_password.php
{private}/core/CORE/includes/formfield_textarea.php
{private}/core/CORE/includes/formfield_textareaschema.php
{private}/core/CORE/includes/formfield_textareaschemat.php
{private}/core/CORE/includes/formfield_textareawysiwyg.php
{private}/core/CORE/includes/formfield_textbox.php
{private}/core/CORE/includes/formfield_textboxseourl.php
{private}/core/CORE/includes/formfield_textboxsmall.php
{private}/core/CORE/includes/helperhtaccess.php
{private}/core/CORE/includes/jslib.php
{private}/core/CORE/includes/skinprintfoot.php
{private}/core/CORE/includes/systemmsg.php
{private}/core/CORE/includes/xmodlistrak_js.php
{private}/core/CORE/install/data_core_apps_0.xml
{private}/core/CORE/install/data_core_dbguided_0.xml
{private}/core/CORE/install/data_core_dbguided_1.xml
{private}/core/CORE/install/data_core_messages_0.xml
{private}/core/CORE/install/data_core_modules_0.xml
{private}/core/CORE/install/data_core_selectcustom_0.xml
{private}/core/CORE/install/data_core_settings_1.xml
{private}/core/CORE/install/table_core_users.xml
{private}/core/CORE_App/CORE_App.php
{private}/core/CORE_App/install/data_core_modules_0.xml
{private}/core/CORE_BackEnd/ext/accounts.php
{private}/core/CORE_BackEnd/ext/db.php
{private}/core/CORE_BackEnd/install/data_core_mail_0.xml
{private}/core/CORE_BackEnd/install/data_core_modules_0.xml
{private}/core/CORE_BackEnd/install/data_core_namespaces_4.xml
{private}/core/CORE_DB/ext/mysql.php
{private}/core/CORE_DB/ext/mysqli.php
{private}/core/CORE_DB/install/data_core_modules_0.xml
{private}/core/CORE_Display/CORE_Display.php
{private}/core/CORE_Display/install/data_core_modules_0.xml
{private}/core/CORE_FrontEnd/ext/accounts.php
{private}/core/CORE_FrontEnd/ext/currencyswitch.php
{private}/core/CORE_FrontEnd/ext/wordpress.php
{private}/core/CORE_FrontEnd/install/data_core_dbguided_1.xml
{private}/core/CORE_FrontEnd/install/data_core_formfields_3.xml
{private}/core/CORE_FrontEnd/install/data_core_mail_0.xml
{private}/core/CORE_FrontEnd/install/data_core_modules_0.xml
{private}/core/CORE_FrontEnd/install/data_core_settings_0.xml
{private}/core/CORE_FrontEnd/install/data_core_settings_1.xml
{private}/core/CORE_JSLib/install/data_core_modules_0.xml
{private}/core/CORE_Session/CORE_Session.php
{private}/core/CORE_Session/install/data_core_modules_0.xml
{private}/core/CORE_SiteMap/CORE_SiteMap.php
{private}/core/CORE_SiteMap/install/data_core_modules_0.xml
{private}/core/XMOD_Listrak/install/data_core_modules_0.xml
{private}/core/XMOD_Listrak/XMOD_Listrak.php
{public}/media/jquery/jquery.min.js
{public}/media/jquery-plugins/barcode/barcode.min.js
{public}/media/jquery-plugins/jqplot/jquery.jqplot.min.css
{public}/media/jquery-plugins/jqplot/jquery.jqplot.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.barRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.BezierCurveRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.blockRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.bubbleRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.canvasAxisLabelRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.canvasOverlay.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.canvasTextRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.categoryAxisRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.ciParser.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.cursor.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.dateAxisRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.donutRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.dragable.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.funnelRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.highlighter.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.json2.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.logAxisRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.mekkoRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.meterGaugeRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.mobile.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.ohlcRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.pieRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.pointLabels.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.pyramidAxisRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.pyramidGridRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.pyramidRenderer.min.js
{public}/media/jquery-plugins/jqplot/plugins/jqplot.trendline.min.js
{public}/media/jquery-plugins/trumbowyg/trumbowyg.min.js
{public}/media/jquery-plugins/trumbowyg/ui/trumbowyg.min.css
{public}/media/jquery-plugins/ui/jquery-ui.min.js
{public}/media/scripts/backend.min.js
{public}/media/scripts/common.min.js
{public}/media/scripts/frontend.min.js
{public}/media/scripts/kmigui.min.js
{public}/media/skins/css/all.min.css