Building a shop

We are building a shop module for anyMeta. It started with an order form for a book, but we thought that building a complete shop shouldn't be too hard. In the second week of april 2006 it will be functional.

Rui Guerra and I started with looking at other shops. Finding an open source e-commerce package was not difficult, as expected. Finding one that made sense for our environment was a bit harder.

What are our requirements for the final shop?

  1. Able to sell everything that is in our database (articles, books, photos etc.) by adding the type 'for sale'
  2. Simple in implementation and usage
  3. Uses our existing user administration
  4. We distinguish only two roles: customer and shopkeeper
  5. Simple inventory/ stock management
  6. Adaptable back office flow
  7. Works with Paypal
  8. Pluggable paymet methods for other services
  9. Can sell "free" goods
  10. Customer can see status of all orders
  11. Shopkeeper can see all orders per status, and a complete overview
  12. Shopkeeper will change the status of an order according to the workflow
  13. Pluggable automatic helpers for state changes (sending e-mail etc.)

And more common e-commerce stuff. There is really nothing new about this all - except that it integrates with anyMeta. One of the features we didn't see yet is the adaptable work flow. We will make a state transition table for that, isn't a shop just a finite state automata?

We found the most inspiration in the osCommerce package. They have a very complete package, which also has a fairly solid datamodel that looks a lot better than the datamodels we saw of other open source packages. Foreign keys and indexes that match your queries are often forgotten in datamodels.

Loosely based on the osCommerce we made our own datamodel. Rui is now busy trying to get it in a nice way on paper. With all foreign key relations drawn in an understandable way.

Something else we immediately desired was an ActiveRecord implementation. One that was in PHP 5.x, easily adaptable, without using all kinds of database layers. We prefer to know what happens between our code and the database, more layers just hide what you really need to do - write efficient queries and join tables in an intelligent way. We checked out the Cake ActiveRecord, and dismissed that one quickly. Luckily we found a very promising implementation by Leendert Brouwer and Matthijs Tempels.

More about our shop soon!

hong kong shop street people food mongkok butcher duck restaurant market

Mong Kok food shop

Really good food can be get everywhere, don't forget to try all the street restaurants :-)

hong kong shop street people food mongkok restaurant market junk light

Mong Kok food shop

Really good food can be get everywhere, don't forget to try all the street restaurants :-)

mongkok shop hong kong butcher duck food restaurant people street

Mong Kok food shop

Really good food can be get everywhere, don't forget to try all the street restaurants :-)

activerecord source sql database technical development python shop product information products

SQLAlchemy - The Database Toolkit for Python

SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application develope...

KIESKEURIG Productvergelijk, prijsvergelijk en reviews

KIESKEURIG is de grootste product- en prijsvergelijksite van Nederland. Het doel van KIESKEURIG i...

MarcWorrell.com/ created on 2006-04-02 00:41:56/ modified on 2007-08-31 16:48:24/ mail me at