Forum OpenACS Q&A: Remove selected e-commerce pages

Collapse
Posted by Jim Withington on
I am new to the OpenACS e-commerce module and am looking at a site
that has already been developed.  I am interested in removing certain
pages from the e-commerce page flow (like mailing address, etc.).  I'm
interested in determining how difficult this would be for a reasonably
good CGI programmer to do.  Is there some existing information on how
to do this?

thanks.  Jim.

Collapse
Posted by Bart Teeuwisse on
Jim,

the basic workflow in ecommerce version >= 4.5 is as follows:

  1. Shipping address
  2. Check order
  3. Shipping method
  4. Billing address
  5. Payment info
  6. Submit order
  7. Order complete!

Older versions do not solicit the billing address but otherwise have an identical work flow.

In between some of these user pages are pages that do not produce output visible to the user but perform various tasks going from one checkout step to next. Going from 'Shipping method' to 'Billing address' for example, an intermediary page calculates the total price -including shipping- of the order and stores this in the database.

You can leave pages out by specifying a different next step to go and thereby skipping one (or more) step(s). But you have to take care that you are not skipping any of the essential intermediary steps such as the one mentioned above. Also be aware that the further you get into the checkout process the more checks are performed with each check to make sure that visitors are checking out a legitimate order. You almost certainly will have to adapt these checks to whatever you checkout sequence should look like.

Having CGI experience is certainly an advantage but most of all you need to be familiar with OpenACS. Specifically how ad_page_contract works and how orders and their financial transactions are handled by the ecommerce package.

Your question indicates that you'd like to remove more than one step from the checkout process. If for some reason all you want to is to skip the 'Shipping address' step then (in ecommerce >= 4.5) you don't need to change the code at all. Simply mark all your products as NOT shippable and the 'Shipping address' will be passed up upon.

/Bart

Collapse
Posted by Jun Yamog on
Hi Jim,

I have done this stuff in semizone.com, although that was ACS 3.4.  But I think Bart has ported this e-commerce ver to 4.5.  I think what you should also take note of is that the shopping cart and ordered items are in the database.  From what I remeber shopping cart items are retrieve by the user_id.  And the order items are from order_id.  You can skip or add pages as long as you make sure the db has the correct info as Bart has advised.

I think its not difficult to change the flow.  But changing what happens on the items is a different matter.  Anyway most of this info are ACS 3.x based, but I think some still applies.  Good Luck.