The Data Tool is a companion product to Kartris. It's a Windows application that is designed to carry out various tasks relating to Kartris, although it is primarily used for importing data.

The Data Tool is presently a free download from our web site.

The Data Tool requires .NET 4.0 or above installed on your machine in order to run. It can be downloaded for free from our web site 'downloads' page. It does not need installation, just unzip the files to your desktop and then open KartrisDataTool.exe to get started. You should see the following:

Data tool start screen

You will generally find it's easier to use the Data Tool if you set up the connections you need before starting. Clicking 'Saved connections' in the left hand menu brings up a dialog which lets you create as many connections to different databases as you need.

Save/edit connections dialog

The Data Tool can import from CactuShop v6 or v7 (CactuShop is an older classic ASP shopping cart also produced by Cactusoft), from a CSV or Excel spreadsheet, or from another Kartris database.

The basic principle of data imports is to have a source and destination, and copy information from one to the other. In this way, imports and upgrades do not damage or change the original database.

The import dialogs will typically walk you through step-by-step, and give information if there are problems.

The Data Tool requires CSV or spreadsheet data to be suitably formatted for import. We provide sample spreadsheets within the Data Tool ZIP that show the required columns and layout. You will almost certainly need to manipulate any spreadsheet data you have from third party systems to get it into the right format, but Excel is an ideal tool for this.

The Kartris data tool can import product and order/customer data from CactuShop databases, versions 6.0 and above. If you have data in an older v5 CactuShop database, you can use the CactuShop data tool to upgrade/import this to a new CactuShop v6 database, then use the Kartris data tool to import data from this database to Kartris.

The Kartris data tool will preserve the product, category and version database IDs from CactuShop in the new Kartris site. This is extremely valuable for search engine purposes as it ensures that requests to old CactuShop URLs can be mapped by Kartris to the equivalent new page URL. Your existing pages in search engines will therefore not return a 404 to visitors or search engine spiders; both will get a 301-redirect (permanent redirect) and land on the same product in the new Kartris site. Search engines will update their indexes relatively quickly with the new URLs, but old links that users may have posted in forums and so on will continue to drive traffic to the correct page in your new site.

The image storage in CactuShop worked a bit differently to the structure used in Kartris. Therefore, when importing data from CactuShop to Kartris, you can select the 'Uploads' folder within the CactuShop web, and the 'Images' folder of your new Kartris site (or you can create a local 'Images' folder on your desktop, and copy it to the Kartris site later), and Kartris will copy and file the images correctly into this folder to work with Kartris. Because Kartris does not need smaller thumbnail images, only larger ones (as it thumbnails dynamically where required), it will look first for large images to import for a product, and only go down to normal sized ones if no large image is found.

Order IDs are also maintained, and historical orders from CactuShop can be imported with customer data into Kartris for a seamless upgrade. In fact, orders placed in CactuShop and still awaiting processing in the back end will be upgraded and can be processed and closed off with Kartris after upgrading. Customer accounts will retain the same username and password, and will retain historical order history.

In order to import bulk data from a spreadsheet, the Data Tool needs to make some assumptions.

  • The SKU (version code) for every item must be unique. You cannot have two items in Kartris with the same SKU; if Kartris finds duplicate SKUs, it will either ignore or replace the existing item with the same SKU (depending on settings).
  • All products must have unique names, because products don't have any SKU (these belong to versions). It is possible to have a product with multiple versions, therefore each line in this case will repeat the product name, but have a different SKU and version name. The Data Tool will assume that any row with a repeated product name is the same product.
  • All categories must have unique names - the reasoning is similar to the point above regarding products.

Because of the reasons given above, at present the Data Tool cannot handle cases where multiple products have the same name, or where a products and/or categories have multiple parents.

If you need to import data from a third-party database, such as that from another shopping cart package, the best approach is to produce a query/script in that cart which can output product data in a flat-file format. You can then manipulate this in Excel into the required spreadsheet layout for important by the data tool.

You may find that for large updates, you wish to export all your product data, make changes in a spreadsheet, and then import it. We provide a saved export in the back end (DB admin, exports section) for this, which has been updated in v2.9005 to match the format the data tool requires for import.

The images fields will be output as blank; you can run in data without these and it won't wipe images, as the images are stored in the 'Images' folder on the site, and the data tool will only update the database content.

