Kryptronic eCommerce Software Update: 9.2.0

An update was released today, June 30, 2022, for Kryptronic eCommerce software version 9. Installation of this update will increase your software version to 9.2.0. This update is intended for all clients running Kryptronic eCommerce software versions 9.0.0 through 9.1.0.

PayPal Commerce Platform Notice: This update introduces a brand new integration with PayPal Commerce Platform, which supports regular and express checkouts using PayPal, PayPal Credit, Pay Later, Venmo and Credit Card payments. If you use PayPal Website Payments Pro to process payments, you will need to switch to PayPal Commerce Platform during your upgrade. If you use PayPal Payments Standard to process PayPal payments, it is highly recommended that you switch to PayPal Commerce Platform during your upgrade. Just follow the update instructions, and you'll be all set.

Custom Shop Notice: This is a complicated software update which contains approximately one-hundred changes and enhancements. Installation may require configuration file changes, downloading and running a new installer package, database updates and manual file changes. If applying this update is beyond your technical capabilities, please contact the Kryptronic Custom Shop. We can install this update for you for a small charge.

Upgrade Info for All Clients

This update is considered a major release, and as such, is treated as an upgrade. To ensure you can update to software version 9.2.0 from your current software version, please read below. If you are unsure as to whether your software license has automatically been updated to allow installation of version 9.2.0, use the Kryptronic License Manager to check.

Version 9 Kryptronic Managed Hosting Clients: Clients with version 9 software installed who are hosted with Kryptronic Managed Hosting may update at any time. Your software license allows update to version 9.2.0.

Version 9 Self-Hosted Plan Clients: Clients with version 9 software installed who are self-hosted with an active Kryptronic Self-Hosted Plan may update at any time. Your software license allows update to version 9.2.0.

Version 9 Self-Hosted Clients: Clients with version 9 software installed who are self-hosted without an active Kryptronic Self-Hosted Plan should contact the Kryptronic Custom Shop to discuss your upgrade options.

Clients with Older Software: Clients with version 8 and lower software installed should submit a Version 9 Quote Request. Our Custom Shop will receive your request, and will work with you to upgrade to version 9. We have low-cost plans available to help make your upgrade affordable.

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

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

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

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

Items Added/Changed In This Update

PayPal Commerce Platform Added

PayPal's newest checkout option, PayPal Commerce Platform, was fully integrated including onboarding, Advanced Checkout (PayPal, PayPal Credit, Pay Later, Venmo and merchant hosted credt card fields), Standard Checkout (PayPal, PayPal Credit, Pay Later, Venmo and PayPal hosted credit card fields), and Express Checkout (PayPal, PayPal Credit and Pay Later expedited checkout using PayPal from the shopping cart page).

The PayPal Commerce Platform Advanced and Standard Checkout options replace PayPal Website Payments Pro Direct credit card processing, and adds payment options. The Express Checkout option replaces PayPal Website Payments Pro Express Checkout and adds payment options. This new platform is very exciting, and this integration makes use of everything PayPal has to offer.

Set up PayPal Commerce Platform using Store / Commerce / Payment Methods. Setup only takes a few minutes, and is highly recommended over the legacy PayPal Standard Payments payment method. First configure PayPal Commerce Platform, and when set up, deactivate PayPal Standard Payments.

A new PayPal Settings functions under Store / Component / Settings were shuffled and now PayPal Standard Payments and PayPal Commerce Platform options are available.

Added accounting system payment types for Venmo, PayPal Credit and Pay Later.

PayPal Website Payments Pro Direct and Express Checkout (legacy NVP/SOAP payment methods) were removed, along with associated onboarding and setup functionality.

To match current PayPal product offerings, the PayPal Payflow payment methods were renamed 'PayPal Payflow Link' for the payment form method, and 'PayPal Payflow Pro' for the API method. The PayPal (Standard) payment method was renamed 'PayPal Payments Standard'.

Shipping Notices Now Available

Added a Shipping Notice dialog which can be shown for product offers that sell inventory items. If a Shipping Notice is added for a product offer, notices will be presented with icons/modals in category feature grids and standard item lists. Notices will be displayed outright as disclaimers on product offer detail displays. Notice text is configurable for each offer. Use to denote special shipping circumstances or charges.

Moved Free Shipping settings to Store / Component / Settings / Shipping Displays, and included the new Shipping Notice settings there.

