51 replies [Last post]
Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132

(Sorry if this is a bit disjointed - assembling a few emails here)

Here is the use case:

Interaction A:
1. User finds product and goes to purchase it. There are two options, either pay full price, or pay "down payment" of $150 (or X).
2. User can add other products with or without down-payments for those as well.
3. User checks out and pays (via PayPal Pro integration).

Interaction B:
1. X days before the product (camp event) an automated email is sent to users who did a down-payment which includes a link back to the site.
2. User clicks the link and sees remaining balance, then enters payment information and finishes paying.

Alternate Ending:
1. User mails in check / credit card over phone and staff need to go in and note order as fully paid.

Let me walk through it one more time here:

A. User wants to purchase for product (in these cases, register for a camp).
B. At the bottom of the product (camp) page, there is a drop-down with two options "Pay in Full" or "Down Payment ($150)".
C. User selects "Down Payment ($150)" and clicks "Register".
D. Optionally, user chooses additional products or attributes of that product.
E. User proceeds to checkout as usual.

F. On a designated date, an automated email is sent to users who have orders with the Down Payment option.
G. The email contains a link to pay the remainder.
H. When the user clicks the link they are taken to a page that is basically the "Checkout" page of the shopping cart.
I. There they enter payment information and finish checkout.

Details:
- The down payment amount should be able to be a percentage or a specific number. Ideally, on the module configuration page a default percentage or number could be entered (ie for one client it will always be $150, for another it will always be 50%).
- Almost always, users will just sign up for one camp during registration. However, a user could theoretically sign up for two. Consequently, the "Pay Remainder" email should be product specific, not order specific and a separate email should be sent within X days of the other camp they registered for.
- Somehow (this is the fun part Smiling this needs to tie-in with Ubercart Reports because the clients will need to track who has paid what.
- The client should be able to go in and enter checks received with the remainder (or down payment) for an item (this is already built-in to Ubercart, isn't it?)

I'd like to focus on having this fit my client's needs, and then later the community can broaden it out for other use cases if desired.

I'm thinking it might be best to just hook into the Ubercart checkout process again for the second interaction? Thoughts?

I have worked with uc_recurring in the past and tried to hijack it for this sort of purpose - it works, but is a hack. The main showstopper I see with it though is that I can't guarantee users will always pay with the same method. For all I know they might even just mail in a check.

Need the start this ASAP (shocking, eh? Smiling The sooner we can get started the better. Let me know what else you need to know! I'll be using Unfuddle for project tracking, tickets, and SVN for this one.

BTW, some threads I came across on the site that relate:
http://www.ubercart.org/forum/development/5635/partial_payments_or_payme...
http://www.ubercart.org/forum/module_support/13366/adding_partial_paymen...
http://www.ubercart.org/forum/support/8360/create_manual_order_full_paym...

If someone can get me a quote and timeframe plus previous experience that would be wonderful!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

kaijencheng's picture
Offline
Joined: 10/07/2010
Juice: 11
Re: $1,000 Partial Payment Module

curious if anyone already did it?.....

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Done deal!

Yes - it is all done and live on the site!

If you are curious to see it, go to www.kohlskicking.com then click on one of the upcoming camps - most of them have the partial payment option enabled.

Just check out the Payment options (In Full or Partial).

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

sadist's picture
Offline
Joined: 05/18/2009
Juice: 66
Re: Done deal!

hi, are you going to share and release it as a contrib module?

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
That's the plan...

That's what we'd like to do for sure! We just need a few people to put up some money to get us to near $1,000 so we can take the time to refine it for general release. Already got $300 lined up so not too far to go!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

sadist's picture
Offline
Joined: 05/18/2009
Juice: 66
Re: That's the plan...

Maybe you could bring down the project cost for this?

At the moment, I don't have any project that requires this as priority (will try to convince clients tho).. but even if I got those projects, I still need to know when can this be done once I'd tied them in or I'll be doomed.

But then again, I'm willing to chip in just a bit with what I can afford for now. $100?

DanClarkePro's picture
Offline
Joined: 09/22/2010
Juice: 31
Re: Re: That's the plan...

Also, I am happy to put in $100 where needed, this project is exactly what need.

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Thanks - just a few more!

Thanks guys!

$100 is just fine - we'll just need a few more people to chip in then so we can get near $1,000. Already half-way there between these three! Can anyone else help us out?

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

DanClarkePro's picture
Offline
Joined: 09/22/2010
Juice: 31
Re: $1,000 Partial Payment Module

subscribing

jonezy09's picture
Offline
Joined: 10/24/2010
Juice: 14
Re: $1,000 Partial Payment Module

I may be willing to put in a 100 or so, if the module can allow multiple payments overtime.

PolishYourImage's picture
Offline
Joined: 11/19/2008
Juice: 42
Re: Re: $1,000 Partial Payment Module

I also may be willing to contribute $100 if the module can allow multiple payments over time.

POLISH YOUR IMAGE
Graphic Design, Website Design & Engineering, Marketing

http://www.PolishYourImage.com

Skilatchi's picture
Offline
Joined: 11/09/2010
Juice: 7
uc_hotel

Would this be able to tie in with the uc_hotel module? If so i'd also be willing to contribute towards it.

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
uc_hotel compatibility

Hey Skilatchi!

I'm not familiar with the uc_hotel module personally, but after glancing through the description it seems like there is a good chance it will. The down payment is setup as a "Feature" for products that you can enable so it works with the normal Ubercart checkout flow nicely. Do you know if uc_hotel does anything in particular that might be likely to cause a conflict (any major changes to checkout flow or product configurations, etc.)?

If you're up for $100 I think we're all set to release this!!!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Pretty close to ready to go!

Hey all!

Sorry to disappear - Mollom was blocking me out saying all my comments were spam - nice Smiling

Finally had to file http://drupal.org/node/956310 since even the Ubercart.org contact form wouldn't let me send anything. Hope it is all fixed now!

Alright, well the original $300 pledged was upped to $500 so it looks like if it does the trick for uc_hotel and that brings the final $100 we should be good to go!

Anyone have a good idea on how to collect the funds? Maybe ChipIn or just straight PayPal? I'm super excited to get this out to the community!!!

Joshua

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Working now?

Mollom has been having some issues preventing me from posting (http://drupal.org/node/956310). Just testing to see if this one will actually get up there.

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

nasheet's picture
Offline
Joined: 09/04/2010
Juice: 16
Re: $1,000 Partial Payment Module

I am also interested in contributing. I will chip in $100. I don't nearly need the type of functionality you are talking about. All I need is the option to process a portion of a ticket price using PayPal Website Payment Standard.

A User would select how many tickets they want to purchase, and be able to opt to pay a deposit (that I specify). Then I need the rest of the money that the user owes sent in an email with a message (which acts as their ticket reservation), which they will pay in person when they show the paper that shows how much they owe.

Thanks for working on this, please let me know if these features are available and when I can contribute.

somatics's picture
Offline
Joined: 08/18/2007
Juice: 121
Re: $1,000 Partial Payment Module

Subscribing

ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
Re: $1,000 Partial Payment Module

I am willing to chip in $100.

I need a way to allow for deposits and multiple payments w/o cancellation options via PayPal. [So each "payment" would be associated with a new paypal transaction.]

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
ChipIn!

I think we're good to go! Probably easiest way to do this is via ChipIn:
http://covenant.chipin.com/ubercart-partial-payment-module

Only need $500 since the original contributor upped his $300 to $500 so got us half-way there.

If we can get the ChipIn deal finished this week we'll get the module out next week.

Happy Thanksgiving!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

kencushman's picture
Offline
Joined: 11/24/2010
Juice: 3
Partial Payment Modules

We are a seminar company and we are looking for a module that will allow our students to make partial payments in any amount.

These are possible scenarios:

1) a student registers for a workshop and pays in full
2) a student registers for a workshop and wants to make a deposit
3) Someone else registers a student for a workshop and pays for them in full
4) Someone else registers a student for a workshop and pays a deposit for them
5) Student is already register and someone wants to make a payment (partial or in full for them)

