Knowledgebase

Home » Item #961

Can I run multiple stores from a single database and admin panel?

Item: #961
Date: 9 Jan 2007
Applies to
v5
v6

Question

I want to run multiple front ends for different stores with a single back end admin panel and database. Is this possible? What modifications might be required? Can you quote me for this?

Answer

There are a number of issues to consider. Firstly, under the terms of the CactuShop license agreement, this modification can only be made if each separate store front is licensed as a separate install. It is forbidden to use a single license to run separate stores. Running a store with multiple URLs is not in itself a breach providing that each store is essentially the same (same product selection, same branding, etc.). If there are differences in branding or the subset and pricing of products, you should contact Cactusoft with more detail to ensure that the proposed modification complies with the license agreement.

Beyond the licensing issues, there are technical ones relating to modifying the software to run multiple front ends from a single database. The first is that the store contains certain config settings that relate to a specific URL and store name. For example, webshopURL is used in emails generated from the store to customers when formatting links to the store. It is also used to direct to the checkout area. Any modification to support multiple stores would need to share some config settings that apply to all stores (such as how products display, email server settings, etc.) but allow certain config settings to apply only to individual stores.

The next issue is language strings. Typically some of these will include the name of your store; it therefore makes sense that each store has its own set of language strings. This is not such a technical challenge however, since CactuShop supports multiple languages, each of which has its own set of language strings. Therefore the multiple language functionality could be adapted so that each 'language' is applied to a different store. The language functionality in CactuShop can also handle the different visual branding, since each language can have its own skin template. Instead of the standard dropdown menu to choose language, the store could have code to see which domain is being used to view the site, and display the appropriate 'language' (and hence branding).

The multiple language functionality also handles the situation where a subset of product data is required for some sites. As default, there are up to 5 slots for language specific information about categories, products and versions (i.e. name and description). If the info is entered in all five language fields, the product will show under any of the five languages (sub-sites). However, if you don't wish for a particular product to show on one sub-site, leaving the name and description blank in that slot will ensure it is not active. The drawback is that much of the data is duplicated, especially if the products are to show on all stores. Therefore it may be worth considering some kind of system that allows you to specify which products should appear on which sub-sites. Clearly this complicates the database structure and requires extension of the back end admin pages to allow the products to be linked to the respective stores.

The other main thing to consider is the customer side of things; the membership database, order database and payments. If the sub-sites are running from a single database, then users making an order on one sub-site will create a record in the customers table. If they subsequently go to another of the sub-sites, the system will note that their email address already has an account associated with it. If the intention of having multiple stores is that each 'owns' its customers, the system would need to be modified first to tag each customer as to which store it belongs to, and secondly to allow duplicate email addresses in the customers table (although no duplicates within a particular sub-site).

From the point of view of orders, if the site is a single system then all orders will be processed through the same gateway to the same account. If the intention is to have each store separately 'owned' so that funds are deposited to each store separately, the payment system support in CactuShop would need to be extensively modified to allow multiple settings for each gateway to be set, including a method to link the various gateway accounts to each store.

From the above it should be clear that what seems at first like a relatively simple modification becomes far more complex once the full implications throughout the store are considered. The exact modifications required depend very much on the nature of the sub-sites and in particular which areas will be different for each sub-site and which will be common between them. All but the simplest multi-site modifications are likely to take several weeks to fully implement and test. In order to quote for such work, a detailed specification covering all the issues above is essential.

Can't find the answer you need? Click here to open a support ticket.

« Back