Friday, October 26, 2007

Install Instructions for Multi-store/Multi-shop Contribution

Multi-store/Multi-shop 1.6/ 1.7 Install Instructions for Multi-store/Multi-shop Contribution Version 1.6/1.7
version 1.7 Zip file
Download here This
Zip file has the corrected categories and customer pages

Helpful Hint—If you are using Multi-store/Multi-shop
version 1.6, do not upgrade. Investigate the features in 1.7 first to see what
effects it will have on your shop. If you are trying to upgrade from version
back up your files

These instructions are work in progress and have been written to help my customers. I
will periodically update this page, so please check back

remember to back up your files

If you feel that these instructions are
please donate a dollar (or more if you
can) to support my work.

Install instructions
for osCommerce Multi-store contribution

Check out the configuration file definitions


Combine all the files from this contribution with a base version of osCommerce MS2.2. Do this before uploading any files to the server. it will simplify and speed up the installation for all stores

Note – I have prepackaged combinations ready
to install,

look at my
Multi-store/Multi-shop package page for details

Note: You must not delete the
update.sql file, you will need to run this file from your myphpadmin SQL page
Setup the database; create the database and user name. Add the user to the database. Record the database name, user name and password for the installation

While working on the server, it is a good time to create all the sub domains for the additional stores

Upload the store package that was completed in step 1

Once the upload is finished change the permissions on the following files to 706 or 777; /includes/configure.php /admin/includes/configure.php

Go to the store URL in the browser and follow the install instructions. It is recommended to use the database sessions instead of the file sessions option with multiple store contribution

When you arrive at the last install screen that has the catalog and administration buttons, run the update.sql file. Do not close the install screen

Log on to the store admin through the install screen and; Create a second store, it does not matter what it is, it is used to set the rest up and may get deleted later. You can call the configuration file configuration_store2 and check “Insert default configuration table?” box. Set the language to the default language for both stores, mine is English. Don’t forget to uncheck the other languages while I am there. you can add languages later, this simplifies any troubleshooting if neededGo to the catalog – category/products page and select a category for each store, usually hardware for a default store and dvds for the second store. I don’t use the same category for both stores. Also check the “Enable/Disable store to ALL sub-categories and sub-products?”Go to Administration->Configuration->Multi-Stores and define the WS & FS paths
Test out the default store to see if it all working. I am not yet concerned with the second store.

If everything looks good, go back and start filling out the configuration screens for the default store and rename the default store in the stores admin page.

Creating a new store

Once the first store is finished and is checked, upload the store package files to the store directories made in step 2, It is optional to upload the admin and install directories, but they will need to be deleted for security reasons after the upload is finished.

Edit the secondstore/includes/configure.php file in the sub domain to reflect the new store absolute file path and web paths

Edit the secondstore/includes/database_tables.php changing define(‘TABLE_CONFIGURATION’, ‘configuration’); to reflect the new store configuration table name

Test out the second store to see if the categories and products appear. If they do, your finished. Delete the install directory.

Make sure that file and
directory permissions are set properly

Change the following directory
catalog/images => 777 read/write/execute—INCLUDE SUBDIRECTORIES catalog/pub => 777 read/write/execute catalog/admin/backups => 777 read/write/execute catalog/admin/images/graphs => 777 read/write/execute

Change the following file permissions;
catalog/includes/configure.php => 604 read catalog/admin/includes/configure.php => 604 read

Introduction and Opinion DRP Part 1

Introduction and Opinion DRP Part 1

Introduction and Opinion

I am going to be honest about this subject; most osCommerce stores are at risk of losing all data. I have seen less written about recovery procedures or even real world backup techniques for osCommerce than I have seen about email or template creation for osCommerce.

But as I said, I am going to be honest with you; you pay for what you get.

If you expect that your store won’t have a meltdown or that someone will not try to hack you, well I have a bridge to sell you. A fact that a large number of osCommerce Stores are being hosted on bad sites and most inexpensive web hosting does not have a Service Level Agreement (SLA), it puts the all the data for your store at great risk and tell you that if your files or database is corrupt or lost, it is your problem. This also means that if you collect credit card numbers and transaction records, all you need to have is someone to hack your system and Boom! You get hit with a lawsuit. If you never heard of an SLA, read what is an SLA?

