I'm pleased to announce the launch of http://www.crowdedtext.com
This is a writing contest site. Customers can launch and manage a writing contest, and writers can compete in them. Ubercart is used for the payment integration. And it may not look like it, but I do make use of the cart functionality.
I debated doing a custom payment solution, at first thinking Ubercart might be overkill, but then I came to my senses. After all, it modular, and I was already somewhat familiar with the API.
When a contest is launched, all I do is clear the cart, then add the special product nodes to the cart through code, redirecting the user after that straight to the checkout page. This was easy with some sensible management of a few session variables. The only real trick I had to pull off was adding a product with a dynamic price.
A customer inputs their prize amount, and we charge 10% of that. So I just have two dedicated products "Prize" and "Prize Handling Fee". Then I called a hook_cart_item and checked if the added item was a certain node id, then set the item price to correct one. The hook fires even when the product is added to the cart from code. Here is the actual code.
function ct_contest_cart_item($op, &$item) {
if ($item->nid == '11') {
$item->price = $_SESSION['created_contest_prize'];
}
if ($item->nid == '12') {
$item->price = $_SESSION['created_contest_prize_fee'];
}
}I will be posting a showcase on Drupal.org very soon, and hopefully it can reach the front page.

.