Kryptronic Info Center

The Info Center has articles on everything you need to get your site up and running with Kryptronic software. Hundreds of articles are available which contain tips, tricks, software updates and release notes, and everything you ever wanted to know about eCommerce, but were afraid to ask...

Kryptronic

Kryptronic eCommerce 9.3.0 Released

Kryptronic is pleased to announce the newest major release on our Kryptronic eCommerce version 9 platform. This is by far the largest SEO update to Kryptronic software since SEO became a thing in the early 2000s. Everything has been modernized from content to displays to microdata. We’ve achieved perfect scores across the board with Google Lighthouse.

This software upgrade features many, many changes and enhancements – including fully rebuilt and modernized SEO and MicroData, reimagined Product Filters, faster modern content and displays, Amazon updates, Google Shopping updates, and more.

Current Clients: Click here for upgrade and update instructions

Items Added/Changed In This Version

Complete Search Engine Optimization (SEO) Overhaul

Search Engine Optimization across the entire platform was reimagined and rebuilt. This is by far the largest SEO update to Kryptronic software since SEO became a thing in the early 2000s. SEO was modernized, MicroData was updated, content has been adjusted, and displays have been altered. This software has demonstrated it can achieve perfect Google Lighthouse scores using a proper modern server and optimized content. We left absolutely nothing on the table, and changed everything in the process.

Full support for Google Analytics 4 (GA4) using the Google Tag was added. Google Analytics 3 (GA3) support will continue as Google Universal Analytics until Googe shuts it down. The Google Tag fully supports order conversions as purchase events with full order information, including line items, being transmitted.

For General SEO, all text/javascript references in script tags generated by the software were removed. That designation is no longer necessary as per W3C.

For General SEO, removed older noodp (no open directory project) and noydir (no yahoo! directory) robots meta designations.

Core request URI formatting was centralized in the Application class, so functions using the requesturi global can be assured all tags have been stripped and URLs converted for inclusion in JavaScript, etc.

A new Core text manipulation function was added which strips all tags and special characters from text, and optionally truncates it. Named xhtml_totext(), this new function can be used to generate descriptions for feeds, meta information and microdata, or anywhere fully cleaned HTML may be needed.

For Web Pages, HTML Content is now globalized with all other content. Additionally, rendered HTML output (now obtained and printed using a buffer) is globalized.

Added a content control setting to turn videos on/off for a site entirely (page content and microdata). The default is on. This setting is useful for MultiSite setups where videos shouldn’t appear on all of the sites configured.

The main Display URL generator function was updated to use SEOURLs with CGI variables appended to them in the event the variables ‘variant’, ‘count’ and/or ‘offset’ are present, and no other variables are present. This has made the URLs used for product variants and paginated navigation more SEO-friendly, and in line with Google recommendations.

jQuery UI was removed as it became unecessary with new jQuery updates becoming available. This has saved a significant amount of data transferred on initial page loads, and a script load, and results in speed and rendering performance increases. Clients using custom code which requires jQuery UI should load it by setting global ‘core.load_jqueryui’ to true in their skin/theme ahead of loading the core.jslib namespace. That will load a bundled version of jQuery UI when jQuery is loaded, which is otherwise not loaded.

The JQuery JSON plugin was removed as jQuery now recommends native JavaScript JSON functionality for creating and parsing JSON. This has saved data transferred on initial page loads, and a script load, and results in speed and rendering performance increases.

Fully Rebuilt and Modernized SEO MicroData

Removed all old microdata from skin/theme widgets such as the Company Information and Breadcrumbs/Location widgets and removed all old MicroData display includes. These widgets and includes printed MicroData to the HTML page body using schema.org MicroData syntax in HTML tags.

MicroData is now generated by the SEO MicroData extension module itself, in JSON+LD. New settings were added to System / Component / Settings / Extension Module: SEO MicroData, including a logo image to use for MicroData.

