29 replies [Last post]
webengr's picture
Offline
Joined: 11/05/2008
Juice: 51

I see we can create an order for an existing customer (drupal login)

Best I can tell it puts the order into "pending" unless perhaps I have
the payment already or know the customers credit card and put it in
while creating the order (like if the customer gave me card over phone).

I may be thinking about drupal e-commerce, but for a moment I had thought
it may could put order into the customers cart so that the customer could
be told they have an order and they could put in the credit card and complete
order payment?

?

iggi's picture
Offline
Joined: 01/11/2008
Juice: 9
bump

This seems like a common problem for any retail operation.
Being able to manually create an order and only require the client to login and enter payment would be a real time saver in many situations.

Is someone working on this already?
Perhaps a solution exists that I'm not aware of?

Thanks,

--

Ryan's picture
Offline
Joined: 08/07/2007
Juice: 15422
Re: bump

I haven't seen any solutions pop up, but I imagine such a thing can be easily achieved either through the PayPal module or by using a limited version of the credit card terminal form that I use for order admins.

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
Order System

I wondered if a customer places tries to place an order.. but
logs out before making the payment... will the order be lost or
saved for next login.

http://www.ubercart.org/docs/developer/247/order_system
"When a customer goes through checkout, an order is first created when they review it prior to confirmation...The order's status is set to In Checkout, and it is updated to Pending once checkout is complete. "

According to the above the order is created and saved... If so would it not be possible to have an admin backend emulate upto review and leave the order for the customer "checkout" so they see it next login?

Riki's picture
Offline
Joined: 01/10/2009
Juice: 196
Re: Order System

after some searching I realize how insanely useful this would be. Basically just create the order and allow them to login and pay for it using credit card or paypal.

Ideally if they could just be directed straight to the checkout screen that would be the ultimate!

If anyone find any other solution for this please let us know.

- Riki Babington
www.eat3d.com
Feed Your Brain!

enzoch's picture
Offline
Joined: 02/14/2008
Juice: 28
Re: Re: Order System

The only way I am thinking of is by modifying the customer's order template.
You can find it at this folder: ubercart/uc_order/templates.

By reading the $order variable,
you will be able to check whether the order is still in "pending status" or not.
If it is, display a button to pay it via paypal.

One of the drawbacks is:
When you choose to email the invoice to the buyer,
the button cannot be disabled even when the order status has been moved from "pending".

DeskRocket's picture
Offline
Joined: 11/30/2007
Juice: 13
Pre-loading Orders

It would be great for those of us who occasionally sell on other sites (such as Ebay, yahoo, amazon) as well as through our UC site. By preloading an order and sending a link to a customer, I can 1) have them checkout through my merchant account at my UC site which reduces PayPal fees and nastyness, 2) I have all of their customer information in my UC database, for sending out newsletters and generating repeat business and 3) I make use of my ability to download to my finance software.

Just some thoughts.

Alan

glennnz's picture
Offline
Joined: 01/20/2009
Juice: 451
Re: Pre-loading Orders

Is anyone working on a solution for this?

Being able to manually create an order, then allowing a user to pay for it with their credit card?

Thanks

Glenn

sparrish26's picture
Offline
Joined: 10/05/2009
Juice: 2
Re: Re: Pre-loading Orders

I came up with a fairly novel way to handle this. Set up an email field using CCK on the product content type. Then use rules + token to send a tokenized email to the recipient specified in the node email field. Just add a link to the node in the email, and when you create a new node, it will automatically send the recipient an email with a link. They can add their order to the cart and checkout.

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
wish list module

Something we may want to play with, the wish list module, which was mentioned in another thread. Maybe it is close enough to copy and modify for a pre order situation?

It is available for 6.x

http://www.ubercart.org/contrib/1403

But note, under Features:

"This module enables users to create a gift list for use as a personal
shopping list or a public gift registry. An 'Add to wish list' button
is added wherever there is an 'Add to cart' button."

So this module does not preload the cart, it gives the cart user the option to load the cart during session. That means it would be incumbent upon the customer to select the prepared order and put in the basket.

Perhaps a rewriting of the module could give the administrator/manager an option to "save basket" and then put it to a table like wish list does, then the customer has to understand they have to select 'Add Invoice to Cart' or the pre-order/invoice/bill or whatever won't go into existing session.

OR maybe the uc hook can not be a button to add, but force the add with no choice on the drupal user's behalf?

trey's picture
Offline
Joined: 02/07/2010
Juice: 6
Re: wish list module

Just subscribing to this thread and hoping it is days away from release... Laughing out loud

cosmogenesis's picture
Offline
Joined: 06/01/2009
Juice: 9
Re: Order System

This is not the case because in addition to status being set to 'in_checkout' there is also still a cart value in the uc_cart_products table. This is what leaves the cart open.

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
Drupal 6 - maybe preload orders before login?

The work around sounds interesting, using a token with email, but it does not "preload" the order persay, it depends upon user log in, but yes it sounds very clever..

