Move products between sites
- Version
- 3.x
- Updated
Audience: store admins · Scope: exporting and importing products between installations · Last reviewed: 2026-08-04
What this does — Builds a product a second time somewhere else, without rebuilding it. You export one or more products to a single file, then import that file on another CBX site. The file carries the whole product: its configurator pages, questions, answers, prices, calculations, rules and images.
The usual reason is a staging site: you build and test a product where customers cannot see it, then move the finished thing to the live store.
Before you start
- Open Product Transfer in the CBX menu.
- You need the same access on both sites — the one you export from and the one you import into.
- Importing changes the receiving site. On a live store, take a database backup first.
Export products
- Use the filters to find what you want — search by title or SKU, narrow by status (published or unpublished), or pick a product list.
- Tick the products to include. The counter next to the button shows how many are selected.
- Click Export selected. Your browser downloads one
.zipfile containing every product you ticked.
The file is a transfer file, not a backup — it holds the products you picked and nothing else.
Import a package
-
On the receiving site, open Product Transfer and choose the file under Package file.
-
Choose how the products should be created:
- Create as new products — the products are added alongside what is already on the site, each getting a new ID. Use this when you are bringing a product in.
- Keep the original IDs (overwrite) — the products replace the ones they came from, and anything the receiving site has that the file does not is removed. Use this to push an updated product from staging to live, so the two end up identical.
-
Click Check package. Nothing is written yet — CBX reads the file and reports what importing it would do.
Read the check before you confirm
The check lists what it found, in three strengths:
| Strength | What it means |
|---|---|
| Blocker | The import cannot run. Fix what it names, then check the file again. |
| Warning | The import can run, but something will be lost or is not quite right. You decide. |
| Notice | Just so you know — no decision needed. |
Every warning has a tick box, and Import now stays disabled until you have ticked them all. The common ones:
- The CBX versions differ. The two sites are on different versions of ConfigBox. This is often fine — it is telling you so you are not surprised.
- A referenced record does not exist here. The product points at something the receiving site does not have, such as a tax class or a customer group. CBX never creates these for you, because it cannot know your rates or prices are the same. Create the missing record first if it matters, or accept that the field will be left empty.
- Products will be overwritten. Only in Keep the original IDs mode.
- Saved cart data will be deleted. Also only in that mode: removing a question that customers have answered removes their saved answers with it. The message tells you how many. This cannot be undone.
While it imports
Click Import now and CBX works through the file one product at a time, showing a progress bar and listing each product as it lands. Large packages are handled in small steps on purpose, so nothing times out.
If the page is interrupted — a dropped connection, a closed laptop — the products already imported stay imported. Each product is written completely or not at all, never half.
After importing
- Open each imported product and check it over: its pages, its prices, and anything the check warned you about.
- In Create as new products mode the imports arrive with the same titles as the originals. Rename them and their SEF segments if both are to live on the same site.
- Publish them when you are happy — an import does not change what is on the storefront until the product is published.
Without a browser, for a scripted deploy
If the transfer is a step in a deployment rather than something you do by hand, both halves have a command-line equivalent. They do exactly what the screen does, against the install whose checkout they are run from:
php tools/export-product-package.php --sku=YOUR-SKU -o /tmp/product.zip # on the source
php tools/import-product-package.php /tmp/product.zip --mode=exact --force # on the target
The importer runs the same check the screen does and refuses on a blocker. --force is how you
accept the warnings: nobody is at the keyboard to read them, so they have to be accepted
deliberately rather than by default. --dry-run reports what would happen and imports nothing.
Ask your developer or host to run these — they need shell access to the site's files.