I researched a large number (200) of web hosting packages for a customer who wanted to be careful about where their store was hosted. I won’t mention specific companies or any stores but I will say this customer decided to pay $100 a month for hosting service and has not regretted it at all. The results of my research were discouraging, I found that 90% of web hosts companies are resellers and don’t even know what an SLA is, let alone have one. Out of the remaining 10% of these web hosting companies own the servers and have real datacenters; 5% have some sort of SLA but their services are low to mid range pricing and the remaining 5% have high end hosting packages which cost at least $300 a month and have an SLA.

Most hosting inexpensive web hosting services are available on Linux with mysql databases. The technology is not a problem in today’s world, especially with the price of hardware under $600 for a complete server, router and other needed hardware. I ran across a few hosting companies that are setup in peoples basement and one even in a garage. For that matter, you can even lease a server from Dell or HP, buy a cable connection with a static ip address, install Linux/Mysql and host about 50 websites (you may even get 100 sites on one server) on the server at $10 a month using this configuration which will make you a nice profit.

But is it a real good idea to be your own host for your store that makes money? No, it is really stupid.

Why? There are too many factors involved; internet connection, physical security, hardware failure and other issues that will cause you more headaches than it is worth. One really important issue is the internet connection. Even with cable access, there is no guarantee that your web site will be accessible to the internet. You could eliminate this be adding redundant connections, but by the time you get this all in place, you may have spent too much time (and money) just learning about the systems to maintain the connection.

It is better to have this handled by a professional staff at an established web hosting company.

Remember that a customer has no patients

for a site that does not work and working sites make money

I do not recommend a hosting service, even though I do advertise Globat on my site because I am an affiliate of theirs and need to make some money off this site.

What is Disaster Recovery?

It is very simple – to be able to recover from a disaster in a reasonable amount of time with minimal lose of revenue.

What is a disaster?

A disaster is anything that interrupts your business. This is a broad definition, but in reality it could range from corruption of a database or files to a complete loss of access to the web site. It also includes hacker attacks and spamming of the site by email programs.

I can define all kinds of terms used in professional Disaster Recovery Planning; Business Impact analysis, Recovery Time Objective, Recovery Point Objective, etc.. But I won’t because it would take too long to explain each of these.

Preparing for the worst DRP Part 2

Preparing for the worst DRP Part 2

In business it is wise to ensure that you have the ability to make money. Sometimes many people who have never owned a business don’t realize that there is a need to safeguard the income sources. Think of this as insurance that will save you money over the long term.

You would not buy a new car and drop the insurance within the first month. This is taking a big risk and if you have an accident and total the car, you are still responsible for the payments. Well buying insurance for your online store is a lot cheaper than buying insurance for a car.

