Is e-commerce feasible with Zope?
Hi all, I'm a Zope newbie; I working for a little support company that realizes (above all) dynamic Web sites with Apache + PHP; I've already worked with these tools but I feel that PHP is too limited for this complex duty, mostly because I'm accustomed from long time to such a powerful language as Python; thus for my next project I would try to employ Zope+Python instead. The problem is that as with many other commercial project I've a strict deadline to couple with. For this reason I need at least a confirmation that Zope is the right choice for this project; if it is, I've no problem to invest some time to learn how to use it efficiently. Obviously I would be very happy if you will give me some hint on how to proceed also ;-) The site I must realize is a e-commerce site very similar to amazon's one. The products catalog will reside in another site (not handled by us), and from this site when a customer clicks on a product, a script on our site will be called with the product's code as parameters. The script will add the product to a shopping basket; later the customer can proceed to the checkout. Here she/he will be able to create an account on our site for later shopping. What I need is: - A means to implement the basket; with Apache+PHP I would use a simple file containing a list of product codes, or an SQL table. - A means to set a cookie on the client browser and to associate the it with a basket; with Apache+PHP I would use a SQL relation cookie->basket, or I would put in relation the basket filename with the cookie. - A means to store the products database; with Apache+PHP I would use a simple SQL DBMS. - A means to store customer informations on the site; with Apache+PHP I would use another SQL table, with a relation one to many to store the (possibly) many customer's addresses. - I would let the site to be accessed both via https and http. - The site must be easily internationalized, thus I must be able to replace all the text in the pages with a translated version; with Apache+PHP I would use an include file where to store the text messages as PHP constants. How can I implement all this using the "Zope's Zen"? ;-) If you need some other informations I would happy to give them to you. I greatly appreciate any kind of help. Bye, -- Diego | To reply remove the `x' and swap the | Sorry for my Dainese | words around the `@' in the address. | bad English.
----- Original Message ----- From: "Diego Dainese" <xdsi@xddainese.unive.it> To: <zope@zope.org> Sent: Monday, February 07, 2000 8:51 AM Subject: [Zope] Is e-commerce feasible with Zope?
The script will add the product to a shopping basket; later the customer can proceed to the checkout. Here she/he will be able to create an account on our site for later shopping.
What I need is:
- A means to implement the basket; with Apache+PHP I would use a simple file containing a list of product codes, or an SQL table.
- A means to set a cookie on the client browser and to associate the it with a basket; with Apache+PHP I would use a SQL relation cookie->basket, or I would put in relation the basket filename with the cookie.
I have implemented something like this for byproducts.com. I'm storing the carts in the ZODB. This is not desirable if your site is very busy, though, because there can be issues if you have lots of concurrent writes going on. (Note that, from what I've read in previous threads, I would have to have 5 people create new shopping carts at the same instant in order for one of them to run into an error. That's a lot. When I said that the site would have to be very busy, I meant *very*.) There are two Zope products, FSSession and SQLSession which should handle these things quite easily for you.
- A means to store the products database; with Apache+PHP I would use a simple SQL DBMS.
You could store the products database in the ZODB or in a SQL DB. Which one you use will probably depend on what you want to do with it, and how updates are made to it. For example, if you were going to be doing something like reloading the entire DB every hour (not likely, but just in case you were), you would not want to use the ZODB with the FileSystem storage, because your Data.fs file will grow quickly and need frequent packing. Zope makes it easy to go either way on this one.
- A means to store customer informations on the site; with Apache+PHP I would use another SQL table, with a relation one to many to store the (possibly) many customer's addresses.
Again, you can use SQL if you want. There's a whole bunch of work going on right now to create new User objects in Zope. These will make it possible to attach all sorts of things to users and will be a really nice abstraction. Personally, I prefer to work with the ZODB wherever possible. I just generally prefer objects to the relational model.
- I would let the site to be accessed both via https and http.
There was recently a ZServer version announced with support for SSL. Otherwise, I think people are just using Apache with fastcgi.
- The site must be easily internationalized, thus I must be able to replace all the text in the pages with a translated version; with Apache+PHP I would use an include file where to store the text messages as PHP constants.
There is a Zope Internationalization Project (ZIP), though I think that has focused on adding more internationalization to Zope's core. For your own apps, I would think there are a number of ways to implement this. Acquisition is your friend. You'll probably use acqusition to make life easy for you. Kevin
On Mon, 7 Feb 2000, Kevin Dangoor wrote:
(Note that, from what I've read in previous threads, I would have to have 5 people create new shopping carts at the same instant in order for one of them to run into an error. That's a lot. When I said that the site would
Actually there would be no problem (theoretically at least and depending on the cart implementation). If more users than threads are accessing Zope simultaneously the extra users would just have to wait their turn. Even so the underlying ZServer implementation is *very* fast and even in single thread mode the clients will get the feeling they are served simultaneously. Pavlos
----- Original Message ----- From: "Pavlos Christoforou" <pavlos@gaaros.com> To: "Kevin Dangoor" <kid@kendermedia.com> Cc: <zope@zope.org>; "Diego Dainese" <xdsi@xddainese.unive.it> Sent: Monday, February 07, 2000 3:46 PM Subject: Re: [Zope] Is e-commerce feasible with Zope?
On Mon, 7 Feb 2000, Kevin Dangoor wrote:
(Note that, from what I've read in previous threads, I would have to have 5 people create new shopping carts at the same instant in order for one of them to run into an error. That's a lot. When I said that the site would
Actually there would be no problem (theoretically at least and depending on the cart implementation). If more users than threads are accessing Zope simultaneously the extra users would just have to wait their turn. Even so the underlying ZServer implementation is *very* fast and even in single thread mode the clients will get the feeling they are served simultaneously.
The problem, as I remember it, is that carts are stored within a single container. If two people simultaneously try to create carts, a ConflictError is raised for one of them. But, it will automatically retry. After x number of retries, any error page is presented to the user (yuck). My "5" number above is incorrect... you would need a steady stream of lots of people trying to create carts, such that people are getting lots of ConflictErrors. This is correct, isn't it? Once the cart is created, people can obviously make lots of changes to their carts with no problems. This may become less of a problem when we've got a membership system up and running, because carts for members will be in their own area. If it did become a problem for me, all I'd need to do is come up with a reasonable partitioning scheme. Come to think of it, even with lots and lots of users it would probably still be possible (and nice) to keep the carts in the ZODB. Kevin
On Mon, 7 Feb 2000, Kevin Dangoor wrote:
The problem, as I remember it, is that carts are stored within a single container. If two people simultaneously try to create carts, a ConflictError
Oh I see. I got carried away by the magic number 5 ...
If it did become a problem for me, all I'd need to do is come up with a reasonable partitioning scheme. Come to think of it, even with lots and lots of users it would probably still be possible (and nice) to keep the carts in the ZODB.
Yes I agree. BTW is this cart object available? TIA Pavlos
----- Original Message ----- From: "Pavlos Christoforou" <pavlos@gaaros.com> To: "Kevin Dangoor" <kid@kendermedia.com> Cc: "Pavlos Christoforou" <pavlos@gaaros.com>; <zope@zope.org>; "Diego Dainese" <xdsi@xddainese.unive.it> Sent: Monday, February 07, 2000 5:17 PM Subject: Re: [Zope] Is e-commerce feasible with Zope?
On Mon, 7 Feb 2000, Kevin Dangoor wrote:
If it did become a problem for me, all I'd need to do is come up with a reasonable partitioning scheme. Come to think of it, even with lots and lots of users it would probably still be possible (and nice) to keep the carts in the ZODB.
Yes I agree. BTW is this cart object available?
Nope... The shopping cart is really quite trivial. The more complicated stuff is the product catalog on one side of the shopping cart and the order form on the other side. Unfortunately, due to a tight timeline in bringing the stuff up in the first place, the two big parts are pretty heavily tied to Byproducts.com. Future versions will be less-and-less Byproducts centric. If ZCommerce doesn't get anywhere before I've completely decoupled the code and the site, I'll release something then... Kevin
On Mon, Feb 07, 2000 at 06:27:04PM -0500, Kevin Dangoor wrote:
If ZCommerce doesn't get anywhere before I've completely decoupled the code and the site, I'll release something then...
What is ZCommerce? Who is developing it, and where is it? If at all possible, I'd like to colaborate on it instead of duplicating it for my site. []s, |alo +---- -- I am Lalo of deB-org. You will be freed. Resistance is futile. http://www.webcom.com/lalo mailto:lalo@webcom.com pgp key in the web page Debian GNU/Linux --- http://www.debian.org Brazil of Darkness -- http://zope.gf.com.br/BroDar
----- Original Message ----- From: "Lalo Martins" <lalo@webcom.com> To: <zope@zope.org> Sent: Monday, February 07, 2000 6:57 PM Subject: Re: [Zope] Is e-commerce feasible with Zope?
On Mon, Feb 07, 2000 at 06:27:04PM -0500, Kevin Dangoor wrote:
If ZCommerce doesn't get anywhere before I've completely decoupled the
code
and the site, I'll release something then...
What is ZCommerce?
It's a mailing list they've set up at CodeIt. You'll find it listed on the Zope site along with the other mailing lists: http://www.zope.org/Resources/MailingLists
Who is developing it, and where is it? If at all possible, I'd like to colaborate on it instead of duplicating it for my site.
I don't think anyone is really developing "ZCommerce" at this point. I think part of the problem is that designing a commerce platform that meets everyone's needs is really quite hard. The list kind of trailed off in spiralling use cases and talk of varying tax laws. I don't think anyone had the time on their hands to tackle such a broad project when they've got real work to do. For my part, I had good intentions to release things, but I've been too busy keeping up with regular work. It's much quicker to develop something that does precisely what I need and not worry about packaging and customizability. Ultimately, I'd like to be working with everyone else on a good, open platform. Kevin
participants (4)
-
Diego Dainese -
Kevin Dangoor -
Lalo Martins -
Pavlos Christoforou