All MicroData is now fully linked/related exposing correct and proper ownership/authoriship/relationship information for all requests. MicroData is exposed in JSON+LD in a single array which links all MicroData elements to one another. For example, a page for a Product Offer exposes a Store element for the company, a Product with one or more Offers that are sold by the Store, a Item Page authored by the Store which contains the Product and BreadCrumbs. A Video Object, authored by the Store, may be part of the Item Page. The Item Page is part of a Web Site, that is also exposed, and authored by the Store.

Open Graph meta tags were added to the MicroData module. These tags, developed by Facebook, were available in early version 8 software, and have made a return here as they appear to be useful for SEO as alternative tags. Open Graph tags added include: title, type, image, url, site_name, description and video. Open Graph tag content is derived from MicroData, so it matches exposed MicroData in all cases. To help link the site to Facebook (if desired), use System / Component / Settings / Extension Module: SEO MicroData to enter your Facebook page’s App Id.

Every page now exposes Store (or Organization) MicroData element which is referenced by all other MicroData elements which designate ownership or authorship. This element was previously rendered in MicroData using the Company Information Skin/Theme Widget, and was detatched from other MicroData.

Store (or Organization) MicroData was enhanced to include social media page references, hours of operation, payment methods accepted (if the Google Shopping module is installed), price range, map coordinates, map URL, and logo.

Video Objects elements are now available in MicroData, which allows exposing videos as part of pages, articles and products. Previously videos were not exposed.

Every page now exposes a Web Site MicroData element which relates any Page elements (Web Page, Collection Page, Item Page) to the site in general. The Web Site is authored by and linked to the Store (or Organization), and has a logo. Sitelinks Search parameters are new, and can be configured using System / Component / Settings / Extension Module: SEO MicroData. Using Sitelinks Search provides search engines like Google information on how to embed a search form in results for the website.

The MicroData module now has the ability to create Pages as Collection Pages, which prints an Item List (aka Carousel) containing links to other pages. Carousel types supported, in order of precedence, are Categories (Store or Article), Articles, Products and Web Pages. Each Collection Page can reference a single Carousel, which must contain links to pages all of the same type. Collection Pages are a new MicroData element type.

All system generated pages which do not explicitly set MicroData information have MicroData exposed as Web Page, and shows the page was authored by the Store (new), has Breadcrumbs (new), and to show that page is part of the Web Site (new). Previously these pages were not exposed in MicroData. These are pages like the contact page, shopping cart, account section, checkout, etc.

All pages without MicroData Breadcrumbs generated now automatically have Breadcrumbs generated pointing back to the homepage. This includes CMS Web Pages as well as system generated pages which do not explicitly set MicroData information or Breadcrumbs.

In all instances were MicroData is being exposed for a Page, Product, Article, etc, now the actual names and descriptions are used (instead of meta tag names and descriptions). This is done to ensure MicroData information matches page actual page content, rather than meta tag information. In all instances where a video is available, a MicroData Video Object element is exposed. In all instances where images can be exposed, all available larger-size images are used.

The MicroData extension module was updated to accept a list of full image URLs as an input parameter. Web Pages leverage this new functionality. Use by appending image URLs to the global array named ‘cms.content_imageurls’ in Web Page content.

Awesome Store Catalog SEO and Microdata

For SEO consistency, store breadcrumbs now include a link to the site’s homepage in all cases. Previously, if the store splash page was not bypassed, it was the first link presented in breadcrumbs. This adds a level to show that all pages stem from the homepage.

The Store Splash page now exposes itself as a MicroData Collection Page containing Store Category links in a Carousel. If no categories are available, Featured Product Offer links are used, if available. Previously this page was not exposed in MicroData. This page is authored by the Store (new), has Breadcrumbs (new), and is part of the Web Site (new). MicroData fields include name, description, image (logo), author and URL.

For Store Category SEO, altered displays to print the category name as an H1 tag with the id ‘ktitle’. This prints a true title tag for the category page using the category name. Previously the H1 tag was printed and hidden, and the category name was printed in a div. This visibly exposes the H1 tag, aligning with new SEO stragegies.

