About the Client
The client is one of the largest educational publishers in the Spanish speaking world, offering end to end instructional solutions to the educational community. The client’s online and physical publishing solutions cover language programs, literature, and professional development disciplines.
The client operated an in-house developed, legacy e-commerce system for managing online educational content orders from schools and students. The legacy systems had several constraints – there was no mechanism to purchase courses directly on the website. Also, there was very little automation between various systems and a lot of information had to be entered manually by the sales representative prior to placing an order on the site.
The client was gearing up for the school opening season in Spain in September and wanted to have a fully functional e-Commerce system that could handle orders, license management, payments and refunds with a high degree of automation. Silicus was recommended as a reliable solutions provider by an existing Spanish client, and was selected for providing a suitable e-Commerce solution for the client in time for the school re-opening season.
Need help with a Konakart E-commerce Implementation project?Contact Silicus Sales
Re-developing from scratch vs Implementing Pre-packaged software
On analyzing the detailed requirements for the e-Commerce solution, Silicus recommended using pre-packaged software that could be customized for the client’s requirements. This was the only option given the time constraints the team needed to work with.
Selecting the e-Commerce Platform
The client was familiar with the Konakart e-Commerce shopping cart software, and wanted Silicus to conduct a POC before finalizing the package. Some of the advantages Konakart presented were:
- Java based Struts framework since the client was inclined towards a Java based solution
- Easily customizable
- Presents a ready-made database set-up
- Supports a validation framework
- Includes the Torque Framework for connection pooling
- Easily scalable to enterprise level
- Lends itself well towards Agile SCRUM development, the preferred development methodology for Silicus
Following the POC, Silicus concluded that while Konakart could be used as the e-Commerce framework, significant amount of customization would be needed for it to fit the specific requirements of the client.
Customization / Development Phase
Functional Modules Developed
While Konakart included several functionality that was relevant for e-Commerce based business model, most of them had to be heavily customized for the client. This was accomplished by obtaining the Java struts store ecommerce application code from Konakart and writing several custom JSP’s that were integrated within the GWT code. Some of the functional modules that were customized were:
- Order Management
- Access and Security
- License Management
- Returns and Refunds Management
- Coupons and Discounts
- Pricing and Price Calculation
- Localization for Spanish, Catalan, Galego and English
- Admin for managing users and orders
- Search – advanced and simple search for courses (buyers) and orders (administrators)
Most of the functionality was delivered through web services, for e.g. the license manager functionality where books and courses were managed through their ISBN codes and the validity of licenses were managed through the license manager. Another instance of web services being employed was for PDF and Excel document generation.
The team encountered several challenges while customizing the modules, such as:
Payment Module – the client wanted to have a specific bank in Spain as the payment gateway provider, however this was not one of the payment gateway API’s provided by Konakart. The payment and order modules were tightly coupled, and the team had to break this tight coupling to integrate the payment gateway provided by the Spanish bank.
Returns / Refunds Module – returns were generated by the e-Commerce system in SINLI flat file format that were then imported into legacy downstream systems for further processing. The legacy systems presented issues with importing the SINLI flat file formats, and the team had to resort to Byte Order Marking (BOM) – making byte level changes to the flat files to address the issues. Returns had to be processed for Credit Cards / Payment Gateway purchases as well as phone based returns.
Coupons – the original Konakart functionality had to be scrapped since it supported only single coupon single product usage while the client’s requirement was multiple coupons being used for multiple product purchases.
Pricing / Price Calculation – apart from the basic price of the product or course, several other factors had to be considered including discounts, promotions, general taxes, special taxes etc. Some of these calculations became fairly complex, and were not supported by Konakart shopping cart software. Moreover, the client required that all prices be rounded off to 2 digits for every product or course.
3rd Party Integrations
Moodle Content Management System – Moodle CMS was used by the client to store course content. Earlier, a sales representative would have to manually create a user profile of the buyer in the Moodle CMS as there was no integration with the older e-Commerce system. The new system would auto generate the Moodle user access details for the buyer during the purchase, automating the process.
- Alfresco CMS – another content management system used by the client for storing courses and content.
- Payment Gateway integration
User Interface (UI) Development
The Konakart user interface was fairly basic, while the client wanted a rich and highly user friendly UI. The team modified around 30-40 JSP’s within Konakart e-Commerce software to make the UI more elegant and rich. Basic JSP’s within Konakart were scrapped, and the JSP’s, Jquery and CSS code were written from scratch.
Another related UI functionality that was customized was banner management. The team automated the banner change function so that swf, jpg, and animated gif files could be uploaded for the banner and switched depending on a pre-defined time interval.
The default Konakart software package was tightly couple with the underlying MySQL database. However, extensive customization broke the tight coupling, and the team developed new tables and relations to re-establish the coupling between the database and the e-Commerce application.
Performance and Design Considerations
Performance considerations – normalization and indexing of databases, optimizing SQL queries and clustering.
The team faced challenges in some design areas, mainly with importing and bulk handling of large flat files. The team created custom modules within Konakart to handle the bulk imports, along with thread handling, and roll backs. A separate staging database was set-up to handle bulk imports.
Since several of the Konakart functions were over-ridden through custom code, the team had to develop custom code for thread handling and multi-threading of sessions. A reliable transaction roll back mechanism was also developed to handle exceptions.
Konakart maintains an internal encrypted session of activities apart from the session management that is controllable from outside. The team ensured transaction security through web service calls with private and public keys, capcha validation and password encryption of users. Un-authorized access was maintained through assigning roles to various users. Some of roles that were defined were:
Super-administrator (Client-side) – has over riding powers across the system
- Commercial profile (Client-side) – sales person who takes orders from schools and enters these orders in the system
- Validator (Client side) – person who validates and accepts or rejects orders placed by the sales personnel
- Individual client (Family Profile)
- School profile
Finally, security was further enhanced through using HTTPS certificates across the entire application.
Eclipse 3.5 with remote debugging tool for live servers
Issue Tracking / SCRUM Management
3rd Party Integration
Moodle CMS, Alfresco CMS, Payment Gateway
End To End Automated Process
The Konakart e-Commerce implementation and customization automated several processes that were being done manually earlier including order booking, license management, customer course access management etc. This significantly speeded up the sales process and created a better end user experience. Moreover, the Konakart system was integrated with Moodle and Alfresco CMS, eliminating any manual intervention in generating user name and passwords for accessing online course content.
Rapid Implementation and Customization for Release in Time for the School Opening Season
There was very little technical help provided by Konakart for the non-enterprise version. The team overcame several challenges related to setting up the Eclispe IDE, WAR file generation, build management etc to ensure that the implementation and customization was completed in time for the client
Ability to Cater to Different Users
The Konakart e-Commerce platform could address the needs of the two main types of buyers - individual customers and schools. All the functionality needed to run these two businesses was developed and automated making it easier to manage the sales process.
Increased Sales Through the e-Commerce Channel
The Konakart shopping cart software implementation and customization was developed to be highly user friendly and the UI was customized exactly as per client requirements. The order placement and check-out process was simplified for end users. The client looked forward to significant increased sales from the new system.