Overview & Requirements
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
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
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.
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.
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.
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.
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.
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.
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.
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.
Multi Vendor E-commerce Platform with Drupal 7 + Drupal Commerce.
6 Different Custom Payment Gateways Integration supporting Recurring Payment.
Multi Lingual and Multi Currency Support and Dynamic Price Conversion Based on API.
An Extensive Vendor Verification System
Payment Split Mechanism based on Vendor Agreement Level and Fully Customisable by Site Admin
A Detailed Grievance Redressal System and Vendor Blacklisting Method
Lines of code
Members in the Team