The highlights of KonaKart version 2.2.4.0 :
- Added free shipping on a product by product basis. There is a new product type called "physical product with free shipping" that allows you to set free shipping for a product in the Admin App. There is also a new Shipping Module called "FreeProduct" which needs to be installed. This module will return a shipping quote of zero if it detects that the physical products within the order all have free shipping.
- Configurable length checking has been added for certain product attributes entered through the Admin App. This allows you to increase the length of the database fields for attributes such as Product Name and Product Model and to configure the Admin App to allow you to check the maximum length of the new attributes.
- Added customer groups. These can be maintained through the Admin App. Customers may be associated to any one customer group. i.e. Wholesale / Retail customers.
- When the customer group of a customer is changed through the Admin App, a template based eMail may automatically be sent to the customer. This is a useful feature for the case where a customer is in a temporary group waiting for approval. i.e. A customer may sign up as a wholesale customer but needs to be approved by an Admin person. The approval /denial process involves moving the customer to the wholesale or retail group. A different template may be picked up depending on which group the customer is moved to.
- We've added multiple prices for a product. The product and option objects have an extra 3 price fields to store alternative prices such as wholesale price and MRP. The priceId attribute of the customer group determines which prices are used for any one customer. This enables you to display different prices to different customers depending on which customer group they belong to.
- A new engine API call has been added to enable you to send any template based eMail to a customer: sendTemplateEmailToCustomer(int customerId, String templateName, String message, String countryCode)
- Extra new features have been added to the Customers panel in the Admin App:
- You can now search for customers by street, city, postcode and customer group as well as by name, type and enabled / disabled.
- You can display the address of the customer through a configurable template that controls what address fields are displayed, and the formatting of these fields.
- We've added functionality in Admin App to select a customer and open up a new browser window displaying the KonaKart eCommerce application, automatically logging in the selected customer. This is a useful feature for call center users who may need to accept telephone orders. It allows them to log in on behalf of a customer without requiring the customer's credentials and to perform any transaction that the customer could normally perform using the eCommerce application.
- A dynamic gif image has been added to indicate that GWT code is loading. It appears in the checkout section of the application and when the Admin App is launched.
- A new API call has been added to com.konakart.al.ProductMgr to allow you to set the default order_by for client API calls that retrieve arrays of products. Previously the default was set to "Order by price ascending" and not configurable.
- Added EditOrder(), a new API call for the Admin API. It allows you to edit some attributes of the Order.
- The functionality of the Admin API call, getOrders(), has been enriched, to allow you to search by Custom fields, Date Added and Date Finished.
- In the Admin App when uploading an image, the directory will now be created if it doesn't already exist.
- A hook has been added to allow custom credential checking during Login. This allows a company implementing KonaKart to develop their own credential checking algorithms rather than to use the standard KonaKart implementation. It can also be used to achieve Single Sign On and to connect to an LDAP directory.
- Added a new API call to the AdminEng to return the top level categories.
- Added logout API calls to both the Admin and Application APIs to log out a user.
- Added configuration variables to specify whether you want a wildcard ('%') placed before or after text that is entered for searches in the Admin App. The default is the pre-2.2.4.0 behaviour of adding wildcard search characters before and after all eneterd search text.
- Included "Packing List" and "Invoice" buttons as part of the role-based security system in the Admin App. This allows you to enable or disable these buttons in role definitions. The default setting is pre-2.2.4.0 behaviour which is to enable both buttons.
Bug fixes:
- Removed a couple of hard coded labels from ProductsBody.jsp.
- Fixed a precision problem in the Product Discount OrderTotal module.
- Records from the products_to_products table weren't being deleted when a product was deleted.
- If a new promotion was inserted after a promotion containing rules, the new promotion was being initialised incorrectly.
- Fixed a bug where Category Tile was showing no categories when going directly to a page such as http://localhost:8780/konakart/PrivacyNotice.do as the entry point to the application.
- Fixed a bug where the url used for going to the product detail page, would not work if it was the entry point to the application.
- The exporter tool was reporting an exception when exporting products directly under a first level category.
- When a new language was added to the system, the admin tool wasn't allowing you to add a new order status name for that language, to an existing order status.
- The lastModified attribute of an order was not being updated when the status of the order was changed through the AdminAPI.
- Fixed bug to allow the DataDescriptor to be set to null for most API calls that retrieve products and reviews. The Javadoc was already reporting this behaviour although the engine was throwing an exception when finding a null value.
- In the Admin App the back button from the edit product panel wasn't always working after uploading an image.
- In the Admin App the getCustomers() API call wasn't instantiating the last modified date for the customer objects.
- Unable to control the visibility of the Reset Password button on the Customers Window.

