Moving an online store to a new platform is a process where database security and continuity are the top priority. For mature e-commerce businesses, purchase history and customer data accumulated in PrestaShop are the foundation of analytics and marketing personalization. A properly planned migration preserves these assets, though it requires understanding technical differences between open-source and SaaS solutions. The key challenge is not only transferring records but mapping business logic, handling passwords, and verifying financial data correctness in the new environment.
Customer data structure in PrestaShop vs. Shopify-what you need to know
PrestaShop database architecture is relational, with customer data mainly in the ps_customer table and addresses in ps_address. Shopify uses an object model where the Customer object is the central point linked to multiple addresses and interaction history. During transfer, native fields such as first name, last name, email, and phone map directly. Challenges appear with custom data added by external modules or database modifications.
Data structure planning should include migration from PrestaShop to Shopify to maintain operational continuity and avoid losing valuable user information. For fields without standard Shopify equivalents (e.g. date of birth, gender, or specific marketing consents), Metafields are required. They extend the Shopify data model with additional attributes critical for database segmentation.
Customer field mapping
- PrestaShop:
id_customer→ Shopify: Customer ID (generated on import) - PrestaShop:
firstname/lastname→ Shopify: First Name / Last Name - PrestaShop:
email→ Shopify: Email (unique identifier) - PrestaShop:
company→ Shopify: Company (within address) - PrestaShop:
birthday→ Shopify: Metafields (custom.birthday) - PrestaShop:
newsletter→ Shopify: Email Marketing Status (Accepts Marketing)
Password migration-why security requires a reset and how to handle it
One of the most common questions during a platform change is what happens to user passwords. For security reasons, PrestaShop passwords are encrypted using algorithms such as MD5 or Bcrypt (in newer versions), often with a unique salt. Shopify, as a SaaS platform, has its own closed encryption mechanisms and does not allow direct import of external password hashes. Physical 1:1 password transfer is technically impossible without compromising data security.
The standard procedure is account reactivation. After importing customer data (without passwords), accounts in Shopify have Disabled or Invited status. To log in again, customers must set a new password. This is a natural moment to refresh the relationship with the database, but it requires carefully planned communication to avoid hurting user retention.
Customer Account Invites mechanism in Shopify
Shopify offers a native invitation system (Customer Account Invites) that generates a unique activation link per customer. After clicking, the user lands on the store to define a new password. Remember sending limits from the admin panel-with large databases (thousands of records), the process can be automated via API or apps such as Matrixify. That enables personalized message content and batched invitations, reducing spam-folder risk.
Order history-which transaction parameters are preserved
Transferring order history is more complex than migrating customers alone because it requires linking products, customers, payments, and tax rates. A correct import preserves the full customer purchase path-essential for recommendation systems and after-sales support.
Migration preserves key parameters such as order creation date, purchased products (with variants and prices at time of purchase), shipping costs, and applied discount codes. VAT handling matters. Shopify recalculates taxes based on store configuration, so historical orders must match PrestaShop gross and net amounts with accounting documentation-sometimes requiring manual rate mapping for archival products.
Order Name vs. Order ID
In PrestaShop, orders are identified by ID and a unique reference code (e.g. ABCDE). Shopify has its own numbering (Order ID) but allows defining an Order Name field (e.g. #1001). During migration, mapping PrestaShop order numbers to Shopify Order Name is best practice. Customer service and accounting can then find transactions using familiar numbering from the old system.
Order status mapping-preserving business logic
PrestaShop status logic is linear and flexible-administrators can create any number of statuses. Shopify uses a stricter split between Financial Status (payment: paid, refunded, partiallypaid) and Fulfillment Status (fulfillment: fulfilled, unfulfilled, partiallyfulfilled). The challenge is correctly mapping historical states so Shopify sales reports reflect reality.
Archival orders and returns
Orders that were Delivered and Paid in PrestaShop should receive Fulfilled and Paid in Shopify. Archival returned orders should show as Refunded. This matters for data cleanliness and future claims filed after the platform change.
Address data import-common formatting pitfalls
Address formatting errors are the most frequent cause of customer database import failure. PrestaShop allows flexible phone numbers and postal codes; Shopify requires more standardization. Data cleaning before transfer is essential.
Key address validation points:
- Phone numbers: Shopify prefers E.164 format (e.g. +48123456789). Missing country codes can reject records.
- Postal codes: Must match country format (e.g. XX-XXX for Poland). Spaces and special characters should be unified.
- Countries and regions: Shopify uses ISO codes (e.g. PL, DE). Country names stored as text in PrestaShop must map to two-letter codes.
- Multiple addresses: If a PrestaShop customer had several delivery addresses, ensure the migration tool assigns them all to one Shopify customer profile.
Migration methods: from CSV spreadsheets to advanced API
Transfer method depends on database size and order structure complexity. Analyzing how PrestaShop to Shopify migration step by step affects database structure helps choose a tool that preserves record relationships.
The simplest method uses CSV files and Shopify's native importer, but it works only for very small stores with simple customer data. For most professional implementations, apps such as Matrixify are standard. Matrixify maps complex structures including order history and Metafields with detailed error logs. For the most demanding projects with data spread across custom tables, dedicated scripts using Shopify API (REST or GraphQL) give full control over data transformation.
Matrixify's role in data mapping
Matrixify supports Excel import, easing bulk editing and record cleaning before upload. It automatically links customers to orders by email, reducing orphaned records. It can also import orders with historical status-not always possible with standard tools.
Shopify Plus and large data set migration-limits and performance
For large e-commerce with hundreds of thousands of customers and millions of orders, import performance is critical. Standard Shopify plans have strict API rate limits that can extend migration to many days with huge data sets.
Shopify Plus offers significantly higher limits (typically 10× vs. Basic/Shopify plans), enabling faster database population. This matters for delta migration-just before the final domain switch, pulling the latest orders and new customers that appeared in the old system since the main import started. Higher throughput minimizes downtime and inconsistency risk at launch.
Database segmentation: customer groups and tagging
PrestaShop segmentation often uses customer groups (e.g. wholesale, VIP). Shopify has no identical group module; it uses tags. During migration, PrestaShop group names become customer tags (e.g. Wholesaler). Tags are powerful in Shopify-for automatic discounts, email segmentation, or Shopify Flow automations. After migration, the store keeps segment knowledge and gains more flexible management tools.
Post-migration checklist-verifying database integrity
After import, rigorous data verification is essential. Do not rely only on success messages from migration tools. Proper SEO after migration also requires confirming customer data and history align with the new URL structure. This checklist helps ensure the database is production-ready:
- Record count comparison: Do customer and order counts in Shopify match the PrestaShop report?
- Control sum verification: Is total sales value for the last 12 months identical in both systems?
- Account activation test: Does password reset work and do customers see order history after login?
- Address check: Were accented characters imported correctly and are phone numbers visible in profiles?
- Tax audit: In random historical orders, are VAT rates and gross amounts consistent with originals?
- Tag verification: Did special-group customers receive correct tags and do related automations work?
FAQ
After PrestaShop to Shopify migration, must customers create new accounts?
They do not need new accounts-addresses and emails transfer. For security, passwords are not migrated; customers activate accounts via one-time password reset after an email invitation.
Will PrestaShop order history be visible in the Shopify customer account?
Yes, if migration correctly links orders to customer email addresses, purchase history appears in their account on the new platform.
Which order data can be transferred to Shopify?
Migration includes order date, product list (with variants), unit prices, tax rates, shipping costs, applied discounts, and payment and fulfillment statuses.
What happens to PrestaShop customer groups after the move?
PrestaShop groups are usually mapped to Shopify customer tags, preserving segmentation for marketing automations or specific permissions.
Can original PrestaShop order numbering be preserved?
Yes. Shopify allows importing orders with original numbers (Order Name), critical for accounting consistency and ERP history.
Are order notes and comments migrated too?
Yes. Administrative notes and customer order comments can transfer if the migration tool or API script maps text fields to Shopify's note object.
Bibliography
- PrestaShop Password Hashing - PrestaShop uses MD5 in older versions and Bcrypt in newer versions (since 1.7) with a salt (
_COOKIE_KEY_) for password hashing.
- Shopify Password Migration - Shopify does not allow direct import of external password hashes due to its closed SaaS architecture and proprietary hashing standards, requiring customers to reset passwords.
- Shopify Plus API Rate Limits - Shopify Plus offers 10× higher API rate limits compared to standard plans (e.g. 500 points/sec vs. 50 points/sec for GraphQL, and 20 requests/sec vs. 2 requests/sec for REST).
- Shopify Help Center / API Documentation - Shopify uses and validates phone numbers in the E.164 format, which includes the plus sign and country code (e.g. +48123456789 for Poland).