For Store Category SEO, category meta descritions now default to the full description (stripped and formatted) if a meta description is not entered for the category. Previously the short description, if entered, was the default.

The Store Category pages are now exposed as MicroData Collection Pages containing Store Category links in a Carousel. If no categories are available, Related Product links are used, if available. Previously exposed as a generic Web Page. This page is authored by the Store (new), has Breadcrumbs (new), and is part of the Web Site (new). MicroData fields include name, description, image (logo or category image), a video object (new), author and URL.

All Category SEO and MicroData changes were extended to Special Offer and Manufacturer (Brand) Category displays.

For Store Product SEO, detail pages were modified to print the product offer name without the number prepended as the H1/title tag for the page. Previously the name was styled differently, could have had the product number prepended, and was not an H1 tag (the H1 was hidden, and did not contain a prepended product number). This has made the printed title an H1, and maintains matching between the H1 and meta title tag.

For Store Product SEO, the layout for Product Offer detail pages was altered to print the page title and description/content in the first div printed in the source, and any images and extras to the second div printed in the source. The divs are flipped using klfex CSS controls. This gets the main content printed for all product offer detail pages (and SKU pages) at the very top of the body tag in the source.

Store Product Offer Microdata was enhanced substantially. Product Offers are now exposed as Product MicroData elements which are the main content of an Item Page, which is also exposed. Previously they were exposed as Products not linked to a page. Product now show as sold by the Store (now attached), can expose multiple large images (new), and a video object (new). Reviews and Aggregate Rating information is attached to Products for Product Offers with reviews. Breadcrumbs are attached to the Item Page with the Product.

Store Product Offer Microdata now includes a manufacturer reference, a proper Brand reference with type, exposes offers for every Inventory Item being sold (for multiple Inventory Item offers). If the Google Shopping extension module is installed, color, size, material and pattern are exposed, if entered for Product Offers.

Store paginated navigation links (search and categories) were optimized to speed up creation, and now use SEO URLs with ‘count’ and ‘offset’ parameters. Now paginated navigation URLs closely match the canonical URL for the page(s).

Product sort controls changed from links to drop down selection list, and now reloads page with ajax with a Reset Sort option available when sorting is active. Previously sort links were printed using full CGI URLs and nofollow links. Now they’re fired using Ajax, avoiding that.

Beginning with version 9.1, Inventory Item type product offers selling multiple inventory items were exposed using SKU-based URLs. Those URLs have changed to use the product offer URL with a ‘variant’ CGI parameter appended. Any necessary rewrites are handled internally. All references were changed, including those in MicroData and the Google Shopping feed.

The MicroData extension module was updated to use Inventory Item vendor item identifiers as the MPN for Inventory Item offer types.

Store category header displays were altered for SEO purposes to move the textual content for categories (name, description) above the image from a source-code perspective. Top category header displays were flipped to use an image to the right view. Category feature grid headers continue to use an image to the left view, even though the source-code is opposite.

Amazing Content SEO and Microdata

For Web Page SEO, if a meta description is not entered for a Web Page, the rendered HTML output for the page will be used (stripped and formatted). Previously no default was set, so the default site meta description was used.

MicroData for Web Pages was augmented to include attached/related Breadcrumbs (new), and to show the page was authored by the Store (new), has Breadcrumbs (new), and to show that page is part of the Web Site (new). New MicroData fields for Web Pages include image (logo) and URL.

For Article Category SEO, article category meta descriptions now default to the full category description (stripped and formatted) if a meta description is not entered for the category. Previously the short descritpion, if entered, was the default.

For Article SEO, article meta descritions now default to the full article content (stripped and formatted) if a meta description is not entered for the article. Previously the summary, if entered, was the default.

The Articles splash page exposes itself as a MicroData Collection Page containing Article Category links in a Carousel. If no categories are available, Featured Article links are used, if available. Previously this page was not exposed in MicroData. This page is authored by the Store (new), has Breadcrumbs (new), and is part of the Web Site (new). MicroData fields include name, description, image (logo), author and URL.