As to this feature that, btw was in drupal e-commerce which they called invoicing and used "add transaction, As afore mentioned...

...after some searching I realize how insanely useful this would be. Basically just create the order and allow them to login and pay for it using credit card or paypal....

Any chance the next version of Ubercart for Drupal 6 or 7 could have hooks for this?

Riki's picture
Offline
Joined: 01/10/2009
Juice: 196
Re: Drupal 6 - maybe preload orders before login?

Yeah the more I think about this, the more I want it hahah. Im surprised this feature isnt requested more.

- Riki Babington
www.eat3d.com
Feed Your Brain!

RSTaylor's picture
Offline
Joined: 04/02/2008
Juice: 99
Brainstorming

I've been thinking about this quite a bit too, but need more minds to iron out the details.

Here's my vision:
A. Admin creates an order using the normal admin order creation process, but not filling in addresses or payment method, and when the order is saved, an invoice is sent to the customer.
B. The invoice details what is due, and has a message telling the customer where to login and pay their bill, and when it is due.
C. Customer logs in and goes to a tab like the user order history tab (or even on the same tab, in a separate table above the order history). This table displays any bills that the customer has, along with a link to "Pay now".
D. Customer clicks the "Pay now" link, and their cart (if any) is cleared and reloaded with the 'product(s)' on the order, the session variable is set to the order id, and they're sent to checkout.
E. Customer checks out and pays normally. From this point on, everything is normal.
F. Admin will probably need another report regarding bills, their due date, and their status (paid, partially paid, overdue, not yet due)

