Changes with KonaKart 9.4.0.0 - Released 11-Nov-2020 ==================================================== *) Added ability to search by productId in the KKEng searchForProducts() API call. *) Added "Date Added" to customer panel in Admin App to see when a customer registered. *) In product panel of Admin App, added time to "Date Added" and "Last Modified" attributes. *) In customers panel added floatover for "Last Logon" column to visualize the time. *) Added the "Configuration.value.text" custom validation property to set the validation on the configuration text values (these are often extended in the database). *) Allow the naming of the Manufacturer Address custom fields in the Admin Console. *) Upgraded ApacheMQ to 5.15.12 (this affects only the embedded MQ broker inside KonaKart) *) Added the ability to process incoming Apache ActiveMQ messages with higher performance and transactional control. See the User Guide and the example code (under your installation home at ./java_api_examples/src/com/konakart/apiexamples/MqMessageProcessing.java) for further details. *) Added a new batch job called "PurgePdfFiles". It's provided as an example of how to purge files older than a specified age that match a regular expression anywhere under a specified directory tree. *) Added getPromotionResult() method to BuyXGetYFree promotion module so that a promotion result is returned when calling the getPromotionsPerProducts() API call. *) Custom ANT task added to enable the Quartz Scheduler *) Added two new attributes to a product in order to be able to calculate and display the price per unit (e.g price / kg). This information is automatically displayed in the product details panel of the storefront application. *) Now possible to run a batch job by double-clicking on the job's name on the Scheduler panel (a Confirmation dialog is displayed prior to running). *) Upgraded to GWT 2.9.0 *) For bookable products there is now an option to "soft delete" bookings by marking them as deleted. The Admin App can be configured to use this new behaviour by setting fbc.bookings.soft.delete = true in konakartadmin_gwt.properties. Default behaviour remains "hard delete" where the bookings are erased from the database. *) Added Admin App functionality to delete all reviews of a customer from the customers panel. *) Allow STARTTLS to be enabled/disabled from the Admin Console. Also possible to set this as a parameter to the silent installer. *) Added functionality to manage configurable statuses for order returns. *) Added the taxCode attribute to AdminOrderProducts to match OrderProducts. *) Added taxRateCode to an order product. Modified tax order total module to populate it. *) Added 5 more custom fields for Manufacturers *) Added the option to disable the initial search of products on the Products Panel of the Admin Console. *) Modified addAllProductsToSearchEngine() to improve performance by using a configurable number of threads to send products to Solr. *) Added an attribute to customer tag so that we can distinguish between tags that are used to hold any generic customer information such as the B2B tags and tags that are used within expressions. We use this functionality when populating the drop list of available customer tags in the expression builder so that we show only tags that can be used to create expressions. *) Include Italian Admin Message properties files by default. *) New deleteCatalogWithOptions Admin API call which allows you to specify whether or not you want prices for the catalog to be removed as well as the catalog itself. *) Allow the setting of a Default Editor Type for the Admin Console (Plain, CKEditor or Rich Text). Bug Fixes --------- *) Fixed a bug in ProductDetailsBody.jsp that was forcing it to always display product comparison data in the specifications tab regardless of the value of the configuration variable that allows you to select between product comparison data and product custom attributes. *) Fixed a bug that was preventing suggested search terms being added to Solr for each catalog when "Add suggested search for disabled products" was set to false. *) Fixed a bug with role definitions where the SiteMap Configuration panel had to be assigned in order to allow access to the User Defined Configuration panel. Backwards Compatibility Alert ----------------------------- *) In the KonaKart web.xml there is a new parameter for the KonaKartMQServlet called mqSchedulerSupport. This is required to be set to true if you want to use the new transaction-based message processing features. *) *) Changes with KonaKart 9.2.0.0 - Released 02-Apr-2020 ==================================================== *) Support for Java 8 - Java 13 *) Upgraded to Apache Tomcat 9.0.31 *) After clicking on the Run button on the Scheduler panel the system now performs a series of automatic background refreshes to update the status of the jobs. The behaviour is configurable in konakartadmin_gwt.properties. *) Login failure blocking for the storefront - configurable in konakart.properties. If configured to be enabled accounts will be blocked for N minutes following M unsuccessful login attempts. *) Added additional utilities to install KonaKart as a Service in Windows. This new option provides a more flexible solution because it uses the standard startkonakart.bat / stopkonakart.bat scripts to start and stop KonaKart respectively. *) Added the ability to search for Orders (on the Orders Panel) by 3 custom fields. These additional search fields can be enabled/disabled dynamically by modifying the local settings on the Orders Panel. *) Now possible to set the default email subject for Customer emails. This is set in the AdminMessages.properties file (and the variants for each locale such as AdminMessages_es.properties) in the msg.customerEmailSubject property. *) Added the ability to send a template-based email to a selected customer. Customer email templates are stored in a new directory under templates/{storeId}/customerEmails. *) New batch job added for removing orders that are older than X days and in a defined set of order statuses. Can be used, for example, for purging orders from a system that you no longer wish to retain. *) Added the ability to manage the Tags assigned to Tag Groups. Previously it was only possible to manage the Tag Groups for Tags. Also a count of the number of Tags for each Tag Group was added to the Tag Groups panel. Likewise, a count of the number of Tag Groups for each Tag was added to the Tags panel. *) New button for the Admin Console to enable/disable the menu - providing more space for editing when disabled. *) Upgraded to ehCache 3.8.1 *) Upgraded to Solr 8.2.0 *) Default validation for "double" fields in the Admin Console now makes leading or trailing tabs or spaces invalid. *) If an uploaded image file cannot be read successfully (can be due to an unrecognised or unsupported format) the image file is simply used unchanged without being scaled. Previously an exception was thrown if the image could not be read. *) When a template cannot be found for a locale on the Admin side the template for the locale of the default language is used instead. *) Add some missing "*MgrEE" definitions in the documentation for Manual Installations. *) Added floatover text to names in category tree view within categories panel of admin app. *) Added a new responsive dynamic menu to the storefront application. It includes new functionality, enabling the selection of brands as well as categories and sub-categories. *) Allow custom validation on the Customer Tag Value attribute in the Admin Console to allow it to be increased in size beyond the default 1024 character limit. *) Added a new batch job to roll over log files once they reach a certain size. This allows an Administrator to automate the maintenance of a KonaKart system's log files. *) Added a new code attribute to Order Total objects and a new taxRateCode attribute to Tax Rate objects. The code on the Order Total can be used for any purpose but the default implementation uses it to hold the Tax Rate Code for ot_tax Order Totals. *) The maximum number of catalogs to show in the drop list in the admin app is now configurable using file based configuration. *) Added a batch job to export products to a file for Google Retail / Google Merchant Center. *) The ERP Integration message "Update Product Prices" now supports multiple products within a single message. *) Modified the storefront application to sort a customer's addresses by last name. *) Added unit of measure attributes for product size and product weight. *) Added new Admin Api call removeRelatedProduct(). *) Added the ability to inhibit the sending of emails after Customer Group changes by setting: fbc.g.kk_panel_editCustomer.send_change_group_email = false *) Added an attribute to the options object when calling insertCatalogPrices() to optionally refresh Solr with the new product information. *) Added better phone number validation to the standard OOTB storefront application. *) Support for Mago Licensing - required when integrating KonaKart with the Mago ERP system. *) When JSON requests are made for stores that don't exist return a consistent exception message every time. Previously a different message was returned on the first such call for a store that didn't exist. Bug Fixes --------- *) Fixed a bug in the SQLPopulator which is used at installation of the Enterprise Extensions. The problem occurred when an incomplete set of Order Status values is present. *) In the definition of the purgeMultipleFiles batch job, the wrong execution method was specified. This should be purgeMultipleFiles. *) Added fix to storefront application to avoid running any injected JavaScript when displaying formatted addresses. *) removeProductFromCatalog() Admin API call was not updating the product in Solr. Backwards Compatibility Alert ----------------------------- *) Installers for 32' Linux platforms no longer produced. If you need to install on a 32' Linux platform we recommend that you either install on a 64' platform then copy the files across to the 32' platform or use the zip-based installation packages. *) Our original Axis 1.4 - based SOAP implementation has been withdrawn. It has become increasingly difficult to keep this working alongside the latest versions of Java. SOAP users should use the JAXWS SOAP implementation of the engines which are still supported. *) A minimum Java version of Java 1.8 is now required. Support for Java 1.7 has been withdrawn. *) The Reset Database command under the Tools menu in the Admin Console no longer deletes the Orders. *) With the upgrade to ehCache 3.8.1 a new konakart_ehcahe.xml configuration file format is required (a default file is provided). If you use ehCache and have modified any of the default settings in your configuration that you wish to retain these will have to be migrated to the new format. *) The signature of the ERP Integration message "Update Product Prices" has been modified to allow for multiple products within a single message. Changes with KonaKart 9.0.0.0 - Released 22-Aug-2019 ==================================================== *) Artificial Intelligence (AI) Integration with the Zucchetti AI service. *) Batch job to send marketing email to customers based on the Product Recommendations made by the AI service. *) Added a Bank Transfer payment module. *) Future Catalogs: Functionality added to allow the definition of catalog prices to be applied at future dates. *) Added new functionality to the Coupons panel in the Admin App. The coupon id is now visible and can be used for searching and sorting. There is a warning if multiple coupons exist with the same coupon code. *) Only add stores to the Admin Console store droplists if the store is enabled and not deleted. *) Added files required to install KonaKart as a Service in Windows. *) Added an API call to KKEng to return all Miscellaneous items by type. *) Added functionality to the product discount promotion when working in non cumulative mode. Now the final discount (when multiple promotions are eligible) can be calculated on a product by product basis rather than just picking the promotion that gives the biggest discount. *) New Admin Console function to set a Customer Password. *) When downloading PDF invoice files from the Admin App via the "View PDF" command the appropriate filename is used as the default for the download filename rather than "getPdf" or "displayFile". *) Added storeUrl to the default Velocity Context for use in Email templates. *) Enhanced the email interfaces to allow the specification of multiple TO and CC addresses. *) New configuration option to define that the passwords for a certain set of admin users will never expire. See konakart.password.neverExpireUsers in konakartadmin.properties. This can be useful for certain admin users (such as admin users used for running batch jobs). *) New configuration setting (kk_panel_promotions.show_only_installed_modules in konakartadmin_gwt.properties) to only show the installed promotion modules on the promotions panel. *) New configuration setting (kk_panel_customers.restrict_non_super_admins in konakartadmin_gwt.properties) to restrict the operations allowed by Admin Users who are Not Super-Users. *) Admin Console modified to make to make it clearer which are the menu categories and which are the sub menu items. Also a change to identify the last selected menu item. The styles can be modified in the KonakartAdmin.css file as required (For the selected sub-menu change "kk-sub-menu-selected"). *) Added a new ANT parameter ("EAP71") to produce KonaKart deployments for JBoss EAP 7.1. Documentation updated to reflect the support of new versions of JBoss and Wildfly. *) Added customer locale to the edit customer panel in the Admin App. *) Added functionality to the Admin App to allow the sorting of tag groups when associating tag groups with a category. *) Set the default style of the font-family to monospace in the log viewing panles of the Admin Console. This CSS setting can be modified by changing the .kk-log-text-view element in KonakartAdmin.css *) The getFiles() Admin API call now returns an array of files ordered by lastModified date. The most-recently modified file is the first element. *) The files displayed in the Admin Console on the various "View Logs" panels are now ordered by lastModified date. The default is to have the most-recently modified file at the top of the list. This ordering can be reversed by setting "fbc.kk_panel_view_logs.sort_order = lastModifiedAtBottom" in konakartadmin_gwt.properties. *) Customisation point added to allow the modification of the HTML created by the Velocity templates before it is converted to PDF. See modifyHtml on the AdminPdfMgrIf. *) Maven build improvements but note some side-effects in the backwards-compatibility section below. *) Columns that were used in Indexes that were 255 characters or more were reduced for new installations to avoid the problems with keys over 767 characters when using utf8mb4 encoding in MySQL. *) ERP Integration - Send an Update Object message whenever a non primary address is added / modified / deleted. *) Added an attribute to order totals to store the tax rate used by shipping modules. *) Added SSO using Google Sign-In since Google Plus is no longer supported. *) Added support for the "string(min,max)" setFun to allow you to specify a min and a max length for configuration variables. *) Modified GiftCertificate promotion module so that multiple gift certificates can be entered for the same promotion and receive multiple discounts. *) Added an UpdateProductPrices message to ERP Integration. *) Cache instances of classes used in the execute API call for improved performance. *) Added a STARTUP_CATALOG_KEY configuration variable to define a catalog used by the storefront application at startup. *) For WOND installations an image caching mechanism has been introduced which adds a checksum to image filenames and stores metadata on the images in the new product_image_crc database column of the products table. The purpose is to improve the performance of Apps and webapps that access the images that were obtained from WOND. *) Added a new API call to KKEng - getAllProductRelationships() to receive all product relationships in a single call. *) Functionality allowing the configuration of which file types are permitted to be uploaded in the Admin Console. In konakartadmin_gwt.properties for image uploads define "fbc.allowed.image.types" (default is JPG JPEG GIF PNG) and for digital download types define "fbc.allowed.dig.download.types" (default is PDF JPG JPEG GIF PNG). *) The set_function for configuration variables called "tep_cfg_pull_down_order_statuses(" has been deprecated and replaced with the more logical "OrderStatuses". *) Introduced TwelveMonkeys ImageIO plugins (version 3.4) to improve the quality of image processing. *) Added functionality to allow a B2B Admin User to login to the storefront application as one of the users he manages. *) Added French Zones (Metropolitan Departments from ISO-3166:FR) to the initial configuration. Bug Fixes --------- *) Modified action class SuggestedSearch.java to remove duplicate products before returning them. Duplicate products can occur when a product exists under more categories. *) In Engine Mode 1 the Torque validationQuery for store2 was incorrectly defined for Oracle by the installer. *) Problem fixed with uploading content images with file names that were not POSIX compliant portable filenames. File names that contain a..z A..Z 0-9 - _ or . are used as they are but all others are replaced with generated POSIX compliant portable filenames. *) HTML Escaper was only being created on the first instantiation of KKEng. Subsequent instances contained a null value for htmlEscaper *) The KKEng API call editCustomerAddress() was not verifying that the address in the database actually belonged to the customer identified by the session id. *) Problem fixed on the Email Customer dialogue that prevented the entry of a carriage return as part of the message text. *) Stop the autocomplete/autofill features of browsers filling in username and password fields inside the Admin Console. *) When a product had custom attributes belonging to two or more templates and one of the templates was removed using the Admin App, the custom attributes for that template weren't being deleted. *) getOrders fixed to return the correct total number of orders. *) getOrdersLite fixed to return the correct total number of orders if in multi-vendor mode and parentId specified. *) When the name of a customer tag was modified, this wasn't being propagated to the customer to tag records. *) Under some circumstances the Admin App editor wasn't allowing you to save changes when editing files like email templates and reports. *) Added ability to customise validation lengths for attributes in zone panel of the Admin App. Backwards Compatibility Alert ----------------------------- *) Maven build improvements but some side-effects to be aware of: FedTaxApi.jar now given a version number, in this version it's FedTaxApi-9.0.0.0.jar iText-2.0.8.jar renamed to itext-2.0.8.jar (now in lower case) antlr-2.7.5.jar replaced with antlr-2.7.2.jar PDFBox-0.7.3.jar replaced with pdfbox-0.7.3.jar (now in lower case) *) Authorize.Net payment module removed because it was using Gateway APIs that were no longer supported. Changes with KonaKart 8.9.0.0 - Released 15-Aug-2018 ==================================================== *) Added a full implementation for double opt-in for customer registration and for newsletter subscriptions. Double opt-in can be enabled by setting configuration variables. *) Added a framework to enable the sending of emails using an external email delivery service using the standard KonaKart email APIs. Two reference implementation modules are provided - for using SendGrid or APSIS. *) Introduced a new Customer Tag type (MULTI_INT_PLUS_TIME_TYPE) which stores id and timestamp pairs. The timestamp is useful for more-detailed analysis of the Customer Tag data (for example in AI engines). *) Four new default Customer tags (of type MULTI_INT_PLUS_TIME_TYPE) have been introduced: PRODUCTS_TIME_VIEWED, CATEGORIES_TIME_VIEWED, MANUFACTURERS_TIME_VIEWED, PRODUCTS_TIME_IN_CART and PRODUCTS_TIME_IN_WISHLIST. By default these store the relevant Id along with an associated timestamp for more detailed analysis. These new tags can be used in expressions but only with the EQUALS and NOT_EQUALS operators which act on the id only (and not the timestamp part). The new storefront now populates these new tags with the timestamp information and not the previous equivalent tags without the timestamps. *) Extended the size of the Customer Tag value field to 1024 characters to allow the storage of more analytical data. *) The KKEng API call sendTemplateEmailToCustomer1() can now be used to send template emails to non registered customers. *) Added an API call, isCustomerSubscribedToNewsletter(String emailAddr) in order to detect whether a customer has already subscribed to the newsletter. *) Updated storefront application, KonaKart and KonaKart Admin tiles to use more recent versions of jQuery, jQuery UI, Jcarousel, Underscore and Backbone. Stopped using jquery.json-2.3.js. *) Increase the size of the msg_value column in kk_msg allowing larger messages. *) New removeMallStore() API call to completely remove all the records belonging to a store. *) Upgrade to GWT 2.8.2 *) Added a DEFAULT_CATALOG_KEY configuration variable to define a default catalog used by the storefront application if the customer hasn't been assigned a catalog in the B2B_CATALOG_KEY customer tag. *) Upgraded numerous apache-commons jars to these versions: commons-beanutils-1.9.3, commons-codec-1.11, commons-collections4-4.1, commons-configuration2-2.2, commons-digester-2.1, commons-digester3-3.2 commons-discovery-0.5, commons-fileupload-1.3.3, commons-io-2.6, commons-lang-2.6, commons-lang3-3.7 and commons-text-1.2. *) Upgraded to gson-2.8.5.jar and guava-23.0-android.jar. *) Upgraded to httpclient-4.5.5.jar and httpcore-4.4.9.jar. *) Added httpmime-4.5.5.jar *) Upgraded to jackson-core-2.9.3.jar, jackson-databind-2.9.3.jar and jackson-annotations-2.9.3.jar. *) Removed jackson-core-lgpl-1.9.13.jar and jackson-mapper-lgpl-1.9.13.jar. *) Added RabbitMQ Mgr only for sending ERP integration messages. *) Resetting a customer's password from the Admin App or Admin APIs now sends out a password that expires after a configurable number of minutes. The customer is prompted to change it on next login. *) Added product images to KonaKart tiles checkout screen. *) Upgraded the bundled apache-maven to version 3.5.2. *) Added configuration to admin app to allow you to hide the Images and Downloads tabs on the Edit Product panel. *) If a product has variants we hide the sku and quantity of the base product in the Quantities tab of the edit product panel in the Admin App to avoid confusion. *) Added functionality to Admin searchForProducts() API call to populate the product attributes and product quantities for the returned products. *) Enhanced the Products panel in the Admin App. When you move your mouse over the quantity of a product with variants, you can now see the quantity for all of the variants. You can also decide to display a variant quantity rather than the quantity of the base product. *) Admin App Console ease of use: Double-click on a row will edit the item selected (or view it if there is no edit option). ESC is the equivalent of the back button. *) Custom Attributes (custom_attrs) are now recorded in the orders_products table allowing more flexibility in storing product custom attribute information on orders. *) By default a sha256 encryption algorithm is used to encrypt passwords. The previous MD5-based algorithm will continue to work but new passwords will use the new sha256 algorithm. The customers_password column in the customers table and the password column in the kk_cust_pwd_hist table have been enlarged to accommodate the new password length. *) By default the AXIS service list is now disabled. Also, by default, the getVersion and AdminService calls are disabled. These can be enabled in the server-config.wsdd file in each applicable webapp. *) Quartz batch jobs: Note that by default the storeId is appended to the Group Name in konakart_jobs.xml. This is important when running in multi-store mode as only the jobs for the current store are now shown in the Admin Console. *) AdminAppLauncher: By default this now instantiates AdminAppAuthenticationMgr directly rather than using reflection to open a named class. The code is provided if you wish to revert to the previous behaviour. In addition the storeId is escaped when used in the HTML output produced. *) Made the license key field a password field so that its value isn't shown. *) Modified the PayPal payment gateway to check the amount paid in the callback and also to discard duplicate transactions. Also, the data in the callback is now verified by sending it back to PayPal and receiving a response as to whether the data is valid. *) Added a new Configuration >> Integrations panel to the Admin App to store configuration variables related to products integrated with KonaKart. *) Upgraded to mysql-connector-java-5.1.46.jar which provides support for MySQL 8.0 (but only if run in the legacy or mysql_native_password authentication mode). *) Added functionality to allow role based access to the Custom tab on the EditProduct panel. *) Now easier to add a review with a specified name rather than always looking it up from the specified customerId on the review. When adding a review, specify a customerId of 0 to use the customerName on the review you are inserting. This can be useful for importing reviews from external systems that may not be KonaKart customers. *) Avoid a null exception occuring in the Order class if a quote is returned with null TotalExTax or null Tax. *) Now possible to run the storefront in Liferay 7 (overcoming previous limitations)(tested up to Liferay 7.1.0 GA1). A new jar called struts2-json-plugin-kk-2.3.8.jar replaces struts2-json-plugin-2.3.8.jar to provide this support. *) Added 10 extra custom attributes that can be used when defining promotions. Bug Fixes --------- *) productType wasn't being used as a product search filter for searches using Solr. *) Prevent a null exception when Solr returns manufacturer Ids that no longer exist in the database. *) A manufacturer existing under more than one top level category was being indexed multiple times in Solr terms and so was appearing duplicated in the suggested search list. *) Promotions were not being displayed in the Admin App when the following conditions were all true: -Enterprise mode -No expressions inserted in the system -Promotion Tester Expression configuration variable not empty. *) Fixed a bug when formatting currencies. When the number of decimal places for the currency was being set in the admin app to a greater precision than the actual currency, the currency formatter was using the standard Java rule of ROUND_HALF_EVEN causing it in some cases to round down rather than up. This was only affecting the display of the currency and not the actual value, which was correct. *) In com.konakart.al.ProductMgr the returnCustomFacets attribute of the ProductSearch object was never being reset. *) On Windows, if an image is uploaded that isn't scaled (i.e. not a product image) and it replaces one with the same name but with a different case, the file name was not changed on disk. This has been changed so that on Windows the file is first deleted from the disk in order to preserve the case of the newly-uploaded image file name. Backwards Compatibility Alert ----------------------------- *) Moving up to commons-configuration2-2.2.jar may cause some of your custom code to fail (if you don't keep the previous commons-configuration jar on your classpath which is possible to do as they are designed to co-exist). If you choose to move up to the commons-configuration2-2.2.jar for your custom code typically you will need to change your imports to include the new classes: Old : import org.apache.commons.configuration.Configuration; New : import org.apache.commons.configuration2.Configuration; Old : import org.apache.commons.configuration.PropertiesConfiguration; New : import org.apache.commons.configuration2.PropertiesConfiguration; Old : import org.apache.commons.configuration.ConfigurationException; New : import org.apache.commons.configuration2.ex.ConfigurationException; For loading Properties/Configurations you can use this new static utility: // Load the input properties Configuration conf = PropertiesUtils.getConfiguration(inputFileName); *) Quartz batch jobs: If you are running in multi-store mode you should append the storeId to the Group Name in konakart_jobs.xml. This is important when running in multi-store mode as only the jobs for the current store are now shown in the Admin Console. Changes with KonaKart 8.8.1.0 - Released 26-Jan-2018 ==================================================== *) When running in multi-store, non shared customer mode, functionality has been added to allow a super user to easily maintain a customer across a list of selected stores. The new feature allows and administrator to clone a customer from the current store to the selected stores and also to delete the customer from the selected stores. *) By default create _en versions of AdminMessages.properties, AdminMessages.properties and AdminHelpMessages.properties. Bug Fixes --------- *) Upgrade scripts incorrectly set SMTP_PORT to true - now set to 25. *) Catalog prices were not generated correctly when a product only had a single attribute and / or a single tier price. *) Admin Customer Maintenance JavaScript Tile was throwing an exception when attempting to add a new address for a customer. Changes with KonaKart 8.8.0.0 - Released 18-Jan-2018 ==================================================== *) The kit now includes a Messenger Bot to help customers find products managed by a KonaKart store, using the Facebook Messenger interface and Wit.ai artificial intelligence. Full source code is provided allowing you to add your own bespoke functionality. *) A new Messenger Plugin module allows you to enable a Messenger chat window directly from the storefront application. *) Added additional marketplace functionality when running in multi-vendor mode. Vendor company information can now be managed by KonaKart and customers can write reviews for vendors. The vendor details, average vendor rating and the vendor reviews can be viewed from the storefront application. *) Added B2B functionality in the storefront application. A user can now be defined as a B2B Customer Administrator and can administer all B2B users for his company. He can create, update, disable, delete users and define their roles such as whether they have an order limit or their orders require approval etc. *) ERP Integration - Added a new UpdateObject message from KonaKart to the ERP which is sent when customers, orders and products are modified. *) ERP Integration - OrderExport. Added 5 custom attributes, refund value and refund points to an order line item. *) Added the ability to reorder product images in the Admin Console. *) Added new API call insertCatalogPrices(), providing an efficient way of inserting an array of catalog product prices. *) Edit content panel. Added custom validation to most attributes. *) The Facebook login module now stores the Facebook Id of the customer in a customer tag. *) Added store name and store description attributes to a product. They are populated when in shared product multi-vendor mode. *) Added product images in the checkout page of the storefront app. *) By default a number of API calls are now disabled as a security measure. Also there are new restrictions on the "permitted locations" for file uploads. See the "Initial Lockdown" section in the User Guide for details. *) When incrementing the customer logon count an optimistic verify mechanism has been introduced to improve the accuracy of the logon count when the same customer logs in multiple times simultaneously. Not usually seen in production systems but more often in load-testing scenarios. *) Improved performance of a number of API functions when executed simultaneously in multiple threads. *) Upgraded to Apache Tomcat 8.5.20 *) Upgraded to Ehcache 2.10.4 *) Upgraded to new versions of open source jars: commons-lang3-3.6, jersey-bundle-1.19.4 *) Added commons-text-1.1.jar *) Made the Customer's Tax Exemption field available for editing in the Admin Console. If not required this field can be hidden using file-based configuration of the Admin Console. *) Made the store description a text area rather than a text box in the Edit Store panel of the Admin Console. *) When fetching orders the AdminOrderTotal.id and AdminOrderStatusHistory.orderId attributes are now populated. *) Added the konakart.emailThreadGracefulShutdownTimeout property to konakartadmin.properties to allow the configuration of a timeout period for graceful shutdown of email threads. The default of 60 secs is usually sufficient. *) SMTP Server port added as a configuration variable that can be set in the Admin Console. It can also be set as a command line parameter for the installer. *) Notification by email of storefront, KKEng and KKAdmin exceptions to a Sys Admin user can be enabled or disabled in the Admin Console. *) Increased the size of the sesskey column in the sessions table to significantly reduce the likelihood of duplicate session Ids being created. (If duplicates were created they weren't allowed (session Ids were always re-generated until unique) but it's better for performance to reduce the likelihood of duplicates being created in the first place). *) By default the tomcat bundled with KonaKart will be configured to disable auto-deploy to provide improved performance. *) By default KonaKart is configured not to allow direct file I/O operations by an Administrator. For instructions on how to enable these operations note the comments under the "Initial Lockdown" section of the KonaKart User Guide. These measures have been taken for security reasons. *) All KonaKart jars now provided with debug information in the class files. *) Usability improvement when inserting a product with a custom attribute template, using the Admin Console. After clicking the save button, the custom attribute tab is given the focus to remind the user that the custom attributes need to be set. An optional pop-up also appears with a reminder. *) Added the five address custom attributes to the address format template. *) Added options for configuring access to a Zookeeper ensemble to use a Solr Cloud set-up for highly-scalability and fault-tolerance. *) Added two new codes to KKException for when a session id isn't found and for when a session times out. Bug Fixes --------- *) Placed CSS images in the correct location under the JQuery example application *) Edit content panel. Save button wasn't being enabled after changing the search key. *) Fixed a database locking problem that could occur when a high number of editProduct or registerCustomer API calls were made simultaneously. *) Fixed a bug in the storefront application in the method setCatalogKeyForCustomer() of com.konakart.al.CustomerMgr. When using catalogs, a private category tree was being generated even for customers without a catalog key in the B2B_CATALOG_KEY customer tag. *) Added currencyCode to the order attributes returned when calling the Admin App API call getOrdersLite(). It's required to show the correct currency symbol in the Admin App panel when displaying a list of orders in currencies other than the default currency. *) For DB2: Retain the order of the results in sub-selects in outer selects where it wasn't previously guaranteed. *) Fixed a bug which occurred when uploading a product image over the top of an existing image of a different type (eg a jpg image overwriting a png). *) Fixed a bug in promotion modules ProductDiscount and BuyXGetYFree where rounding errors were being accumulated on multiple product discounts. *) When using AllowMultipleRegistrations to allow a registered customer to checkout without registration, more customers are created with the same email address. In the case of Admin users, this was preventing them from logging in because the Admin Eng was throwing an exception when it detected multiple users with the same email address. Backwards Compatibility Alert ----------------------------- *) In order to correct some inconsistencies in Date serialisation in some of the Admin objects the treatment of Dates has been standardised to use timestamps. The following objects' date attributes are affected: AdminApiCall, AdminBooking, AdminCategory, AdminPanel, AdminProductNotification, AdminRole, and AdminSpecial. *) Note the new Solr Access Mode configurations in the Admin Console. To continue using Solr as before you should use the default "Solr" Solr Access Mode (however the base URL and path for Solr have now been split out into two configuration variables). New for v8.8.0.0 is the option to use "Zookeeper" Solr Access Mode which requires additional configuration. Refer to the User Guide for more details. Limitations ----------- *) Storefront integration with Liferay found not to be working (action classes of type json don't work correctly) in the following point releases: Liferay CE 7 GA5 Liferay DXP 7 SP6 (7.0.10 GA1) *) Storefront Liferay SSO does not support B2B Customer Administrator functionality. Changes with KonaKart 8.7.0.0 - Released 18-Jul-2017 ==================================================== *) Added functionality to create portlets for Liferay 7 / DXP based on KonaKart JavaScript tile technology. *) Added PayPal Login as a way of logging in to the storefront application. *) When using Suggested Search, the customer can now select the top level category in order to improve the quality of the search results. *) Added enhanced commerce Google Analytics to the Struts2 storefront application. *) Added includedStores and excludedStores tags to batch job definitions (defined in konakart_jobs.xml) to control the stores that batch jobs execute for in multi-store KonaKart systems. *) Added the ability to log into KKEng using a customer's username (new attribute) or telephone number. Functionality has also been added to check for the uniqueness of the username or telephone number when customer details are edited and when a customer registers. This functionality is Enterprise only. *) Added username and telephone numbers as possible search constraints when searching for customers using the KKAdmin API call getCustomers(). *) Added functionality to the Admin App to send an order invoice as a PDF attachment to a customer. *) Added the ability to set Custom Validation for the Product Rating field in the Admin Console. *) Added custom attributes, refund price and refund points to order returns. Added code to set the refund price when an order is created. Also added code to some promotion modules to reduce the return value based on the promotion discount. Added code to the reward point promotions to set the refund point values. *) Added a mutex to the storefront action class CheckoutConfirmationSubmitAction so that it's not run concurrently by the same customer. *) It is now configurable when returning an array of products from a KKEng product search to have the productQuantities attribute instantiated. *) Added functionality to the forceRegisterCustomer() API call to allow a registered customer to checkout without logging in, by checking out as a guest. Default behaviour is still to force a registered customer to log in in order to checkout. *) Added a new KKEng API call getPromotion() that returns a promotion with information regarding which products, categories or manufacturers it is active for. *) If a Velocity email template isn't found in the requested language, we log an error but return the template in the default language if it exists. *) Added a configuration option when editing a product to ignore the product viewed count since this is typically updated by the storefront application. The same functionality has been added to the Admin App as a check box. *) Added a configuration option when editing a product to ignore the number of products ordered count since this is typically updated by the storefront application. The same functionality has been added to the Admin App as a check box. *) Added configuration variables to configure ERP Integration to decide what XML messages are sent by KonaKart on a store by store basis. *) Added functionality to KKEng and KKAdminEng to sort products by expiry date. *) Upgraded to Tomcat 8.0.42 *) Upgraded to commons-fileupload-1.3.2.jar *) Upgraded to commons-validator-1.6.jar *) Upgraded to Log4j2. *) Verified support on MariaDB 10.1 (when using MariaDB it should be given database type "MySQL"). *) Complete example demonstrating how to build a CustomStoreService and a CustomAdminService that uses the KonaKart database layer for access to a custom table. *) Complete example demonstrating how to build a CustomStoreService accessible through JSON APIs and called from a browser. *) Documentation addition to advise about the precautions to take when building a JavaScript storefront. *) Added configurable HTML character escaping to a number of KKEng API calls. *) After editing a product in the admin app and clicking the back button, the paging information of the products panel is now kept. *) Added a filter to the promotions panel of the admin app to search for only active or inactive promotions. *) Additions to AdminProductTile. Added the count for the number of times the product has been viewed and ordered. *) KKEngIf API call createOrderWithOptions() - you can now specify the currency of the created order. *) The initial pause before reading the Incoming Message Queue for the first time can be set in the konakart.mq.ERP.initial.pause.secs property. This can be useful to delay the commencement of the queue reads until other parts of the system (in other webapps) are up and running. *) Added functionality for double opt-in when registering for the newsletter. *) Improved paging performance with MS SQL Server by adding support for the "OFFSET A ROWS FETCH NEXT B ROWS ONLY" syntax. *) Added indexes to customers_basket, orders_products and orders_status_history tables to improve performance. *) Added a new "multiselect" set function for defining configuration parameters and custom attributes on products. This can be used, for example, to allow you to configure 0, 1 or more options and store them in one comma-separated configuration value. An example is provided for selecting days of the week. *) New custom fields added to the order object for greater flexibility when extending KonaKart to implement custom functionality. Bug Fixes --------- *) Content Search was not working for ObjectId values on the storefront side *) When Customers were not shared and running in multistore mode the Role Privileges were not being saved correctly in the Admin Application. *) A null pointer exception was being thrown in the storefront application whenever a default customer was not defined. It was happening whenever a non-logged in customer clicked on the Shopping Cart link to view the cart details. *) Fixed Struts vulnerability CVE-2017-5638 *) Fixed a bug in the Struts2 / JSP storefront application. A review was written for the wrong product if a customer opened the write review panel, then opened the product detail panel for another product in a new browser tab and then returned to the write review panel to submit the review. *) Bug in the example reports where no thousands separator is defined for the default currency. *) The KKEng API calls addToCustomerTag() and addToCustomerTagForGuest() were throwing a duplicate record exception when called in quick succession by the same customer. *) The KKEng API call setCookie() was throwing a duplicate record exception when called in quick succession by the same customer. *) Included "requiresCoupon" in audit information for Promotion changes. *) Fixed a bug in the AdminEng getSubscriptions() API call. The search was not working correctly when adding the productId constraint. *) The reporting of changed messsages between versions has been fixed for the cases where messages contained commas that weren't escaped. These messages are provided in each release under utils/kkMessages/new-AdminMessages, utils/kkMessages/new-AdminHelpMessages and utils/kkMessages/new-Messages. *) Fixed a bug in the getProductPerSkuWithOptions() call which sometimes failed to retrieve a product if using shared products mode and SKUs were not unique across all product variants. Backwards Compatibility Alert ----------------------------- *) The table "products_attrs_download" is no longer created. KonaKart doesn't use it but it hasn't been removed in case it's being used by customers. This table may be removed in future releases. *) Logging changes with the upgrade to log4j2. The format of the logging files has changed. Use the default file (konakart-logging.xml) provided in the kit as a starting point. *) The logging system property "kk.log4j.WatchTimeSecs" is no longer supported. Instead use the monitorInterval attribute in the log4j2 configuration file. *) Changed column types in currencies table for decimal_point, thousands_point and decimal_places to varchar(1) rather than char(1) for greater portability. *) As a security measure the APIs sendNewPassword1, sendWelcomeEmail1, sendOrderConfirmationEmail1 and sendTemplateEmailToCustomer1 no longer respond with a copy of the subject and body of the email. Instead these attributes are set to null. Changes with KonaKart 8.5.0.0 - Released 17-Jan-2017 ==================================================== *) Added functionality to place promotions in test mode so that they can be tested in a live system by a group of test users. *) Added support for generating KonaKart portlets for Liferay DXP and Liferay 7. *) Added KKEng API calls to manage tokenized credit cards for a customer. *) Added Configuration caching on the Admin side to improve performance. *) Added caching of all currencies in the KKEng to improve performance. *) Updated storefront to use JQuery 1.12.4 and JQueryUI 1.12.0. Removed jQuery migrate. *) Upgraded to SOLR 6.2.1 *) Upgraded to GWT 2.8.0 *) Added a new batch job to send emails with coupon codes to customers that have abandoned a cart. *) Added a new Reward Points module that allocates reward points for single products rather than for the total of the order. *) Added new "PurgeFiles" housekeeping job to purge files matching a specified regular expression in specified directories older than a specified age. This KonaKart batch job is designed to run from the Quartz scheduler but does not run unless configured to do so in the konakart_jobs.xml file. *) Added a new batch job to free up a customer's reward points that were reserved after an order was confirmed, but have never been deleted or freed since the order was never paid for or cancelled. *) CustomStoreService and CustomAdminService now provide support for floats. *) FreeProduct promotion may now be configured to not return a free product if it is out of stock. *) Storefront application now gives immediate feedback when a coupon code or gift certificate code is entered regarding the validity of the code. *) Added a store time zone configuration variable which is currently used to allow administrators to set promotion start and end times using local time even if the server is in another time zone. *) The product viewed count can now be set through the Admin App. This allows an administrator to promote a product so that it appears at the top of the list when products are sorted by most viewed. *) The products_ordered attribute of the products table can now be administered through the Admin App. *) Added B2B functionality to storefront to only allow customers to place orders below a certain threshold where the amount is the sum of all orders placed by the customer within a certain time period. *) Added reserve stock functionality to bundles so that the bundled products are reserved whenever the parent is reserved. *) Added a new deleteProducts API call to KKAdminIf that takes an array of product Ids which provides a higher performance option for deleting multiple products than deleting one product at a time as done when using the deleteProduct API call once for each product. *) Added an extra attribute to customer tags that controls whether the tag value for a customer can be modified through the KKEngIf APIs. *) Added a new Admin API call deleteProdAttrDescWithOptions() where the options allow you to decide whether to update the custom attribute data for all products using the custom attribute. *) Added two custom attributes to the ProductQuantity object so that products with options (e.g. blue, green shirt) can store custom data for each option. *) When enabling a customer using enableCustomer(), an option has been added to also set the emailVerified customer attribute. *) Populate more objectId fields in the Audit records for many KKAdminIf API calls. This helps track down changes made to KonaKart objects in auditing records. *) Added functionality to the editProductWithOptions() API call and to the Admin App to allow product edits without updating the quantity in stock of the product and its variants. *) Added order number as a possible search constraint for the KKEng API call searchForOrdersPerCustomer(). *) The KKEng API calls getTagGroupsPerCategory() and getTagGroupsPerCategoryWithOptions() now return all tag groups if the category id is set to -1. *) The KKEng API call getTagsPerCategory() now returns all tags if the category id is set to -1. *) When calculating reward points, we now take into consideration whether there is a shipping discount and / or a payment charge. *) If a logout fails due to session expiry at the end of a batch job do not treat this as a failure of the Quartz job, just issue a warning in the log. *) Added configurable functionality when retrieving basket items with options to populate the option price including tax. *) A configuration variable has been added to make it configurable as to whether the KonaKart storefront application increments the product viewed count every time a customer views a product. *) Added the capability to search Coupons by custom1, custom2 and custom3 fields. *) ERP XML Integration : Documentation updates, OK and KO log directories are automatically created if they no longer exist. Improved error reporting to aid in diagnosing problems. *) Modified the birtviewer_document_fragment style in Birt Viewer's style.css from overflow:hidden to overflow:auto in order to show scrollbars. *) In the Order Export to ERP, we now export all 10 custom attributes of the order. *) Added the ability to set SMTP Server properties as parameters to the silent installation. Bug Fixes --------- *) Changed tiles.xml to reference the correct version of the DTD (2.0 and not 2.1) *) Catalog prices and quantities of a product attribute were not being deleted when the attribute was deleted. *) Catalog prices for attributes were not being inserted through the admin app if the product was first saved with no catalog and then retrieved using a catalog filter before attempting to edit the price. *) An exception was being thrown when generating catalog prices for category hierarchies over 2 deep. *) When deciding whether to activate the promotion based on the order amount, the ShippingDiscount module wasn't including discounts in the order amount. *) The Date From and Date To product search filters were not working when using Advanced Search from the storefront application. *) Solr indexing of digital download documents was not working from the Admin App unless the full file path of the document was inserted. It wasn't picking up the base path configuration. *) In the storefront application after a customer paged through his orders and returned to his account page and then returned to his orders page, the page number wasn't being reset. *) The products_ordered and numberReviews attributes of the products table were being reset to 0 whenever a product was updated using the Admin App. *) In the storefront ShowAllOrders.jsp we were always displaying one order more the the page size. *) The product reviews link in the product details tile was not functioning correctly. *) Fixed a bug in forgotten password functionality of the storefront. *) Content Search was not working for ObjectId values Backwards Compatibility Alert ----------------------------- *) The new version of SOLR requires Java 8. You can still run KonaKart using Java 7 but SOLR must be run with Java 8. It's possible to run just SOLR using Java 8 by setting the SOLR_JAVA_HOME environment variable (see bin/setJavaHome.bat or bin/setJavaHome.sh for examples). SOLR is also started as a separate process rather than as a webapp under tomcat as previously. The base URL after a standard install is now http://localhost:8983/solr/konakart. For security reasons, it's important that you configure your firewall to block all requests using the 8983 port to prevent Solr being accessed by external requests. Changes with KonaKart 8.3.0.0 - Released 25-Aug-2016 ==================================================== *) 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. *) 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 some attributes to order total objects to save the id of a promotion and the discount defined by a promotion module. *) 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). *) 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. *) 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. *) 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. *) 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. *) 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. *) 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. *) 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. *) Timing of certain SQL commands was being reported incorrectly. 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 Changes with KonaKart 8.1.0.0 - Released 04-Feb-2016 ==================================================== *) Added method to get sessionId for logged-in customer in payment module plus an example of its usage in the PayPal module. *) Added functionality to load and display different product images based on a chosen option such as a color. *) Added option to KKEng API calls that retrieve products to include a list of image names as an attribute of the product objects. *) Upgraded to Quartz 2.2.1 - with instructions on how to support clustered quartz. *) Upgraded the MySQL JDBC driver to version 5.1.37 (mysql-connector-java-5.1.37-bin.jar). *) Upgraded Solr to version 4.9.1 . *) Now bundled with Apache Tomcat 8.0.26. Note that this requires at least Java 7 (Tomcat 7 required at least Java 6). *) When calling the Admin API call getOrderForOrderId(), the order products belonging to the order now have a populated order id. *) Exchange Rate Update batch job and module (uses the CurrencyLayer service) *) Updates to the countries data to reflect recent changes on the official ISO lists. *) Added two new admin tiles for administering customers and orders. *) Added the ability to define whether or not the "Remove From Cat" button in shown on the Products panel of the Admin Console on a role-by-role basis. *) Added addRelatedProductsWithOptions() method that allows you to set the relationship custom fields. *) Added functionality to allow stock reservation for a fixed amount of time to ensure that stock isn't overbooked during the checkout process. *) Improved performance of deleteTemporaryDataBatch. *) Modified the way properties files are loaded from the classpath to support implementations on platforms which use virtual file systems (such as when using domains on Wildfly). *) Now possible to define the characters that are used for customer password generation (default is 23456789ABCDEFGHJKLMNPQRSTUVWXYZ). Set this in the konakart.properties and konakartadmin.properties properties files. *) Upgraded to javaparser-2.0.0 to support more recent (up to Java 1.8) Java syntax when parsing Custom Service definitions. *) Added functionality to support Social Login as well as Facebook and Google+ Social Login Modules. *) Added a configuration variable cache in KKEng to improve performance and reduce database traffic. *) Modified promotions panel in Admin App to allow search based on promotion id. *) Added two extra custom attributes to the OrderTotal object. *) Modified the type of the value column in the currencies table to allow you to store more precise values from the Admin Console. *) To help with upgrades we now provide files that identify the messages that have changed between releases rather than just identifying the new messages as before. *) Added a new batch job to load products into Solr using a configurable number of worker threads in order to maximise performance. *) Enhanced the Admin App Launcher Servlet to use the precise version of the konakartadmin.nocache Javascript file (with version and revision number). Bug Fixes --------- *) When checking out using KK tiles, the checkout order was always using the product price even if a different price was being set on the basket item. *) When the AdminVelocityContextMgr wasn't found the code was deducing that the Bookable Product functionality wasn't available either which was incorrect. *) On rare occasions due to a race condition, a duplicate primary key exception was being thrown during the insert of a customer tag. *) When using Oracle our default templates for Order Confirmations were showing "$osh.getComments()". Now if this quantity has length 0 we output a non-breaking space. *) Modified struts.xml to not display the sessionId on the browser following a login by admin for a storefront customer. *) Fixed a bug when synchronizing products in shared products, shared categories mode. If a category was removed from the source product, it wasn't being removed from the destination product during the synchronization. Backwards Compatibility Alert ----------------------------- *) Java 6 is no longer supported. *) MS SQL Server Users - Upgrading from previous versions. From v8.1.0.0 of KonaKart the default set-up for SQL Server uses NVARCHAR for columns where it is expected that Unicode data may be required. For example, NVARCHAR is used for columns that are populated by users (such as first name, last name etc). For those MS SQL Server users who are upgrading to v8.1.0.0 of KonaKart an upgrade script is provided to convert the relevant VARCHAR columns to NVARCHAR columns to bring the database in line with the default v8.1.0.0 database. It is strongly-advised that you study the MS SQL Server upgrade script at "*\database\MSSqlServer\upgrade_8.0.0.0_to_8.1.0.0.sql" to see that it meets your requirements and is compatible with your own MS SQL database (it might not be if you've modified the columns in your version). It is strongly-recommended that you test the execution of this particular upgrade script on a copy of your own production database prior to executing it on your live production database. Changes with KonaKart 8.0.0.0 - Released 08-Sep-2015 ==================================================== *) JSON version of the APIs for all Admin functions (KKAdminIf) *) Introduction of KonaKartAdmin Tiles that use the JSON Admin APIs. The first release consists of JavaScript tiles to manage products that can be embedded into any front end system such as a CMS or portal that supports JavaScript. *) New Filtering feature that allows you to restrict the orders that are seen by different users. This can be used to implement order processing workflow. *) New admin feature to generate catalog prices based on category rules that allow you to include and exclude products and to add price adjustments. *) New custom fields added to orders, order products and customer's basket objects for greater flexibility when extending KonaKart to implement custom functionality. *) Introduced Logo Content type allowing store owners to manage their logo from the KonaKart Administration Console. *) New Mailing List creation feature for integration with 3rd Party emailing tools such as MailChimp. *) Enhanced frameworks for the CustomStoreService and CustomAdminService that allow you to create your own custom services to execute alongside the KonaKart APIs. The major new feature is that you can now generate a JSON version of these custom interfaces (previously only POJO and SOAP were supported). *) Maven build scripts (and POMs) for the Enterprise version. *) Introduction of kkCmd Command Line Utility for inspecting KonaKart objects. *) Upgraded to BIRT 4.4.2 *) Upgraded to GWT 2.7.0 *) Added the ability to add/remove category Images using the Admin APIs (previously only possible to manage product and manufacturer images). *) MathTool added to default Velocity contexts for adding math functionality to your Velocity templates. See http://velocity.apache.org/tools/devel/generic/MathTool.html Other tools can be added if required. See User Guide for Details. *) Modified database scripts for Oracle so that they can be executed successfully in Oracle tools such as sqlplus. *) Added a new configuration variable to define the location for emails to be saved (if email debugging is enabled). This has been done to allow you to separate these emails from other log files. The default setting for this is identical to the previous version so nothing will change unless you modify the new configuration variable (in the Admin Console). *) Modified the Edit Product panel in the Admin App to associate some of the existing entry fields to different tab folders. *) When a product is assigned attributes and so has multiple variations (e.g. small / medium / large), each variation has a stock level and the stock is managed separately for each variation. An attribute has been added to the product object to allow you to programmatically decide whether to use the individual stock levels or to use the main product quantity attribute to manage the stock. *) Added Solr functionality to provide the option to generate a list of suggested search and suggested spelling items for each catalog id. A catalog may only contain a subset of products so this functionality allows you to provide search and spelling suggestions only for products within the catalog and not for all products in the store. *) New EMAIL_VERIFIED column added to the Customer table to support custom logic around the verification of customer email addresses. *) Allow the searching of customers by the two new External Reference attributes. *) Allow the searching of orders by payment method and payment module code. *) Added a new Admin Engine API call (deletePromotionWithOptions()) that allows you to decide whether to delete the coupons and whether to check that the coupons are only used by the promotion being deleted. *) A data integrity checker and repair function can optionally be executed on logout of the Admin Application. Specify the required behaviour in the File-Based Configuration. This shouldn't be required under normal operation but can help to repair data in circumstances such as when languages are added and data objects do not contain records for every language in the system. *) When implementing multi-valued facets like described in the user guide, functionality has been added to detect the facets based on the identical tag group name and then to OR them together in the same way as facets within the same group are typically processed. *) Enhanced the application API call getPromotionsPerProducts(). An attribute has been added to the PromotionResult object to indicate whether that promotion was used to discount the product. *) Enhanced the admin API call getCustomers() to allow to search for customers based on their customer tag values. An example of how to use this functionality (CustomerSearchUsingTagFilters.java) has been added to the KonaKart\java_api_examples\src\com\konakartadmin\apiexamples directory. *) Handle Velocity Templates that use " error message would appear. The image upload was always successful despite this message. This spurious error message has now been eliminated. *) To support Custom Validation in the Admin App using a Custom Admin Engine it is now possible to hide the "More Details" button on the error dialog box that is displayed in the Admin App when an exception is thrown from a Custom Admin Engine interface. *) The addRelatedProducts() Admin API call was setting the wrong quantity for bundle relationships when updating the relationship. This was only occurring when the relationship already existed. *) Drop lists in the custom field panel of admin app weren't being displayed properly in Internet Explorer. *) Under certain circumstances the payment method attribute was being saved incorrectly on orders. This was happening under certain conditions when multiple payment options were provided and the user switched between them. *) Address formatting was throwing an exception when the replacing string contained a "$" character. *) CustomerId not being set under certain conditions in the Admin App when only one panel is authorised for the active role. This caused errors when attempting to run BIRT reports from the Admin App. Backwards Compatibility Alert ----------------------------- *) With the upgrade of Quartz the syntax of the jobs definition files has changed a little. An example of the new structure is provided in quartz.properties and konakart_jobs.xml. Changes with KonaKart 6.3.0.0 - Released 20-Jun-2012 ==================================================== *) Added Shopping Widgets which can be introduced into social networks, blogs etc. with just a few lines of JavaScript. *) Added a new API call to request the version number of the KonaKart engine. *) Issue a warning if the version of the Admin App is incompatible with the version of the server. (The behaviour associated with this check can be customized by modifying the konakartadmin.compatibility.action configuration parameter in the konakartadmin_gwt.properties file). *) Renamed some of the default Shipping Module text properties to be more meaningful. *) Added an Affiliate Id attribute to the order object. *) Added the JSONP protocol (JSON with padding) to provide a method to request data from a server in a different domain. *) Added a "return_by_api" attribute to the configuration parameters. If a configuration parameter has this attribute set to 0 (false), it will not be returned by the various getConfigurations() API calls on the storefront engine. This improves performance (as previously all configurations were cached for each client session), reduces memory usage and tightens security by allowing greater control over which parameters are accessible through the engine. See below for more details on the changes that might affect existing custom code that uses these interfaces to access configuration values. *) JSON server is now disabled by default. To enable JSON move to the custom directory of the installation and execute the enable_JSON ANT target. *) Added the ability to make specified interfaces inaccessible via JSON. Set these interface names in the konakart web.xml as JSON servlet parameters - see the includedInterfaces and excludedInterfaces init-parameters. This provides greater flexibility in defining which interfaces are made available over JSON. *) The entries in the product type list box in the edit product panel of the admin app can be excluded and ordered using file based configuration. A "Please Select" entry has been added for the cases where you want to force the admin user to choose a product type rather than being able to accept the default type. *) Added more custom validation parameters for XML_IO. *) Introduced the ability to use substitution variables in the Admin App Help messages which allows you to define repeated sections in one place and "include" them wherever you like. This also allows Oracle and DB2 users (who had a 4000 byte limit on the size of these messages) to create messages of any length by splitting messages into smaller messages and combining them in one message using substitution. See the format for substitutions (${name}) in the help.editProductsDetails property as an example. *) Viewing of PDF invoices now possible from the storefront within Liferay *) Using File-based Connfiguration it is now possible to define the number of customers, orders, products and reviews returned in each group for display in the Admin App. *) Added a new API call to search for a customer's subscriptions. *) Modified Solr suggested search to use (configurable) a regex search on the terms so that is doesn't only match the term string from the beginning of the term. *) Added a config variable to set expungeDeletes="true" when doing a Solr commit. When set, objects marked for deletion are removed from the index. This is important for suggested search since the Solr terms functionality returns documents that have been marked for deletion but not removed from the index. *) Increased the size of 5 columns in the database for storing CITY values. Bug Fixes --------- *) Store front application was throwing an exception when using customer tags and when the session expired. *) The JSON API wasn't encoding all characters correctly. *) Repeat order was throwing an exception when using a shipping module that returns multiple quotes. *) Category Shared indicator now passed correctly to getPdf and DisplayFile servlets. Previously it was not passed at all which meant these would always use the default of categories not shared. *) tick.gif, cross.gif images added to konakart/images for use in velocity templates when running as a portlet within Liferay *) Commidea payment module was not setting the ProcessingDB on all requests. Backwards Compatibility Alert ----------------------------- *) The JSON Server has become an Enterprise-Only feature. *) Configuration parameters now have a new "return_by_api" attribute. To return the value of a configuration parameter through the storefront API (KKEngIf) you need to set the return_by_api column to 1 (true). By default the return_by_api value will be 0 (false). Therefore, you will need to set these values to 1 (true) if you need to access them using the various getConfiguration() API calls on the storefront API (KKEngIf). The database upgrade scripts for the 6.3.0.0 release set the "return_by_api" attribute to 1 (true) for all configuration parameters in a defined set of configuration groups (see upgrade scripts for details) which in the default installation are required by the storefront to function correctly. You should review the configuration parameters that are returned by the APIs for suitability in your system. The Admin App has been modified to allow you to set the "return_by_api" setting for each configuration parameter. It is recommended to set "return_by_api" to 0 (false) wherever possible to maximize performance, minimize memory usage and tighten security. *) The editConfiguration() API call on KKEngIf has been deprecated but has also been modified to return a KKException in all cases. You should use the Administration APIs (defined in KKAdminIf) to modify configuration parameters. Changes with KonaKart 6.2.0.0 - Released 19-Apr-2012 ==================================================== *) Added a new View Logs Panel to the Admin App to allow an authorised Administrator to view the files in the log directory. *) Improved expressions with the addition of an AGE_TYPE customer tag. Allows you act on the elapsed time (or age) of an event. i.e. To store the date of the last login for the customer so you can take action if a customer hasn't logged in for two weeks. Alternatively you could store the age of a customer to offer promotions to certain age brackets. *) Added a warning to the Promotions Panel in the Admin App to warn when the module for a selected promotion hasn't been installed yet. *) Database modification to allow entry_firstname and entry_lastname columns of the address_book table to contain null values. *) New kk_config table to record miscellaneous system characteristics such as database version and type. Read-Only access to this table is available via new API calls (hence this could be used to store miscellaneous custom data that has a "Key" and a "Value"). Note that these are global values and not per store if running in a multi-store mode. *) Exception messages populated with KonaKart version number to provide additional information to aid with diagnosing problems. *) Added buttons to Reviews Panel in the Admin App to enable the selection of the product and the customer who wrote the review. *) A new updated_by_id column has been added to the orders_status_history table to record the user who made the change to the order status. New APIs have been added to allow you to specify this new Id on order status changes - see the new updateOrder API. *) Added option to not calculate the quantity of a bundle product based on the quantities of the bundled products. The option also applies when updating the inventory. *) On the Customers Panel of the Admin App it is now possible to search for customers by customer Id, first name, and email address. *) Introduced a new Commidea Vanguard Payment module *) Added an animated gif to credit card entry panel to stop customers clicking the submit button multiple times. Bug Fixes --------- *) Avoided some null exceptions occurring when displaying products with null names and descriptions. *) Avoided some null exceptions occurring when not finding SSO tokens for specified secret keys. *) Admin App panels when using Internet Explorer were not displaying the hour and minute drop lists properly when selecting a date. *) Removed spurious characters that appeared when switching from the rich text editor to the plain text editor of the Admin App when using certain browsers. Firefox and Chrome injected a break tag and IE injected a non-breaking space within a paragraph tag. *) Modified the OrderTotalDiscount promotion module to reduce the tax when calculating a discount on the pre-tax total of an order. Changes with KonaKart 6.1.0.0 - Released 13-Mar-2012 ==================================================== *) Improved recurring billing functionality and documentation. Implemented all payment gateway calls for AuthorizeNet to insert, update and cancel a subscription. *) Added a new mode: Shared Category mode which is valid only when sharing products and customers. *) Added an Admin API call to copy products between store when in shared category mode. *) New feature for analysing the performance of the storefront APIs. Useful as a starting point for overall performance analysis. *) Added some logging options to allow logging changes to be made and take effect without the need to restart. *) Upgraded to BIRT 3.7.2 *) Added a batch job to synchronize stores when in shared category mode. This allows you to have a pre-production store and a production store. *) Added an Admin App panel to synchronize products between stores. *) Allow the use of a text entry field rather than a droplist for specifying the store to log in to when in Multi-Store mode in the Admin App. *) Now possible to view the Admin App using a language that is for display-only purposes where entities such as products & categories do not need a translation defined for this language. (Previously it was necessary to provide translations for all languages for the entities that have language variants). *) Added a KKServletContextListener to manage the shutdown of miscellaneous threads to avoid memory leaks. To enable this ensure that this section in the web.xml is uncommented (it is uncommented by default). Bug Fixes --------- *) When in shared products mode edit product had a bug whereby if more than one category was changed in one edit API call, only the first link in the product_to_category table was saved with the storeId. The other links were saved with a null storeId. *) Added fix to ConfigCacheUpdater when in multi store shared db mode to only return enabled stores. In some cases it would try (only once) to refresh the caches of stores that weren't enabled. *) Added fix to EngineConfigCacheUpdater to terminate its thread after 5 consecutive exceptions. Under certain circumstances this thread was not terminating even after the rest of KonaKart was stopped. *) When inserting and editing products, the external prices and quantities were being set outside of the main transaction. *) When searching for products in the admin app using the SKU, the default wildcard search settings weren't being used. *) When in multi-store shared products mode the admin app was displaying reviews for all products even if they weren't present in the store. *) When in multi-store shared products mode the admin app was displaying miscellaneous items for all products even if they weren't present in the store. *) Subscriptions panel in the admin app was throwing an internal exception when subscriptions were inserted with a null trial amount value. *) Added scale to a divide in the TaxMgr which was throwing an exception when external prices were being set in the basket not divisible by the quantity of products present. Changes with KonaKart 6.0.0.0 - Released 1-Jan-2012 =================================================== *) Improved the KonaKart promotion subsystem (Enterprise only) by adding functionality to evaluate promotions on individual products rather than as Order Totals. This means that a customer can now visualize the details of active promotions for a product before adding it to the cart. *) Added functionality to support product options with variable quantity. (Enterprise Only) i.e. Customer can choose number of GigaBytes of extra memory by entering an amount rather than choosing a fixed option. *) The object containing payment gateway callback information has been given some extra attributes so that more information can be stored regarding the transaction type, transaction amount and custom information. *) Added a new enableCustomer() API call and struts action to call it. This method can be used to verify a customer's email before enabling him. *) Added some custom relationship types in the Admin App for setting up product to product relationships. *) Added animated gif to GWT one page checkout code to show customers that the system is waiting for data to arrive. Useful for the case when interfacing with external shipping or tax systems that may take a few seconds to respond. *) Upgraded to new version of jTDS (v1.2.5) - for details of changes see http://jtds.sourceforge.net/ *) Upgraded to new versions of avalon-framework-api (v4.3), commons-collections (v3.2), commons-configuration (v1.7), commons-logging (v1.1), jcs (v1.3) and downgraded commons-pool (v1.3). *) Upgraded to new version of Torque (v3.3) and Village (v3.3). *) Remove the limit of displaying only 1000 Admin Users in the panel where the users are given roles. *) Product Option and Option Value names have been given a max size of 64 characters and the validation length through the admin app is now configurable. *) Added KK Engine API call, getAllPromotions(), to return all active promotions. *) Made the Enterprise Extensions installer more robust when installing to Community Edition systems with non-default data present. *) Added a new SQL Analysis utility (Enterprise Only) that can provide a quick overview of the SQL performance of the system. *) Added Online Help for Reports Configuration in the Admin App. *) When deleting a GeoZone (or "Tax Area") using the deleteGeoZone() Admin API call, in order to maintain data integrity, any tax rates that use the specified geoZone are also deleted. *) In the Admin App the date template is now read from the message catalog so that different languages can have different templates. Some of the dates are now shown with hour:minute precision. *) Ability to define the default value for and/or hide the "Requires Coupon" checkbox on the Promotions panel of the Admin App using File-Based Configuration. Bug Fixes --------- *) Save button sometimes enabled at wrong times on Tax Classes Panel of the Admin App. A minor usability improvement. *) Fixed bug that allowed checkout without selecting a shipping method when using the JSP checkout screens. *) Fixed a SOLR related problem in multi-store shared products mode. When editing a product for one store, the categories of the product in other stores were being corrupted in SOLR. Changes with KonaKart 5.8.0.0 - Released 08-Dec-2011 ==================================================== *) Introduction of a jQuery plugin enabling you to call the KK storefront API from JavaScript AJAX calls. The plugin uses the JSON APIs which are now available in the community version. Documentation available under the doc directory after installation. *) Added possibility to perform faceted product searches using SOLR. The facet attributes can be defined for different types of products using the custom attribute functionality. *) "Miscellaneous Items", with defined "Miscellaneous Item Types" can now be associated with products and categories. *) Added 5 custom fields to the EmailOptions objects to provide greater flexibility in customizing the generation of email messages. *) New CyberSource Hosted Order Post Payment Gateway Module. *) Now bundled with Apache Tomcat 7.0.22 (previously bundled with 6.0.33). Note that this version of tomcat requires a minimum Java version of 1.6. *) A new utility to create encrypted database passwords for the properties files so that they don't have to be stored in plain text. (Enterprise Extensions only). *) A security feature has been added for the BIRT Viewer. By default this is enabled. With this enabled it is now essential to have a valid sessionId in order to execute a report using the BIRT viewer. *) Upgraded two apache-commons jars (to dbcp-1.4.jar and pool-1.4.jar). These provide various bug-fixes and improved JDBC support. *) Upgraded to allow the hiding of the Edit button on the Orders panel via role-based security. *) Allow the use of a CLOB for the custom attributes column in Oracle so that more than 4000 characters can be used for custom attributes if required. *) Modified the order panel of the Admin App to resize automatically to fit lower resolution displays. *) Replaced unmappable characters from CyberSource java files so that they can be compiled without warnings on platforms where UTF8 is the default encoding. *) Added the option to hide the Print button on the Order Invoice Panel of the Admin App (using file-based configuration). *) Now possible to rename the default store from "store1" to another name. This is still not recommended practice but possible if required. *) Upload button moved to a new position to allow the Manufacturer's panel of the Admin App to fit on a smaller screen. *) Centred Admin App dialog boxes using a different technique to place them in more central positions on all platforms. *) Added functionality to the storefront app in order to facilitate SSO by passing customer and session information in a secure way when moving between two different applications using the same engine. i.e. A CMS system to place products in the cart and another system to checkout. *) When inserting a product using the admin app, you can now specify hour:minute precision for the available and expiry dates. *) When inserting a promotion using the admin app, you can now specify hour:minute precision for the start and end dates. *) The select manufacturer and select template dialog boxes in the admin app have been given a double click handler to make a selection. *) Added functionality in the Admin App to facilitate the maintenance of custom attributes. When custom attribute descriptions are modified or deleted, there is now the option to automatically update all of the products using the custom attribute. *) Added last modified date as a search constraint for products in the Admin App API. *) Added File Based Configuration parameters to the Admin App to make the title of the Edit Product panel configurable. You can now decide whether to show the product name, SKU or both. *) Added a File Based Configuration parameter to the Admin App to make the Products panel configurable. You can now decide whether to show the product name or SKU in the first column of the array. *) Added a RichText custom field widget to facilitate data entry for template based custom fields containing lines of text. *) Added an API call to the storefront API to check whether a coupon exists and whether it is active. *) Digital Downloads shipping module now installed by default. Bug Fixes --------- *) Modified EditAddrBody.jsp to fix bug whereby phone numbers weren't being displayed and therefore lost when the address was edited. *) When the Admin App is deployed to a webapp with a different name the PDF viewer failed because it was hard-coded to use "/konakartadmin". The Admin App code now derives the webapp name dynamically. *) Due to changes in the default treatment of escaped strings in PostgreSQL 9.1 the syntax in the database loading scripts (konakart_demo.sql etc) has been modified. Previously the regular expression loaded for the sample custom attribute for date recognition was being imported incorrectly into PostgreSQL 9.1. For users of earlier versions of KonaKart, this can be fixed by running the database upgrade scripts. *) In the Admin App, invisible products weren't being displayed after having been added as a merchandising link (up sell, cross sell etc.) or as a promotion rule. *) A race condition has been fixed which sometimes caused the deletion of all merchandising links (i.e. Up Sell) to a product when only attempting to delete one. *) When a product is saved, the merchandising drop list in the merchandising panel, no longer resets to "Up Sell". It keeps the current selection. *) The Category panel in the Admin App wasn't counting invisible products in the number of products per category. *) Modified encoding for the directory structure SEO URLs in order to remove encoded forward and backward slashes which are not allowed by some app servers for security reasons. Any forward and backward slashes in product, manufacturer or category names are converted to dashes "-" in the SEO URL. *) Increased the size of the products_name attribute in the orders_products table to 256 to match the products_name in the products_description table. *) Updated MyProductMgr.java (in apiexamples) to reflect the latest method signatures. *) Fixed admin app bug when viewing products for manufacturers. The manufacturer constraint wasn't being set properly when filtering the search results with more constraints. *) The formatting of hour:minute in the edit product panel of the Admin App has been modified to always show two digits for hour and two for minute. The modification affects the definition of special price start and end dates as well as bookable product time slots. *) The option to delete products when deleting a manufacturer or a category, wasn't deleting invisible products. Backwards Compatibility Alert ----------------------------- *) With the introduction of tomcat 7 there is now a requirement to use a minimum java version of 1.6 (previously we supported Java 1.5 and above). *) The JSON APIs are now "switched on" after a default installation. The web.xml file of the konakart webapp must be edited in order to disable them. Changes with KonaKart 5.7.5.0 - Released 13-Oct-2011 ==================================================== *) SOLR searches now return facets for categories and manufacturers so that the search results can be filtered using this information. *) Enhanced product search to enable searching for products in multiple categories and for multiple manufacturers. *) Added a new mode for formatting URLs for SEO. The standard format for URLs is now a directory structure containing the SEO data rather than extra attributes. *) Provide access by default to the Velocity EscapeTool to escape output from your Velocity templates (for emails, orders etc). *) Improved functionality of the getRelatedProductsWithOptions() API call of the Application Engine. The improvement is to allow to invert the direction of the related product link. This is especially useful for bundled products, so rather than discovering the products within a bundle, you can determine which bundles a product belongs to. *) Automatic redirect to konakart webapp when the http://localhost:8780/ is used. *) Upgrade of SOLR. KonaKart is now shipped with SOLR 3.4.0. *) Modified updateOrderStatus() API call of Admin App to allow status change using the same status. *) Enterprise Source pack now places the relevant Enterprise-only source files under the custom directory for easier custom ANT building. *) Include the import and export of product tags in the XML_IO utility. *) Allow the definition of translations of module names so that they can be viewed in the currently-selected language in the Admin App. *) Drop lists for promotion types and order statuses are now populated with entries in the currently-selected language in the Admin App. *) Increased the size of the category name to 256 characters. *) Provide more flexibility in defining localisations with the introduction of several new Admin App message properties that can be defined for each language. Bug Fixes --------- *) The GetBestSellers API call of the App Engine wasn't returning the special price of a product. *) Allow more than one store to be cloned at the same time. *) Admin App fix to prevent Administrators accessing the kk_store records of stores they are not authorised to access. *) Fix for the Admin App when installing the LDAP module on Oracle when it is the only "Other" module installed. *) Fixed encoding problem when uploading images from the admin app with double byte character names. The name of the image on the file system wasn't being set correctly. *) When registering / checking out using the one page checkout GWT code the default country in the drop list was not being set to the store country in some browsers. Changes with KonaKart 5.7.0.0 - Released 13-Sep-2011 ==================================================== *) New CyberSource Payment gateway *) New WorldPay XML Redirect Payment gateway *) New Free Gift Order Total Module. *) Added custom fields to order totals. *) Now bundled with Apache Tomcat 6.0.33 (previously bundled with 6.0.18) *) Changes some struts action classes to do a 301 redirect rather than 302 when adding SEO data to the URLs. *) Added an attribute to Order to keep track of who created the order. It is automatically set when logging in to the storefront app as an admin user and creating an order. *) Use version number in GWT nocache.js files to ensure GWT applications (Admin App and components in the Storefront) are updated by browsers after upgrading to new versions. *) Ability to define the default value for and/or hide the "Use Customer Language" checkbox on the Customer Communications panel of the Admin App using File-Based Configuration. *) Modified testDB() API call of Admin App to not return the database connection string and database user. The API call remains backwards compatible but only returns information to determine whether a DB connection can be made. *) If present, use the Order Number for the Invoice Filename rather than the internal Order Id. *) Introduced a new "setFunction" for use when defining parameters for modules, promotions and custom attributes. The new syntax is: choice('value1'='label1','value2'='label2') This will create a radio button field where the labels come from the message catalog and the associated value is what is saved in the database for each option. If any label is not defined in the message catalog the label key is used as the label instead so it helps to name these logically. Bug Fixes --------- *) One page checkout new customer registration fixed *) Engine was throwing an exception when retrieving a wish list for a temporary customer containing a disabled or nonexistent product. *) Change language wasn't working properly for the admin app when running within a Liferay Portlet. Changes with KonaKart 5.6.0.0 - Released 24-Aug-2011 ==================================================== *) LDAP module to connect to an LDAP directory in order to validate customer and admin user credentials. *) In Admin app can now search for orders based on customer name, email and postcode in order to search for orders for non registered customers. *) Added the ability to add custom business objects to the Velocity context to make these available for your Velocity templates. Bug Fixes --------- *) Fixed bug when inserting coupons using the admin app. The times_used attribute was getting set to the value of the coupon selected before the insert. *) In the TaxAreaMapping panel of the Admin App, the Search and Clear buttons were overlapping the border of the search panel in Chrome and FireFox. *) Wrapped the manufacturer name in CDATA when sending a product to the SOLR search engine to avoid having to encode certain characters within the manufacturer name such as the ampersand character. *) Fixed bug in multi-store non shared customers mode. In some cases the categories weren't being displayed in the categories tab of the edit product panel. *) The Change Language functionality of the admin app wasn't working correctly when the file based configuration property was set so that the password is never stored in a temporary cookie. *) A fix for the "controversial" new deferred segment creation feature introduced into Oracle 11gR2 (Enterprise Only). Installations failed with this db with the default setting of DEFERRED_SEGMENT_CREATION=TRUE. Now our Oracle scripts set DEFERRED_SEGMENT_CREATION=FALSE on the session to ensure that the installation runs as required. Changes with KonaKart 5.5.0.0 - Released 02-Aug-2011 ==================================================== *) Introduced Bookable Products functionality to cater for products such as courses. *) Added functionality to the admin app to allow you to manage catalog prices and quantities. *) Added an "Active" attribute to the Country objects allowing you to mark countries as "Active" or "Inactive". *) Repeat Order functionality of the storefront application now repeats the billing and delivery addresses rather than just presenting the default ones. *) Made the product type search droplist (Admin App Products Panel) configurable using the Hidden Product Types configuration variable. *) New Payment Gateways Added: Barclaycard SmartPay Hosted and Barclaycard SmartPay API (both with 3D-Secure capability). *) The "sessionId" parameter has been added to the URL when reports are run from the Reports panel of the Admin App. This allows you to authenticate the user by checking the sessionId (this is the KonaKart SessionId). The sessionId has also been added to the "Status Page Report URL" that is displayed in a frame on the "My Store Status Panel". *) In the product listing view of the Admin App only show the special price if it is enabled. *) In the Returned Products panel of the Admin App, a new Return can now be inserted by entering the order number rather than the order id. Bug Fixes --------- *) Added Order by Rating constraints to Solr mgr. *) Fixed a bug in the XML_IO utility where a property was referred to as "mesaages" rather than "messages". *) Calendar Pop-up bug fixed where the wrong date was being selected (when 31/5/2011 was clicked on, 1/5/2011 was actually selected). *) Fixed a bug where in the admin app where the image servlet url was hard coded when uploading manufacturer and category images. *) Fixed a bug in the admin app where sorting products by price was generating an exception when using MS SQL. *) The tep_cfg_pull_down_order_statuses( set_function wasn't working properly in every store in multi-store mode with non-shared customers. This bug caused order status droplists to be empty in some of the stores. Now fixed. *) Fixed a start-up race condition where configuration variables could be accessed before they were initialised. *) When the admin app was integrated with Liferay and the KonaKart session was timing out before the Liferay session, an exception was being thrown. *) Installer defaulted to mysql when installing the Enterprise Extensions in engine Mode 1 (multi-store multi-datbase mode). Now the wizard presents a database type choice to allow the user to override this default. Changes with KonaKart 5.4.0.0 - Released 20-May-2011 ==================================================== *) Suggested Search. As you type into the search box, a list of suggested search items appear matching the typed letters. The suggestions are weighted by popularity so the most common suggestions are shown first. (Enterprise Only) *) JSON version of the KonaKart application engine (another implementation of the KKEngIf interface). This allows you to use JSON calls from your storefront application for ALL KonaKart storefront functionality - useful for many purposes including improving performance over limited-bandwidth networks and for use on mobile devices. (Enterprise Only) *) Integration with TaxCloud (taxcloud.net) Sales Tax Management System. *) Added File-Based Configuration of the Admin App for global changes. (Enterprise Only) *) Customer tag functionality is now available for guest customers as well as logged in customers. *) A panel has been added to the storefront application to show recently viewed products. *) In multi-store shared products mode, a product now has 3 custom fields that may contain store related data. i.e. The data they contain can be different depending on the store. *) Added code in the storefront app to change session when switching to HTTPS to avoid session hijacking. *) Modified the application Register Customer API call to allow to register customers in a disabled state. *) Made the text on the Delete Product Dialog Internationalizable through the AdminMessages.properties files. *) Extended the products_name column in the products_description table from 64 to 256 characters *) Wherever the Rich Text Editor is used within the Admin App, the mode can be toggled from Rich Text to Plain Text. *) Changed some dynamically created labels in the promotion rules panel which were not being generated correctly. *) Dynamic reloading of logging settings (now you can change the active log settings without having to restart tomcat). *) New properties file variable to set the timeout value for the KonaKart Admin web services. *) Modified storefront one page checkout GWT code to handle session timeouts gracefully without throwing an exception. *) Following Google's decision to retire the Google Base APIs (as from 1st June 2011), these have been replaced by the Google Shopping Content APIs for publishing products to Google. *) Upgraded to Google GWT 2.3.0 - includes support for Internet Explorer 9 *) Complete javadoc provided for client engine, server engine and admin engine. *) Added the ability to specify the HTTPS port number to the command line installer (previously only the HTTP port number could be specified). *) Example "About Us" page added to the demo storefront *) Syntax errors fixed in the service.bat file for setting up KonaKart as a Windows Service. *) Allow the definition of the height of the Custom Panels in the Admin App *) Allow the access to the Reviews & Addresses buttons on the Customers panel (and on the Customer Orders panel) to be controlled using role-based security. *) Allow the access to the Reviews & Addresses buttons on the Product panel to be controlled using role-based security. *) Allow the access to the Coupons & Gift Certificates buttons on the Promotions panel to be controlled using role-based security. *) Privileges panel used for defining role-based security now allows access to all 5 Custom fields rather than just 3. *) Modified the way you change the logo displayed at the top left corner of the Admin App. Now you just place your own logo in a file called logo.jpg in the konakartadmin webapp, replacing the existing logo.jpg. Bug Fixes-App ------------- *) Promotion rules weren't working for categories when a product was in multiple categories. The product was sometimes not being found depending on which category was searched first. *) # products per category not always calculated correctly when in multi store shared products mode and products have been excluded from a store. Changes with KonaKart 5.3.0.1 - Released 10-Mar-2011 ==================================================== *) Fix to a problem when in Multi-Store non-shared products mode where the correct language Id is not found when trying to access templates from the Admin App *) Fix for a bug that occurs when products with options are added to a promotion rule or gift certificates with options are added to a promotion. The problem occurs not when adding but when re-reading the products that have been added. At this point the option value name and option name are null. *) Fix for a race condition when viewing subscriptions from the admin app. Sometimes, the popup waiting dialog never closes when the data appears from the database. Changes with KonaKart 5.3.0.0 - Released 07-Mar-2011 ==================================================== New Features ------------ *) MQ Integration - Apache ActiveMQ is integrated as an embedded Java Message Queue (Enterprise Extensions only). *) Custom Attributes. A product can now be given an unlimited number of custom attributes based on a template that can be assigned to a product. Each attribute has metadata to enforce validation and choose the widget during the insert process (using the admin app) and to format the data correctly in the storefront application (Enterprise Extensions only). *) Added a Rich Text Editor to the Customer Communications Panel in the Admin App. *) Now possible to display the list of countries in the language of the chosen locale rather than just the language used for the names in the countries table. *) Data Integrity Checker extended to correct any lack of integrity in Order Status data. (Previously the coverage was only for Customer Groups). It automatically "repairs" the database by adding missing language records for Customer Groups and Order Statuses. *) Added customer preferences to storefront app to allow a customer to choose the page size when paging through lists of products, reviews and orders. *) Upgraded to Google GWT 2.2.0 *) Added customer events that can be used for reporting purposes. They all get written into a database table that can be in a different DB so as not to impact performance. Events can be used to track things such as customers visiting, logging in, viewing products, removing products from cart, confirming orders etc. *) Allow addition of an attachment for the following eMail API calls: -sendTemplateEmailToCustomer1() -sendWelcomeEmail1() -sendNewPassword1() *) Added an invisible attribute to Customers to allow them to be hidden. *) Allow the use of CLOBs for product descriptions when using Oracle. *) Update to PayPal PayflowPro payment gateway to add VENDOR and PARTNER as configurable parameters. (If you are upgrading from a previous version and using PayflowPro you will need to first uninstall this payment module (in the Admin App) then re-install it after the upgrade to expose the new configuration parameters). *) Added API call to admin engine to call a payment module. An AuthorizeNet Admin App module has also been added. This API call can be used for any payment module transaction such as authorizing payment when products are shipped and for recurring billing transactions. *) Added the ability to switch dynamically between the Rich Text Editor and the Plain text editor on the Messages Panel of the Admin App. Bug Fixes-App ------------- *) When doing a product search, the total number of products returned was counting products multiple times when they were under more than one category. Changes with KonaKart 5.2.0.0 - Released 15-Jan-2011 ==================================================== New Features ------------ *) New "Buy X Get Y Free" Order Total Module *) New "Pick up in Store" Shipping Module *) Added drop shipper support by associating addresses to products. Manufacturers can also now have multiple addresses. The Admin App has been enhanced to manage multiple addresses for Customers, Products and Manufacturers. *) Modified Order Total object to accommodate an array of order totals. This allows each product discount to have its own line item in the order. i.e. An order total module may return an array of results. *) Added invisible attribute and search field to a zone object. Also added functionality to allow to set the zone during registration and address change. Changes should allow better handling of the cases where a US state contains multiple tax zones. *) Added custom fields to the digital download object and app API calls to get and edit an object. *) Added functionality to update store front message catalogs when a refresh cache command is sent from the admin app. When upgrading, a change must be made to the struts-config.xml to enable this functionality. *) Added a multi-lingual description field to the category object. *) Added possibility of creating a wish list even when not logged in. *) Added possibility of limiting the number of times a promotion is used by a customer. *) The getProduct() API call of the app engine now returns an array of ProductQuantity objects for each product which contain the SKU for the product variation as well as quantity in stock information. *) Added a new method to the Shipping Module Interface designed for the purpose of integrating KonaKart with 3rd Party Shipping Applications. An example is provided for UPS WorldShip which uses the Auto-Import feature to import Orders from KonaKart. *) When creating a new store dynamically using "Clone Store" in the Admin App a check is made (in the background) that the new store name chosen does not already exist. *) New exportOrder API call for exporting orders in various ways which can be specified in an options parameter. One option is to export the full order as XML. *) Now possible to specify which product types will appear on the product types droplist on the edit product panel of the Admin App. This is done by defining which product types you wish to hide in a new configuration variable on the 'Admin App Configuration' panel. *) A small number of configuration parameters have been moved to different sections to arrange them in more logical groups. *) Dialog displaying error messages in the Admin App now uses a vertical scrollbar making it easier to view very long exception messages. *) Added product quantity as a criteria to the product search object. *) Each server engine instance now has a thread for refreshing cached data. Previously the refresh API call was made from the client engine and so this functionality wasn't available when the client engine wasn't deployed. *) Added extra hooks to the KKAppEng to intercept when the config variables are cached and when the temporary data caches are refreshed. *) New Admin App API calls to set / get product prices in external table to support multiple catalogs. *) New Admin App and App API calls to set / get product quantity in external table to support multiple catalogs. *) Upgraded the KonaKart installer to version 1.2.15 of InstallJammer see http://www.installjammer.com/docs/index.html?ReleaseNotes for details. *) New set of getConfigurationValue(key) API calls for KKEngIf that get the configuration value for the specified key (get as Integer, Bool, etc). *) Better error reporting when configuration variables cannot be converted into integers or decimal values - resolves start-up problems which could result with mis-configured Shipping modules. *) Added page links to page through products in the store front application. Previously paging was only possible using Next and Previous links. *) Added image upload buttons to Category and Manufacturer panels in the Admin App. *) Added a review maintenance panel to the Admin App and Review States to allow reviews to be approved before being published. *) Now possible to store the application messages in the database or in the current messsage properties files (which remains the default). New kkMessages utility provided to load messages from message properties files into the database. New Admin App "Messages" panel added for the live maintenance of this messages. See User Guide for details. *) A number of improvements in the handling of files used in the system with respect to correct use of file encoding. *) Extracted the KonaKart logo from the previous image resource bundle to make it easier to add your own company logo to the Admin App. *) Modified the admin app to add paging for manufacturers and product options in order to better support large product catalogs. *) Upgraded to BIRT 2.6.1 *) Data Integrity Checker utility introduced to correct any lack of integrity in Customer Groups data. It automatically "repairs" the database by adding missing language records for Customer Groups. Bug Fixes-Admin App ------------------- *) Tree view of ProductOptionsPanel now remains open on the node edited or inserted. *) Templates used to display invoices, packing slips etc are now selected based on the currently-selected language of the Admin App rather than the default language of the store. *) Panels for setting product quantity and availability date were not working when product was invisible. *) Translation of labels and floatover text now possible for the non-standard Pomotion-Type-specific configuration fields. This only affected a small number of promotion configuration fields. *) Clone Store operation checks supplied credentials before commencing the creation of a new store preventing the creation of partially-completed stores. *) Transaction errors did not cause rollbacks in all circumstances when saving customer objects in the Admin engine. *) Some panels were never showing invisible products regardless of the setting of the configuration variable. *) Entry in specials table wasn't getting deleted when the product was deleted. *) Admin App panel for configuring bundled products wasn't working correctly when one of the bundled products was itself a bundle. *) Problem displaying invoices from stores other than store1 in multi-store configuration. Bug Fixes-App ------------- *) Some promotion modules weren't applying the rule properly for applying the promotion only after a minimum number of products are ordered. *) Sort by "times ordered" was not implemented for SOLR searches. *) All of the modules (shipping, payment, promotion) have been made multi-store ready. Previously they shared some static variables which didn't allow each store to set them independently. *) Wish list management wasn't functioning correctly when products were being added using the store front application in different languages. *) If all categories had last modified date set to null, the category tree cache was never used, so reducing performance. *) When using external prices, the option prices were never being shown as negative. Bug Fixes XML_IO Importer / Exporter ------------------------------------ *) Configuration Parameters no longer lose their sort order attributes when exporting *) Fixed a null pointer exception that occured if wishlists with no items were imported Changes with KonaKart 5.1.0.0 - Released 09-Aug-2010 ==================================================== New Features ------------ *) RMI version of the KonaKart engines added. Now there are three engine types: direct java, SOAP Web Services and now RMI. *) Payflow Pro payment gateway *) Tiered pricing to apply discounts based on quantity ordered. The discount may be defined as a price or as a percentage. *) Concentrated all tax calculations in a class for which source code is provided so that the algorithm may be easily changed to match rules of different tax jurisdictions. *) Added a special price start date so that now both the start and expiry dates for a special offer may be programmed. *) Allow special price start date, end date and status to be read from the product object. *) Added a customer notification attribute to each order status so that when the status of an order is changed through the admin app, the notify customer checkbox is automatically set to the value defined by the status. *) By default Velocity logging is directed to the tomcat log rather than to a file called velocity.log in the current directory. *) Made the client engine API call getStoreId(), public so that it can be called from JSPs. *) Custom Validation enhanced for the Admin App to include a wider selection of attributes. *) Allow the decimal places of prices entered in the admin app to be set by a configuration variable. Previous to this they were set automatically based on the number of decimal places supported by the currency. *) Added new Quartz - KonaKart bridge class that makes it easy to run any batch job in a loop - once for every enabled store in a multi-store environment. *) Allow the price to be defined when a product is added to the cart rather than picking up the price from the product object or from an external catalog. *) Added a new street address attribute to the customer address object. *) Added custom fields to product options, product option values and product attributes. *) Added a configuration option that enables a warning to be shown if a duplicate SKU is found when editing or inserting a product in the Admin App. *) ANT target provided to create an Eclipse project for developing the storefront application. Bug Fixes-Admin App ------------------- *) Made the labels on the "My Store Status" Panel display in the selected language rather than the store's default language. *) Save/Cancel buttons now enabled correctly now when tax rate droplists are modified. Bug Fixes-App ------------- *) Fixed DownloadInvoiceAction to remove java.lang.IllegalStateException: getOutputStream() has already been called for this response when downloading a PDF file. *) Fixed DownloadInvoiceAction & AdminEngineMgr to function correctly when the engine is being reached through the SOAP APIs. *) Modified MainLayout.jsp to avoid Cannot find bean: "konakartKey" in any scope exception caused by crawlers. *) Null check added to Zones shipping module to prevent null exception if zone countries configuration value becomes null. *) New custom fields added in ver 5 (custom 6 - 10, 1-2Dec, 1-2Int) weren't getting reset in the resetCustomSearchFields() private method of the application productMgr. *) The automatic deletion of expired gift certificates wasn't being managed properly when a customer had more than 1 certificate belonging to the same product id. Backwards Compatibility Alert ----------------------------- *) By default KonaKart is now configured to use these ports in tomcat's server.xml file: Port Old New Server 8005 8785 Change to avoid clash with default tomcat port HTTP Connector 8780 8780 No change HTTPS Connector 8443 8783 Change to avoid clash with default tomcat port AJP Connector 8789 8789 No change Note that the upgrade script modifies the HTTPS port configuration variable (called 'SSL_PORT_NUMBER') in the configuration table if and only if it is currently set to 8443 otherwise it remains unchanged. Also, the upgrade script modifies the ADMIN_APP_LOGIN_BASE_URL configuration variable in the configuration table to use the new HTTPS port but only if the value is currently the default which is 'https://localhost:8443/konakart/AdminLoginSubmit.do' Changes with KonaKart 5.0.0.0 - Released 06-Jun-2010 ==================================================== New Features ------------ *) Reward point functionality has been added so that customers can be awarded points for buying products, registering, writing reviews etc. These points can be redeemed during the checkout process and a customer can view a statement of his recent point transactions after logging in. An administrator can manage a customer's points. *) Support for recurring billing. Payment Schedule and Subscription objects have been introduced to support recurring billing natively using a KonaKart batch or through a payment gateway that manages the billing process at regular intervals. *) Added a number of extra custom attributes to the product object including integers decimals. All fields can be used for searching and sorting. Expiry date has also been added. *) Added additional telephone number to customer. Added telephone and eMail to address. These attributes have been added to the address format template. *) The language of the store front application is saved in a cookie so that even non logged in customers return to the application in their preferred language. *) Added a locale attribute to customers and orders to allow emails, especially from the admin app to be sent out in the correct language. *) WYSIWYG editor added to the Admin App for editing product descriptions. *) Upgraded to Google GWT 2.0 *) Added a refresh button to the reports panel of the Admin App *) If a logging properties file isn't found on the classpath, rather than giving a null exception, KonaKart now initialises the log4j system with a set of default logging properties. *) Country objects returned by the getAllCountries() API call are now fully populated. *) Eclipse project supplied for customizing the One Page Checkout GWT code *) Now possible to set the first day of the week on the Calendar Popup widget. *) Made it possible to internationalise the few remaining aspects of the Admin App. To take advantage of these you will have to update your AdminMessages_XX.properties file for your own locales. *) Now possible for a customer to use a gift certificate and a promotion code at the same time. *) Added new Struts Validator to the storefront application to avoid XSS injection during the submission of forms. *) Added a drop list and upload button to the customer communications panel of the Admin App to allow you to select templates and upload new ones. The templates are now stored in a different directory for each store in a multi store environment. *) Modified the Edit Product panel in the Admin App to make it easier and more intuitive to upload images. Also added upload button for digital downloads. *) Improved I18N for the Admin App to allow decimal numbers such as prices to be inserted using other characters as a decimal point. i.e. a comma. *) Added order number to the returns panel of the admin app to allow you to search for returns based on the order number and not just the order id. *) Added a config variable in order to automatically enable a product when its quantity is changed to a value greater than 0 through the admin app API. *) OrderTotal modules can now obtain a list of the order total modules that have already been called. *) Upgraded to version 1.4 of Solr. *) Invoices can now be created in PDF format and can also be attached to order confirmation emails. Invoices can also be viewed from both the storefront application and the Admin App. *) Added search rules for searching for products and other objects through the application and admin app APIs. The rules allow you to easily define whether and where, wild cards should be added. The admin app has a new properties file where default wild card settings can be defined for the various panels within the admin app. *) A new mode of operation is available for the Edit Customer panel of the Admin App to allow you to define that certain roles may edit only "external" customer details. This is useful for the cases where customers are actually managed outside of KonaKart. It makes it possible for the Admin User to edit only the Customer Group, the Newsletter subscription, the state (enabled/disabled) and the customer type (admin/customer/default). *) Added a config variable that controls whether customer Ids are displayed on the edit customer panel. Customer Ids are now shown as floatover text on the Customers Panel. *) New Netpay International payment gateway module added. *) New eWay Australia payment gateway module added. *) Product importer/exporter modified to import and export using UTF-8 encoding. *) Improvements to the installer - automatic discovery of current java environment improved and extra validation to check the selected java runtime environment is valid. Bug Fixes-Admin App ------------------- *) Links on the right hand side of the status page weren't working. *) edit review and delete review links on Edit Product panel weren't working Bug Fixes-App ------------- *) Added a timestamp to paging links to avoid paging expired result sets that may be accessed by using the browser back button. *) Fixed a bug when searching for products using Solr. Products under multiple categories being searched for "by category" were not being found. *) Latest products, random specials and random new products were not being translated when the language was changed. Backwards Compatibility Alert ----------------------------- *) The velocity templates are no longer stored directly under the WEB-INF/classes directory. They are now stored under the installation home directory in a the /templates/store_id/ directory structure where store_id is the id of the store and defaults to store1 in a single store environment. It is possible to move these to any other location so long as you update the TEMPLATE_BASE_DIRECTORY to point at the new location. *) In addition to moving the velocity templates, they are all (those from the konakart and konakartadmin webapps) now grouped together in the same location. This resulted in a conflict of names where the EmailNewPassword_en.vm existed in both the konakart and the konakartadmin webapps. Therefore the one from konakartadmin has been renamed to be EmailNewPasswordAdmin_en. Changes with KonaKart 4.2.0.0 - Released 11-Jan-2010 ==================================================== New Features ------------ *) The store front application has been re-worked to give it a more modern look and feel including multiple images per product. The icons of the Admin App have also been replaced to give a fresher look. *) Internationalization – The language of the admin app may now be changed dynamically. *) The Enterprise version of KonaKart now contains sophisticated marketing functionality that allows you to capture customer data as the customer uses your KonaKart eCommerce store; and to use that data within complex expressions in order to show dynamic content, activate promotions and send eMail communications. *) Gift Certificates are now supported. Gift Certificate products may be connected to any type of promotion and activated through a coupon code contained within the certificate. *) New functionality to allow digital download products (.txt and .pdf) to be indexed in the SOLR search engine so that they may be found by doing a product search using search keywords. *) New snippet functionality that returns text fragments surrounding search keywords so that the context of the search result can be determined. Useful especially for indexed digital download documents. *) The Enterprise version of KonaKart allows products to have an unlimited number of prices based on a product catalog id. *) A KonaKart product now has an average rating attribute that can be used in a search filter and to order the products returned. A batch job is supplied to set the average rating based on all of the reviews present for a product. *) Added dateAvailable to the search constraints for products. *) Tag and Tag Group Maintenance has been moved to the Products section of the Admin App. Also a new Marketing section has been added. *) Custom Validation enhanced for the Admin App to include a wider selection of attributes. *) Added API calls to allow the paging of wish list and gift registry items. *) Added a shipping discount promotion. *) Added an EmailIntegrationMgr which provides a hook to allow you to look up an eMail address from an external system. *) Ability to specify whether or not to use wildcard flags and a LIKE or EQUALS search when searching for customers based on their email address (Admin API). *) Module parameters can now be masked from clear view (i.e. they show "******") in the Admin App with the setting of "password" as the set_function in the configuration table. *) New MoneyBookers payment gateway module added (from a contribution by Chris Derham of Atomus Ltd). *) The getSpecialsPerCategory() API call (app and admin app) has been given an extra attribute to determine whether or not to search within sub categories. *) The product search object has been given an extra attribute to configure whether the description should be returned for each product. *) The Velocity template engine can now be configured through an external properties file. *) Upgraded to Google GWT 1.7. Bug Fixes-Admin App ------------------- *) Mail subject is now encoded into UTF-8. *) Products in multiple categories are no longer deleted when deleting one of their categories. Also they are not moved to the parent category if they belong to another category. *) Upload of product images in Shared Customers mode wasn't working properly. *) Bug fixed in updateConfigurationGroup Admin API call where booleans were not handled correctly (this call was not actually used in KonaKart prior to 4.2.0.0). Bug Fixes-App ------------- *) Mail subject is now encoded into UTF-8. *) The HTML escaping of reviews (when being inserted) was escaping too many characters, making the review un-readable from the admin app. Now only the standard HTML control characters are being escaped (i.e. <, >, &, ", '). *) Modified a divide operation in the saveOrder method call to avoid an exception during the customization of KonaKart if order prices were being modified without specifying the scale. *) The category tile was sometimes showing the incorrect category when viewing the details of a product that belongs to multiple categories. *) When showing products belonging directly to a parent category that has also sub categories, the manufacturer drop list selector was showing the manufacturers of the products in the sub categories and not those of the products in the parent category. *) The manufacturer filter drop list was not being reset when transitioning from viewing a category with products that have multiple manufacturers, to a category that has no products. *) Validation added to check for valid Country Ids when adding an address to a customer *) Coupon codes are now stored in the session so only have to be entered once. *) Secret key generation for asynchronous payment modules now works for load balanced systems. *) The quantity of a bundled product was not being calculated correctly. Bug Fixes / Enhancements - Importer / Exporter ---------------------------------------------- *) Custom Validation settings defined for the Admin App are also used during imports. *) Improved support for the loading of larger data sets. *) Improved matching of records to avoid import of duplicate records. *) Support added for import and export of WishLists and WishList Items. *) Support added for all newly-added entities supported in XML_IO utility (including Customer Tags, Expressions etc). *) Bug fixed in the import of ConfigurationGroups - it was creating duplicates. Backwards Compatibility Alert ----------------------------- *) The application and admin application method getSpecialsPerCategory() has been given an extra attribute in order to search or not search within sub categories. *) The PaymentInfo object no longer contains a Secret Key attribute. The method to generate a secret key is now called directly from the payment module when required. Changes with KonaKart 4.1.0.0 - Released 28-Aug-2009 ==================================================== New Features ------------ *) Added shared products mode to multi-store. This feature allows you to add a product to multiple stores but only have to manage one copy of the product in the admin app. The product price may differ between the stores. *) KonaKart now supports Gift Registries. An implementation for wedding lists has been added to the store front application. *) All client side exceptions shown to the customer are now also logged. *) New API call to retrieve Categories to Tag Groups. *) Save button enabled in Admin App without the need to tab off fields. Improves consistency of behaviour across all panels of the Admin App. *) Added USPS and USPS International payment gateways *) Various improvements to the XML Import/Export feature providing greater flexibility in defining which objects to import/export (Enterprise Extensions only). Additional command line arguments have been made available with some example scripts to demonstrate the new features. Bug Fixes-Admin App ------------------- *) Fixed Calendar widget so that it expands to 6 rows where required. *) A number of minor bugs fixed where search filters and back buttons were being lost under certain conditions. Bug Fixes-App ------------- *) Fixed a bug where breadcrumbs were never resetting. It could be reproduced by clicking the add address button in the My Accounts section and then the back button. *) The assignment of zones to payment and shipping gateways was not working properly. The defined zone was not being detected. Now for example, you may want to assign a USA zone to the USPS gateway so that it doesn't get called for non US destinations. Changes with KonaKart 4.0.0.0 - Released 05-Jun-2009 ==================================================== New Features ------------ *) Upgraded to Axis 1.4 *) 3 custom fields added to zones table *) Support for multi-currency. A customer can now view and search for products in a currency different to the default currency. *) Added cookie management to remember guests and their cart contents even if they haven't registered. *) Added many extra Application API calls that include an extra "options object". The purpose of this object is to pass the catalog id to the eCommerce engine so that the product manager may be specialized to retrieve the product price and quantity from an external source based on the catalog id. *) Enhanced product select dialogs in Admin App. Can now include extra attributes based on a template and can search by SKU as well as by a keyword. *) Added an API call to the Admin App called setProductQuantity() and getProductQuantity() to change the quantity of a product without having to retrieve the product, edit it and save it. A panel has also been added to enable power users to perform this action efficiently. *) Added custom fields to the session table. *) Two new API calls, addCustomDataToSession() and getCustomDataFromSession() have been added to the Admin App and Application APIs. *) Added the ability to retrieve customers using custom fields as search criteria. *) Added a Date Available attribute to the Products_quantity table so that each product variation can have a different available date. *) Added an API call to the Admin App called setProductAvailability() and getProductAvailability() to change the available date of a product without having to retrieve the product, edit it and save it. A panel has also been added to enable power users to perform this action efficiently. *) Added the last modified date to an Admin Product. The creation and last modified dates are now visible from the Admin App. *) For digital download products, added a Max Number of Downloads attribute and a Max Number of Download days attribute. If set, these values override the global values set using configuration variables. *) Added a Stock Reorder Level attribute to each product object. If set, this value overrides the global value set using a configuration variable. *) Custom Validation enhanced for the Admin App to include a wider selection of attributes *) Added an order tracking attribute to the order object. Added extra callouts to the OrderIntegrationMgr to edit the order before it is saved and a specific one to add the tracking order before the order is saved. *) Added a "Can Order When Not In Stock" attribute to each product. If set, these values override the global values set using configuration variables. *) Added an invisible attribute to categories so that they do not appear in the application when invisible. *) Added SKU attribute to Basket and OrderProduct objects. *) Added State attribute to OrderProduct that defines the availability state of the product when the order is created. *) Scheduling feature added (Enterprise Extensions only) using Quartz. Includes three batch jobs: RemoveExpiredCustomers, UnpaidOrderNotification and ProductAvailabilityNotification. *) Added the ability to clone stores in a multi-store configuration (Enterprise Extensions only) *) New BIRT report - ProductsToReorder. *) Liferay 7 and Liferay DXP support. KonaKart portlets can be generated using an ANT build task for deployment in Liferay 7 and Liferay DXP. *) Added support to integrate the KonaKart Admin App into Liferay. Bug Fixes-Admin App ------------------- *) Sorting by "Logons" and "Last Logon" gives an error with Oracle. *) Non registered customers are no longer displayed in the customers section. These are created when KonaKart is configured to allow checkout without registration; and were being inadvertently displayed in the customer list. A parameter has been added to the AdminCustomerSearch object in order to programmably display or not display the non registered customers. *) The printing of the order invoice and packing slip wasn't working. *) Fix to the SQL generated to set correct URL values for the default chart on the status page of the Admin App. (Only a problem on Linux with DB2, Oracle and MSSQL) *) Fix to the SQL generated to remove quotes around floating point values in currency inserts. (Only a problem with Oracle databases that do not convert strings such as '1.306' to floats correctly). *) Corrections to two BIRT reports (only a problem under Oracle, DB2 and MS SQL). TopCustomers.rptdesign and TopProductsList.rptdesign. *) Fix to admin app to display prices when comma is selected as the decimal point. *) Customer type search attribute not working in getCustomers() and getCustomersLite() API calls. Bug Fixes-App ------------- *) Changed the message catalog to remove the text : I am a returning customer. If you have already shopped at our store but never registered, please click on the Password Forgotten link below and we'll send you a password. A non registered customer needs to go through the registration process so the text is wrong. *) getCurrencies() API call was not using search criteria correctly. Bug Fixes Google Base Interface ------------------------------- *) Update required due to a change in the Googe Base API. This fixes the "You must specify an id for an item" error message. Backwards Compatibility Alert ----------------------------- *) The application API call getProductQuantity(String encodedProductId) now returns a ProductQuantityIf object rather than an int. The reason is to return the Date Available as well as the quantity. Changes with KonaKart 3.2.0.1 - Released 30-Mar-2009 ==================================================== New Features ------------ *) Bug Fixes-Admin App ------------------- *) Fix to the SQL generated to set correct URL values for the default chart on the status page of the Admin App. (Only a problem on Linux with DB2, Oracle and MSSQL) *) Fix to the SQL generated to remove quotes around floating point values in currency inserts. (Only a problem with Oracle databases that do not convert strings such as '1.306' to floats correctly). *) Corrections to two BIRT reports (only a problem under Oracle, DB2 and MS SQL). TopCustomers.rptdesign and TopProductsList.rptdesign. *) Sorting by "Logons" and "Last Logon" gives an error with Oracle. *) Print of packing slip and order invoice wasn't working. *) Fix to admin app to display prices when comma is selected as the decimal point. Bug Fixes-App ------------- *) Changed the message catalog to remove the text : I am a returning customer. If you have already shopped at our store but never registered, please click on the Password Forgotten link below and we'll send you a password. A non registered customer needs to go through the registration process so the text is wrong. Bug Fixes Google Base Interface ------------------------------- *) Update required due to a change in the Google Base API. This fixes the "You must specify an id for an item" error message. Changes with KonaKart 3.2.0.0 - Released 01-Feb-2009 ==================================================== New Features ------------ *) Upgraded to BIRT 2.3.1 *) Addition of Wish List functionality to engine and application. *) Addition of an Order Number attribute to the order object. This number may be set by custom business logic when the order is saved. *) In multi-store single db mode, product searches can be performed across stores, providing shopping mall functionality. *) In multi-store single db mode, custom functionality can be executed when new stores are added to a mall, or store definitions are updated. (The default class for this hook is com.konakartadmin.bl.AdminStoreIntegrationMgr). *) The KonaKart role object now has 5 custom fields. *) Upgraded to Google GWT 1.5.3 *) Added visual aid to tabs of insert / edit product panel to make it easier to identify what data is missing or doesn't validate. Bug Fixes-Admin App ------------------- *) Prevent users from running reports from the Admin App once their session has expired. Previously no check was made to check to see if the session had expired before reports were executed. Now, if the session has expired when the Admin App user attempts to run a report, he is logged out automatically. *) The method getOrderForOrderId() was not populating the formattedTotalIncTax attribute. *) Put in a retry when creating sessions to avoid login failing due to duplicate sessions. Bug Fixes-App ------------- *) Fixed a bug when creating the encoded product id for a basket item. The id used to depend on the order of the options which could have caused a problem if the same item with similar options was added twice but with a different ordering of the options in the opts array.The system wouldn't have recognised it as being the same item. *) Deletion of product attributes was causing null pointer errors when doing repeat orders and for products that had already been added to the basket. *) Put in a retry when creating sessions to avoid login failing due to duplicate sessions. *) Fixed some reflected XSS vulnerabilities. *) Fixed caching problem for random product tiles. The price with tax wasn't getting updated when a user from another tax area (different to the store tax area) logged in. The problem was only visible when KonaKart was configured to display prices including tax. *) Product belonging to more than one category was showing up multiple times in the best-seller list. One time for every category. Backwards Compatibility Alert ----------------------------- *) SetConfigurationValue in the Admin API has changed. This now requires an extra parameter. The extra parameter is the session Id. This has been modified to ensure that changes to configuration values are only made by callers with a valie sessionId. (SessionIds are returned from successful logins). Changes with KonaKart 3.0.1.0 - Released 07-Oct-2008 ==================================================== New Features ------------ *) Multistore. One instance of KonaKart can now manage multiple stores. *) Fully indexed search using the Jakarta Lucene search engine. As well as being very fast regardless of the size of your catalog; it caters for misspellings, synonyms, plurals and alternate spellings. *) New payment modules Elink and BluePay *) New FedEx shipping module. *) Google Analytics Integration. (See User Guide for details on how to configure this feature) *) Added new eMail API calls to application and deprecated the old ones. The new API calls have the following advantages: - They allow you to add an array of name / value pair objects in order to pass custom data to the Velocity templates - They allow you to choose a template name. In the case of the OrderConfirmation eMail, three different templates are now used for when the order is received, when payment is received and for when the payment transaction is not successful. - More standard data such as a fully populated customer object has been added to the VelocityContext. - In all cases, the eMail subject is now read from the first line of the template. *) Added new eMail API calls to the Admin App to allow the addition of an array of name / value pair objects in order to pass custom data to the Velocity templates. *) Added ability to save credit card details in an encrypted format. The details can be edited from the Admin App. *) New configuration flag for the Admin App to enable or disable the initial search that is performed on the Customers Panel. *) New configuration flag for the Admin App to control the behaviour of the clear button on the Customers Panel. If set to true the clear button will clear both the search criteria AND any current results; if set to false, the clear button clears only the search criteria. It is expected that most users will leave this at the default value which is false. *) KonaKart is now bundled with Apache Tomcat 6.0.18 *) The order of product attributes displayed in the application can now be controlled and is identical to the order set in the Admin app when they are created. *) Google Base Integration. Allows you to publish your products in Google Base. Bug Fixes-App ------------- *) Some labels in the application were not getting translated properly into the new language when a language was changed. The labels in question are all of those set from ActionClasses and not those set in the JSPs (mainly the breadcrumbs). *) The Category tile was not getting translated into the new language after a language change, until it was clicked on. *) If all categories had the last_modified date set to null, the server side caching wasn't working correctly. It would always re-calculate the category tree. *) Digital download records weren't being deleted when a product was deleted. Also digital downloads were being returned by the Application API call even if the product had been deleted. *) Code has been added to not call a payment gateway if the total of the order is zero. *) The behaviour of checkout without registration has been modified to prevent privacy issues. If a registered user attempts to checkout without logging in, the system detects that the eMail address already belongs to a registered user and so asks for his password rather than proceeding to checkout and overwriting data belonging to the registered user. *) The URLs generated when selecting products for a category or for a manufacturer could not be copy and pasted into a new browser to produce the same output. *) In the most detailed Auditing Mode, when running with DB2 or Oracle, the object_to_string column was insufficient to hold the highest level of detail. In 3.0.1.0 the object_to_string column as been altered (for DB2 and Oracle) to hold all auditing data. *) Removed unused javascript from LoginBody.jsp *) If directly after viewing a category with tags, you switched to one with no products, the tags of the previous category were being shown. Bug Fixes Importer / Exporter ----------------------------- *) Invisible products weren't importing or exporting properly Bug Fixes One-Page-Checkout GWT Dev Kit --------------------------------------- *) Missing loader.gif added to development kit. Bug Fixes Portlets ------------------ *) redirect=true has been added to a number of forward statements in struts-config.xml. This fixes a bug which didn't allow the browser back button to be used in all cases. Sometimes it would navigate back to an empty portal. *) has been added to struts-portlet-config.xml to fix a bug where the link to "other products" from the manufacturer tile wasn't working. *) Fixed product links on EditCartBody.jsp. These links were using the struts nested tag and weren't getting translated by the portal bridge. They have been changed to use the struts html tag. Backwards Compatibility Alert ----------------------------- *) KonaKart engines have new constructors to cater for multistore. In some cases the old constructors have been deprecated. Changes with KonaKart 2.2.6.0 - Released 28-May-2008 ==================================================== New Features ------------ *) 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 an application feature whereby any previous order can be repeated 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. *) Added the ability to program a button on the Admin App Returns Panel to call your own custom URL. An example of its use could be to call an application that processes credit card refunds through the payment gateway. *) 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. *) The product search functionality in the Admin App has been enhanced. *) 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 behaviour 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. Bug Fixes-App ------------- *) Fixed bug to clear the order history list 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. Backwards Compatibility Alert ----------------------------- *) Previously there were two Application API calls called "getPaymentDetails" (they were overloaded with different parameters). We have changed the name of one of these calls to getPaymentDetailsPerOrder to avoid having any overloading in the APIs. Therefore, if you used... public PaymentDetailsIf getPaymentDetails(String sessionId, String moduleCode, OrderIf order, String hostAndPort, int languageId) throws KKException; ... you should change the name of the call to getPaymentDetailsPerOrder() Changes with KonaKart 2.2.5.0 - Released 01-Apr-2008 ==================================================== New Features ------------ *) Provided more flexible customer search options in new droplists 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 button will not be visible unless you define the label to be non-empty in the Admin App Configuration Panel. Bug Fixes-Admin App ------------------- *) If the Customer Panel is the one and only panel authorised for a user, it sometimes failed at start-up due to a race condition. Backwards Compatibility Alert ----------------------------- *) The database upgrade script sets customers' customers_type to 0 where the customers_type is null. This indicates that the customer is a normal customer more explicitly. Changes with KonaKart 2.2.4.0 - Released 13-Mar-2008 ==================================================== New Features ------------ *) Added a new API call to com.konakart.al.ProductMgr to allow you to set the default order_by for 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 order attributes. *) Enriched the functionality of the Admin API call, getOrders(), 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. *) Added a hook 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 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 will be 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 - 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-Admin App ------------------- *) The lastModified attribute of an order was not being updated when the status of the order was changed through the Admin API. *) The back button from the edit product panel wasn't always working after uploading an image. *) 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. Bug Fixes-App ------------- *) 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. Changes with KonaKart 2.2.3.0 - Released 12-Feb-2008 ==================================================== New Features ------------ *) Added a new product type : "physical product with free shipping". This allows you to set free shipping on a product by product basis 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. *) Added user configurable length checking for certain product attributes entered through the Admin App. *) 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. *) Added multiple prices for product. The product object (and product attributes) has 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. *) Added a new engine API call to enable you to send any template based eMail to a customer. *) Added extra features 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. *) 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. *) Added a dynamic gif to indicate that GWT code is loading. It appears in the checkout section of the application and when the Admin App is launched. Bug Fixes-Admin App ------------------- *) 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. Bug Fixes-App ------------- *) Removed a couple of hard coded labels from ProductsBody.jsp *) Fixed a precision problem in the ProductDiscount 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. Backwards Compatibility Alert ----------------------------- *) Removed deprecated method com.konakart.al.CategoryMgr.setCurrentCatAndUpdateProducts(int catId). The one to use instead is com.konakart.al.CategoryMgr.setCurrentCatAndUpdateProducts1(int catId). Removed CategoriesTile.jsp. CategoriesTile1.jsp should be used.Removed com.konakart.actions.SelectCategoryAction(). com.konakart.actions.SelectCategoryAction1() should be used instead. Changes with KonaKart 2.2.2.0 - Released 22-Jan-2008 ==================================================== New Features ------------ *) Support for JSR 168 portlet specification to enable you to run KonaKart within a portlet. *) Checkout without registration *) Added customer notifications to the Admin App. You can send template based eMails to all customers, to all customers who have requested to receive the newsletter and to customers that have asked to be notified about any updates for a particular product. *) UPS shipping module *) Build kit to produce JSR-168 compliant portlet WAR *) When the state of an order is changed through the Admin API / Admin App, a unique email velocity template can be defined for each order state. *) Added the functionality to order products in the application API using the custom fields. *) Added the functionality to search for products in the application API using the custom fields. *) Added functionality to AdminCustomerSearch to search for customers with newsletter and notified products *) All Application API calls that return an array of products now return all custom fields. Previously only custom1 and custom2 were returned. *) New interfaces for the Admin API: setCustomerPassword, insertProductNotification, deleteProductNotification and getCustomerForEmail *) Added custom fields to OrderProduct and Basket objects. *) Improvements to the JavaDoc *) One page checkout code and build file included in KonaKart download packages Bug Fixes-App ------------- *) Option prices weren't being displayed in the drop list when value was between 0 and 1. Changes with KonaKart 2.2.1.0 - Released 06-Dec-2007 ==================================================== New Features ------------ *) Redesign of UI to make it more "skin-friendly". KonaKart now comes with 4 different skins. *) Capability to add additional mail properties in a new configuration file. This allows you, for example, to use SMTPS mail gateways with authentication, and at defined ports. *) Configurable log file directory for storage of diagnostic log files. *) Two new payment gateways: YourPay and PayJunction *) Added support for MySQL 4.1 Bug Fixes-Admin App ------------------- *) Tax Rates, Tax Areas and Tax Classes - No Save button on inserts after deleting all records *) Edit Product, Edit Manufacturer, Edit Category were showing incorrect language data a language was deleted without deleting the descriptions for this language. *) Delete product. The product is now deleted from all customer's baskets. Bug Fixes-App ------------- *) Tax wasn't being calculated for the "All Countries" and "All zones" cases. *) Filter by manufaturer wasn't working when selecting all manufacturers after having filtered by a single manufacturer. *) Orders could not be saved for Countries with names longer than 32 characters. (A database error inherited from osCommerce) *) Orders_Product Model_Name column increased to 64 characters to match orders table. *) Struts actions were using some instance variables which may have caused concurrency problems particularly under heavy load. *) Filter of products by price wasn't working correctly for MySQL Changes with KonaKart 2.2.0.8 - Released 15-Nov-2007 ==================================================== New Features ------------ *) Change Password capability added to Admin App *) Role based security has been enhanced to include API Call granularity. *) Digital Downloads are now enabled when changing the state of an order through the Admin App *) YourPay payment module Bug Fixes-App ------------- *) Duplicate log4j jar removed *) All web.xml files now validate correctly *) setClassPath.bat utility in import/export utility corrected (defined an incorrect classpath) *) *.gwt.rpc file included in konakart webapp (eliminates warnings in the log about this) Changes with KonaKart 2.2.0.7 - Released 22-Oct-2007 ==================================================== New Features ------------ *) Configurable Auditing for Admin App *) Role-based security for Admin App *) AJAX components upgraded to use the latest GWT release (1.4.60) - provides greater stability and significant performance gains *) Support for digital downloads *) Added many configuration variables for enabling sending of emails (registration, order confirmation etc.) rather than one global on / off variable. *) Added multiple image support for a product. Every product now supports 4 images. *) Added a data comparison field to products. This should contain structured data (i.e. XML) so that many similar products can be compared, feature by feature. Bug Fixes-Admin App ------------------- *) Reports configuration menu re-instated. *) Returns panel stored incorrect item quantity under certain conditions. Changes with KonaKart 2.2.0.6 - Released 06-Sep-2007 ==================================================== New Features ------------ *) Admin App is now fully internationalized and can be translated through a message catalog. *) Addition of an import / export tool to allow import and export of product data from a file. *) Addition of two new payment gateways (USA ePay and Authorize.net). The credit card details are entered directly into a KonaKart JSP rather than redirecting to a page belonging to the gateway. *) Addition of a returns section to the Admin App to manage product returns. *) Through the admin app you can configure a new URL for when switching to SSL. The previous version only allowed you to configure a new port. *) Increased products_model column from varchar(12) to varchar(64) Bug Fixes-Admin App ------------------- *) FireFox always used to give an error during product image upload although the upload was working. Bug Fixes-App ------------- *) searchForIpnHistory Admin API function caused SQL error on DB2. *) Velocity engine was opening and never closing a file handle to the log file every time KonaKart was calling it. The new default condition is to have no velocity logging. Backwards Compatibility Alert ----------------------------- *) The AdminIpnSearch class has changed (orderId changed from String to int). This is used in the searchForIpnHistory Admin API call. Any uses of AdminIpnSearch will need to be updated. Changes with KonaKart 2.2.0.5 - Released 31-Jul-2007 ==================================================== New Features ------------ *) Admin App javadoc included in download kit *) More source code included in the download kit for the Struts application *) Functionality to keep multiple quantities and SKUs of the same product id for different options. Quantities and SKUs can be set through the admin app. *) Addition of an "invisible" attribute for the product object. Invisible objects are not normally returned by the API unless specifically asked for by setting an attribute in the DataDescriptor. *) Addition of custom fields to the DataDescriptor object so that products can be filtered using the custom fields. e.g. You can set the value of a custom field to be "local" or "international" . If the value of the same custom field in the data descriptor is set to "local" then only products with the field set to "local" are returned. *) In the Admin App a product can be searched for by its SKU. Bug Fixes-App ------------- *) Addition of Javascript in EditCartBody.jsp to validate the quantity of a cart item. *) The number of products for a category wasn't getting updated at regular intervals in the category tile. Changes with KonaKart 2.2.0.4 - Released 11-Jul-2007 ==================================================== New Features ------------ *) Implementation of AJAX based One Page Checkout functionality *) Added support for DB2 and MS SQL Server *) Added advanced SEO features *) Clickable more detailed breadcrumbs *) Added a callback class that gets called whenever an order is made by a customer or when the state of an order changes due to an event such as a payment gateway callback. *) Installer now checks your database connection and, optionally, initialises your database ready to use KonaKart *) Added a KonaKart news feed to the Admin App Changes with KonaKart 2.2.0.3 - Released 06-Jun-2007 ==================================================== New Features ------------ *) Promotions, Coupons & Merchandising *) Oracle Support Bug Fixes-Admin APP ------------------- *) Reports are now sorted A-Z,a-z on Linux/Unix as well as on Windows *) A few minor bug fixes mainly relative to UI Bug Fixes-APP ------------- *) The shipping modules (Zones.java and Table.java) were not dynamically refreshing the shipping cost lists when this data was changed through the Admin App. A restart of Tomcat was required. *) Added max length checking for customer registration and address and password changes. Previous to this fix, an exception from the database was shown on the UI if the user attempted to enter a string longer than the database allowed. Changes with KonaKart 2.2.0.2 - Released 07-May-2007 ==================================================== New Features ------------ *) Reporting added to KonaKart through the integration of BIRT, the popular Open Source Business Intelligence and Reporting Tool. *) Enable / Disable http / https communication, and define port numbers through Admin App. No longer need section in web.xml *) Email sent to warn of low stock level. *) Added feature to allow editing of configuration files from the Admin App. Bug Fixes-Admin APP ------------------- *) Reviews weren't being deleted when a product was deleted. Bug Fixes-APP ------------- *) The category tree in the categories tile wasn't getting updated with the current category when a product was clicked on in order to view the product details. *) Application forms weren't using UTF-8 encoding. *) eMail templates and the eMail engine weren't using UTF-8 encoding. Changes with KonaKart 2.2.0.1 ============================= New Features ------------ *) Addition of custom fields for the following entities: -Customer -Product -Order -Manufacturer -Category -Review -Adddress These fields can be maintained through the Admin App and used in the KonaKart application including custom validation. *) Used new shortcut icon for uninstall command *) Addition of WorldPay payment gateway *) More help/examples provided for adding additional modules New Features-AdminApp --------------------- *) "Insert New Customer" functionality in the Admin App *) "Reset Customer Password" functionality in the Admin App *) The configuration variable cache of the application can be reset from the Admin App to avoid having to re-boot the application in order to pick up configuration variable changes. New Features-App ---------------- *) App can now manage multi levels of categories. Bug Fixes-Admin App ------------------- *) Validation on order status names set to a maximum of 32 chars to match d/b *) Set line-terminators correctly on properties files on Linux *) Modified general behaviour to ensure that the Admin app allows you to work from an empty database. *) Special price wasn't getting picked up on new product insert *) Products directly associated to a category weren't being moved to the parent category when this category was deleted. *) Added missing Back button to Customer Orders panel *) Corrected some rounding anomalies with floating point value changes Bug Fixes-App ------------- *) Products with quantity = 0 are removed from basket Changes with KonaKart 2.2.0.0 - Released 23-Mar-2007 ==================================================== *) Major New Feature - The KonaKart Administration Application. *) Reduced distribution size by removing some redundant classes. *) Restructured the WARs so that properties files are available outside the JARs. This makes it easier to configure/internationalize Konakart. *) Added extra order status entries to provide more granularity for the state of an order. *) Ensured that pages use UTF-8 encoding. Changes with KonaKart 2.1.0.3 ============================= *) Modified the value stored in the final_price attribute of the orders_products table. It was being saved as the product price (+options) multiplied by the quantity. Now it is saved as product price (+options). The change was made for osCommerce compatibility. *) Implemented logic to use expiration date and status of Specials. *) Made refresh interval for client side caches (random special, random review, random new product) programmable using the configuration CLIENT_CACHE_UPDATE_SECS. *) Fixed bug that created error when there were no specials or no reviews. *) Modified algorithm for searching for the state in the list of Zones. The previous algorithm was picking out the incorrect zone in some occasions. Changes with KonaKart 2.1.0.2 ============================= *) New configuration parameter to define the name of the velocity log file *) During the order process, the zone wasn't appearing in the formatted addresses when the zone was in the database. *) The number of decimal places of the tax rate shown on the checkout confirmation page has been reduced to 2. *) The url_clicked and date_last_clicked attributes of the manufacturers_info table, are now being updated when a user clicks on the manufacturer link to view the home page. *) When registering or adding / editing an address, the state is checked, and a drop list of valid states is provided if they exist in the DB and if the entered state is invalid. *) Support for PostgreSQL 8.2 . A table creation and population script is included in this version. *) Fixed a bug to display the list of bestsellers properly in the UI. Changes with KonaKart 2.1.0.1 ============================= *) Support for MySQL 5.x . Previous version only functioned correctly with MySQL 4.x. *) Addition of an IPN History table. This table stores the instant product notification data returned by payment gateways. *) Fixes to various minor bugs.