So what we are looking for is something where our customer can make a Full Payment or has an option to make a fixed deposit amount and an option to make a partial payment in any amount. We would also need the ability for them to pay the balance in full or make an additional partial payment or the ability for someone to make a payment for someone else.

Can this partial payment module handle this? Or can you tweak it to handle this. Depending on the capeability we would be willing to pledge $100 to $200.

Please let me know.

Thanks!

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Seminar Usage

Hey Ken!

The module will hit a few of these use cases. Not quite sure how having someone else pay the deposit/full for them would work. Might be another module or maybe just a set of attributes?

Fixed deposit amount is already in the module. Multiple partial payments can be made based on an amount you set (maybe can be switched to be user configurable?). I think out of the box this will take you pretty close to what you're looking for.

We just need $300 more via ChipIn and we can get this thing release and a few of these new feature requests in place!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

DanClarkePro's picture
Offline
Joined: 09/22/2010
Juice: 31
How's payments coming?

Hi Joshua, we are eager to use this module for a current project and are curious how the payments are getting on?

Thanks.

-Dan.

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Warmer, warmer...

Hey Dan!

With your $100 and ambereyes $100 we're getting closer. Just PM'd sadist, jonezy09, Skilatchi, and somatics so if a few of them could add in too that would do the trick!

nasheet called me and didn't actually really need the module, but we did some custom development for her project so we can contribute a bit of that back to this module. Talking with kencushman and PolishYourImage (same project turns out) and might be a somewhat similar situation.

