Ver 8.3.0.0 – What’s new?

Introduction

Version 8.3.0.0 is the first release after version 8.1.0.0 that has been made generally available. It contains many exciting new features and a number of bug fixes. Before upgrading, please read the Upgrade Compatibility Alerts for each version.

Version 8.3.0.0

Note that some of the features highlighted below are only available in the Enterprise Extensions. See here for full details of what is included only in the Enterprise Extensions.

New Features

  • Added B2B customer hierarchy functionality. Customers may be placed within a hierarchical structure where a customer can be assigned a parent and children. API calls have been added to manage customer hierarchies and retrieve hierarchical information.
  • Added B2B functionality to storefront to allow B2B buyers to view orders of their colleagues in the same hierarchical structure.
  • Added B2B functionality to storefront to only allow customers to place orders below a certain amount threshold.
  • Added B2B functionality to storefront to not allow some customers to modify the shipping and billing addresses available in their address book.
  • Added B2B functionality to storefront to place orders in a waiting for approval state for certain customers.
  • Added B2B functionality to storefront to allow customers with the correct privileges to approve orders.
  • Added Order Management functionality to allow an administrator to modify and resubmit a customer order. KonaKart archives the previous order so that an audit trail is kept.
  • Added features for integration with an ERP system by exchanging XML messages on a message queue. All of the key integration points are supported between KonaKart and the ERP system and vice versa.
  • Added a new API protocol for the storefront – JAXWS – The new KKJAXWSEng class is another implementation of KKEngIf.
  • Added a new API protocol for admin – JAXWS – The new KKJAXWSAdmin class is another implementation of KKAdminIf.
  • Added Liferay Single Sign On for the storefront portlet.
  • Added Facebook and Google+ login to KonaKart tiles.
  • Added expiration functionality to customer passwords. Temporary passwords that are sent out on a customer’s request, now expire after a configurable number of minutes. Customer is prompted to change password on first login.
  • Added some attributes to order total objects to save the id of a promotion and the discount defined by a promotion module.
  • Functionality has been added to promotion usage. You can now limit the total number of times a promotion is used by any user even with no coupon attached. Using the Admin app you can quickly see how many times a promotion has been used.
  • Storefront application can now be configured to only display customer orders that are in one or more chosen states.
  • Improved facet handling by Solr to allow facet values with spaces and non standard English characters.
  • Configuration parameter added (in konakart web.xml) to define whether or not to randomise the MQ Network Connection names (default is to randomise).
  • Formatting of a customer name is now configurable to cater for countries that display the last name before the first name.
  • Added og:image meta tag to product details page of storefront application so that Facebook picks up the correct image when sharing product details on Facebook.
  • New KonaKart API call to allow a customer to enter a new password when the password has been forgotten, rather than having it sent out in an email.
  • Simplified the specification of engine settings (engine mode, customers shared, products shared, categories shared, etc) in the properties files. This greatly reduces the likelihood of configuring these quantities differently in different places. Note the comments in the “Backwards Compatibility Alert” section for things to check in this area when upgrading.
  • Functionality has been added to the getOrders() Admin API call to allow the order products of the returned orders to be populated by setting the fillOrderProducts attribute of the AdminOrderSearch object to true. Previously, for performance reasons these weren’t populated.
  • Allow custom validation on Manufacturer custom fields in the Admin Application – define these in the CustomValidation.properties file
  • In the expression builder you can now specify a condition where a tag value has not been set for a customer.
  • Enhanced the Admin searchForIpnHistory() API call to allow to filter the returned objects using values in custom attributes.
  • Upgraded to javax.mail-api-1.5.5.jar from mail-1.4.7.jar.
  • Added the ability to configure mail connection retries and pauses between retry attempts (the defaults are 1 retry attempt after a delay of 30 seconds). Configure these in conf/konakart_mail.properties.
  • Made it configurable in the Admin App after inserting a product whether to remain in insert mode or switch to edit mode.
  • In the Products panel in the Admin App, added the possibility to search by product ID.
  • A new configuration property (konakart.synchronise.ImageIO.reads) has been added to synchronise ImageIO Read operations that were causing intermittent concurrency issues under certain JDK 8 platforms. For maximum performance the default is not to synchronise the ImageIO reads but this configuration property provides the ability to modify that behaviour if required.
  • Upgraded to the postgresql-9.4.1209.jre7.jar PostgreSQL JDBC driver.
  • Upgraded to the mysql-connector-java-5.1.39-bin.jar MySQL JDBC driver.
  • Upgraded to Quartz v2.2.3
  • Sorting products by times viewed is now supported in Solr

