Moving complex assortment from PrestaShop to Shopify requires precise mapping of database structures to the SaaS model. The main technical challenge is usually correctly mapping product combinations, which in PrestaShop rely on multi-table relationships, while Shopify uses a flatter variant structure. Proper product data migration is a key element of the broader PrestaShop to Shopify migration process, because errors at this stage can lead to lost navigation filters, inventory errors, and a worse shopping experience. Understanding architectural differences between both platforms enables better product management and information consistency after the system change.
Product data architecture: PrestaShop vs. Shopify
The fundamental difference between both platforms lies in how product and version information is stored. PrestaShop uses a relational SQL database where main product data, attributes, attribute values, and final combinations are spread across many linked tables. This model allows almost unlimited complexity but increases error risk during manual export, especially when one-to-many relationships are misinterpreted during migration.
Shopify uses a more centralized model. Each product can have up to three options (Options)-such as size, color, or material. Variants are generated from these options. Each variant is a separate entity with its own SKU, price, and inventory level, all under one parent "Handle" (the product's unique URL identifier). Variant migration is only one stage of a comprehensive PrestaShop to Shopify migration requiring special attention when mapping ID identifiers. This structure directly affects product page load performance, as the system does not recalculate combinations from multiple database tables on every request.
Attributes vs. features in PrestaShop: How to map them correctly
PrestaShop makes an important distinction between Attributes and Features. Understanding this difference is critical for correct Shopify structure preparation:
- Attributes: Used to create combinations the customer selects on the product page (e.g. size XL, color blue). Each combination has its own inventory level.
- Features: Purely informational data that do not create separate variants (e.g. composition: 100% cotton, country of production: Poland). Used mainly for filtering and informing the user.
During migration, attributes map to Shopify "Options." Features are best moved to metafields. This approach preserves product page clarity and precise collection filters. For example, if material is informational only and not a customer choice, it should go to metafields. If the customer chooses between leather and suede versions, material becomes an attribute generating variants. Technical aspects of creating metafield definitions in Shopify allow specifying data types (e.g. text, number, file), simplifying later automation of parameter display in the store template.
Exporting combinations from the PrestaShop database
To extract complete variant data from PrestaShop, information from several system tables must be combined. Key tables include: psproductattribute (combination data such as price, weight, SKU), psproductattributecombination (linking attributes to products), and psattribute_lang (attribute names in different languages). When exporting, pay attention to combination-specific prices and discounts that in PrestaShop may be defined independently of the main product.
A common technical problem is omitting the psstockavailable table, resulting in missing current inventory levels for individual variants after import to the new platform. This data must be consolidated into one file where each row represents a single variant and columns match Shopify's required structure. This often requires advanced SQL queries joining product identifiers with attributes, values, and assigned inventory levels across locations (if the store uses Multi-Store functionality).
Preparing the CSV file and cleaning data before import
Before importing into Shopify, the CSV file must undergo rigorous verification. Shopify's standard format requires specific column naming and row hierarchy. Below is a checklist of key elements:
- Handle: Must be identical for all variants of the same product so the system knows they belong to one group.
- Option Name & Value: Option names (e.g. Size) and values (e.g. M) must be consistent throughout the file. Remove extra spaces and unify capitalization.
- Variant SKU: Each variant should have a unique SKU for correct inventory sync and external system integration.
- Variant Inventory Tracker: Set to "shopify" so the system manages inventory levels.
- Image URL: Image URLs must be publicly accessible and link directly to image files so Shopify can fetch them during import.
- Encoding: Save the file in UTF-8 format to prevent errors displaying diacritics.
How to work around Shopify's 100-variant-per-product limit
Shopify's standard limit is 100 variants per product. For stores migrating from PrestaShop, where size, color, and material combinations often exceed this number, one of these scale-appropriate methods is required:
- Product split: Break one product into several separate entries (e.g. by color). Each color becomes a separate product with its own sizes, staying within the limit. Link products visually on the product page using metafields or dedicated template sections. This can benefit SEO when each color version has its own description and unique images.
- Combined Listings: Available for Shopify Plus users, allowing native linking of multiple products into one offer while keeping separate URLs for color variants. This preserves admin clarity while offering customers a rich selection.
- Custom apps and metaobjects: Store some options as metaobjects and dynamically generate variants. This provides full control over the selection process without burdening the standard platform structure. For very extensive assortment, other Shopify apps can replace advanced PrestaShop modules and improve sales logic management and process automation.
Advanced migration with Matrixify
Matrixify is the standard for advanced product data migrations. Unlike Shopify's standard importer, it supports bulk metafield import for variants in one pass, automatic mapping of images from external servers, and preservation of complex product relationships. This is especially helpful when working around the 100-variant limit, as it quickly updates links between split products and bulk-edits technical data without manually correcting each CSV row.
Using metafields and metaobjects to preserve technical parameters
Metafields are Shopify's tool for storing data that does not fit standard product fields. During PrestaShop migration, features such as technical parameters, certifications, or care instructions should go here. Metaobjects allow creating repeatable data structures assignable to many products at once-such as size charts or material descriptions.
This centralizes technical data management: a change in one metaobject updates information across all linked products. The difference between metafields and metaobjects is that the former attach to a specific object (e.g. a product), while the latter are independent data entities that can be linked multiple times. Using these mechanisms is key to preserving the rich product descriptions built in PrestaShop over years within Shopify's modern, scalable, SEO-friendly architecture.
Data verification and image mapping after import
The final migration stage is quality control (QA). Verify that each image is correctly assigned to the appropriate color variant. In Shopify, each variant can have one main image that should change automatically when the customer selects a given option. The test procedure should include:
- Testing variant switching on the storefront to check image change smoothness.
- Checking filter accuracy in collections (e.g. whether the "Color" filter displays products correctly after attribute migration).
- Comparing admin inventory levels with the PrestaShop source database, especially variants at zero stock.
- Verifying metafield technical data display in appropriate template sections across devices.
Image or attribute mapping errors are a common cause of cart abandonment right after migration, so this stage requires thoroughness and verification of image link consistency that may not have been correctly fetched from the source server.
FAQ
How does a PrestaShop combination differ from a Shopify variant?
A PrestaShop combination is a unique attribute pairing (e.g. Size: M, Color: Red) with its own index and inventory level in a relational database. The Shopify equivalent is a "Variant" assigned to a product with up to 3 options (e.g. Size, Color, Material) in a flatter data structure.
What if a PrestaShop product has more than 100 combinations?
Shopify's standard limit is 100 variants per product. Work around it by splitting the product into smaller entries (e.g. by color) and linking them on the product page with metafields, using Combined Listings (for Shopify Plus), or implementing dedicated metaobject-based solutions.
How do you migrate product features that are not variants?
Informational PrestaShop features that do not let the customer choose a product version are best mapped to Shopify metafields. This preserves technical data and parameters without burdening variant structure while keeping filtering capability.
Will images assigned to PrestaShop combinations be preserved?
Yes, provided image URLs are correctly mapped in the CSV file or tools such as Matrixify are used. Each Shopify variant can have one main image that changes automatically when the user selects a given option.
What tool is most recommended for migrating complex variants?
Matrixify is the most recommended tool for advanced migrations. It supports bulk metafield import, preserves product relationships, and precisely maps columns from PrestaShop export files, significantly speeding up QA.
Will Shopify filters work automatically after variant migration?
Shopify filters rely on variant options, availability, price, tags, and metafields. If attributes are correctly mapped as product options or metafields with appropriate definitions, they can be activated in store navigation settings.
Bibliography
- Shopify Help Center - Shopify still applies the standard limit of three options per product (such as size, color, material).
- Shopify Help Center - Combined Listings - Shopify's official Combined Listings app and related product-linking functionality are available only for stores on Shopify Plus and enterprise plans.
- PrestaShop Database Schema Documentation - The tables psproductattribute, psproductattributecombination, and psattribute_lang play a key role in handling product attributes and combinations (variants) in PrestaShop.