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

Posted by Bart Teeuwisse on

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.