Bug fixes

  • Order templates syntax corrected to check null comments:
    “#if ( $osh.getComments().length() > 0 )”
    replaced with:
    “#if ( $osh.getComments() && $osh.getComments().length() > 0 )”
  • Added $esc.html($newPassword) to Velocity Templates to escape the password string that may contain characters that affect the HTML syntax.
  • Fixed a bug in getProductPerSku() and getProductPerSkuWithOptions() only manifesting itself when in shared products mode. In this mode if there were two products with the same SKU in different stores and product caching was enabled it was possible for the API call to return the product from the wrong store.
  • deletePromotion() Admin API call was not deleting associated coupons.
  • When a Tag was deleted, any records in the kk_tag_to_product table weren’t being deleted.
  • When a TagGroup was deleted, any records in the kk_category_to_tag_group table weren’t being deleted.
  • When a Category was deleted, any records in the kk_category_to_tag_group table weren’t being deleted.
  • Fixed a bug during RepeatOrder that threw an exception if the shipping module used for the original order was no longer available.
  • Free Product promotion module was not setting the promotion id on the order.
  • Bug fix when opening the storefront in multiple tabs on the page that allows you to filter a selected set of products using facets. When switching between the tabs the filters were being corrupted where one tab was picking up the filters of the other tab.
  • Bug fix for when sorting products by price using catalog prices and Solr. The price used for sorting was the standard price and not the catalog price.
  • When inserting or editing a product in the Admin App, the Insert or Save button wasn’t always disabled after the insert or edit.

Backwards Compatibility Alert

  • TotalDiscount promotion module has been modified to calculate a percentage discount on the current order amount when it is called. This may be less than the original sub-total if for example a product discount or a buy x get y free discount has already been run.
  • With the introduction of the new MySQL JDBC driver (mysql-connector-java-5.1.39-bin.jar) you will need to add &useSSL=false to your JDBC connection URL if you don’t want to enable an SSL connection to your MySQL database.
  • The following properties in konakart.properties and konakartadmin.properties have been replaced:

    • konakart.ws.mode = 0
    • konakart.ws.customersShared = false
    • konakart.ws.productsShared = false
    • konakart.ws.categoriesShared = false
    • konakart.rmi.mode = 0
    • konakart.rmi.customersShared = false
    • konakart.rmi.productsShared = false
    • konakart.rmi.categoriesShared = false
    • konakart.json.mode = 0
    • konakart.json.customersShared = false
    • konakart.json.productsShared = false
    • konakart.json.categoriesShared = false

    Instead of the above, the following new properties (placed in konakart.properties and konakartadmin.properties) should be used in all cases:

    • konakart.engineMode = 0
    • konakart.customersShared = false
    • konakart.productsShared = false
    • konakart.categoriesShared = false
  • The following KonaKartAppEngineServlet servlet initialization parameters have been replaced:

    • mode
    • storeId
    • customersShared
    • productsShared
    • categoriesShared
    • defaultStoreId

    Instead of the above, the following new properties (placed in konakart.properties and konakartadmin.properties) should be used in all cases:

    • konakart.engineMode = 0
    • konakart.defaultStoreId = store1
    • konakart.customersShared = false
    • konakart.productsShared = false
    • konakart.categoriesShared = false
  • The following properties in konakartadmin_gwt.properties have been replaced:

    • konakartadmin.gwt.mode = 0
    • konakartadmin.gwt.customersShared = false
    • konakartadmin.gwt.productsShared = false
    • konakartadmin.gwt.categoriesShared = false

    Instead of the above, the following new properties (placed in konakartadmin.properties) should be used:

    • konakart.engineMode = 0
    • konakart.customersShared = false
    • konakart.productsShared = false
    • konakart.categoriesShared = false
  • The following KKAdminGWTServiceImpl servlet initialization parameter has been replaced:

    • defaultStoreId

    Instead of the above, the following new property (placed in konakartadmin.properties) should be used:

    • konakart.defaultStoreId = store1