Ver 188.8.131.52 – What’s New?
v184.108.40.206 is a minor maintenance release of v220.127.116.11 that fixes a few small UI problems and provides support for the recently-released MySQL v18.104.22.168.
Therefore, the comments for v22.214.171.124 are applicable:
Version 126.96.36.199 is the first release after version 188.8.131.52 that has been made generally available. It contains many exciting new features and a number of bug fixes. Version 184.108.40.206 has been available for supported customers and so the following lists show the changes for each version separately. Before upgrading, please read the Upgrade Compatibility Alerts for each version.
Note that some of the features highlighted below are only available in the Enterprise Extensions. See here for full details of what is included only in the Enterprise Extensions.
- New storefront using struts2, JQuery and Ajax to give a more modern and functional user interface with less screen refreshes. Enterprise customers now get the full source code of the client engine and an Eclipse project to easily customize all parts of the storefront application.
- Implemented getPromotionResult() method for the FreeProduct promotion module so that it can be determined whether the promotion is active before adding a product to the cart.
- Allow embedded spaces with custom attribute “Set” function definitions – eg. allow both string(1, 10) as well as string(1,10)
- Addition of PunchOut functionality complying to OCI Rel. 4 using HTML rather than XML which was used for the previous implementation.
- Upgraded to Apache Solr 4.0
- Now allow 30 custom facet fields for Solr faceting instead of 10.
- Multiple facet constraints can now be added to each TagGroup when performing a faceted search with Solr.
- Added range facets for prices when using Solr.
- All Solr searches now return the minimum and maximum prices for products in the search results.
- Added a new API call (getTagGroupsPerCategoryWithOptions) which allows the fetching of tag groups without associated tags. The tags aren’t required when using Solr for faceted search so it improves performance to not retrieve them.
- Added attribute to ProductSearch object to force the use of Solr. Normally Solr is only used when doing text searches or when returning custom facets.
- Added catalog prices and quantities to Solr so that Solr searches can be performed when using constraints on catalog prices and quantities.
- Modified Solr schema.xml to add SynonymFilterFactory to the kkName field type.
- Modified the getManufacturersPerCategory() API call so that it returns the product count for each manufacturer even when not using Solr.
- Introduced a mechanism to easily allow a KonaKart customer to implement a different password encryption algorithm. By default KonaKart uses the MD5 Message-Digest Algorithm. The class that needs to be customized is called Security.java and can be found under KonaKart/custom/utils/src/com/konakart/util
- Return the custom attribute template id for products retrieved using the Application API.
- Allow Custom Validation of Tag names, Tag Group Names and Tag Group Descriptions.
- Now possible to override the default file name for KonaKart’s Velocity properties file (default name is konakart_velocity.properties). Also possible, using this customisation technique (see “KonaKart Properties Files” section in the User Guide) to specify different properties files for different environments (Dev, Test, QA, Prod etc).
- Introduced a getManufacturers API call to the storefront engine and enhanced the existing getManufacturers API call on the admin engine to allow greater flexibility over searching for manufacturers – including the possibility to retrieve and order manufacturers by their custom fields.
- Mask credit card numbers when written to the log in DEBUG mode (for enhanced PCI compliance).
- Send additional parameters in PayPal module (first_name, last_name address1, address2 city, state, country, postcode)
- Added two new engine API calls ( addCustomerNotifications() and deleteCustomerNotifications() ) to manage the signing up for newsletter and product notifications for registered and non registered customers.
- Introduced a getReviews API call to the storefront engine to provide greater flexibility (more constraints and sort by options) when searching for reviews. The API call now also returns an array of review rating facets which show how many reviews are present for each rating.
- A License Key is now required to run the Enterprise Extensions. License keys are added in the KonaKart Admin App… Ask email@example.com for your personalised keys.
- Improvements to the Installer for Linux platforms which now sets more platform-specific configuration parameters which saves time by avoiding the need for manual configuration of these after installation.
- Enhancements and speed improvements to Google Base interface. Google’s “Product Type” is now derived from the position in the Category Tree.
- Introduction of product dimension attributes (length, width, depth).
- Product weight column expanded to allow 15 characters instead of just 5.
- The method splitNameIntoFirstAndLastNames() in BasePaymentModule has been deprecated with improved functionality being provided in the new getFirstAndLastNamesFromAddress method. All payment modules have been updated to use the new method as applicable.
- Validation of coupon code when inserting a coupon in the admin app is now configurable.
- Added the option to search for text in the product description in the Admin App.
- Allow the possibility to specify “From Address” and “Reply To Address” on emails sent through the APIs.
- Added invoice Number to the recurring billing request sent to AuthorizeNet. This information stops AuthorizeNet from thinking that it is a repeat request.
- The array of Tags belonging to the TagGroup objects returned by the getTagGroups() API call were not being fully populated. The id of the tags was missing. This meant that it wasn’t possible to add or remove a tag and call the updateTagGroup() API call.
- Fixed a bug that was causing an exception when an admin product query was returning no products and isFillMiscItems() set to true.
- Problem making the Customer Reviews button invisible using the Role Privileges.
- In certain configurations of Apache (notably with proxy servers being used) PDF viewing wasn’t working. Now fixed by adding application/pdf as the content type.
- When setting up an expression, if the first variable displayed (Age of Customer) was used without modifying the default “greater than” operator, then the generated expression would pick up the “equals” operator instead.
Backwards Compatibility Alert
- v220.127.116.11 introduces the new Struts 2 based storefront. By default the standard
installer (and its Enterprise partner) will install the new Struts 2 based storefront. So, for new installations, if you wish to install the 18.104.22.168 version of the Struts 1 based storefront you will need to first install the standard Struts 2 based storefront, then you must run the Struts 1 installer and its Enterprise partner if applicable). For upgrade installations where you wish to keep your previous version’s Struts 1 based storefront the recommended approach is to:
- Save your existing store front application somewhere safe before you start
- uninstall KonaKart
- Install all of the following in the same location over the top of each other:
- Using the standard installer, install the new Struts 2 based storefront (but do not update the database using the installer)
- If you’re using the Enterprise version, install the standard Enterprise version of the Struts 2 based storefront (again do not update the database using the installer)
- Install the Struts 1 based storefront (again do not update the database using the installer).
- If you’re using the Enterprise version, install the Enterprise version of the Struts 1 based storefront installer (again do not update the database using the installer)
- Execute the upgrade SQL scripts for your database type for every release from the one you started with to the latest. Run these one at a time in sequence.
- Move your previous Struts 1 based storefront code back into the konakart webapp
- The API call getManufacturersPerCategory() now returns manufacturers for products of the selected category and all of its children. The new getManufacturers() API call may be used to return the manufacturers for only the selected category.
- Addition of PunchOut functionality complying to OCI Rel. 4 . Feature allows corporate users to create orders within their ERP systems.
- In file based configuration for admin app, added option to not set a date by default for the product Available Date.
- Allow the definition of integer(min,max) and double(min,max) for module configuration parameters (define using the set_function).
- Upgraded to Quartz 2.1.5
- Improvements to consistency of treatment of emails and more options to control email sending (content type, blind copies, synchronous/asynchronous).
- New FBC (File based configuration) properties added for configuring email usage in the Admin App (eg. defaults for BCCs and content type).
- Ability to create PDF files from custom templates (not just invoice, packing list and order details as before). See PdfOptions.
- TemplateBase variable added to velocity context by default – useful for specifying includes of style definitions for example. Examples of the use of this in the default velocity templates.
- Extended the ability to add custom business objects to the Velocity context to make these available for the Velocity templates. Now possible to add your own objects for Invoices, Order Details, Packing Slips and your own custom templates.
- ESC key can now be used to close Help dialogues in the Admin App.
- Allow the setting of a full path for the KonaKart and KonaKartAdmin properties files in their respective EngineConfig objects. These properties files do not have to be on the classpath. This can be handy for setting up different properties files for different environments (DEV, TEST, PROD etc).
- Custom panels in the Admin App now get additional parameters (Display language Id, Admin User Id and Store Id) appended to the specified URLs (Enterprise Only).
- When sessions are found to have expired they are removed from the database.
- Added Global Collect Payment module
- As a diagnostic aid you can set “log4j.logger.com.konakartadmin.server = DEBUG” to reveal all the Admin API calls made by the Admin App as you use it. Particularly useful when figuring out which methods to override in a custom engine.
- Every time reviews are inserted or made visible / invisible or deleted, the related product is updated with the total review count and average rating. For performance considerations, the average rating is no longer calculated every time a product is fetched through the API. A batch program has been added to the Enterprise version to traverse all of the products in the catalog and set the review count and average rating.
- Modified the Enterprise installer to define the use of Enterprise versions of the SecurityMgr and AdminSecurityMgr classes by default.
- Default username changed from the irregular “root@localhost” to “firstname.lastname@example.org”
- Exception was being thrown if a currency was defined without a thousands separator.
- Problem solved with matching existing Customer Groups when importing using the XML_IO utility.
- Fixed the jQuery example shortcut which wasn’t updated after the jQuery code was relocated in 22.214.171.124
- Fix a “Bad Request” exception in GoogleShopping interface when an attempt is made to delete a product that no longer exists.
- USA ePay payment gateway – the billing state is now specified as the state (“Zone”) code instead of the full state name (e.g. CA instead of California).
- updateOrder API call on the storefront engine wasn’t setting the updated_by_id correctly from the updateOrder object passed in as a parameter.
- When uploading images using the Admin App a strange occasional “There has been a problem with the upload ” 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.