Potential Problems:
A. There would need to be a way to mark an order as a bill rather than a normal order. Order status could be used for this, but that's messy since then you have one field serving two purposes. So there should probably be an order_type field.
B. Also, for billing, it's almost certain that many use cases will need a 'date due' field. And they may need another status indicator specific to bills that takes due date and/or partial payments into account. For ease of reporting, I think any new fields should get their own table related by order_id rather than being stuffed into $order->data.
C. Should have a separate invoice template for bills, since they won't usually have billing info and payment method, and will have different text/messaging than regular orders.
D. Clearing the cart to go to checkout should probably either have a confirmation (if there's anything in the cart) or restore the cart after checkout completed.
E. Variable/partial payments will probably be a common use case (ex: customer can only pay $20 towards the $40 due right now). Ordinarily, variable prices are done when adding an item to the cart, and the price entered is the one that goes on the order. But in this case, the order is created first and you wouldn't really want to change the amount due, so some other approach would be needed to allow the customer to pay less than the total due. When checking out with a 'bill' type order, the customer should have a pane to enter the amount that they're paying. (This should probably be an option, since some admins may not want to allow partial payment.)

Additional use cases/features that would probably be wanted:
A. In some uses, a customer could reasonably have multiple bills for different things, due on different dates, of different amounts. May be nice to have a way to show 'total due' (or 'total outstanding', including bills not yet due) and a way for them to pay multiple bills at once, as well as a way for admins to see such summary info.
B. Admins will want a way to see which customers pay regularly and which don't.
C. Admins may want some trigger to occur when a bill is overdue, or a customers total due exceeds a certain amount. (Certainly a periodic 'your bill is overdue' email, probably with configurable scheduling.)
D. Some admins may want the ability to 'roll forward' a bill, canceling the old one and adding it's amount to the new one (possibly with a late charge) rather than having multiple bills outstanding. They would prefer this to be either automated or a one-click process, rather than manual.

I think that would be quite useful, although a bit complicated to build. Curious to know what others think. As a businessperson, what would your must-have features be?

meecect's picture
Offline
Joined: 10/10/2009
Juice: 13
Re: Brainstorming

This would be a killer feature and something I'm perfectly willing to volunteer to help make happen. It's an essential component in my opinion.

I run a web consulting service, so the idea is I do some work, then I create an invoice for that work and send it to the client. They click the link on the invoice, which takes them to my site where they can pay the invoice.

There are all kinds of other integrations we can do if we have that feature. We can integrate with the drupal 'project' module, for example, or various issue trackers.

We can use time tracking modules to record work done and then have invoices automatically generated based on a specific project.

Let's go! We need a solution for this.

mpaler's picture
Offline
Joined: 10/12/2009
Juice: 5
Re: Re: Brainstorming

+1

Seems like Ryan's solution in #2 above is the easiest route to go.

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
disagree, feature needs to be core?

Having the order preloaded then forcing the payment method was not what I had in mind.

And as for automating the notifications, I'd settle for a kiss module for now that simply could set the basket for a drupal user. Which means ubercart has to store baskets between logins.

Note that the competitor, drupal ecommerce 5.x (core) had a module called "invoice" that is not in the testing release candidated for 6.x and the author Gordon had said on a thread it would not be in the first stable 6.x release.
http://drupal.org/node/610666
Another thread suggests that for 6.x the invoice module will dropped to be built into ec_store in the future. NOTE "invoice" means something different for drupal e-commerce than what it means for ubercart.

Another ubercart thread suggested that their was not enough hooks in 5.x to support preloading a shopping cart for a customer. I don't know if ubercart 6.x core has hooks in the order/checkout process so that it would look for shopping basket from a previous session.

Looking at http://www.ubercart.org/forum/support/2208/administration_process_invoices
"Yeah, products in a cart are related to a user account or session. I think there is a wish list module floating around somewhere, but I'm not sure if it would let you fill in someone else's wishlist."

I kind of would have hopped a shopping cart system to save the basket for future logins, not in the session. If ubercart saved a user's basket, then one would expect an admin could modify that item in the database.

zeezhao's picture
Offline
Joined: 04/23/2008
Juice: 956
Re: Use create order to invoice customer?

subscribing

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
Just keeping the conversation

Just keeping the conversation alive...

How about when a person logs in their session shopping cart is loaded by hook_user
from a table that the admin put orders into for that...

The wish list module uses that hook in a sort of the opposite way... it takes current session products
and puts them into a table, we would want to do the reverse...
excerpt from uc_wishlist

/**
* Implementation of hook_user().
*
* When a user logs in, any products on the wish list associated with the
* current session are moved to the newly authenticated user's wish list
* (or if that does not exist, the anonymous wish list is assigned as the
* user's wish list).
*
* Also, provide a link to the user's wish list from the user's profile page.
*/
/

but note it appears that the uc_wishlist modules puts stuff from the wishlist into cart by having the human
select it... not directly in a function Sad
so no cut paster from here...

so whish list is not going to be the way to force items from a table into the cart,
but it does give an example of having tables with product items and running beside
the ubercart modules to modify pages about wishlist stuff... so it is still a good module to look
at to get an understanding of possibilities...

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
maybe we don't have to reinvent the wheel

I got to thinking... since ubercart is a fork of drupal ecommerce... and since e-commerce use to have an invoice module...

I wonder how far apart the code spread... So maybe we should look at the hooks this is using and see how far off they are in ubercart:

http://drupalcode.org/viewvc/drupal/contributions/modules/ecommerce/invo...

Note the definition for "invoice" in this module probably is different that than for "invoice" as used currently in ubercart, so if some code is used, may be best to use a different word than "invoice" for functions and hooks ..... maybe "bill,"
"invoicebill" or something else like "uc_billinv" so long as it is unique....

/**
* @file invoice.module
* Create invoices which can be sent to members for NAVA
*/

Andy's picture
Offline
Administrator
Joined: 08/07/2007
Juice: 1151
Some lies never die

The invoice module from the Drupal E-commerce module probably will not help much since Ubercart is NOT a fork of Drupal E-commerce. The only code they share, or have shared, is api's and hooks for things like UPS and Authorize.net which are shared by all php based carts.

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
Apologies, Someone in a post

Apologies,
Someone in a post at http://drupal.org/node/188814#comment-2170868
suggested ubercart was fork.... Thats the problem with the web and gossip and ASSuming...

The api's are close enough on drupal 5 I could make a module by looking at the code of both projects for similarities... So it did seem so.

HERE is a webpage with more information to refer persons to Andy:

http://www.ubercart.org/comment/44037

And here is a web page talking about a possible future 'fork' of ubercart...

http://www.bywombats.com/blog/01-14-2010/rose-any-other-name
http://www.drupalcommerce.org/

spatical's picture
Offline
Joined: 03/23/2010
Juice: 15
Has anyone actually started building this module yet?

I am in need of the exact bill-pay type features that have been discussed on this thread for months. Has anyone actually started developing a module for this idea? If not, then I am going to start coding...

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
do start

I do welcome your looking into this, and would be willing to bounce ideas or even host a sandbox for you if you need it.

tarre's picture
Offline
Joined: 11/12/2009
Juice: 14
something simple (that already doesn't work!)

hi!

i've compiled a possible solution, i think is great but i'm not able to make it work.

Please see: http://www.ubercart.org/comment/52552

any help will be wellcome! =)

jeffam's picture
Offline
Joined: 05/13/2009
Juice: 16
Try the Masquerade Module

Hi All,

I've been using the Masquerade module to put items in users' carts for them. Perhaps that is a solution for some of you.

Regards,
Jeff

naughty_david's picture
Offline
Joined: 01/04/2011
Juice: 4
Re: Use create order to invoice customer?

subscribing..!

grindflow's picture
Offline
Joined: 12/15/2010
Juice: 85
solution found.... (i'm still

solution found....
(i'm still trying to figure out how to code though)

http://www.ubercart.org/forum/support/8360/create_manual_order_full_paym...

webengr's picture
Offline
Joined: 11/05/2008
Juice: 51
Re: Use create order to invoice customer?

masquerade would be okay if you have their credit card,
but if you put things in the cart as them.
does the order preserve so when they log in a week later they could pay instead?

Also I would think they could delete the item from cart.