[Zope] Another Zope E-Commerce Site Online

Brad Clements bkc@murkworks.com
Fri, 8 Dec 2000 09:16:56 -0500


On 8 Dec 2000, at 8:14, Cees de Groot wrote:

> >The nice thing about the checkout sequence is that you can move 
> >backwards at any time without losing the entered data. Also you can 
> >jump out to shop more, jump to the privacy, shipping and returns policy
> >and your entered data isn't lost.
> >
> As my ebusiness site has trouble with exactly that point, would you care to
> elaborate on how you accomplished that? It'd be nice to peek at someone
> else's solution before running off and reinventing wheels :-)

When users proceed from Shopping Cart to Checkout, we create an 
SQL record for the order. This record holds their billing and shipping 
information, charge card result code (not the credit card number of 
course).

If you examine the checkout sequence, you'll see that the only way you 
can leave it (other than by the nav bar, which will soon be fixed too) is 
by clicking on an image.

All of these images are part of the form.

Clicking on any image causes the contents of the form to populate the 
database record. If you clicked on 'next', we also validate your inputs.

If your input passes validation, we increment a "nextPageAllowed" 
SQLSession integer. This controls which page you can move to.. So 
naturally you can move backwards to any page you've completed, we 
retrieve the data from the SQL record to populate the form.

When you hit page 3, we populate a LINEITEMS table by dumping the 
contents of your shopping cart (which is an SQLSession dict). During 
the population of LINEITEMS, we calculate sales tax, shipping costs, 
etc and record all the costs in the ORDER record.

We then display on step 3 the LINEITEMS records and the costs from 
the ORDER record, since this is what the actual cc charge will be 
based on.




Brad Clements,                bkc@murkworks.com   (315)268-1000
http://www.murkworks.com                          (315)268-9812 Fax
netmeeting: ils://ils.murkworks.com               AOL-IM: BKClements