Changes to Check out

Events happening in the community are now at Drupal community events on www.drupal.org.
gordon's picture

As a part of the changes that are going to be done for v4 of E-Commerce I am going to be completely redeveloping the Checkout to use things like #multistep and also some changes to the checkoutapi() so that we can do things like have multiple checkout functions within a single module, and getting rid of the ec_tmp table.

As part of these clean ups I am hoping that this will help to make it a bit easier to develop for the checkout, and make it a bit more flexible.

So if any of the developers out there who have done things with the checkout please let me know of any changes that would make the development of checkout much easier please let me know.

Gordon.

Comments

Glad to hear it!

dsamuel's picture

This is great news!

I have been experimenting with an ecommerce platform, and ended up choosing a WordPress-based system simply because of the checkout process. I am doing digital downloads, and I want a very streamlined process for this.

If you would like to get my point of view on what makes a good ecommerce platform, you can read eCommerce Digital Download Wish list and Improvement Ideas for the WordPress Shopping Cart (the latter being less relevant, but possibly insightful). These are of course my opinion, but if you can get some good ideas from those posts, you are welcome to them!

My main problem with using ecommerce is the cumbersome registration process. At a minimum, login and registration should be on the same page, user ID should be the email (less to enter, less to forget), and there should be full control over what a buyer must and could enter to register. For example, with a digital download, all I need is the email address, and I would like to have a name. For physical goods, the name is necessary, as is an address.

I seem to remember that in the system as it stands now, buyers have to enter all of their information twice! If I have that right, then that really must be changed.

I hope all this helps.

I look forward to seeing what you come up with. I hope I like it well enough to switch my experimental platform to drupal :).


allergies

I agree...

rickvug's picture

The most important change that needs to be made is simplifying the checkout process to take less steps. This is one of the main complaints of the Ubercart folks that caused them to make their own software. Hopefully re-coding the system opens some doors towards simplification.

Rick

The problem with the

Rowanw's picture

The problem with the Ubercart approach is that it still requires just as many 'steps'. For some reason they've simply merged 3 pages into one page, yet they kept the same methodology of a "next" and "previous" work flow. As a result the user is confronted with an overload of forms and information in one page.

A single checkout page should be just like the final 'review' page in E-Commerce, where the user can see all the details at once and make any changes necessary with an 'edit' link for each piece of information. If they haven't had a chance to enter their shipping address yet, they would just see an 'edit/add' link which would take them to their address book, upon completion they'd arrive at the checkout page again with their address filled in. Same for payment method, although a separate page may not be necessary for this.

Aye, I've felt that way

rszrama's picture

Aye, I've felt that way about our setup, too. :P I did go back and make it so you can default the forms to expanded and not use the next buttons as a result.

I think it'd be great for a flexible form like sime discusses above... Ultimately, I wish I had been a better coder when doing the Checkout API, but that's just where I happened to start. ; ) A flexible form that could use multiple pages or combine into a single form would be too sweet a deal.

Actually at this stage I am

gordon's picture

Actually at this stage I am only talking about redeveloping the checkout api, and not how it is implemented.

If I can make implementing processes for the checkout easier then we may be able to make the process simpler for users.

However all checkouts will always have 2 or 3 steps to get the final total. I could move all of the pages onto the review page, but then when changes are made other things are going to be impacted.

eg. Changing your delivery address can effect the shipping, and tax. Changing the payment method can affect payment method fees.

And also moving these processes into the review page will make it impossible to use payment gateways like paypal pro.

--
Gordon Heydon

Can you tokenize checkout components?

dsamuel's picture

If you could tokenize the various checkout components, then the store operator could customize the checkout process quite a bit, which would be great. That way, if changes to delivery address or payment method causes changes to the total, the checkout could be designed with more pages. In other cases, it could be designed with fewer pages.


allergy information

Ah, check out as in

sime's picture

Ah, check out as in "checkout", not "look at".

Something I would experiment with is being able to load up all the pages and combine certain pages together. This is an advance feature, that might not always be possible to implement. But to explain by example:

  1. Custom script (let's personify it as "CS") inserts itself at page one.
  2. CS asks cart for a list of other pages (say you want to combine shipping and address, for example)
  3. CS loads all forms, and alters them to make itself the active handler
  4. CS renders all forms them to the same page.
  5. On submit, CS grabs validation control, and then passes sections of the form tree to the appropriate validation code of the original modules.
  6. Once this is done, proceed to review or something.

I think of this as being ultimate control, because you could split the cart pages into separate javascript tabs. A really smooth user experience would be had, and some dancing.

I'm not sure of all the

rszrama's picture

I'm not sure of all the coding particulars (b/c I never got around to doing it myself), but it would definitely be cool to be able to combine pages at will. That was a goal that hasn't (and maybe won't?) be realized for Ubercart... making it possible to display it as a multi-step form or a single page. Many people prefer the more "wizard"-y style approach that guides users step by step through the checkout process and focuses them on just a single part of the form at a time. Others just wanna toss up a mondo form and be done with it. A cart that could offer both would be awesome, and I feel like if I had just known a little better when designing the checkout API that would've been easier for me to implement. Now it would be a headache. : P

idea

neclimdul's picture

I know Gordon and I have talked about this in the past too and I think this is an important step for ECommerce. I'm looking forward to helping work this out as I have time.

e-Commerce Module

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: