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.

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 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

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 to

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.

New Files Added
Files Removed
Files Modified
© 1999-Present Kryptronic, Inc. All rights reserved worldwide. Kryptronic, the Kryptronic logo and all Kryptronic software names and logos are trademarks of Kryptronic, Inc. All Kryptronic software is copyrighted and the intellectual property of Kryptronic, Inc. All Kryptronic software is developed and distributed under license by Kryptronic, Inc.