Project Funded and Underway
Full funding has been received for this project and it is now underway! All four components are at a release candidate stage.
Purpose: The following is a working spec of what would be included in the combined Uberdonations and EFT project. The purpose of this wiki is to make it obvious what functionality will and will not be in the project once it's finalized. Please do not add 'feature requests' to this document. Make those over here.
Goal: A set of modules that may be combined together to meet a majority of donation needs. Ideally, making these work well for various situations will be documented by the community and contributors and ultimately combined into an installation profile for use on new donation based sites.
Scope: This specification is only for the first round features of the various modules, nothing more.
Deliverables: Project releases and documentation (with community contribution) posted on drupal.org within one to two weeks after securing funding. All code will be commented and written in compliance with Drupal's coding standards and with best practices for security and API development.
UC Variable Price
A product feature module that turns any product into a variable priced product.
- The customer will be prompted to enter the price on the add to cart form.
- The module will modify the cart form as necessary for products with the Variable Price feature.
- The module will alter the product class edit form so you can define a default Variable Price feature for any product class on the site. Settings may be overridden at the product level after the product has been created if necessary.
- Product feature settings to include...
- A title for the "amount" field
- A default value
- A minimum/maximum value
- A checkbox to change the title of the "Add to cart" button to "Donate"; safe for multilingual use.
UC Ordered Products Reports
A module that allows donation history reporting by showing essentially an ordered products report that only includes products of administrator specified product classes. Reports will include a new line for every product ordered.
- Includes permission for viewing user reports and the global report.
- Ability for users to view their donation history through tab on profile page; includes a form to restrict to a specific year.
- Ability for admin to export all donations from a given start and end date as a CSV file with appropriate information
- Settings to include...
- Checkboxes list of product classes to include on the report.
- Radio select list of user profile tab titles; defaults to "Ordered products", also includes "Donations" and "Giving statement"
- Checkboxes list of fields to include in the reports. Please expand options if need be:
- Order date (as mm/dd/yyyy)
- Order number (as link)
- Ordered product
- Ordered product attributes/options (appear under ordered product as in the shopping cart)
- Sell price (each)
- Total price
UC Add to Cart Tweaks
A product feature module that alters the behavior of the add to cart form.
- The module will alter the product class edit form so you can define default tweaks for any product class on the site. Settings may be overridden at the product level after the product has been created if necessary.
- Product feature settings to include...
- An option to empty the cart when this product is added
- An option to go straight to the checkout page
- An option to ignore the add to cart redirect
These items will be possible by virtue of the way Ubercart works; they'll just need to be documented as they pertain to donations.
- Using product attributes/options to add designations to variable priced products.
- Multiple donations through checkout process; encouraging users to "continue shopping."
Having looked over the specifications, I think a good goal for the first round of development is to get a payment method module that submits an EFT payment to Authorize.Net using their eCheck.Net API. Future development would see EFT be its own core payment method with payment gateways plugging into it like they do the Credit Card payment method.
- Adds payment method fields to checkout form for collecting the necessary bank account details
- Not dependent on the existing Authorize.Net module (I don't believe there's reusable code in it at this point)
- No support for recurring transactions at this point