Jim,
the basic workflow in ecommerce version >= 4.5 is as follows:
- Shipping address
- Check order
- Shipping method
- Billing address
- Payment info
- Submit order
- 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