Digital Web Asset
Shine WooCommerce to Opencart
Info & Tutorial
WOO TO OPEN CART — INFO & TUTORIAL
(Current version: 1.2.9)
WHAT IT DOES
Woo to OpenCart moves your entire product catalogue from WooCommerce to OpenCart
in one import. Install it in your OpenCart admin, upload the standard WooCommerce
products export, and the importer rebuilds everything for you:
- Products with names, descriptions and SEO fields
- Regular prices, sale prices and sale date ranges
- Stock quantities and stock status (sold-out stays sold-out)
- Categories - including full "Parent > Child" hierarchies, created automatically
- Brands / manufacturers
- Attributes ("Attribute 1 name / values", "Attribute 2", ...)
- Tags and SEO keywords (a unique SEO URL is generated for every new product)
- Images - downloaded from WooCommerce onto your own server (first image = main
image, the rest = additional images)
- Variable products - WooCommerce variations become real OpenCart options
(Size, Colour, ...) that customers can pick on the product page
COMPATIBILITY
- OpenCart 3.0.2 - 3.0.3.8 -> use the OpenCart 3 package
- OpenCart 4.0.x / 4.1.x -> use the OpenCart 4 package
- PHP 5.6 - 8.4, MySQL 5.5+
- For remote images: cURL or allow_url_fopen enabled (mbstring recommended)
Not for OpenCart 1.x / 2.x.
WHAT'S IN THE DOWNLOAD
- Opencart3x.ocmod.zip - install this on OpenCart 3.0.x
- Opencart4x.ocmod.zip - install this on OpenCart 4.x
- Documentation.pdf - the full manual
PART 1 - INSTALL ON OPENCART 4
1. Log in to the admin and open Extensions > Installer.
2. Upload Opencart4x.ocmod.zip.
3. In the Installed Extensions list, click the blue install button on its row
(OpenCart copies the files and registers the extension).
4. Open Extensions > Extensions, pick "Modules" in the type filter, find
"Shine WooCommerce Importer" and click the green + (Add). This registers the
module, creates its helper table and sets the admin permissions.
5. Click the edit (pencil) button to open the importer.
PART 2 - INSTALL ON OPENCART 3
1. Open Extensions > Installer and upload Opencart3x.ocmod.zip.
2. Open Extensions > Modules, find "Shine WooCommerce Importer" and click the
green + (Install).
3. Click Edit (pencil) to open the importer.
PART 3 - EXPORT YOUR PRODUCTS FROM WOOCOMMERCE
1. In WordPress go to Products > All Products > Export.
2. Set Columns to "All columns" and click "Generate Export" / "Export All Products".
3. Download the .csv and upload it exactly as WooCommerce produced it - do not
open and re-save it in Excel (Excel can silently change encoding and prices).
IMPORTANT: use the FULL export. A "custom" export with only some ticked fields is
rejected, because the importer needs Name plus either SKU or ID to identify every
row, and the Type / Parent / Attribute columns to build variations. If your
products have no SKUs at all, the ID column alone is enough (models become
WOO-<id>), so every shop can be migrated.
PART 4 - IMPORT INTO OPENCART
STEP 1 - UPLOAD
Upload the CSV, choose your import options and the batch size, then press Upload.
At this point only the header row is read, so this stays fast even for very large
catalogues. The file is stored outside the web root.
STEP 2 - COLUMN MAPPING
Every detected column is shown field by field with a green "Mapped" or a grey
"Not found" label. Grey fields are simply skipped. Required: Name, and SKU or ID.
Matching is case-insensitive and aliases are understood automatically
("Regular price" = "Price", "Weight (kg)" = "Weight", etc.).
STEP 3 - IMPORT
Press "Start import". The browser fetches the file in small batches (default 25
rows per request, up to 200), so PHP time and memory limits are never a problem -
even 100,000+ row files import reliably on shared hosting. While it runs you see:
- a progress bar with processed / total rows
- live counters: added / updated / skipped / failed
- a scrolling log with one line per product
- a final summary, e.g. "182 added, 14 updated, 3 skipped, 1 failed."
"Start over" deletes the temporary file so you can upload a different export.
IMPORT OPTIONS EXPLAINED
- Update existing products (default: ON)
A product with the same SKU or Model is updated instead of duplicated.
OFF = existing products are skipped, so duplicates are impossible.
- Create missing categories (default: ON)
Missing categories, including "Parent > Child" paths, are created automatically.
OFF = products only link to categories that already exist.
- Download remote images (default: ON)
http(s) image URLs are downloaded into image/catalog/woo/. Local paths that
already exist inside image/ are always used as they are.
- Import product attributes (default: ON)
Fills OpenCart attributes from the "Attribute N name / value(s)" columns
(multiple values separated by |).
- Import variations as product options (default: ON)
Variable products become one product with selectable options built from their
variations. OFF = every CSV row becomes a standalone simple product.
- Generate SEO keywords (default: ON)
Every NEW product gets a unique SEO URL. Existing URLs are never modified.
- Batch size (default: 25)
Rows per request. Lower it on slow hosting, raise it for speed.
WHAT EXACTLY GETS IMPORTED
Name -> product name + meta title
Short description -> meta description
Description -> product description
Regular price / Sale price (+ start/end dates) -> price / special price
Stock -> quantity (stock management off = stays orderable)
In stock? -> stock status; out-of-stock items really are unbuyable
Published (Status) -> enabled / disabled (drafts and private stay hidden)
SKU -> model + SKU (fallback model WOO-<id> from the ID column)
Categories -> linked to every level of the path; "Uncategorized" ignored
Tags -> tags + meta keywords
Images -> main + additional images, downloaded and validated
Weight (kg), L/W/H (cm) -> weights and dimensions with the right units
Brands / Manufacturer -> manufacturers
Attribute N name / value(s) -> product attributes
Tax classes, shipping classes, upsells and purchase notes are safely ignored -
unknown columns can never break the import.
VARIABLE PRODUCTS (VARIATIONS -> OPTIONS)
A WooCommerce variable product exports as one parent row (Type = variable)
followed by its variation rows. The importer turns the parent into ONE OpenCart
product and every variation into an option value with its own price, stock,
weight, SKU and image - customers pick Size/Colour on the storefront exactly like
in WooCommerce. Groups are imported atomically: if one variation fails, the whole
product rolls back and is reported. "Any Size / Any Colour" variations are applied
to every value the parent declares, and the product price becomes the cheapest
combination, so option prices add up correctly.
WHY IT IS SAFE TO RUN - AND RE-RUN
- Duplicate protection: SKU and Model are checked before every write. Importing
the same export twice UPDATES your products instead of duplicating them.
- Per-product transactions: a bad row rolls back only that product and the import
continues with the next one.
- Your manual work is respected: on update only commercial fields (price, stock,
status, images, ...) are refreshed. Settings you configured by hand (tax class,
minimum quantity, sort order, ...) are not overwritten.
- Downloaded images are remembered, so a re-import never downloads the same
picture twice.
TIPS FOR A SMOOTH MIGRATION
- Back up your database before the first import, and try it on a staging copy first.
- Always export with Columns: All columns.
- Big catalogue or slow hosting? Lower the batch size.
- Import interrupted or partially done? Just run it again - imported products are
updated and the rest continues.
- Only .csv and .txt files are accepted. Re-export instead of renaming a file.
TROUBLESHOOTING
"Invalid file format"
Only .csv / .txt are accepted - re-export instead of renaming the file.
"Missing the required column(s): SKU / ID"
The export was a custom one. In WooCommerce use Products > Export with
Columns: All columns, then import that file.
"The file could not be uploaded (error code 1)"
The CSV is larger than upload_max_filesize / post_max_size. Raise both in
php.ini or split the export.
The import stalls at a certain row
Lower the batch size or raise the PHP time limit. Already imported rows are kept.
"Skipped variation row: the parent product ... was not found"
The parent is not part of this export. Import the parent first and run the
import again - the variations will attach automatically.
Anything else: check system/storage/logs/error.log for row-level details.
FAQ
Q: Does it import orders, customers or coupons?
A: No - it migrates the product catalogue (products, options, categories, brands,
attributes, images, SEO).
Q: My shop already has products. Can I still import?
A: Yes. With "Update existing products" on, matching SKUs are updated and
everything else is added.
Q: What happens when I uninstall the module?
A: The module and its helper table are removed; imported products, categories,
options and images stay in your shop.
Q: Multi-store / multi-language?
A: Descriptions are written in the default language; products, categories and
brands are assigned to the default store and every additional store.
Q: Which package for which version?
A: OpenCart 4.x -> Opencart4x.ocmod.zip, OpenCart 3.0.2+ -> Opencart3x.ocmod.zip.