The Article Category pages are now exposed as MicroData Collection Pages containing Article Category links in a Carousel. If no categories are available, Related Article links are used, if available. Previously exposed as a generic Web Page. This page is authored by the Store (new), has Breadcrumbs (new), and is part of the Web Site (new). MicroData fields include name, description, image (logo or category image), author and URL.

Articles are now exposed as BlogPosting (or Article) MicroData elements which are the main content of a Web Page, which is also exposed. Previously they were exposed as generic Web Pages. Articles now show as authored by the Store (now attached), multiple images (new), a video object (new), and date/time information (new). Breadcrumbs are attached to the Web Page with the Article.

CMS Articles extension module paginated navigation links (search and categories) were optimized to speed up creation, and now use SEO URLs with ‘count’ and ‘offset’ parameters. Now paginated navigation URLs closely match the canonical URL for the page(s).

Theme/Skin SEO and Modernization

Images for categories, products, articles, etc. now use base dimension settings and special inline CSS to combat content layout shift (CLS). This reduces layout shift by creating a placeholder for these images in the layout as it’s being rendered by browsers.

Images for categories, products, articles, etc. now load in a lazy fashion, waiting until the image is close to the viewport. This increases page rendering times substantially and reduces content layout shift (CLS). These base dimensional settings can be controlled using Store / Component / Settings / Images and Website / Component / Settings / Images. Base dimensions provide placeholders for images, implementing a base/initial aspect ratio. Actual image aspect ratio is shown once the image is loaded, which may produce minimal shift if images do not align their dimensions with the base settings.

The Flex theme/skin was updated to perform better from an SEO perspective. It was also modernized – going to a single-column layout with streamlined widget displays. The original Flex theme is still available under the name FlexOG. Themes are not updated during software updates, so this change does not affect current installations using the Flex theme/skin.

Fixed menu controls were added to the common JavaScript library. Use class ‘kfixednav’ on the navigation container, and class ‘kfixedcontent’ on the content container in your skin’s HTML template to fix the navigation menu in wide/desktop views when it scrolls out of view.

Click controls for menus in the common JavaScript library were expanded to include wide/desktop views. Previously they only functioned in thin/mobile and mid/tablet views.

Added the ability to override skin widget settings when loading widgets individually using the skinwidgetsid namespace. Now you can pass an array of values (including the widget id) to use to override settings for each widget as they are loaded.

Removed open/close widget controls from all widgets to decrease the number of (hidden, unused) DOM elements printed to the display. Decreases render time and increases performance.

Removed the collapsed-header and collapsed-icon widget classes/styles (unused). Decreases render time and increases performance.

Expanded widget displays no longer collapse in mid/tablet and thin/mobile views. Decreases render time, content layout shift (CLS) and increases performance.

The base icon and image sets were updated to utilized modern icons and images. These new icons and image sets generally use hollow icons, and the graphics are thinner than the previous version. Any clients using custom icon sets in their themes can copy these over and modify or change colors as desired.

Merged the standard color and inverted color sprites into one combined sprite, and added banner, slider and modal controls to the combined sprite. Now one sprite is loaded for all icon requests.

The collapsed header skin widget display (kwidget_collapsedh) was removed (unused/unnecessary). This update converts all skin widgets using this display were changed to expanded header skin widget displays (kwidget_expandedh).

The collapsed icon skin widget display (kwidget_collapsedi) was removed (unused/unnecessary). This update converts all skin widgets using this display were changed to expanded icon skin widget displays (kwidget_expandedi).

Added new Navigation Bar skin widget. This new widget provides options to include various menus and links in a unified navigation menu. This makes for an easier alternative to grouping widgets, or making a custom menu in your skin.

Changed a few initial default values for product and category displays to compliment the new wider design of the Flex skin. These changes have no impact during updates.

Padding changed on shopping cart and checkout link with icon displays to better align text with icons.

