Customers, addresses and orders are spread across many tables in Magento, and a standard export returns only part of them. We pull the data from the database, merge it per customer and import it with the original order number. Customer service and accounting can then find old transactions in the new store. At Sirocco, 40,000+ customer records moved this way with their complete order history.
Passwords cannot be transferred because Magento holds them only as hashes. Customers receive an invitation to activate their account. Newsletter consent moves as its own attribute, so that sending after the move rests on documented consent under EU rules. We assess discount codes, store credit and reviews one by one, because in Magento they often come from extensions and follow no common format.
Prices and taxes are the third area. Magento has tier prices, prices per customer group and catalogue price rules that overlap, plus tax classes per country. Before the import we record which price applies to which customer, and rebuild the result in Shopify with catalogues, discounts and Shopify Functions. For Germany, the lowest prior price has to be shown on reductions under the Price Indication Ordinance (PAngV). Our own app, Best Price Indicator (PAngV), in the Shopify App Store covers that. The page on Shopify checkout explains what can be extended in the checkout.