Added the ability to override free shipping calculations with minimum charges using a new field named Free Shipping Minimum Override Amount now available for Inventory Items. Turn this functionality on/off globally using the Free Shipping Minimum Override settings found under Shipping Settings. This is used to charge a minimum for items which would otherwise ship for free due to free shipping conditions being met.

Search Engine Optimization Changes

Extension module Articles: For articles, the title is printed within the article content using an H1 (previously H2) and the system generated title is not printed (using the newly added core_display.no_title global instead of core_display.suppress_title).

Optimized Google Font loading to ensure fonts are loaded in a non-blocking fashion, and fewer font variations are loaded. This improves Google Page Speed perfomance and reduces content delivery times.

Articles extension module: Implemented SEOExact functionality for Articles. Previously only implemented for Article Categories.

Meta keywords database columns were updated to CLOB fields to allow longer input than 250 characters.

Added pricing maps to the fields searched during product searches (advanced search, predictive search, POS item search). This expands searching to include inventory item identifiers sold by offers that match the search term.

Speed Increases

Optimized application loading in the Core Application class. Reduced array iterations where possible. Created resource savings for all application lookups and loads.

Optimized namespace loading in the Core Application class. Reduced array iterations where possible. Namespaces are now matched by id instead of app.namespace. The software is designed so that id=app.namespace, so this change has no impact internally. Created resource savings for all namespace lookups and loads.

Display Optimizations

Added div wrappers to all trick-table displays (like the shopping cart) to allow flexibility in styling internal elements.

Text inputs which trigger Ajax updates via Apply button click (textboxes and textareas with the kinputapply class) now render a different color when required fields are not completed.

New language string setting added to allow control over the language used for 'Add to Cart for Price' displays.

Modified in-stock display logic to suppress stock info entirely if the customer is unable to purchase (purchasing has been limited to certain user groups and the customer does not belong to that group, or is not logged in).

Changed displays for the Reviews module to match the new Question and Answer extension module design. The changes were subtle, but make the two look very nice when running in tandem.

Rebate totals shown in the shopping cart are now displayed below the total in all views. The shopping cart total does not include rebates (this is only a change for sites using the Regional VAT tax system where prices are displayed including VAT).

Order Management Enhancements

Updating order item Inventory Controls in the Order Manager no longer disables order modifications. Now order modifications can be made using the Point of Sale extension module after Inventory Controls are updated for order items.

Optimized order searches in the Order Center. Searches are now much faster due to the added option to include or exclude (default) order items from searches. The impact is noticable on sites with a large number of orders.

Modified order center searches to pull order results based on the order date in ascending fashion. This has had the effect of putting the most relevant results at the top of the order list.

Added an Inventory Item match review condition for orders which allows specific Inventory Item identifiers to be selected for review during the Order Review process.

Added a custom data field to orders which allows order level custom data to be used by various order-related functions.

Instances of the term 'Processing Method' were changed to 'Payment Method' to modernize the language.

Checkout Updates

Checkout totals were failing to display 'recurring total' language. Issue corrected.

Added a new Order Confirmation Header setting which allows freeform text/html to be displayed on order confirmation pages. Available under Order Manager Settings.

Corrected guest checkout issue which allowed a space to be saved to the user session email variable. This is an extension of the logic introduced in version 9.1.0 to better clean email address.

Added new field to Discount Codes: Use Offer Disallow Discount Status allows control over whether or not offer level Disallow Discount settings are used when calculating exclusions for discount codes with exclusions.

Added new setting to Store / Component / Settings / Discount Exclusions: Discount Code Offer Exclusion List allows for maintenance of a global list of offers to always be excluded when calculating exclusions for discount codes with exclusions.

Added new field to Discount Codes: Use Global Discount Exclusion List allows inclusion of offers listed in the new Discount Code Offer Exclusion List setting to be used in the exclusion list when calculating exclusions for discount codes with exclusions.