Fonts are now loaded using preload and link tags in the skin’s head, before any other CSS file links. Font imports are no longer done in the CSS file. This is as per recent Google recommendations/changes – preloading fonts avoids render blocking during retrieval. Google Roboto loading is handled this way now by default.

To optimize JavaScript loading, document.write() was removed and is no longer used. It was found in the Listrak module and replaced with modern code.

Non-critical JavaScripts are now requested in deffered format, which reduces render blocking, and gains perfomance points in Lighthouse evaluations.

To comply with Google Lighthouse accessibility recommendations, both the red (FF0000) and green (339933) colors used in the base styles for the software have had brightness reduced by 10% to red (E50000) and green (2A802A). Increases readability for items like stock messages and pricing.

All instances of style tags using a type parameter (text/css) have been updated to remove the type parameter (no longer needed).

Easy Custom Code Support Added

Prior to this update, in order to modify or add to software functionality, clients had to modify the core software. This methodology has resulted in cumbersome updates for modified sites which require code merges and file change tracking to ensure customizations persist. With the introduction of Custom Code support, clients can (and should) keep modified and added files separate from the core software. This feature makes way for Easy Auto Update functionality which supports Custom Code (to be introduced in the near future).

Custom Code support added for modified private system and component files. To utilize, create a {private}/custom directory, and copy the file you want to modify (example: {private}/apps/ecom/ECOM/includes/cartdisplay.php) into that directory while maintaining it’s full path (example: {private}/custom/apps/ecom/ECOM/includes/cartdisplay.php). When loading that file, the software will load your custom file.

Custom Code support was added for new private system and component files. To utilize, create a {private}/custom directory, and add a file while using an appropriate full path (example: {private}/custom/apps/ecom/ECOM/includes/custom.php). This includes support for loading additional task files for task functions which run one or more files from within a directory (examples: core and application startup, shutdown, cron, order processing).

Custom Code support was added for modified public files. To utilize, create a {public}/custom directory, and copy the file you want to modify (example: {public}/media/scripts/frontend.min.js) into that directory while maintaining full paths (example: {public}/custom/media/scripts/frontend.min.js). When loading that file, the software will load your custom file.

Custom Code support was added to the Installer. You can deploy entire custom modules in {private}/custom during installation and updates, just as if they had been added directly to the core software.

Product Offer and Inventory Item Changes

Read More functionality added to long product offer descriptions. Add a paragraph with the CSS class ‘kreadmore’ to display a link (showing the paragraph text as the link text) which expands all content in the long product offer description that follows.

Inventory Item type product offers selling multiple inventory items were updated to utilize the Inventory Item image as a large product image, and to display and change the to the appropriate image with Inventory Item selections.

Inventory Item type product offers selling multiple inventory items were updated to display pricing and product info (points, product number, rebate info, etc), and to change that info based with Inventory Item selections.

Inventory Item type product offers selling multiple inventory items were updated to display the inventory items choices with the header ‘Options’ instead of using the offer name.

If product tabs are used on the product offer detail page, the first populated tab is now shown as open by default. Previously it was closed. Updated for SEO purposes, and to alert customers to content being available in the tabs.

Inventory Item type product offers selling multiple inventory items can now display feature grids on the product offer detail page containing information for the Inventory Item options. Turn on using an offer-level control (Product Offers: Display Inventory Item Feature Grid), and enter feature grid information on the inventory item level (Inventory Items: Inventory Item Feature Grid).

Inventory Item type product offers selling multiple inventory items can now display directly related product offers on the product offer detail page using a custom header. This is useful for cross-selling items like replacement parts which are directly compatible/related to a specific Inventory Item.

Product Offer and Inventory Item product number (SKU) displays were altered. The product numbers were removed from the item name and are now displayed under the name in a way that doesn’t detract from the item name.

Product Filters Reimagined

Product filters as implemented in previous versions were completely removed and rebuilt. The new filter system features filter parameters entered directly with Product Offers, and is completely variable in nature – allowing an unlimited number of filters and filter choices.

