Advanced osCommerce Based Link System Setup

on December 21st, 2009 | File Under creloaded, osCommerce -

E-commerce web site setup can be quite a complex process.  It is quite easy to lose track of the fine details and fail to address them.  This was brought to my attention recently by a spate of Link Submission approval requests and a couple of contacts asking why I had failed to approve them.  The reason was simple – they had violated several of the basic rules of link exchange courtesy.

In most cases the back link to this site was simply not present.  In other cases, the back link was present, but the site linking back was not the same as the site for which a link was requested.   In most cases the site content was in no way relevant to the purposes of  or content on this website.   Many of these issues are common when link campaigns are being conducted by unscrupulous “SEO service” firms.  But, they can be equally common among inexperienced site operators new to  link exchanges or bona fide service providers who are just in too big a hurry to get links requests out.   While you can’t do much about the former, the latter offers some opportunity to do two things.  Acquire some relevant back links for your site, and avoiding wasting time on irrelevant garbage links.  Doing so requires that you go beyond simply adjusting the available configuration values in your Link Manager system and provide some informative language on the link system pages.  Let’s look at how that is done.

Like any other system in osCommerce, language files are stored in files which share the name of the systems root file, but are located in the includes/languages/ directory tree.  Huh?

Each osCommerce system has one or more pages associated with it.  Each page is generated by loading a file in your browser. That file is located in the folder which hold the top level of the shopping cart file set.  That folder is the shopping carts web root.  Thus, we refer to that file as a “root file”.

The root file loads a number of related files.  One of these is a “language file”.  Language files are PHP files which contain definitions for “constants”  or “defines”.    They are stored in folders located in a directory defined in the carts configuration file – usually “includes/languages/” relative to the cart root.  Those folders are named after the language used to create the definitions.  So, for the English language file of a cart located in we would look in /home/yourstore/public_html/includes/languages/english for a file with the same name as the file which generates the page we want to modify.

So, to modify the links submission page we will open the links_submit.php file found in this location into our editor.   We are going to do two things.  First, modify the text on the link submission page to give a bit of guidance about what types of links we will accept.  Next, modify the text of the email sent to the submitter to reinforce the stores policy on links.

The definition used for the pages main body text is ‘TEXT_MAIN’.  By default it contains the phrase “Please fill out the following form to submit your website.” and looks like this:  define(‘TEXT_MAIN’,’Please fill out the following form to submit your website.’);

How this is structured is important.  PHP needs to be able to tell what content is static, and which is to be “parsed” for further modifications.  It does this using the quotation marks.  So, including quotation marks requires a process called “escaping” which is best left to a PHP developer with good eyes and a knowledge of how this is done.  See the PHP website for details on constants and strings. For simplicities sake, we are going to do our modification while avoiding the use of quotation marks of any type – in order to avoid creating syntax errors.   So, we change it to the following:

