Voici une technique utilisée lors du transfert de l’un de nos clients d’une plateforme ecommerce vers une plateforme magento. Elle vous donnera peut être une piste si vous avez besoin d’importer des clients existants dans une base Magento. Attention tout de même cette technique est à adapter en fonction des besoins.
Pour cette opération vous aurez besoin de :
- Votre ancienne base de données avec Phpmyadmin installé
- Le nouveau Magento installé avec l’accès à l’administration et notamment l’accès à l’interface Importer/Exporter
Le but de l’opération est de créer un fichier csv à l’aide de Phpmyadmin prêt pour l’import dans Magento. Cette technique implique le fait que votre base de données existante doit avoir un minimum de points communs avec le fichier d’import magento. Elle évite aussi de passer par un script PHP intermédiaire.
1ère étape : Récupérer la liste des champs disponibles dans le fichier d’export Magento
- Allez sur le BackOffice de votre Magento
- Menu Système / Importer Exporter / Profils
- Par défaut un profil est créer « Export Customers ». Exécuter le afin de récupérer le CSV avec tous les noms des champs.
- Voici donc la liste des champs disponibles et à compléter lors de l’import des clients dans Magento : website email group_id prefix firstname middlename lastname suffix password_hash taxvat billing_prefix billing_firstname billing_middlename billing_lastname billing_suffix billing_street_full billing_city billing_region billing_country billing_postcode billing_telephone billing_company billing_fax shipping_prefix shipping_firstname shipping_middlename shipping_lastname shipping_suffix shipping_street_full shipping_city shipping_region shipping_country shipping_postcode shipping_telephone shipping_company shipping_fax created_in is_subscribed group
2ème étape : Créer la requête SQL qui permettra d’exporter un fichier CSV des clients prêt à l’import dans Magento
Dans notre cas tous les champs ne sont pas forcémment complétés dans l’ancien système. Notre requête ne reprendra donc pas l’ensemble des champs.
Voici la requête une fois terminée :
SELECT
"base" AS website,
old_table_user.user_email AS email,
"Client" AS group_id,
old_table_user.first_name AS firstname,
old_table_user.last_name AS lastname,
"motdepasseachanger" AS password_hash,
old_table_user.first_name AS billing_firstname,
old_table_user.last_name AS billing_lastname,
old_table_user.address_1 AS billing_street_full,
old_table_user.city AS billing_city,
"FR" AS billing_country,
old_table_user.zip AS billing_postcode,
CONCAT_WS(' ',old_table_user.phone_1,old_table_user.phone_2) AS billing_telephone,
old_table_user.company AS billing_company,
old_table_user.fax AS billing_fax,
old_table_user.first_name AS shipping_firstname,
old_table_user.last_name AS shipping_lastname,
old_table_user.address_1 AS shipping_street_full,
old_table_user.city AS shipping_city,
"FR" AS shipping_country,
old_table_user.zip AS shipping_postcode,
CONCAT_WS(' ',old_table_user.phone_1,old_table_user.phone_2) AS shipping_telephone,
old_table_user.company AS shipping_company,4ème étape : Import le fichier CSV dans Magento
old_table_user.fax AS shipping_fax,
"default" AS "created_in",
"Client" AS "group",
old_table_user.newsletter AS "is_subscribed"
FROM old_table_user
L’astuce est donc de récupérer le champ désiré et de renommer la colonne avec l’instruction AS de Mysql. Exemple :
old_table_user.user_email AS email,
Si vous n’avez pas l’information dans votre base existante vous pouvez la créer, exemple avec le champ requis website :
"base" AS website,
Mysql dispose de fonctions très intéressantes, notamment CONCAT_WS qui permet de concaténer des valeurs. Exemple ci-dessous avec la concaténation de 2 valeurs dans le futur champ billing_telephone (Sous Magento un seul champ téléphone est prévu d’où cette concaténation).
CONCAT_WS(' ',old_table_user.phone_1,old_table_user.phone_2) AS billing_telephone,
3ème étape : Exporter le fichier des clients
Exécutez votre requête puis exportez le résultat en CSV à l’aide de PhpMyAdmin avec les paramètres suivants:
Champs terminés par : ,
Champs entourés par : »
Caractère spécial : \
Lignes terminées par : AUTO
N’oubliez pas de cocher la case « Afficher les noms de champ en première ligne ».
Voilà votre CSV est prêt !
4ème étape : Importer le fichier CSV des clients dans Magento
- Allez sur le BackOffice de votre Magento
- Menu Système / Importer Exporter / Profils
- Utiliser le profil créer par défaut « Import Customers ».
- Vérifier que les paramètres correspondent bien aux paramètres précisés au moment de l’export de PhpMyadmin
- Importer le fichier via l’assistant.
Vos clients sont importés !