Product filters for product type, price and brand can be activated for searches and brand displays, if enabled. Those filters, plus any offer specific filters, can be activated for category displays.

Product filters can now be shown using selection lists that allow a single choice to be selected per filter, of using checkboxes that allow multiple choices per filter.

Product filters can now be shown using an over/under display (filters at the top of the page), or a split display (filters to the left, products to the right) in desktop/wide views. The split display is most effective on sites without a sidebar in the theme.

Product filters have been optimized from a resource perspective to run much, much faster than ever before. They can be used on large sites now without degradation in performance.

Other Store Updates

Category feature grid information can now be displayed on product listings using a More Info display (three-dot icon which expands to show feature grid info when clicked). Controlled using the new ‘Product Listing: Display Feature Grid Info’ setting.

Category and product pages image check functions were optimized to reduce the possibility for multiple checks.

Category feature grids received styling changes which added Item Numbers to the grids (removing them from the front of product offer names). More width was given to the item portion of category feature grids to provide a better/shorter display.

Product offers pricing displays now show loyalty points plus (+) when pricing is variable for the offer depending on Inventory Item choices (priced from).

Language strings were added for displaying custom text for the MPN and Item Number. The defaults are ‘Item Number’, ‘Item’ (short), and ‘MPN’.

Product offer lists with add to cart buttons activated now display an Options button for package deals, custom packages and multiple inventory item offers which can be added to the cart from the offer detail page.

The Loyalty Points multiplier skin widget is now displayed on the splash/home page. Previously it was specifically disabled on that page. The widget was also updated to allow for HTML to be used for the Points Multiplier Heading.

The regular expression ‘ (MPN.*)$’ is now automatically used to strip MPN information from the end of inventory item names when they are displayed on store catalog pages and in wholesale price lists. This has been done to clean up those displays, but allows retention of MPNs in inventory item names in microdata offers, the shopping cart, checkout and beyond.

For wholesale customers, the following price-based functions are disabled: product price filters, minimum and maximum price advanced search fields and price-based product list sorting options. These price-based functions rely on product offer sort price, which is based on regular pricing, making these functions inaccurate for wholesale customers.

Product offer sort prices are no longer updated with special offer pricing. Sort prices remain at regular price, and if special offers are active, special offer pricing is calculated. This change provides support for the new product filter system, and makes searches using price ranges more accurate with special offers active.

Checkout Enhancements

Added Captcha support to Checkout Form Fields, which allows a Captcha field to be used in Checkout. Captchas in Checkout are becoming common due to Carding attacks, and this can help combat those, as well as unwanted bot checkouts. To use, add a new Checkout Form Field using Store / Commerce / Checkout Form Fields and choose the Captcha field type, and make it required.

Payment methods can now easily save processor debug information for orders using ECOM_OLP::olpprocdebug(). An order object is used as input, and updated order debug information is returned. Payment methods will be updated over time to use this new functionality.

Added processor response code display support, and activated storing response codes for display in the Authorize.net CIM and PayPal Commerce Platform (PPCP) payment methods. Additional payment methods will be updated over time to use this new functionality.

Discount codes now have a related manufacturer code-level field, as well as the ability to leverage a new global setting (under Store / Componenet / Settings / Discount Exclusions) for excluding products from a list manufacturers.

Discount codes can now be excluded from usage on product offers for which special offer pricing is active. A new code-level setting was added, as well as a global setting that can be leveraged by discount codes.

Checkout was altered to withold required fields (Captchas mainly) during automated order creation like PayPal Commerce Platform using Express Checkout. Those fields are presented in checkout when accessed by customers to complete orders.

Moved Checkout RON (Regenerate Order Number) logic inclusion from DocReady to WindowLoad to provide necessary delays for some browsers. Currently used only by the SagePay (Protx) Payment Form payment method.

Orders and Order Processing Updates

Modified order center searches – added customer purchase order number as a searchable field. Will aid in looking up wholesale orders for which the customer has provided their PO number.