define(‘TEXT_MAIN’, ‘Please fill out the following form to submit your website.
<br>Please note that we accept only RELEVANT links.  This means your site must
be related to building or operating an ecommerce, online shopping or web store
site – or providing education or services to those who are engaged in such

This adds a bit of specific information about the types of links we want to collect and the sites from which we would prefer to be linked.

Next, we modify the email sent to the submitter.  This is found in the EMAIL_TEXT definition – which starts out looking like this:

define(‘EMAIL_TEXT’, ‘Your link has been successfully submitted at ‘ . STORE_NAME . ‘.
It will be added to our listing as soon as we approve it. You will
receive an email about the status of your submittal. If you have not
received it within the next 48 hours, please contact us before submitting
your link again.’ . “\n\n”);

We change ours to look like this:

define(‘EMAIL_TEXT’, ‘Your link has been successfully submitted at ‘ . STORE_NAME . ‘.
It will be added to our listing as soon as we approve it. You will
receive an email about the status of your submittal. If you have not
received it within the next 48 hours, please contact us before submitting
your link again.<br>Please be aware that we will not accept:
<li>Irrelevant links of any type.</li>
<li>Relevantly placed links on or to link farms.</li>
<li>Bait and switch links of any type.</li>
‘ . “\n\n”);

This reminds the submitter of our ground rules, and adds a few more details about what we will or won’t accept.

Finally, we modify the  TEXT_LINKS_HELP  definition which holds the help text and looks like this:

define(‘TEXT_LINKS_HELP’, ‘<b>Site Title:</b> A descriptive title for your website.<br><br><b>URL:</b> The absolute web address of your website, including the \’http://\’.<br><br><b>Category:</b> Most appropriate category under which your website falls.<br><br><b>Description:</b> A brief description of your website.<br><br><b>Image URL:</b> The absolute URL of the image you wish to submit, including the \’http://\’. This image will be displayed along with your website link.<br>Eg: <br><br><b>Full Name:</b> Your full name.<br><br><b>Email:</b> Your email address. Please enter a valid email, as you will be notified via email.<br><br><b>Reciprocal Page:</b> The absolute URL of your links page, where a link to our website will be listed/displayed.<br>Eg:<br>This page must be located on your website and that page must be accessible from your front page.<br>’);

We modify it so it looks like this:

define(‘TEXT_LINKS_HELP’, ‘<b>Site Title:</b> A descriptive title for your website.<br><br><b>URL:</b> The absolute web address of your website, including the \’http://\’.<br><br><b>Category:</b> Most appropriate category under which your website falls.<br><br><b>Description:</b> A brief description of your website.<br><br><b>Image URL:</b> The absolute URL of the image you wish to submit, including the \’http://\’. This image will be displayed along with your website link.<br>Eg: <br><br><b>Full Name:</b> Your full name.<br><br><b>Email:</b> Your email address. Please enter a valid email, as you will be notified via email.<br><br><b>Reciprocal Page:</b> The absolute URL of your links page, where a link to our website will be listed/displayed.<br>Eg:<br>This page must be located on your website and that page must be accessible from your front page.<br><br><b>Link Relevance:</b> Your link must be relevant to ecommerce or ecommerce education to be accepted.’);

Now that we have these modifications in place, we can expect some improvement in the percentage of submitted links which are mutually beneficial to us and the submitting web sites.   Note that this technique can also be applied to important pages such as the checkout process and account creation pages in order to  improve their usability.   Making similar changes in the other language file sets will help keep your cart well prepared to deal business in a multi-lingual environment.


New osCommerce Project Launches – Same as the Old ?

on November 25th, 2008 | File Under development, ecommerce, education, Open Source, osCommerce, Personal -

Recently, Rhea Anthony, widely known to long time osCommerce users as Vger and a former member of Harald Ponce de Leon’s osCommerce development team launched a bid to assume control of the osCommerce code base and community.  She and a number of other major contributors to osCommerce have relocated their forum to a new domain – , and releasing a distribution based on the most recent osCommerce release 2.2 RC2B which they are calling osCommerce 2.0 Final.

That community members involved as long as this team can’t recall that the current osCommerce 2.2 development work was preceded by an osCommerce 2.1 release is a clear indicator of the necessity of this action if osCommerce is to survive as a project at all.  8+ years between releases is entirely too long.

In her first blog post as osCommerce Project leader,  Rhea tells a bit about herself and comments on the reasons for this drastic action.  If you have any interest in osCommerce at all, I strongly encourage you to read this post.  It is an interesting description of one view of the osCommerce community from a member who has been persistent and energetic in contributing to others.  But, it is one view.

The term “believer” has been a very powerful term in the osCommerce world in both positive and negative ways.  I can easily sympathize with Rhea’s obvious disappointment at the disdain directed towards community members who claimed to be or were described as believers.  Having been among those who were disparaged by groups of “osCommerce beleivers”  because my own beliefs differed from their own, I also understand the disparagement.  We all beleive in something.  But some community members have and do beleive that the rest of us should beleive what they do and nothing more.

This lack of tolerance from and courtesy towards others is a deadly poison for any community.  The cure begins with leadership.  So, it is an encouraging step that Rhea has made the effort to establish regular communications via her blog early in the process of transforming the oscanswers forum into the oscommerce project site.  Keep it up, Rhea.  I can’t say I’m a great blogger either.  But I can say it does get easier with time.  Along the way, I hope to see  you create a more open and accepting osCommerce community.  Towards that end, here are a few suggestions:

  1. Don’t settle for a development team.  Build a development community whose activities are open to all.  When viewpoints differ, establish working groups to represent those viewpoints with code that can prove or disprove their theories.  This is the one of the most powerful uses of branches.  They feed the tree, they don’t starve it.
  2. Build a documentation group.  Insist on performance from them, and cooperation with them so that technical documentation is available to all.  You can’t build consensus without it.
  3. Open the community to discussion of related projects in some way.  No project can benefit from code comparison and evaluation when the discussions are splintered across dozens of forums.  At the very least, branches should be able to post links and route discussion accordingly.
  4. While disparagement and exclusion of community members should be avoided like the plague, the same can not be said of code contributions.  Once API documentation is published, contributions which fail to comply with coding standards should be ruthlessly separated from the rest or even deleted.  Establishing separate management of experimental API code is essential.
  5. Open development discussions.  Smoke filled rooms are great for monopolists.  They have no place in Open Source.  So what if crackers can see your plans.  It is not like they can’t read your code.  Keep your code discussion lively and take some time to explain things.   Knowledge is power, but its like manure – its got to be spread to be effective.

At this early stage, it is hard to see much difference between this new osCommerce Project and the old one. Time will tell, and I’m sure the differences Rhea mentioned will become apparent soon.  The sooner, the better.

It is good to see new osCommerce releases, and active development.  As one old Democrat to another, I’m happy to bid the new osCommerce Project welcome to the open source ecommerce community.


CRE Loaded: You’ve Lost That Loving Feeling…

on November 4th, 2008 | File Under creloaded, osCommerce -

In an unpublished article I started on October 15, I stated “Kerry Watson’s new article was posted today on You can find it at: . It is entitled, “Can Iozzia Get the CRE Loaded Love Back?”. The short answer is no.”

While I still think I blew off a bit more steam than I want to publicize so quickly after Chain Reaction’s devastating implosion (or indeed – at all), events since then have made me reconsider addressing the issue in this venue though not the conclusion of my initial paragraph.  First off was the management of the all too expected eruption of steam following Sal’s “grand return” and the unbanning of a number of long time community members who were neither happy at being banned, or impressed with claims of change.  One of the most vociferous was Michael DesMarais of Supreme Center Hosting .

Read More


New Coupon System Design Progresses

on October 3rd, 2008 | File Under development, ecommerce, Open Source, osCommerce -

In other developments, a complete redesign of the coupon system is underway. The first of a series aimed at replacing the venerable but dated Credit Class and Gift Voucher system, this project seeks to build a system which offers more flexible and powerful marketing tools to users of osCommerce based shopping carts.

While the design is still preliminary, the table set already offers significant improvements over the previous system. A clear separation is established between coupons and cash instruments such as Gift Certificates, Store Credits and Gift Vouchers. The extended table set will allow setting coupon application criteria in either allow OR deny formats, and provisions for coupon application management will extend to categories, products, customers and customer groups in ranges restricted only by server capabilities. The use of plugins will allow coupon types to be easily extended without core code modification – a major plus for add on developers.

Working design notes can be found in our development wiki, titled discount manager in the EOS Designs chapter. osCommerce developers interested in participating can comment in the forum topic “Re: CCGV Refactoring

No Comments

CRE Loaded Founders Leaving?

on September 22nd, 2008 | File Under creloaded, development, ecommerce, osCommerce -

Recently a blog entry by Anna Bergman entitled, “Why Would you Want Cre Loaded for your E-store?” was brought to my attention.  Not only for its content, but due to the nature of a reply to that post.

First, lets address Anna’s content.  She notes that:

“CRE Loaded currently has 39 additional modules over and above the many that are already included in the default OsCommerce installation. CRE Loaded also offers powerful shopping cart solutions in both the free and paid editions. CRE Loaded has a better template system and its “affiliate manager” allows you to specify the per sale payment percentage rate for each of your affiliate accounts as well as providing a tiered structure that is based on sales performance.”

This is not quite the truth.  CRE Loaded contains considerably MORE than 39 additional modules, and even more modifications to that module set intended to make it more powerful and convenient than its stock osCommerce parent.  Further, it has had a large number of security related modifications added.  I’m proud of the work I carried out first as Project Manager, then as Chief Operating Officer, and happy to be recognized as a founder of CRE Loaded. Read More

No Comments

Some Comments on the Commercial Implications of Open Source Software

on April 10th, 2008 | File Under creloaded, development, ecommerce, Open Source, osCommerce -

Recently, I was asked to explain how I thought any company could protect their brand when releasing software under the General Public License. This shortly after I encountered a post stating CRE Loaded “Never made it clear” the software was released under GPL. The second assertion is quickly dealt with. Provided the user can read basic English – the licensing is posted in the footer of every CRE Loaded distribution as follows:

E-Commerce Engine Copyright © 2003 osCommerce Portions Copyright © 2003 – 2006 CRE Loaded Project
osCommerce provides no warranty and is redistributable under the GNU General Public License
Chain Reaction Works, Inc provides no warranty except as to associated support contracts
which are limited by and to the Service Level Agreement.
Powered by Oscommerce Supercharged by CRE Loaded

If this does not make it clear the observer is either illiterate, stupid or criminal and hoping his potential victims suffer those conditions.

Frankly, I don’t understand how this long after the initial GPL release anyone could not understand it’s implications. Probably the most important fact about the GPL is that is is a license. Let me say that again – slowly: the General Public License is a LICENSE.

A license is defined by Mirriam-Webster as “ c: a grant by the holder of a copyright or patent to another of any of the rights embodied in the copyright or patent short of an assignment of all rights”. Parse that slowly if you will. “A grant by the holder of a copyright or patent” – the developing authority holds either a copyright, a patent, or both to their software. “short of an assignment of all rights” – the developing authority retains rights to the software. There. Was that so hard?

So, the question is, to what rights to do the developers retain ownership and/or control. The nature of software licensing should make it pretty clear that those rights include the copyright – which the GPL allows them to enforce; and the rights to trademarks, service marks and other tools used to brand the software. Given that anyone in the software industry in general and ecommerce in particular deal with licensing every day by now we should understand this. A huge percentage of all computers sold around the world carry with them a Microsoft software license. This is a given. Yet no one doubts that that license allows them to use the software, but does not give them a right to call themselves Microsoft, claim a partnership with Microsoft, use the Microsoft Logo on their own products or in any other way represent themselves as being a part of Microsoft.

What the osCommerce Project has to say on these issues can be found here, in their own statements on Trademarks and Copyrights. They are well worth reading. In fact, I would go so far as to suggest that they should be required reading of anyone who installs the software. They are easy enough to understand, but equally easy to forget. I am thankful to have been given reason to review them – and plan some site modifications as a result. I want it to be clearly understood that this site is about all Open Source eCommerce, not just osCommerce. Nor is there any connection between this site and the osCommerce project. We are not reviewed or controlled by the project, and other than their clearly identified RSS feeds all content here is copyrighted under terms substantially similar if not identical to those posted by the osCommerce Project.

Their position boils down to normal usage and common sense – materials are copyrighted by the producers, some rights are granted them as the site owner, all software contributed is donated under the same GPL which applies to osCommerce itself, and their trademarks remain theirs. This is as it should be, and not substantially different than many other Open Source projects. Another interesting document which can be found on the osCommerce project site is their Open Source Definition

The first three items are of particular interest here. To quote their document, making fair use, those items are:

  • Free Redistribution
    No restrictions are placed on parties from selling of giving away the software.
  • Source Code Availability
    The software must include source code and must also allow for binary distributions when there is a well-publicized means of obtaining the source code.
  • Derived Works
    Modifications and derived works must be allowed, and must be distributed under the same terms as the license of the original software.

So, getting back to the remaining question of how branding can be protected while the software is given away.

The pertinent GPL Version 2 clause in my opinion is section 7 (aka the “Liberty or Death” clause”). It says the following:

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License”So – you can’t stop the software from being given away. But, ” It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims;” Brands and trademarks are property. They are subject to many property rights both implicit and explicit – though these vary significantly from one jurisdiction to the next (one reason there is a GPL 3.x). They existed when the first GPL was written – and this clause has the significance of requiring any further distribution for sale to be clearly identified as “Derived Works“.

So, you can modify commercial GPL software, you can give it away, or sell it. But you legally, morally or ethically cannot do so while claiming to be the original author.

There remain other issues, but from an ethical if not legal standpoint there is no real obstacle to commercializing Open Source software. In fact, there are many issues which push for it – the need or desire of business operators to be able to obtain support, or to acquire a version of the software which is less unstable than the free releases being just two good examples. More on those in a future posting.

No Comments

Flash Tutorial development in progress.

on February 14th, 2008 | File Under creloaded, osC Max, osCommerce, oscuni, Zen Cart -

by David Graham.

Well, it has been awhile since I posted here, and a progress report is way
overdue, so here goes.

First, I’ve completed our first FLASH tutorial on CRE Loaded. This
movie covers installation, and will be followed within a week on
equivalent material covering osC Max (60% done), Zen Cart and
osCommerce (each about 10% complete).

WINK has been a real blessing. This free Open Source Flash tutorial
creator (found at manages screen captures in
a variety of ways which make capturing tutorials a relatively quick
and easy task. Additional tasks such as affects for video markup
are a bit more involved, but the package is definitely well worth

I have a pretty good sized number of tutorials to create before I
can launch a full course, but I expect to be able to move more
quickly as I get the first dozen or so created.

No Comments

Installation Tutorial’s progressing

on February 14th, 2008 | File Under creloaded, ecommerce, education, Open Source, osC Max, osCommerce, Uncategorized -

by David Graham.


I’ve now finished generating the screen captures for installations
of CRE Loaded 6.2 B2B, osC Max 2.0.0 rc3.01, and osCommerce 2.2 rc1.

Zen Cart is coming up, but already some interesting differences can
be seen. Each distribution starts to show its varying emphasis
right away.

The osC Max installer bears a very close resemblence to the old
osCommerce 2.2 MS2 installer. Not surprising, as the osC Max
project emphasizes its position as a preinstaller of contributions
which makes no effort to innovate on its own. osC Max installs and
generates bug fixes, but improvements are the province of the
osCommerce projects developers and contributors.

The CRE Loaded installers bears some resemblence to its descendents
as well, at least in the essential steps. It has a clean rebranded
look, though a bit aged in appearance when compared to the
osCommerce 2.2 rc1 installer. The added features definitely stand
out. This installer easily has the most comprehensive checks for
server compatibility and file and directory permissions. It also
shows a level of maturity greater than either of the other
installers where security features are involved. Password echoing
is held to a minimum for example, and the CRE installer retains the
seemingly redundant but definitely helpful capability to use
separate database users for installation and store

The osCommerce 2.2 rc1 installer is a substantial back port of the
osCommerce 3.0 Alpha installer. While the implementation is
definitely both prettier and flashier than its 2.2 MS2 predecessor,
it falls short in some respects. Particularly, I could not fathom
why AJAX techniques were used for some status reports. The rapid
updates were too quick for the human eye, and the advance to the
next page left me wondering just what had been reported on. Not

However, the rc1 installer does show some promise. It does include
a few server compatibility checks on the front page. These are
likely sufficient given a development targeted at the lowest common
denominator in server setup. There were no file or permission
checks present. This could be problematical, and indeed, I noticed
immediately after completing the installation that the backup tool
was non-functional due to the lack of an admin/backups

On the promising side though, this was the shortest installation
procedure of the three. The instructions were clear, if not quite
complete, and the direction in which development is proceeding is
quite satisfying. The osCommerce project definitely is nowhere near being out of the game.

I’m definitely looking forward to seeing the direction taken by Zen
Cart, the outspoken fork which seeks to dominate them all..

No Comments

Installation Tutorials near completion.

on February 14th, 2008 | File Under creloaded, osC Max, osCommerce, oscuni, Zen Cart -

by David Graham.

Well, more progress!

General Note:

Its been a difficult few weeks, hardware issues having slowed work
down tremendously. I had to replace my hard drive, and reinstall
the operating system. Fortunately, my data was stored on a separate
drive and I’ve lost very little other than time.

Tutorial Preparation:

Zen Cart installation remains a problem, and work there is stalled
at the moment, though recent server changes at may resolve this situation and allow
resumption of development. Tutorials on the remaining distribution
have been put into Flash form and posted for review by gracious
members of the CRE Loaded Beta team, and the users of the osC Max
forums. Feedback so far has been good, particularly from the osC
Max community – Thanks!

Course Development.

Development of Moodle courses has resumed. The CRE Loaded rough
draft is now sufficiently advanced to be used, and has been posted
as our first complete course module. It is complete in that at
least each topic tells a complete story. I will be adding more
resources to them and fleshing this out. But it works as a course
as it stands, including lessons, quizzes and a final exam. The work
on this course provides an excellent springboard for osCommerce
standard and osC Max development which I expect to have complete
within a week. Once the Zen Cart installation issues are resolved,
that course also can be finished expeditiously. Next up on course
offerings will be store configuration.

I’ve conducted a review of our offerings and noticed the following.
In evaluating the eCommerce fundamentals course, it is apparent I’m
going to need to break it down into smaller chunks to make it
easier to manage. It is just TOO unwieldy.

The installation courses will need more resources. In particular
I’ve choses to cover FTP related issues usually uncovered by a
community which focuses on how to use a client program, and left
client program usage uncovered. I’ll put more resources there, and
add test questions to make sure the student can use one. This can
be better addressed as I break out parts of the eCommerce
fundamentals course into modules.

The University Book Store

Development of content on the “” title=”University Book Store”
target=”_blank”>University Book Store continues, and we are now
able to dispense with the categories box, and use the page box as a
Site Directory. This should improve traffic flow downward in the
site. Next up is work on better connections from the school to the
store. As we start building commercial courses this will be

Also coming up in content development will be more material related
to supporting programs and books. Pithy Productions, Inc. offerings
will be documented, including sales links as several of their books
will be used in upcoming courses. Magnetic One products will be
included, as well. I plan to feature them in several courses, as
use of desktop tools to manage a store is becoming a highly valued
option in some parts of the community. The third focus of content
development will be extending the FAQ system to provide more
coverage of CRE Loaded, and initial coverage of osCommerce, osC Max
and Zen Cart.

We also have some potential for multilingual development coming up.
Arrangements are in progress for generating French language
translations of course materials and multimedia publications.

So, while I’ve not written much in the past month, its certainly
been a busy one, and osCommerce University continues to grow. I’m
pretty excited about getting course material live and starting
educational activities. Hope to hear some feedback from students
and see more posting in our forums soon!

No Comments