Transfer old site users to the Magento database

I have over 300,000 users in an old online store. The client switched to the Magento solution and now has to transfer all users, Magento addresses. Therefore, I have to write a custom script to import users and their address into the Magento system.

Are there any other textbooks or similar work. Please help me.

thanks

+4
source share
2 answers

Here is an example of how I migrated users from OSC to Magento using the SOAP library. This script was run on the old server and should be run from the ssh command line (php runtime through the browser does not support this

$proxy = new SoapClient('http://[your magento url]/api/soap/?wsdl=1'); $sessionId = $proxy->login('admin', '[your password]'); // connect to local db $link = mysql_connect('localhost', '[old ecommerce db]', '[old db pw]'); if (!$link) { die('Could not connect: ' . mysql_error()); } mysql_select_db('sbc_osc', $link); $sql = "SELECT * FROM customers"; $customers = mysql_query($sql); // loop thyrough customers while ($customer = mysql_fetch_assoc($customers)) { set_time_limit(600); $newCustomer = array( 'firstname' => $customer['customers_firstname'], 'lastname' => $customer['customers_lastname'], 'email' => $customer['customers_email_address'], 'password_hash' => $customer['customers_password'], 'store_id' => 2, // set the store you want to send to 'website_id' => 2 ); $telephone = $customer['customers_telephone']; $fax = $customer['customers_fax']; try{ $newCustomerId = $proxy->call($sessionId, 'customer.create', array($newCustomer)); } catch (Exception $e) { echo "failed to create customer for: " . $customer['customers_firstname'] . " " . $customer['customers_lastname'] . "\n"; } // grab the default address $sql = "SELECT ab.*, c.countries_iso_code_2, z.zone_name, z.zone_id FROM address_book ab LEFT JOIN countries c ON ab.entry_country_id = c.countries_id LEFT JOIN zones z ON ab.entry_zone_id = z.zone_id WHERE customers_id = {$customer['customers_id']} AND address_book_id = {$customer['customers_default_address_id']}"; $addresses = mysql_query($sql); while ($address = mysql_fetch_assoc($addresses)) { $newCustomerAddress = array( 'firstname' => $address['entry_firstname'], 'lastname' => $address['entry_lastname'], 'company' => $address['entry_company'], 'country_id' => $address['countries_iso_code_2'], 'region_id' => $address['zone_id'], 'region' => ($address['zone_name'] != "" ? $address['zone_name'] : $address['entry_state']), 'city' => $address['entry_city'], 'street' => array($address['entry_street_address']), 'telephone' => $telephone, 'fax' => $fax, 'postcode' => $address['entry_postcode'], 'is_default_billing' => true, 'is_default_shipping' => true, ); try{ $newAddressId = $proxy->call($sessionId, 'customer_address.create', array($newCustomerId, $newCustomerAddress)); } catch (Exception $e) { echo "failed to add address for: " . $address['entry_firstname'] . " " . $address['entry_lastname'] . "\n"; } } echo "migrated: " . $customer['customers_firstname'] . " " . $customer['customers_lastname'] . "\n"; } mysql_close($link); 

One thing you need to pay attention to is passwords .. for this I had to configure Magento to use the same password hashing scheme.

+3
source

My suggestion would be to study client api import and create a script using methods from the code base, using the API will be slower, since you will run the script on your server, you can build it using real methods. So you can see this folder for classes and methods of the client api

/ application / code / kernel / Mage / Client / Model / Client

and then here for api classes and methods

/ application / code / kernel / Mage / Client / Model / Address /

You will probably need to export the data to CSV and get it in the correct format for import into Magento. 30k is not so much, so you can even try the usual Magento default import process. We were unlucky with this, but we have imported hundreds of thousands of customers. Even then we split the file into small pieces of clients at the same time.

+1
source

Source: https://habr.com/ru/post/1336215/


All Articles