Product Import / Export XLSX and CSV for OpenCart 3
The module has been tested on OpenCart 3.x. Operation on other versions is not guaranteed.
Sales and technical support of the module for online stores are not provided in the Russian Federation and the Republic of Belarus.
The module code is unencrypted, without ionCube or obfuscation. You can freely view and modify the code.
The Product Import/Export module adds a comprehensive set of tools to OpenCart for batch catalog import and export in XLSX and CSV formats.
The extension works not only with core product fields, but also with multilingual content, attributes, filters, standard OpenCart options, images, categories, manufacturers, SEO URLs, and metadata.
Separate import wizards, column mapping, preliminary validation of reference values, batch processing, file history, and export profiles make it safer to work with both small spreadsheets and large catalogs.
How the module works
- The administrator uploads an XLSX or CSV file
- For XLSX files, the administrator selects the required worksheet
- The import mode, product identifier, and additional settings are selected
- File columns are mapped to OpenCart fields
- Unknown attributes, filters, options, and their values are reviewed
- Batch processing is started and its progress is displayed
- If necessary, the file can be reopened from the history, its settings changed, and the import run again
Module features
- Import and export data in XLSX and CSV formats
- Create new products and update existing products
- Work with product_id, model, sku, upc, ean, jan, isbn, or mpn
- Import core, multilingual, and SEO product fields
- Import attributes, content, filters, and standard OpenCart options through separate wizards
- Automatically create or manually map missing attributes, filters, options, and values
- Batch import main and additional product images
- Generate identifiers, SEO URLs, and metadata using configurable templates
- Filter products before export
- Save and reuse export profiles
- Export OpenCart reference data with IDs and multilingual names
- Download ready-to-use XLSX templates for every import type
- Keep a history of uploaded files and import settings
- Process large files in batches through sequential AJAX requests
- Work with additional database fields and ocStore fields
- Configure import and export field visibility separately
Product import
The product import wizard supports three modes: create and update, create only, or update only. Each file column can be mapped to the corresponding OpenCart field or excluded from import.
Supported core catalog fields include identifiers, model, SKU, product codes, location, quantity, out-of-stock status, manufacturer, price, points, tax class, date available, weight, dimensions, minimum quantity, subtract stock, status, sort order, categories, stores, images, and other standard OpenCart data.
The name, description, tags, Meta Title, Meta Description, Meta Keywords, Meta H1, and SEO URL fields are mapped separately for each store language.
Products can be found by product_id, model, sku, upc, ean, jan, isbn, or mpn. If the selected identifier is missing for a new product, the module can generate it using a template, for example K-{number:6}.
Categories, manufacturers, and stores
- Find manufacturers by ID or name
- Find categories by ID or full path
- Specify multiple categories in one cell using a configurable separator
- Replace product categories or add categories to existing assignments
- Automatically assign parent categories
- Set a default category and manufacturer with priority over file data
- Assign a product to one or multiple stores
- Support main_category in compatible ocStore builds
Attribute import
Attributes are imported through a separate wizard. The attribute ID is specified in square brackets in the column header, for example: RAM[12] EN.
- Support for one or multiple language columns
- Sequential language columns for each attribute
- Replace, add missing, and update-from-file modes
- Automatic mapping by ID and name
- Option to ignore an unknown attribute, create a new one, or map it to an existing attribute
Content import
A separate wizard is provided for multilingual updates of product names, descriptions, tags, and metadata without changing other product data.
HTML markup, apostrophes, quotation marks, and line breaks are preserved as cell content. The available modes are full replacement, filling empty fields only, and updating with non-empty values from the file.
Filter import
Filters are assigned to products using separate rows. A filter group and filter value can be specified by ID or name.
- Replace all product filters
- Synchronize only the groups present in the file
- Add filters without removing existing assignments
- Ignore, create, or manually map unknown filters
Standard OpenCart option import
The module imports standard OpenCart options and option values, including type, required status, quantity, subtract stock, price, points, weight, adjustment prefixes, and values for text and date/time option types.
- Replace all product options
- Synchronize only the options present in the file
- Add and update options without deleting other options
- Create or manually map missing options and values
The module uses the standard OpenCart option model and does not create dependent combinations between multiple options.
Image import
Images are uploaded in batches. The product identifier and image order are determined from the file name using the configured separator.
- Independent lookup field selection: model, sku, upc, ean, jan, isbn, or mpn
- Configurable rule for determining the main image
- Ignore, fill when empty, or replace the main image
- Ignore, extend, or completely replace the image gallery
- Select a storage directory inside the image directory
- Clear the cache of replaced images
- Optionally delete old files after checking standard OpenCart references
Example: SKU001.jpg is the main image, while SKU001@2.jpg and SKU001@3.jpg are additional images.
SEO URLs and metadata
SEO data can be imported directly from a file or generated during product import using configurable templates.
- Modes: do not generate, fill empty fields only, or overwrite
- Separate templates for SEO URL, Meta Title, Meta Description, Meta Keywords, and Meta H1
- Macros for product data, manufacturer, category, price, and store name
- Automatic URL transliteration
- Uniqueness validation with automatic -1, -2, and subsequent suffixes
- Use identical or separate URLs for different languages
Data export
Export runs in batches and creates separate files for products, attributes, content, filters, and standard options.
- XLSX and CSV formats
- Selection of required core and multilingual fields
- Selection of export languages
- Categories as IDs or full paths
- All reference attributes or only attributes used by the selected products
- Filter by categories, manufacturers, status, stock, price, creation date, modification date, and store
- Reference columns with product name, manufacturer, and categories in attribute, filter, and option exports
- Save, load, and delete export profiles
Descriptions are exported with their original HTML markup. Physical image files are not copied; their paths are written to the spreadsheet.
Reference data export
The following reference data can be exported separately to prepare spreadsheets and ensure correct mapping:
- Attribute groups and attributes
- Categories and manufacturers
- Options and option values
- Filter groups and filters
- Stock statuses and tax classes
- Weight and length units
XLSX templates and worksheets
Each import wizard provides a downloadable XLSX template with the current column names. Templates account for store languages, field visibility, additional database fields, and existing attribute IDs.
If an XLSX workbook contains multiple worksheets, the required data sheet can be selected before column mapping.
Import history
Uploaded product, attribute, content, filter, and option files are stored in protected storage together with their operation settings.
A file can be reopened to select another worksheet, change its mode, languages, or mapping, and run the import again. History records can be filtered by import type.
Field visibility and additional fields
Unnecessary import and export fields can be hidden independently in the settings to reduce the forms to the required working set. The current product identifier always remains available.
The module scans additional scalar columns in the product and product_description tables. The administrator can assign a readable label and independently enable each field for import and/or export.
When the corresponding columns are present in the database, the ocStore fields noindex, meta_h1, and main_category are supported.
Batch processing and performance
- Import and export operations are processed in parts through sequential AJAX requests
- Batch size is configurable in the administration panel
- Progress is displayed without reloading the page
- Only the required row range is read from XLSX files
- Export does not accumulate the entire catalog in memory
- Attributes can be limited to those actually used by the selected products
Validation and data safety
- Required columns and settings are validated before processing starts
- Numeric values, statuses, dates, and prefixes are validated
- Unsafe rows are skipped when an identifier is missing or is not unique
- Errors include the row number and the reason for failure
- Unsafe paths are rejected during image import
- Standard access and modify permissions are separated for each section
Before a bulk import or any replacement operation, we recommend creating a backup of the database and the image directory and testing the file on several products.
Administration panel
The module creates a separate Product Import/Export section in the OpenCart left-hand menu:
- Product import
- Attribute import
- Content import
- Filter import
- Option import
- Image import
- Export
- Reference data export
- Import history
- Settings and built-in documentation
Open source code and independence
The module code is neither encoded nor obfuscated. PHP, Twig, JavaScript, and XML files are available for review and modification.
The locally installed PhpSpreadsheet 5.8.1 library is used to work with spreadsheets. The module does not load it from external CDNs during operation.
System requirements
- OpenCart 3.0.3.x
- PHP 8.1–8.5
- PhpSpreadsheet 5.8.1 included with the module
- PHP extensions: ctype, dom, fileinfo, filter, gd, iconv, libxml, mbstring, SimpleXML, xml, xmlreader, xmlwriter, zip, and zlib
- Write permissions for the upload, import history, and image directories
Installation
- Install the PhpSpreadsheet library package through Extensions / Installer
- Install the main Product Import/Export package through Extensions / Installer
- Go to Extensions / Modifications and refresh the modification cache
- Grant access and modify permissions for the required product_import routes to the administrator user group
- Open Product Import/Export → Settings
- Check the system requirements and save the working settings
Service tables are checked and created automatically when the settings page is opened. No separate installation from the Extensions / Modules list is required.
Important notes
- Import is not a substitute for backups
- Already processed batches are not rolled back after the page is closed or the operation is canceled
- A mapped empty cell may clear a field in replacement mode
- Do not run two operations of the same type simultaneously in the same administration session
- XLSX has a limit of 32,767 characters per cell; use CSV for long HTML descriptions
- Physical deletion of old images is irreversible
- Additional fields created by third-party extensions should only be enabled after verifying their accepted data format
License
The license covers one domain and its subdomains.
ocStore 3.x
English
Russian
English
Russian
There are no reviews for this product, be the first to leave your review.