Purchase order creator changes: Layout changes were made to reorganize the order of the columns used in the items table. Controls were added to limit purchasing predictions to local inventory, remote inventory, or both. Amazon FBA restock recommendations are now shown with predictions.

Order Manager custom processing functions were removed, as they became unnecessary with the new Custom Code updates. Instructions for this update include information on how to move custom processing functions to a custom location, if used.

All order summary, credit, purchase order displays have been modified to list the Item Number as ‘Item’ instead of ‘Number’, and where ‘Item’ was used for the description, ‘Description’ is now used.

Order returns can now be processed using function calls that emulate staff processing a return. This enables automated jobs and other scripts to do returns on orders easily. Examples: Bulk writing off old unpaid orders, processing Amazon FBA returns.

Order item splits can now be processed using function calls that emulate staff processing a split. This enables automated jobs and other scripts to do splits on order line items easily. Example: Processing Amazon FBA partial line item returns.

Order returns now can intake local or remote inventory for orders which were originally remote inventory. This results in remote inventory orders, like Amazon FBA orders, returning standard item returns back into Amazon FBA stock or local inventory when desired.

Standard inventory intake returns for zero totals now produce zero total credits with inventory item line items. This adjusts inventory using a credit for these types of returns. Previous behavior was to automatically produce an inventory adjustment.

The purchase order mail messages sent to vendors have been changed so that the purchase order type (standard or dropship) and dropship order numbers are no longer sent. This suppresses information from those mail messages that vendors should not have.

PayPal Commerce Platform

Added a setting to allow for creating PayPal Commerce Platform orders using a single order summary line item, instead of a line item for each item being ordered. This setting is automatically activated for sites using the Regional VAT tax system with catalog prices entered Incuding VAT (as rounding issues with item unit prices can occur when removing taxes from prices automatically), and off by default for all other cases.

Address verification is automatically disabled in checkout during automated order creation like PayPal Commerce Platform using Express Checkout.

Added a setting to allow for item information string replacement (and/or removal) to avoid PayPal Commerce Platform compliance issues with item names and options.

Added maximum length controls to item information to ensure longer item names and option strings are truncated properly for PayPal Commerce Platform.

Modified the tax calculation for PayPal Commerce Platform Express Checkouts to provide checkout style precision for Regional VAT when prices are displayed including VAT.

Modified logic for Ireland (XI) to match localities in the United Kingdom (UK). Ireland now uses GB as the country abbreviation as XI is not supported by PayPal Commerce Platform.

Added an order mimimum check to PayPal Commerce Platform Express Checkout to prevent loading the express checkout buttons if the order minimum is not met.

PayPal Onboarding was modified to make it easier for users to locate and click the button which launches the PayPal modal. The button was made interactive to echo progress on the page.

Amazon Channel Extension Module

Full SP-API support is now available (in addition to MWS support) for the Amazon extension module. All MWS clients have been scheduled by Amazon to convert to SP-API in the near future. Extensions for SP-API and MWS were created and the module was rebuilt to use those extensions for connectivity. This allows easy switches between the two by temporarily removing the Amazon Connection using Store / Channels / Amazon Connection. Removing the MWS connection and setting up a new SP-API connection is the preferred method to switch from MWS to SP-API. Removing the connection does not reset offer, order, configuration or any other data used by the Amazon module.

Added an Amazon FBA Inventory Reconcile function to the Amazon extension module. This new function allows for easy reconciliation between Amazon FBA inventory levels and Remote Inventory Levels for Inventory Items.

Added functionality to the Amazon extension module which handles processing of all Amazon FBA replacement orders, reimbursements, reimbursement reversals and returns. This runs on a schedule, and creates Orders, Credits and Remote Inventory Level adjustments for Inventory Items automatically.

Added an Amazon FBA Returns Manager function to the Amazon extension module. This new function allows for easy viewing and correlation of Amazon FBA replacement orders, reimbursements, reimbursement reversals and returns.

Modified the Amazon extension module to sort FBA shipments by inventory id during creation and by warehouse location on packing lists.

