Trhkvetov is an e-commerce marketplace for flowers and related ancillary products. It is also a complete multi-vendor system where each vendor can register and add their products. The client already has a basic site, with some multi vendor implementations, but it was very basic in nature and no where close to where client envisioned it. The task was on us to shape up the feature set, and convert this into a true powerful multivendor platform with all the standard features.
About the project
Goals
Trhkvetov is an e-commerce marketplace for flowers and related ancillary products.It is also a complete multi-vendor system where each vendor can register and add their products.This is a classic example of a multi vendor ecommerce marketplace built with Drupal 7 + Drupal commerce. The requirement of the client was simple - to build an ecommerce marketplace for flowers with Drupal 7 + Drupal commerce. It had to be a complete multi vendor system with each vendor registering and adding products. The total sell amount was to be splitted between the site admin and the vendor account. The main feature we needed to implement was the money splitting between the site owner and the vendor. luckily, drupal commerce has a very extensive API which we used. We hooked into the payment hooks, which right after payment calculated and splitting has made necessary payments to the merchants through programmatic handling of the payment gateways. Similarly the shipping and country restrictions were implemented. Also drupal fields and forms API was extensively used for creation of merchant accounts and making them choose the allowed shipping method and currency.The finished product was exactly as per the requirement and we exceeded client’s expectations not only in terms of end result but also in our communication, project handling and innovation.
Requirements
A multi vendor ecommerce platform with Drupal 7 + Drupal Commerce
Development of a multi vendor e-commerce platform with Drupal 7 + Drupal Commerce supporting all standard e-commerce facilities. All features of a standard e-commerce system were to be built, like a detailed discount mechanism, coupons system, multiple shipping options, stock management
Multi-currency and Multi-lingual Support
The system was to be built with multi currency and multi lingual support. 5 languages and currencies were to be supported. Also, the system was to facilitate automatic currency conversion mechanism based on the API.
Vendor Verification
A vendor can register to the site and initially goes through the verification steps where he needs to fill out a form with some personal & company details as well as uploading scans of some documents. An admin can go in and check these information and verify the vendor. Once verified, the vendor can start adding products. the vendor needs to add his payment information for accrual of payment to his account.
Payment Split Between Site and Vendors
Users can checkout and buy products, typically from multiple vendors at one go. Upon successful checkout and payment, the entire payment is to be taken into the site admin’s account. Then from the total account, each merchant’s sales amount is calculated (as per products that has been checked out) and then from that site admin’s sales commission is calculated. Rest, will be paid to the vendor after the deduction of the site’s commission.
Customer redressal system
There is a customer redressal system where users can register complaints and in the backend the system forwards the complaint to the correct merchant identified from the product ID.
Custom payment gateways
There were 6 custom payment gateways that needed to be developed which was based on documentations from the client’s local banks. Some of them had pretty heavy validation features and for transactions for greater amounts, KYC APIs that needed to be implemented.
Architecture
Our first challenge was to decide whether to use an existing module for multi vendor ecommerce platform or to go the custom route. After a lot of deliberation and research, we decided to go to the custom module route. The existing solutions that were there, were not completely stable and we decided the custom coding route will give us more flexibility. The main feature we needed to implement was the money splitting between the site owner and the vendor. luckily, drupal commerce has a very extensive API which we used. We hooked into the payment hooks, which right after payment calculated and splitting has made necessary payments to the merchants through programmatic handling of the payment gateways. Similarly the shipping and country restrictions were implemented. Also drupal fields and forms API was extensively used for creation of merchant accounts and making them choose the allowed shipping method and currency.
Challenges
The main challenge of this project was lack of any proper multi vendor e-commerce plugin for Drupal at that point of time. Even though Drupal Commerce ecosystem was quite developed, there was still a huge void in terms of an existing plugin for a complete multi vendor e-commerce store and the associated management system. We carefully evaluated the solutions available, and decided to build this out entirely from scratch. The challenge was really the huge for the amount of advanced features for which we needed to write custom code, but making sure the system was scalable and proficient. Our deep understanding of Drupal and Drupal Commerce APIs came to out aid, and out engineers were able to deliver perfectly what was expected out of them. We developed a few basic API modules, and then went on to use those APIs and Hooks to create advanced features like Multi Vendor Stores, Payment Split Mechanism, Individual Store configurations like allowed currency, allowed language and allowed shipping methods.
Outcome
The finished product was exactly as per the requirement and we exceeded client’s expectations not only in terms of end result but also in our communication, project handling and innovation.
Why Drupal was chosen
The client already had a site with some basic features which was built in Drupal 7, and hence we decided to continue to use it as base, as what was there till then, was good and could be used as a starting point.
Technical Specifications
Drupal version:
Key modules/theme/distribution used:
This site was all about setting up a powerful multi vendor system with drupal commerce. Whatever modules was available, we made full use of that. Apart from that, we came up with our extensive suite of custom modules to achieve various features like payment splitting, multi shipping etc.