We have developed a group buying e-commerce site that sells vacations to large groups of members. As the volumes tend to bring down prices for all, this is a business model that has been catching on, with a lot of activity surrounding such sites. We offered this solution by heavily customizing Drupal 7 and its Ubercart suite of e-commerce modules. The model requires Group leaders, who are influencers that can persuade their followers to sign up for specific travel groups, at highly discounted prices. The discounts are viable only because of the volumes committed by the Group leaders, and they need to strive and accomplish their committed number of signups.
A group vacation typically includes to and fro air tickets, lodging, ski & other equipment rentals, ski lift tickets, local transport and other related travel products. The members have the ability to modify the components of a package subject to availability. The site performs a real-time inventory check before accepting a checkout of the added components, so that they are not overbooked. Once a group is sold out - i.e. the desired member count is reached, prospective buyers may choose to register with a waiting list. The system offers the ability to preferentially allow such wait-listed users to fill up the vacancies arising out of any cancellations. Members who sign up can either pay the full amount or make only a partial payment to book their slot, and pay the balance a few days before the vacation commencement. The system dynamically allows changing of ordered components before and after the checkout is done. The system also offers multiple payment choices such as by credit card or by check. Credit card payments are processed by integrating with Authorize.net payment gateway.
Ubercart suite of e-commerce modules were used to implement the above system on top of Drupal 7. The component items were defined as product attributes with options. While attributes can be of widgets such as radios, or checkboxes, or select or textfield, we implemented a new type of attribute called 'quantity grid' by using already available patches from the Drupal community. This new attribute type had to be supported through out the e-commerce workflow, requiring an enormous amount of customization. Ubercart Affiliates module was used to manage the group leaders and their sales activity. Attribute options were enhanced with inventory management, which again required considerable customizations. The site is optimized for a variety of device types, screen sizes and browsers, by sub-theming the Omega responsive theme. Jquery was used extensively to accomplish dynamic checks and actions. Views have been used to generate different kinds of sales reports for the group leaders and the site managers, which can also be exported as CSV files.