Changed order review conditions to not flag Amazon FBA orders needing Customer Information Updates. These orders are shipped directly from Amazon, so customer information is not necessary for shipment purposes, therefore there is no need to flag these order for review.

An Amazon FBA vendor account was added, and it has a customer account tied to it (defaults to site owner email, change if necessary). This customer account is used to place orders for Amazon FBA Reimbursements.

Amazon FBA reimbursements should now be placed as orders placed by the Amazon FBA vendor’s customer account using a new product offer named ‘Amazon Reimbursement’. Reimbursements can be tracked using this new item.

The Amazon module was updated updated to exclude saving orders which were created and/or paid more than 30 days prior to the run date when getting new orders. This will exclude older orders which may be experiencing maintenance on the channel sites.

Google Shopping Extension Module

Added material and pattern fields for the Google Shopping Extension Module to Product Offers for use in Google Shopping feeds. These fields are recommended by Google for certain product types. Similar to color and size.

The Google Shopping extension module was updated to use Inventory Item vendor item identifiers as the MPN for Inventory Item offer types.

Added better GTIN exposure for Package Deals in the Google Shopping feed. Now the bardcode for the first inventory item in the package is used for the offer GTIN.

Added group id logic to the Google Shopping feed to group Inventory Item offers selling multiple inventory items.

Other Extension Modules

Added an option to the Point of Sale extension module to allow switching on Points Multiplication. The new function respects multisite settings (active status and points multiplier).

The Point of Sale extension module was updated to search product offer keywords during product searches, in addition to the fields already searched. This allows things like MPNs to be added to product offer keywords for searching – as well as SEO benefit.

The Point of Sale extension module was modified to show discount code exclusion information under product offer descriptions. This will aid staff in determining discount code applicability earlier in the ordering process.

The Batch Shipping Manager extension module was updated to include residential/commercial information for addresses on batch packing lists.

The eBay extension module was updated to exclude saving orders which were created and/or paid more than 30 days prior to the run date when getting new orders. This will exclude older orders which may be experiencing maintenance on the channel sites.

The Authorize.net extension module was updated significantly to support processing debug information storage, processor response code storage. Error handling was updated to ensure automatic and/or better manual recovery.

Misc Software Changes

Core software changes were made to ensure full support for PHP 8.1.

Added a Banned Sender Addresses setting to System / Component / Settings / Mail Settings to combat spam. Enter a single mail address, or a comma-delimited list of email addresses, which cannot be used to send any mail messages.

A customizable header was added for the Contact Us page. The header, which can be updated using the System / Component / Settings / Site Information (update the Contact Page: Header setting), replaces the contact form instructions when present.

Currency conversions are now auto updated if the new Auto Update Currency Conversion Rates setting is set to true. The default is false. Update using System / Component / Settings / Currency, Weight and Dimensional Settings.

Links launched using the Video Frame URL now produce a noindex tag when rendered. Video Frame URLs are used by modals to play videos without needing to load them on-page.

Connections to the Kryptronic Central Server are now made regularly via cron tasks to ensure license information is up to date. Previously this connection was made only when logging into the management interface.

Modified dynamic forms to include an internal namespace and a way to pass a formid as a reference. This allows dynamic forms to more easily be loaded from HTML pages and themes/skins with a single function call.

Modified audition logic in the management interface for products, articles, pages, categories, etc. When MultiSite is active, a modal is now printed which contains links to all sites on which the particular item is available (and a list of the sites on which it is not available). This helps previewing items on the desired site as previously links were printed for the default site only. This only affects sites with MultiSite active.

Added logic to recognize and set forwarded customer ip addresses when MultiSite is active and the request is being forwarded from an auxilliary domain.

Modified database definition files to provide default values for columns missing default values (specifically formfield definitions where maxlength was blank, and not zero).

Modified display formfields to provide up to 250 characters of text for displayed values. Was previously limited to 75. This will help with reading longer strings for items like order review notes.

Kryptronic: Security. Stability. Reliability