The Data Tool can be used both to populate a brand new store with product data and to update an existing store. In cases where you are updating a store, there are three options as to how you handle existing data already in the store:

  • Add imported data to existing data and ignore duplicates - do this if your site database data is the 'master' version, and you've made corrections and changes to it, or are just confident existing data is already perfect

  • Add imported data to existing data and update duplicates - in this case, any duplicates in the destination will be updated from the source data

  • Reset database and import - this will clear existing data, and then import the data so you retain no previous data

Depending on where you are importing data from (CactuShop, Kartris or spreadsheet), there are also a variety of filters to control what data is updated.

The P_Image field in the spreadsheet is very flexible in accepting the locations of images.

You can enter a single image name, or you can add multiple image locations, separated with either a comma or semi-colon.


If you enter local paths to images (e.g. just an image name, or a folder plus image name), then the data tool will look for these within the source images folder you specify. So in the case above, if you selected a folder on the C: drive called 'source', it would look for those JPG files in C:\source.

You can also get the data tool to retrieve web images, if you have a full URL. In this case, the data tool will still need a 'source' folder, but will retrieve the web image, copy it to this source folder and then process it and position it in the destination folder. For example:,;

If you leave the image field blank, then no image will be created in the new 'Images' folder system. However, this will not delete images that are already on the site in that location.

Very often whether you've imported from a data file or from an older CactuShop database, you will want to run some additional processing on the order. For example, you may want to change the product display type for all items, or fix other problems you might find in imported data.

Fortunately the Data Tool has a built in method for doing this. Within the KDT_Resources folder, there is an .sql file called 'kartrisSQL_Update.sql'. This SQL gets run against the database after an import is complete. This mainly fixes null values and other such issues, but you can add your own SQL code to this if required.

This SQL file gets run after both data file or CactuShop data imports, both using the GUI or in command line mode.

The Data Tool is also accessible via a command line interface, which means you can use the pre-written functionality to handle imports to a site on an automated or scripted basis. For example, you may have stock or other data deposited in spreadsheet format to a particular folder on a periodic basis (e.g. nightly) which you want to update the web site with.

Using a .vbs file (or some other scripting system), you can call the Data Tool, pass parameters and so on, without having to manually operate it or write your own SQL code to update Kartris.


/MODE:[ignore|update|deleteall]   -> what to do with existing product data


/DATASHEET:[worksheet_name_of_data_in_xls_file] (XLS only)
/OPTIONSSHEET:[options_sheet_name_for_Kartris_v1.4] (XLS only)


/HELP (optional)

/OUTPUT:[logfile(default)|display] (optional)
/SOURCEIMAGESFOLDER:[folderpath] (optional, can use full image path in spreadsheet)
/KARTRISIMAGESFOLDER:[folderpath] (optional)
/TEST (optional) (no processing - just check if parameters are all correct)


For example (single line, though some browsers may wrap it below):

C:\Data Tool\KartrisDataTool.exe /mode:update /file:"c:\user\desktop\exampledata.xls" /dbserver:localhost\sqlexpress /usewindowsauth /dbname:kartrisSQL

If you have spaces in the names or paths of files submitted through command line arguments, you will need to enclose the path in double quotes. Alternatively, try to position files close to the root in a folder without spaces in the name.

Language packs are Excel spreadsheet files that contain language specific strings which can be imported into Kartris when new languages have been added.

Import and export of languages

First ensure you have added the new language in the Kartris back end, if it is not already present.

Next, within the Data Tool, choose the database of your Kartris site, specify which language you're importing the strings to, and select the .xls file that holds the strings. Then import and restart Kartris to see the new language content.

The export process works similarly, you can choose which language in your store to export, and the file to export to. This lets you copy a language from an existing store to a new one. It can also be used if you wish to update strings; you can for example export English strings, get them translated by a contractor (or power translate in Google Docs) and then re-import them to the new language. Or you can use this process to make changes to the English strings and then re-import to update the site.

For minor language tweaks, it will be easier to use the Kartris back end.

You will generally find this is easier to do by opening a new window within SQL Management Studio, but it's provided here in case you need to run a quick bit of SQL code.

Because Kartris passwords are hashed, there is no way to recover your password if you forget it. Instead, the password must be reset. Customers have a facility to do this through the front of the web site, by having a temporary link sent to their email address.

However, this is not a feature of the back end admin password system.

To reset the admin password, if you forget it, you can use the Data Tool feature. You will need to have a copy of the site's web.config file as well as a connection to the MS SQL database. The web.config file is required, because it contains some of the information that is used to hash (scramble) the passwords, which the Data Tool can read from this file.

Powered by tomeCMS