My organization is preparing to launch a new brand. We recently moved to Drupal and are currently considering the viability of using Ubercart or e-Commerce. We have done cursory investigations, however there is an amount of data which I am having difficulty confirming without doing some actually prototyping myself. I've had a fair look around Drupal.org and drupalecommerce.org but I've not found much use-full information.
I'm not looking for detailed solutions, really just affirmations of off-the-shelf or even partial support or estimation of effort required to develop the stated functionality - since we're still fairly fresh to Drupal and especially so to e-Commerce.
We are experienced with developing and working with modules and the Drupal API and concede that we will be writing at least some code to join our final commerce selection with our existing systems.
Here is a short list of features that I've had some difficulty getting clear information on with e-Commerce. Please help where you can.
Product bundling, discounts, contracts and sale/discount periods
The new brand is products and services based, we will be selling from the website: products and services with optional contracts. In the requirement below, I've used Products, services and contracts knowing that they may well be the same "things" with different "type" identifiers. This is more so to help clarify the requirements. In the examples I give, all of Service, Product and Contract may have several different "Types" i.e. two types of product, three types of contract etc.
Services (or service types), products (or product types) and contracts (or contract types) may be bundled together in many different combinations. Bundling may result in a discount on the bundle or just one item (this is cosmetic as in the end it == the same total). Some services will be available for bundling with all products. Conversely some services will not be available to all products instead only being allowed to bundle with a small subset or type of product. Contracts terms and discounts will vary depending on what they are bundled with.
So as you can see, there is a many-to-many relationships between products services and contracts. The availability of each combination (of product, service and contract) is determined by which two are combined first.
We would also like to be able to schedule discount periods for some products/bundles (i.e. a week where several bundles or products are on sale)
Vouchers/discount codes
We already have a voucher system, and we will be using it in conjunction with UC/EC. We need the cart to be flexible enough to accept a given voucher code, and then pass it on to our API for validation. The API will return a true or false and optional message for why a voucher can not be used.
Payment Gateway
We have our own payment gateway, we will be using this to process Credit card and also bank account details (direct debit authority). We will probably write an API for this. But whatever we choose, the transaction must be ATOMIC.
External Product Catalogue
Initially, we can get by with managing all product attributes in Drupal but ultimately we would like to be able to pull some information (primarily Prices, Discounts, Bundle Definitions, Product Codes) from an external data-source.
Delivery
Configure sales for no physical delivery (i.e. purchasing a service only).
I appreciate any help you can give
-a