I recommend that all my customers to do a few things;

  • Use Godaddy for the domain register to manager your domains
  • Buy more web space from a different provider
  • Buy a CD or DVD recorder and media to go with it
  • Why use godaddy?

    Because my experience with their domain management services has been excellent and I can change the DNS for the domain to point to another and it happens in a matter of ten to fifteen minutes in most cases. There is no gaurentee that this will happen in that time period, but for some reason the propagation of the DNS entries are very quick with them. Other companies have taken longer than three hours to move a domain, but this is my experience and advice.

    Why buy more web space from a different provider?

    Well there are a lot of reasons for this; development, testing and of course disaster recovery. Let’s say that your web host has a major connection problem, a construction crew cut through all the fiber lines that connect the web host to the outside world. It could take the communications company hours to restore just one connection, let alone all the connections. Now if you have a profitable store, what monetary loss will you have after 5 hours of no access to your store by people on the internet? A lot, you won’t lose only money but your reputation may suffer too. By having an alternative site with a different provider already to go, you can in effect move the entire store to the other web host provider, change the DNS and be up and running in a matter of 30 minutes or less. The faster you are up and running, the less customers you will lose.

    Why buy a CD or DVD recorder and media to go with it?

    If you have one already that is great, no need to buy one. the reason I tell my customers to get one so they have a way to get the back up files off of the server and their computer and store them in a safe place. Would you leave your credit cards lying around so your dog can chew them up? Of course not! Why leave the backups on the server where they are at risk of being hacked or leave them on your computer where they may get corrupted or even worst deleted. Put them on CD or DVD, date them and put them away in a safe place. Remember this is your store that makes you money, treated it well.

    The Configuration File

    The Configuration File

    This information covers the configuration file enteries for osCommerce.

    WS means the Web System path – /catalog/ and /catalog/includes as an example are considered a web path. Normally it is without the URL, which is added within osCommerce.

    FS means the File System path on the server where your store is located on—/home/mystore/public_html/ or /home/my store/public_html/catalog/ are considered file system paths

    To clarify a common question; when there are two configurations on one line means that the first part is being defined by being appended to the previously defined statement.

    For example – define(‘DIR_WS_BOXES’, DIR_WS_INCLUDES . ‘boxes/’); Means that the definition for the boxes Directory Web System path is boxes/ appended to /includes/ to form /includes/boxes/.

    Configuration Definitions for a Main Store

    The following examples are for a store at

    HTTP_SERVER – Key Entry

    This is the server URL –

    This sets the path for many of the definitions on this configuration file.

    Example—define(‘HTTP_SERVER’, ‘;

    HTTPS_SERVER – Key Entry

    This is the server URL –

    There are many different ways that this could be setup. Many times the hosting company has a shared SSL certificate that you may use as part of your hosting package. For example you might have to use something like And place this path in the definition entry.

    This sets the path for the SSL URL for this configuration file.

    Example—define(‘HTTP_SERVER’, ‘;

    ENABLE_SSL – Key Entry

    This definition sets the flag to enable SSL for a secure site. If this is set to false, the HTTPS_SERVER and HTTPS_COOKIE_DOMAIN definitions don’t matter. If you have all the correct information to setup SSL, set this to true.

    Example – define(‘ENABLE_SSL’, false);


    Example – define(‘HTTP_COOKIE_DOMAIN’, ‘’);


    Example – define(‘HTTPS_COOKIE_DOMAIN’, ‘’);


    Example – define(‘HTTP_COOKIE_PATH’, ‘/’);


    Example – define(‘HTTPS_COOKIE_PATH’, ‘/’);


    Example – define(‘DIR_WS_HTTP_CATALOG’, ‘catalog/’);


    Example – define(‘DIR_WS_HTTPS_CATALOG’, ‘catalog/’);


    Example – define(‘DIR_WS_IMAGES’, ‘images/’);


    Example – define(‘DIR_WS_ICONS’, DIR_WS_IMAGES . ‘icons/’);


    Example – define(‘DIR_WS_INCLUDES’, ‘includes/’);


    Example – define (‘DIR_WS_BOXES’, DIR_WS_INCLUDES . ‘boxes/’);


    Example – define(‘DIR_WS_FUNCTIONS’, DIR_WS_INCLUDES . ‘functions/’);


    Example – define(‘DIR_WS_CLASSES’, DIR_WS_INCLUDES . ‘classes/’);


    Example – define(‘DIR_WS_MODULES’, DIR_WS_INCLUDES . ‘modules/’);


    Example – define(‘DIR_WS_LANGUAGES’, DIR_WS_INCLUDES . ‘languages/’);


    Example – define(‘DIR_WS_DOWNLOAD_PUBLIC’, ‘pub/’);

    DIR_FS_CATALOG – Key Entry

    Example – define(‘DIR_FS_CATALOG’, ‘/home/good4u/public_html/’);


    Example – define(‘DIR_FS_DOWNLOAD’, DIR_FS_CATALOG . ‘download/’);


    Example – define(‘DIR_FS_DOWNLOAD_PUBLIC’, DIR_FS_CATALOG . ‘pub/’);