Order confirmation pages shown after orders are processed use JavaScript to force the URL in the address bar to display the order summary/lookup URL for the order. This allows customers to easily bookmark/favorite order confirmation URLs to return later to check order status (which we've learned they do often).

Wholesale Support Bolstered

Added wholesale pricelist functionality to the Account section. Moved Customer Viewer pricelist generator logic over to the ECOM class.

Added API support with optional user-specific API Keys added. Wholesale Price Lists are now available via API download for configured user accounts.

Added a switch to allow Wholesale Base Price or Retail Compare Price to be used as the compare price for wholesale customers. The default is Wholesale Base Price.

Modified wholesale price list to use Retail Compare Price for MSRP and to allow 0.00 MSRPs in the pricelist when entered.

Added a Wholesale Inventory Type field to Inventory Items to allow control of inventory types differently retail vs. wholesale.

Dropshipping Enhanced

Modified in-stock displays for items that rollover to dropshipping. Displays vary based on whether the stock required is available in the local warehouse.

Altered the logic for returns of items that were dropshipped. Assuming the return is made back to the local warehouse, now the Standard Return (Intake) will add that item back into inventory. Use Write Off returns for returns back to the manufacturer/origin, or damaged goods.

Added a 'Maximum In Stock Level for Dropship Availability Display' setting which defines a maximum quantity at which 'More Available' will be displayed alongside stock levels for inventory items which can be dropshipped when out of stock. The Dropship Availability Display will show up only for local inventory items which dropship when out, and only if the Display In Stock Level setting is on.

Added settings to control language strings for in stock, out of stock, dropship, dropship extended and forced inventory displays under Store / Component / Settings / Language Strings.

Inventory Item Changes

Modified the definitions for a majority of the fields for Inventory Items to suppress copying them when inventory items are cloned.

Added a MultiSite Overrides field to Inventory Items to allow any Inventory Item field value to be overridden for any MultiSite.

Added a remote inventory level parameter to Inventory Items to keep track of inventory which is to be counted on the books, but is otherwise reserved in a remote location (like Amazon FBA inventory).

Added remote inventory support to the Amazon, Inventory Uploader, Inventory Inspector and Point of Sale extension modules.

Purchasing Enhancements

Added a cost change by percentage field to the Purchase Order modification view. Now costs can be changed by a percentage for all PO items while modifying POs. Previously added to PO create view.

Added Excluded Customer Account Sales and Highlighted Affiliate Sales settings to allow for better decisions when predicting inventory needs for Purchase Orders.

Purchase Order inventory predictions now account for, and report, local and remote inventory requirements.

Purchase Orders were modified to display remote inventory levels during purchase order creation and modification.

An option to hide items not being ordered was added to the Create Purchase Order function.

Payment Method Changes

Payment methods installed with the software are now limited to: PayPal Commerce Platform, PayPal Payments Standard, Cash, Check, Contact Customer, Purchase on Account, Quote, Balance Refund and Zero Balance.

Payment methods previously installed with the software which were moved to extension modules: Authorize.net, BarclayCard, Clover, CoinBase, CyberSource, FirstData, FirstPay, Global Payments, NetBilling, Nochex, PaymentSense, PayPal Payflow Pro, Payroc, Paysafe, PlanetPayment, PlugNPay, PSiGate, SagePay, Stripe, Verifone and WorldPay. Clients upgrading from earlier version 9.x software with existing active integrations with these payment methods will find their integration will be left unchanged and functioning properly (as a custom integration supported through legacy methods) after upgrade.

All third-party payment integrations (except the PayPal Commerce Platform and PayPal Payments Standard integrations) are now maintained and can be updated independently of the Online Processing class. This allows for greater update frequency, and ease of maintenance.

The Online Processing class now supports validation by using an Online Processing class extension file (basic stock methods and custom payment methods), and by using a namespace (PayPal, channel and third-party payment methods) tied to the extension module's class.

For all manangement interface views, payment methods are now referred to as 'payment methods'. The term 'processing gateway' is no longer used to identify payment methods.

Online processing forms now have the ability to suppress section headers, and the Submit Payment button. When a single option is available for checkout payments, a choice is no longer presented.

Payment details are now an order element, allowing gateways to provide further detail for the payment method used when displaying orders to management interface users (orders, invoices, mails, displays). PayPal Commerce Platform uses this new functionality to display the payment type (PayPal, PayPal Credit, Pay Later, Venmo, Credit Card) along with the payment method (PayPal Commerce Platform) on orders. Express checkout orders are labeled Express as well.

Payment method validation modules can now return a payment type that overrides the default payment type for the payment method.

Payment method validation modules can now force review for orders and set review information ahead of the order being checked for review conditions. Anything added prior to order processing is now retained. This allows orders which have pending/waiting payments to be flagged for review during payment method validation.

Optimized JavaScript loading for payment methods using scripts (PayPal Commerce Platform, Stripe).

Added wire and five custom payment types to support a wider array of attribution options for accounting systems.

Amazon Channel Extension Module Updates

Added functionality to the Amazon Channel module to store FBA inventory levels and Amazon recommended restock levels for FBA items. These levels are updated in near-real-time.

Modified the Amazon channel extension module to include order level custom data 'isFBA:1' for orders fulfilled by Amazon.

Added a 'Channel Amazon FBA' accounting class, and modified the QuickBooks extension module to use that class for Amazon orders fulfilled by Amazon (based on order level custom data).

Added a freight shipping class to the Amazon channel extension module. Freight shipping is now selected for any Inventory Items sold which have a custom shipping script using the string 'freight' in the name, overriding the Amazon shipping designation.

Amazon FBA orders began using purchase orders and an FBA vendor to handle shipments with software version 9.1.0. Amazon FBA inventory is now stored as Remote Inventory on the Inventory Item level, and purchase orders are no longer created. The Amazon FBA vendor was removed, but should persist on installs upgraded from version 9.1.0.

For the Amazon Channel module, a new FBA Shipments function was added. This new function allows for creation of FBA Shipments based on FBA inventory, inventory levels, and Amazon restock recommendations. Remote and local inventory levels are used to shuffle Inventory Items in and out of local availability when FBA shipments are added and removed. There's an option to print a Packing List for an FBA Shipment which prints a packing list similar to those used by the Batch Shipping Manager extension module.

Other Extension Module Changes

Question and Answer extension module developed, and is now available. Allows customers to ask questions to be answered by staff to be displayed on product offer detail pages.

Modified the Bulk Pricing Updater extension module to allow '0.00' price updates. Previously prices had to be greater than zero.

Modified the ShipWorks extension module: Billing phone number is now transmitted when the delivery phone number is '0000000000'. Billing state/province is now correctly transmitted.

Modified the Listrak extension module to provide support for Attentive SMS signup modals. Attentive SMS can be configured through Google Tag Manager (GTM).

Modified the Listrak extension module to prevent signup modal loading for customers who have Special Offers active.

Added the option to batch one order per batch using the Batch Shipping Manager extension module. Previously the lowest number of orders allowed per batch was ten.

The QuickBooks Web Connector (QBWC) accounting extension module was updated to store remote and local inventory combined in QuickBooks, and appropriately split remote and local inventory during inventory update operations (push and pull).

The THUB accounting extension module was updated to store remote and local inventory combined in QuickBooks, and appropriately split remote and local inventory during the inventory update operation (pull).

Misc Software Changes

Updated the abbreviation for UK - Scotland Mainland to GB (was inadvertently set to XI).

Set the default value for the Feature Grid Accordion Name to 'Accessories' for categories. This field is a required entry, and it's initial value was previously blank.

The store catalog Manage Manufacturers function was altered to list manufacturers sorted by identifer (previously sortorder).

The Remote class was updated so that when raw results are requested, headers are now formatted in the same fashion as the PHP environment variables are formatted.

Added PATCH functionality to the core Remote class in order to support PATCH requests (used with the PayPal Commerce Platform integration).

Overlays triggered using Ajax (or other JavaScript) operations can now be triggered twice and show once. Previously if an overlay was triggered a second time while already being displayed, it would be removed. This allows back to back Ajax requests without worrying about flashing or losing overlays.

Modified system messages so they support XHTML tags automatically. Now when entering messages like the Checkout Header or Checkout Disabled messages, you can use XHTML tags (links, etc) in the messages to make them more robust.

Localization helper was set up improperly and did not enable UK countries from the country list when United Kingdom was enabled. Only United Kingdom (GB) was enabled previously.

Added a guided database marker that enables suppressing cloning for items at the table level. Can be used when item inserts are allowed, but item clones don't make sense to support. The marker is TABLE.TBLSUPRESSCLONE. The column-level COLUMN.TBLSUPRESSCLONE marker remains available and unchanged.

Added guided database support for sending links using 'Print' in the name to a new window ('Audition' also works).

Updated USPS service logic to use service codes instead of service names for mappings. All USPS services were rebuilt. This change ensures that future updates to USPS service names do not effect service availability within the software.

Future Update Roadmap

The following updates are on the schedule and currently in development: ShipStation extension module; Selective Caching; Architecture and Distribution 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.