Building Online Stores with osCommerce
Stephanie Brain writes "Have you ever considered building your own online store and entering into the booming e-commerce arena? If you have, you may have come across some of the many open-source software available for downloading from the Internet. One of the most popular of these is OsCommerce which has been developed since March 2000 and has a full team of staff dedicated to its development. It is overseen by the founder, Harald Ponce de Leon and today there are around 6000 live, registered OsCommerce sites and 70000 registered community members, many of whom are active on the OSC forum you can log on to. This forum can provide a wealth of information when you come up against any obstacle when developing your own OsCommerce website." Read the rest of Stephanie's review.
Building Online Stores with osCommerce: Professional Edition
author
David Mercer
pages
372
publisher
Packt Publishing
rating
9
reviewer
Stephanie Brain
ISBN
1-904811-14-0
summary
Practical guide to building online stores with osCommerce
Back in October I started working with someone who had already downloaded the OSC software and had the basis of an online store installed. I will be running the store, however my first task was to change the whole look of the site and make improvements to it before launching NetTechShop properly. Having read the OsCommerce blurb which promotes the simplicity of using OSC, I felt sure that I could quickly get to grips with the "simple" programming language of PhP and HTML and have the site ready in a month or two. I was sadly disappointed! By the end of November last year I was getting desperate, having spent hours making modifications to the coding on the database only to either break the site completely or find it had not made one jot of difference to the look of the site. I searched in vain for OsCommerce For Dummies.
My pain was somewhat relieved when I discovered that a book was going to be published on OsCommerce by Packt Publishing and I put my order in immediately and breathed a great sigh of relief.
Strangely such a book has been lacking until now. You can find plenty of books about Php programming and MySQL or HTML, but try to find a book which is easy to understand for someone with less than a University or College IT qualification background and about OsCommerce in particular and you will search long and hard.
David Mercer's book is the book you have been looking for and is available in either a beginner's or professional edition. It is written in a straightforward, easy to understand manner, yet does not compromise on technical knowledge and provides all the essentials of getting your website up and running with OsCommerce.
The book covers: installing MySQL, PHP, Apache and OsCommerce and testing them, configuration and customization of your store, working with data, taxes, payment and shipping, securing your store, installing more advanced feature using contributions from the OsCommerce website and deployment and maintenance of your site.
Before going onto the technical aspects and explanation of OsCommerce, Mercer explores the whole area of e-Commerce, what is required of a website store to make it a success, the arguments for using an open-source solution such as OsCommerce and the decision making issues any business faces when deciding if OsCommerce is right for them.
This manual was everything I hoped it would be and with its many illustrations, including screenshots of the files you will be changing on an OsC website, I found that anyone with even the most basic understanding of website design, would be able to get to grips with designing a website store using OsCommerce. I had the professional edition and found it really easy to just dip into when I needed to know some aspect of the design process. The book's content is well laid out, in manageable chunks with bold headings, which are clear about the content and the index is comprehensive.
One of the things I really liked about the book was that it addressed the problems, error messages and frustrations you are likely to come up against in the process of building your OsCommerce site. Those were the things that made my head spin the most before I got the book and although you should be able to find out about many of your error messages and problems on the OsCommerce forums, it can take quite a time to search and plough through all the replies. It is much better to find the most common problems in one place with practical solutions.
Another important chapter which is covered in depth is the installation and testing of a payment module. The most popular of these, Paypal is covered in the book and detailed instructions are given on how to get it working correctly, again something which sounds easy on paper, but can cause endless problems if you do it wrong. There are other payment providers and gateways which can be integrated onto your OsCommerce site by installing other so-called "contributions" from the OsCommerce website and Mercer explains fully how to download these contributions and get them functioning correctly.
I am sure that this book will prove to be an essential resource for anyone contemplating starting an online business with open-source OsCommerce software and hopefully will avoid them spending wasted energy in the initial stages just trying to figure it all out. After I received my book, the only wasted energy I spent was wondering why the front cover was emblazoned with juicy oranges!"
You can purchase Building Online Stores with osCommerce from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Back in October I started working with someone who had already downloaded the OSC software and had the basis of an online store installed. I will be running the store, however my first task was to change the whole look of the site and make improvements to it before launching NetTechShop properly. Having read the OsCommerce blurb which promotes the simplicity of using OSC, I felt sure that I could quickly get to grips with the "simple" programming language of PhP and HTML and have the site ready in a month or two. I was sadly disappointed! By the end of November last year I was getting desperate, having spent hours making modifications to the coding on the database only to either break the site completely or find it had not made one jot of difference to the look of the site. I searched in vain for OsCommerce For Dummies.
My pain was somewhat relieved when I discovered that a book was going to be published on OsCommerce by Packt Publishing and I put my order in immediately and breathed a great sigh of relief.
Strangely such a book has been lacking until now. You can find plenty of books about Php programming and MySQL or HTML, but try to find a book which is easy to understand for someone with less than a University or College IT qualification background and about OsCommerce in particular and you will search long and hard.
David Mercer's book is the book you have been looking for and is available in either a beginner's or professional edition. It is written in a straightforward, easy to understand manner, yet does not compromise on technical knowledge and provides all the essentials of getting your website up and running with OsCommerce.
The book covers: installing MySQL, PHP, Apache and OsCommerce and testing them, configuration and customization of your store, working with data, taxes, payment and shipping, securing your store, installing more advanced feature using contributions from the OsCommerce website and deployment and maintenance of your site.
Before going onto the technical aspects and explanation of OsCommerce, Mercer explores the whole area of e-Commerce, what is required of a website store to make it a success, the arguments for using an open-source solution such as OsCommerce and the decision making issues any business faces when deciding if OsCommerce is right for them.
This manual was everything I hoped it would be and with its many illustrations, including screenshots of the files you will be changing on an OsC website, I found that anyone with even the most basic understanding of website design, would be able to get to grips with designing a website store using OsCommerce. I had the professional edition and found it really easy to just dip into when I needed to know some aspect of the design process. The book's content is well laid out, in manageable chunks with bold headings, which are clear about the content and the index is comprehensive.
One of the things I really liked about the book was that it addressed the problems, error messages and frustrations you are likely to come up against in the process of building your OsCommerce site. Those were the things that made my head spin the most before I got the book and although you should be able to find out about many of your error messages and problems on the OsCommerce forums, it can take quite a time to search and plough through all the replies. It is much better to find the most common problems in one place with practical solutions.
Another important chapter which is covered in depth is the installation and testing of a payment module. The most popular of these, Paypal is covered in the book and detailed instructions are given on how to get it working correctly, again something which sounds easy on paper, but can cause endless problems if you do it wrong. There are other payment providers and gateways which can be integrated onto your OsCommerce site by installing other so-called "contributions" from the OsCommerce website and Mercer explains fully how to download these contributions and get them functioning correctly.
I am sure that this book will prove to be an essential resource for anyone contemplating starting an online business with open-source OsCommerce software and hopefully will avoid them spending wasted energy in the initial stages just trying to figure it all out. After I received my book, the only wasted energy I spent was wondering why the front cover was emblazoned with juicy oranges!"
You can purchase Building Online Stores with osCommerce from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
How come the books reviewed here are always rated 8, 9, or 10? Some of them must surely be shittier than that.
Hell is not other people; it is yourself. - Ludwig Wittgenstein
But I last used osCommerce back in it's 2.2 days (t o build http://www.gamefest.com/ ). Doing modifications to the PHP / mysql code was absolutely painful. Horribly painful. There was hardly any separation of logic from the presentation. It was all a jumbled mess.
Then I discovered http://www.rubyonrails.org/ and life is now good!
With Yahoo stores, Ebay stores, Amazon shops, most SMB retailers will partner with them for their shopping cart needs. For the rest of us, this book is a good alternative.
OsCommerce website
I'm a leaf on the wind. Watch how I soar.
Is it built in a way that lets it pass PCI Compliancy testing? That's a big deal since last year, and many of us with eCommerce merchant sites are still struggling to comply with the myriad of rules and restricts imposed by Visa and Mastercard.
:::: Mike Snyder
osCommerce is great if you don't plan on modifying any code. Its really easy to set up and get going. However, if you plan on making large modifications to the code, you are in for a special treat! The code is a gigantic mess, very very painful to read. I had a customer that wanted to use osCommerce, but they wanted to make the site look like their old shopping cart, which was proprietary. Lets just say that it would have been easier for me to build them a new shopping cart from scratch then to modify osCommerce enough to make it work for them.
I have always preferred Interchange http://www.icdevgroup.com/ over osCommerce. It has a bit of a learning curve, but is so much more powerfull and flexible that it puts any other OSS eCommerce package to shame.
osCommerce to me has always seemed to me like a "Your Mom can set it up and maintain it" type of application. And therefore has many issues when you try to do more advanced types of layout and flow.
OSC embodies pretty much everything that people say is wrong with PHP development. I'm sure they (the OSC devs) are a well meaning bunch, but if you ever want an example of spaghetti code, go download the source and book a week off. If you even consider using it, well good luck with altering the codebase in any significant way - you'll (almost literally) need it. What irks me most is that people will look at this and think that all PHP apps are this badly/painfully written. Believe it or not (and contrary to the general Slashdot line), with PHP5.1 it's actually really easy to write pretty good looking (from a programmers perspective), functional *and* maintainable OOP/MVC webapps provided you understand the above core concepts of OOP/MVC. OSC needs to be taken into a quiet room and shot, just like the rest of the old PHP4 apps.
Google? Maybe the name of the app joined with ".com"? Would you like me to wipe your ass, too?
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
As bad as the bugs are in PHP, I'd have to say that the biggest thing you have to fear with ECommerce sites is badly written code in any language. A well written site in PHP is much better off than a poorly written site in J2EE. Most of the insecurity problems with ecommerce sites are due to bad coding, and not the underlying technology used.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
osCommerce seemed like a nice, easy, powerful solution when I decided to install it. Instead, it has been more of a pain than it's worth.
/admin/ ).
A store with no ability to do coupon codes? (Without massive modification, which can't easily be done if your store is already running)
I find it loses orders sometimes
I've never gotten shipping to work right - hard to do shipping cost per item (with different items having different costs) per country (or even, just North America v. International, per item).
Admin panel navigation is... strange, to say the least. Once you go into the pending orders, and leave, you can't then go back to just pending orders - you have to go to all orders (unless yous tart back on
Generally it's just inflexible, even with all the plugins you can put in.
-Daniel
First off - I love osCommerce. I run a web store using it, have written several popular contributions and participate in the official forum. But the reviewer can perhaps be excused for thinking that there has not been a book on osCommerce before this - there are several. The problem is that Harald (or one of his minions) quickly removes from the forum any mention of any commercial product (book, add-on, service, etc.) relating to osCommerce other than those from his advertisers. Go to amazon.com and search for "oscommerce" - you'll get many hits.
Also censored from the forum is any mention of other cart software, especially those derived from osCommerce such as Zen Cart and CRE. Want to show how to interface osCommerce to a free API that also has a commercial version? Censored. Want to talk about your experience with a web host or SSL certificate provider? Censored. I once had an extended exchange with one of the forum moderators who seemed to equate "open source" to "one source".
In any event, osCommerce is "not for wimps". A lot of people think the same way the reviewer did - that you download it, install it, and have an instant web store suitable for your customers. It took me about four months the first time to where I had something I would be willing to let customers see, and another year before I learned enough about it to customize it for the particular business and create something of a unique look. (I'm a software engineer with more than 25 years of experience and twenty or so languages under my belt.) You need to understand at least basic PHP, and some familiarity with MySQL wouldn't hurt either. One of the worst features is that making changes to the overall "look" of an osCommerce store requires editing some thirty or more source files.
The current version of osCommerce was released three years ago. A small set of bug fixes was released last November. There has been ongoing work on a "Milestone 3" version that appears to introduce significant incompatibilities with the current and popular MS2. Personally, I'm skeptical that MS3 will ever be released, and even if it is, I think that most of the current MS2 users will ignore it.
Again, I love osCommerce. It is great software and I do what I can to support the community. If you don't mind getting your hands dirty, there's so much you can do with it and hundreds of user add-ons and modifications. You should also look at the derivatives such as Zen and CRE. (These are two that come to mind, there may be others.) But if the letters PHP scare you, then you're better off looking elsewhere.
Beware those who want to use OSCommerce, you better wait until version 3 is out, or else.
Current version (2.2MS2) is worthy of being designed by the Flying Spaghetti Monster: There are no tiers, SQL queries are embedded in the middle of HTML output - and there are tons of similar queries around different modules - so if you want to change one SQL, you'd have to SEARCH FOR and change ALL OF THEM. I'd recommend you to start using printf with the thing.
Also, the same php file is used for both displaying and validating input fields, and there are tons of duplicated functions across the whole thing.
OSCommerce apparently doesn't know that there is something called "associative arrays", and there is very little OOP in there, but most of it is used to implement very primitive data objects (which, btw, could be replaced with a single associative array).
If that wasn't enough, you can't search and modify input fields or tags, you have to use the predefined functions tep_draw_input_field, which aren't very user friendly either.
Some of the configuration variables aren't defined in PHP, but stored in SQL tables so you'd have to modify the original SQL or add new configuration variable manually if you want to add a field to a table.
The input fields for the admin section aren't stored in associative arrays, but are hardwired among the HTML code (which makes the html output functions a hinderance rather than a help).
So if you want a version that looks *JUST EXACTLY* like your typical OSCommerce site, and don't plan to add ANY NEW features, sure, go ahead, use the prefabricated store. But if you plan to add any field, table, or whatever,
I strongly advise to wait for v3, or to rewrite the whole thing using your favorite multi-tier framework.
Want to change the HTML? Good luck! The thing isn't standards compliant, and was written when nested tables were the norm. For spaces, there's the classical spacer gif consuming your bandwidth.
OSCommerce, is, IMHO, an example of "Open Source gone wrong". Instead of being the work of a community, with strategic planning and all that, it's the work of one man who did it his way, and later open sourced it.
As for security, the credit card info is stored unencrypted in SQL tables, and the admin section can only be secured via htaccess. That means the password is sent unencrypted unless you really know apache security and know to implement it the right way.
Thanks, but no thanks.
As bad as the bugs are in PHP, I'd have to say that the biggest thing you have to fear with ECommerce sites is badly written code in any language.
I have to disagree with this. What you're saying is "PHP sucks but everything sucks because you can write bad code there, too." Of course bad code can come in any language; the point isn't about other languages, it's about PHP and the serious lack of attention to detail.
The recent XMLRPC security flaw comes to mind -- that would have (probably) never happened in the python, perl or ruby communities because those communities are security-minded and therefore attracts like-minded people.
Put another way: PHP is sloppy and attracts sloppy developers to work on it.
We recently (five weeks ago) switched to a Zencart based storefront. For those who don't know, Zencart is an OSC fork.
Apparently Zencart is much cleaner than OSC, which makes me shudder in fear at the idea of OSC's source code.
I like nice, clean, documented, tested code.
Zencart is a mess. The documentation is close to non-existent, there are no comments, there's no MVC distinctions, we found several major security holes in a code audit before going live, weird little UI bugs abound (e.g. in the admin interface when you edit a customer's addr, you're *forced* to specify his phone number, or you can not proceed), there are places where code chunk A generates SQL, then passes it to code chunk B, which passes it to C, which *LOOKS AT THE SQL* and edits it, then executes it.
With code like this, try editing an SQL query just a little bit, and you get a complaint on a web page with error messages pointing to an entirely different place.
On the "security" topic, I note that once we got a demo of Zencart installed on a testing machine, with the tell-tale URL (<machinename>/catalog), I started noticing that a lot of the phishing spam I was receiving directed folks to <domainname>/catalog...yes, the phishers were using hacked OSC accounts, which they had (presumably) gotten into through SQL injection attacks on OSC.
This is not to minimize the work of the OSC and Zencart developers - either package is a huge improvement over nothing...but if you want to do surgery on the code, it's a disaster. At Technical Video Rental, we need to track individual serial numbers of copies as they go in and out, and we needed to present sets of videos in a certain way.
This work took two pretty darned good software engineers (me and the CTO of the company) about four man weeks.
I'm not going to say something inflammatory and stupid like "I could have written an operating system in less time", but four man weeks is a pretty major investment of time to do something fairly simple like this.
We're doing a lot of interesting stuff with the code base: we've spliced in WordPress for the corporate blog, I'm writing some AJAX stuff right now to allow customers to report problems with their orders from the order status page, etc.
There's a good chance that over the next 6-9 months we'll end up preserving the OSC/Zencart db schema and data (for continuity with the running site), and dumping major components of the package.
To boil it down: I give OSC / Zencart a grade of "C minus". It's like a decent looking house with a lot of rot inside the walls. As long as you're content to never look inside the cabinets or crawlspaces, you're OK, but once you do some poking, or decide to add an addition, you'll realize how much work you've got in store, and you'll start to wonder if you should just buy a new house.
The appeal of osC is the 2000 contributions that are available for free as extensions. Having helped several people set up stores with it, basically whatever customization people want, someone else has already made it and published it for free, so there has been a very low cost to get started with osCommerce for each store.
Still, I agree it can be painful and scary to work with. I miss automated test suite, like I'm using to building based on Perl's Test::WWW::Mechanize. It pains to me to hand apply a patch that doesn't come as a diff, but a series of instructions like "Around line 23, notice this code and add this line....".
In the short term, I support osCommerce for pragmatic reasons. For the longer term, I encourage developers to continue to build cleaner solutions from the ground up. For Perl, see Handel as a starting point.
interchange rocks, but the learning curve is STEEP - much steeper than oscommerce, although once you make it to the top you've learned yourself a nice extensible system instead of a giant mountain of crap like OSC :)
add to that the extreme unhelpfulness/bitchiness of the mailing lists/core devs, lack of 'how do i get started' documentation, and the lack of modules to support many payment methods (afaik, there's still no good, supported, paypal option!) has always discouraged me from using IC.
my sense is that the core devs are more interested in charging folks to install/integrate IC than they are about making IC accessible to the public. i don't have any beef with that - it's a great project. but you really can just drop in OSC and have a crappy, ugly, but working store. you can't do that with IC, which is why OSC has the market share.
I was able to get coupon codes up and running in less than a day on my heavily modified site. 'Massive' modification and changing a few files are 2 different things.
Shipping is nowhere near as complicated as it is for other sites. There are more than a few cart applications where stores just spout 'FREE SHIPPPING' because they couldn't figure out how some goofy table sytem. OsCommerce is a lot easier.
THe admin menu isn't the greatest, but so what? It's just a bunch of links so you can always create your own.
I've worked with at least 10 different carts and OsCommerce is by far the most flexible and easiest to set up/maintain.
D
(btw. buy something from http://www.dtmmovies.com/
The first, last, and only tech news site on the net
In the last month I have downloaded this software and spent countless hours building it from scratch. There is no template management system and everything is a mix of PHP and HTML. Every php file is a HUUUUGE collection of nested IF/THEN/ELSE's. I can't even imagine what the programmers were thinking. The image caching was also corrupting the images randomly. If you "purchase" a template like i did, its actually all the PHP files just rewritten. I ended up just scrapping it and moving over to x-cart last week. Yeah it set me back $400 but It must have 100x more features and also has 100x less headaches. It also uses smarty templates.
I've set up a Drupal store for a client. I've written patches for Drupal ecommerce.
Drupal is a well designed system. The ecommerce module is not in the core. It's an add on and for the most part it's also well-designed.
Drupal and the ecomm modules have pluginability as a key feature, which has lead to very quick development. However, I think that touting ecomm as a good offering is premature. It is improving very quickly, but it's not ready yet to compete with professional solutions. For instance - it only recently aquired a tax subsystem, it doesn't yet have a general purpose shipping choice module and the cart workflow is not polished.
If you need a simple store and you don't sell complex products, it's good enough for you at the moment. If you are thinking of something more complex and can wait a while, come and have a look now, and try it out in a few months time. You can find Drupal here and the ecomm module here.
Keep in mind Interchange grew out of a time when the web was wild and young, and pre-packaged e-commerce options were few.
These days, Perl's CPAN offers a tremendous amount more in the way of high quality building blocks for such a project, but nothing I'm aware of has been built with this approach with a feature-set that comes close to rivaling osCommerce. Handel is start, but only covers basic shopping cart functions now.