OpenCart: one of the most popular open source ecommerce platforms has more than 9000 extensions available. Still, there are numerous cases where in an ecommerce merchant has unique requirements, needing custom built plugin.
TransPacific Software as one of the largest implementers of OpenCart routinely develops bespoke extensions.
Following is a case study of creating a custom extension for hotel-shop check-out
A Sweden based company having chain of Hotels (Hotelretailers); approached TransPacific Software to develop a custom plugin for their ecommerce website.
Hotelretailers system allows guests at the hotels to order products direct from a hotel's website and choose to have their order fulfilled in one of the following ways:
- Bill order to room and deliver to room
- Bill order to room and deliver to home address
- Pay by card and deliver to room
- Pay by card and deliver to home address
Hotel raises invoice for orders that are billed to the guests rooms.
Hotelretail's current system is based on Opencart e-commerce framework. Hotelretail had a need to have OpenCart purchase/check-out process to be altered to suit their requirement of direct invoicing and delivery to guest room.
Customisation of the shopping cart and checkout process.
The available of-the-shelf extensions on OpenCart Market Place did not allow for the level of customization Hotelretail required
Hotelretail required a new exclusive extension that can be installed on multiple Opencart websites to smooth out the checkout process making it a tailored experience for hotel guests.
The new extension will need to display a single checkout page (including confirmation) that adapts itself depending on the fulfillment and billing type that a hotel guest selects. The checkout page will also need to feature some custom fields that are specific to hotels.
Also, some hotels do not charge their guests when they leave the hotel, payment is taken in advance. With these types of hotel, billing an order to a room is not possible so the extension was required where by a back-end setting, the bill to room feature can be disabled.
Most of the guests were expected to make their purchase through smartphone or tablets thus the checkout process needed be designed with the mobile user in mind. The new checkout page needed to be fully compatible with responsive themes and work on a smartphone screen as it does on computer screen.
The approach followed by TransPacific Software in developing the custom plugin:
- Step1: Flow chart drawing: To remove any ambiguity; a detailed flow chart was drawn to sequence the checkout process through various shipping and billing option options. Click for Flow-chart
- Step 2: Wire Frame screens were developed for client approval.
- Step 3: Bare-bone HTML pages were developed with correct sequencing
- Step 4: Final UI was developed by applying design CSS . The UI was extensively tested on various devices including tablets, iphone and ipods.
- Step 5: With UI ready ;the backend coding started. It was decided to develop the plugin in vQmod so as Core libraries and function from OpenCart will remain unaltered.
- Step 6: The plugin was designed to connect with paypal Pro payment gateway .
Salient features of the project:
- Plugin is based on default theme structure.
- Width and height to div in html are not given to make it a responsive site.
- Stylesheet given as per the devices identified.
- Checkout on single page
- Checkout in single click and email is sent to client and user
- Ajax based flow maintained
- Create custom table in database to maintain the additional user information like hotel check-in and checkout date.
- Auto updates shipping rate and totals when user chooses shipping method
- Auto updates payment methods when user chooses shipping method.
- Particular feature like login/register can be enable/disable from admin
- Fields can be enable / disable or mandatory fields can be set from admin
- Easy installation of plugin by uploading the files and enable the extension.
For More Information and custom plugin /Extension development contact: firstname.lastname@example.org