I think we're getting there - do you have a deadline so people know when they need to contribute by?

Thanks for checking in, Dan!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

Yomofu's picture
Offline
Joined: 06/08/2009
Juice: 9
Is there a working demo of your partial payments module?

I'll gladly chip in the last $300, right away, if I can see a working demo of this module in action.
I'm making a site for a travel/tourism company, that requires a %10 deposit to hold a place, and then the balance 1 week prior to the start date of the trip. This module sounds like it might be the perfect solution.

Best,

Arthur

Madness takes it's toll ...

... please have exact change.

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Perfect!

Hey Arthur!

That would be perfect - I've been really hoping to get it launched ASAP!

If you check out http://www.kohlskicking.com/ and see one of the camps (http://kohlskicking.com/camps/texas-showcase-camp-dallas-area) you can see it in action from a user side.

Feel free to give me a call (515-868-6860) or email joshuas@covenantdesign.com and I can send you screenshots of the backend too!

Would love to get this released tomorrow so the sooner we can move on this the better!

Joshua

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
Re: $1,000 Partial Payment Module

Where are we on this module.

I really need to get access so I can test it and do any customization for my site sooner than later.

Are folks holding off chipping in for some reason?

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
In process of releasing

Will send you a PM as well, but just to let everyone know, we're applying today for an SVN username. As soon as that is approved, the alpha release of the module will be posted. Stay tuned!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

iub98's picture
Offline
Joined: 12/03/2010
Juice: 10
Re: $1,000 Partial Payment Module

I'm looking forward to this module. Thank you thank you!

ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
Good work!

Okay it works really well. I have only two requests. If I get some time tonight, I may do some hacking and scratch the itch myself.

  1. Add full price amount to button label.
  2. Show due date and amount for down payment in feature list.

Otherwise, it works well for down payments.

I still need multiple payments, so I will relook at uc_recurring and see what is possible.

thanks,
Katrina

ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
Re: Good work!

So okay, I prefer this module's method for subsequent order processing. Can this module be extended to handle multiple payments not just down payments and remaining balances? I am willing to help extend it.

Sorry I deleted this message by mistake.

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Sure can!

Hey Katrina!

It sure can support multiple payments - that was actually written in the original version, but we didn't need it for our client so didn't bug test it out.

If you want to give adding those features a try, please do! Otherwise, please throw it into the Issue queue as soon as the module is approved - sound like good improvements.

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
Re: Good work!

My answer to #1 is to modify the downpayment form element as follows.

   
$form['downpayment'] = array(
  '#type' => 'select',
  '#description' => t("Full payment balance due on @date", array('@date' => date(UC_DOWNPAYMENT_FORMAT_DATE, strtotime($downpayment->date)))),
  '#title' => t('Payment'),
  '#weight' => -1,
  '#options' => array(
     0 => t('@full In full', array('@full' => uc_price($form['node']['#value']->sell_price, $context))),
     1 => t('@amount Down payment', array('@amount' => uc_price($downpayment->amount, $context)))),
);
ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
And for #2 ... function

And for #2 ...

function uc_downpayment_feature_product_save(&$product) {
  $context = array(
    'revision' => 'formatted-original',
  );
 
  $node = node_load($product->nid);
 
  $args = array(
    '@product' => empty($product->model) ? t('this product') : t('@model of this product', array('@model' => $product->model)),
    '@amount' => empty($product->amount) ? t('the same amount as the product selling price') : uc_price(($node->sell_price - $product->amount), $context),
    '@regular' => $product->intervall,
    '@intervals' => $product->number_intervals,
    '@downpayment' => uc_price($product->amount, $context),
    '@duedate' => date(UC_DOWNPAYMENT_FORMAT_DATE, strtotime($product->date)),
  );

  // Build the feature's data array.
  $data = array(
    'pfid' => $product->pfid,
    'nid' => $product->nid,
    'fid' => 'downpayment',
    //'description' => t('When @product is purchased with down payment, add @intervals down payment(s) each with the amount of @amount.', $args),
//    'description' => t('When @product is purchased with down payment, add a down payment with the remaining balance.', $args),
    'description' => t('When @product is purchased with @downpayment down payment, add a payment for the remaining balance of @amount due on @duedate.', $args),
  );

  // Save the product feature and store the returned URL as our redirect.
  $redirect = uc_product_feature_save($data);

  if (empty($product->pfid)) {
    $product->pfid = db_last_insert_id('uc_product_features', 'pfid');
  }
  uc_downpayment_product_save($product);

  return $redirect;
}

