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.
Chris source share