The highlights of KonaKart version 2.2.6.0 :
- Created a User Manual available in html and pdf formats.
- Added support for bundles. Bundle products can be defined in the Admin App. The quantity of the bundle product is calculated automatically and tools are provided to calculate the cost (optionally using discounts) and the weight. In the application, the bundled products are available in the product detail screen, the quantity available is calculated and the quantity in stock of the bundled products is decremented automatically when an order is processed.
- Added product tags and tag groups to enable detailed product searches based on the tags. Tag groups can be linked to a category in order to display them in a context sensitive manner. i.e. You could link a "Food Type" tag group to a restaurant category in order to select only restaurants that serve vegetarian dishes or spicy food etc.
- Added repeat order functionality so that customers can repeat orders with a single click.
- New application feature to see shipping costs and promotions on cart details page without needing to register or log in.
- New application feature to log in automatically after registration.
- New customization framework for modifying / supplementing the KonaKart engine behavior. This provides hooks that are easy to program that allow you to customize the KonaKart engines. See Engine Customization FAQ for more details.
- Two new API calls on both the Application API and the Admin App API:
String custom(String input1, String input2)
String customSecure(String sessionId, String input1, String input2)
These allow you to add your own engine interfaces to enhance the behavior of the KonaKart engines.
See Engine Customization FAQ for more details. - Added 10 custom panels that display a predefined URL in a frame. This feature allows you to extend the Admin App by adding your own administration functionality outside the standard Admin App.
- Provided more flexible customer search options in new drop lists on the Admin App Customer Panel. These can also be disabled by using role-based security settings.
- Added the ability to program a button on the Admin App Customer Panel to call your own custom URL. This feature allows you to extend the Admin App by adding your own administration functionality outside the standard Admin App.
- Added the ability to program a button on the Admin App Returns Panel to call your own custom URL. This feature allows you to extend the Admin App by adding your own administration functionality outside the standard Admin App such as credit card refunds.
- When AdminOrderProducts are returned by the Admin API they now have the optionId and valueId attributes of the options populated, and not just the name and value.
- UTF-8 encoding now used for the mail sent out from the Email command in the Admin App allowing double-byte characters to be used in customer emails.
- Provided more flexible product search options in new drop lists on the Admin App Products Panel.
- Added new method addToBasketWithOptions(). Currently there is one option that allows you force a product into a new basket item even if an identical product already exists. The default behavior is to just update the quantity of the existing item.
- Added new method createOrderWithOptions(). Currently there are two options: One allows you to automatically copy all of the basket custom fields to the orderProduct custom fields which are generated from the basket items. The other allows you to use the default customer to generate a temporary order for customers that haven't registered or logged in. The order totals from the temporary order are used to display shipping costs and promotions on the cart details page.
- Added custom fields to cartItem.
- In the Admin App added a button to select the customer from the orders panel.
- KonaKart version number and build date has added to the meta data
in the Admin App (KonakartAdmin.html file) - this provides a convenient
way to find out which version you are running.
- If the Customer Panel is the one and only panel authorized for a user, it sometimes failed at start-up due to a race condition.
- Fixed bug to clear the order history list in the application when a customer logs out.
- Fixed array out of bounds exception when there were no categories in the system.
- getShippingQuote() was throwing a null pointer exception if the shipping module didn’t exist.
- getPaymentDetails() was throwing a null pointer exception if the payment module didn’t exist.
- UpdateBasket was not updating the custom fields.
- When the session was timing out, the user was receiving an exception in the application.