Now to look at all that commented out code ...

iub98's picture
Offline
Joined: 12/03/2010
Juice: 10
Re: $1,000 Partial Payment Module

Maybe I missed something, but is this module available for download now? Thanks!

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Nothing missed yet

Hey lub98!

We're waiting on drupal.org to approve it, but in the meantime I've sent it directly to those who requested and contributed. Let me know if I can help!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

ambereyes's picture
Offline
Bug Finder
Joined: 05/19/2008
Juice: 98
Re: Re: $1,000 Partial Payment Module

Joshua sent me a alpha copy, and he is currently trying to get it up on d.o.

Katrina

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Contributions appreciated!

Hey all!

We went ahead and are launching this with hopes that folks will come through with the last $185 on http://covenant.chipin.com/ubercart-partial-payment-module

Thanks!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

ryanschmidt's picture
Offline
Joined: 11/17/2008
Juice: 235
Re: $1,000 Partial Payment Module

Awesome! I just found this page. Excited to look into this further. Any idea on when it will be released?

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Waiting approval

The module is awaiting approval at http://drupal.org/node/988244

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

kaijencheng's picture
Offline
Joined: 10/07/2010
Juice: 11
Re: $1,000 Partial Payment Module

wondering any news ??

zeezhao's picture
Offline
Joined: 04/23/2008
Juice: 956
Re: $1,000 Partial Payment Module

subscribing.

george@dynapres.nl's picture
Offline
Joined: 01/02/2008
Juice: 202
Re: $1,000 Partial Payment Module

subscribe

---
George on Drupal

end user's picture
Online
Joined: 01/11/2008
Juice: 916
Re: $1,000 Partial Payment Module

Hmm this looks interesting and would allow me to offer item on my site that I normally don't carry at my physical location store but I can order with in a few days and have them at the store either for store pick up or delivery.

kirtimansharma's picture
Offline
Joined: 04/25/2010
Juice: 16
Re: $1,000 Partial Payment Module

subscribe

garydev's picture
Offline
Joined: 03/02/2011
Juice: 24
Installed

Hello,
I installed this module, configured it by following the README.txt instructions. The Partial Payment Method is initiated in the checkout pane and the partial payment is indicated in the Order Review pane. Upon Submit Order and going to Paypal - only the total amount of the purchase is passed to Paypal.

Any advice on what I am doing incorrectly?

Thanks in advance.

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Link?

Hey Gary!

Got your voicemail today - thanks for calling. Sounds like you've got things in good order - I can take a quick look if you can pass a URL and login my direction?

Joshua

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Git Sandbox Project in Place!

After sitting in CVS account approval purgatory for months (https://drupal.org/node/988244) the Promised Land of Git is available and we had time to get this put into my sandbox.

Some quick links that will be helpful:
http://drupal.org/sandbox/covenantd/1103142 - the sandbox project
http://www.covenantdesign.com/blog/ubercart-downpayments-module-how-open... - blog with screenshots and kudos to everyone who contributed!

Now we're just checking it over one more time before we apply for full project access - hopefully that will take less time than last time!

Issues should now be filed on the project page so we can easily track them. Wrapping up a few projects, but will get to any issues after that!

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

grundum's picture
Offline
Joined: 04/02/2011
Juice: 16
Relative Due Date

Hi,
Thanks for this great contribution, a really helpful uc module. Just one question: could be possible to set the due date in terms of time since the downtime and not of a fixed "expiration" date? I mean, some of the products of my project can support downpayment but in this case the due date needs to be related to the downpayment date not a given date in the calendar.. Some idea about this? any tips?
Thanks again and excuse the n00bness..

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Issue queue

Great question for the issue queue - see http://drupal.org/node/1103178

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design

ryanschmidt's picture
Offline
Joined: 11/17/2008
Juice: 235
Re: $1,000 Partial Payment Module

This sounds great! When will it be available on drupal.org?

Covenant Web Design's picture
Offline
Joined: 01/09/2009
Juice: 132
Module Live and Posted on Drupal.org

Joshua

Joshua Stewardson
Client Consultant
Covenant Web Design