gpt4 book ai didi

mysql - 将旧站点用户迁移到 Magento DB

转载 作者:可可西里 更新时间:2023-11-01 07:33:41 25 4
gpt4 key购买 nike

我在一家旧网上商店拥有超过 300,000 名用户。客户切换到 Magento 解决方案,现在必须将所有用户、地址迁移到 Magento。所以我必须编写一个自定义脚本来将用户及其地址导入 Magento 系统。

是否有任何教程或类似的工作已经完成。请帮我。

谢谢

最佳答案

这是我如何使用 SOAP 库将用户从 OSC 迁移到 Magento 的示例。这个脚本是在旧服务器上运行的,需要从ssh命令行运行(php通过浏览器执行时不支持这个

    $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);

您需要注意的一件事是密码。为了使其正常工作,我必须将 Magento 设置为使用相同的密码哈希模式。

关于mysql - 将旧站点用户迁移到 Magento DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com