Asttero

How to Migrate Combinations, Attributes, and Variants from PrestaShop to Shopify

How to migrate combinations, attributes, and variants from PrestaShop to Shopify

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:

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:

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:

  1. 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.
  2. 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.
  3. 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:

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.

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