如何从 Prestashop 迁移到 Magento 并保持相同的用户名和密码?
How to migrate and keep same Username and Password from Prestashop to Magento?
我正在将我的商店从 Prestashop 迁移到 Magento。
所以我也想在迁移后保持所有用户的登录详细信息相同。
**如果您要从 Prestashop 迁移到 Magento,那么最重要的是迁移用户的用户名和密码。如果您将使用此方法,您将能够在迁移后使用相同的登录名。 **
要使从 Prestashop 迁移到 Magento 的密码正常工作,我们需要完成以下 2 个步骤:
步骤 1
从 Prestashop 导出客户。
在 Prestashop 中,没有直接导出客户密码的方法,但您始终可以编写自定义查询以从数据库中获取所需信息。登录到 Prestashop 管理部分,转到高级参数->SQL 管理器并编写一个新的 sql 查询“select 来自 ps_customer 的电子邮件、名字、姓氏、密码; “这将用于 select 客户的电子邮件 ID、名字、姓氏和来自客户 table 的密码。如果您想 select 更多字段,请相应地编写 sql 查询。之后将信息导出到csv文件中。
步骤 2
Prestashop 和 Magento 创建客户密码的过程略有不同。 Prestashop 使用“Cookie 密钥”作为客户密码的前缀,然后对其进行 MD5 加密。 Magento 在最后使用 MD5 和盐。一旦使用 MD5 加密密码就不可能将其转换为纯文本,因此我们需要重写客户身份验证模型以扩展默认验证过程并通过向用于生成密码的密码添加前缀 Cookie Key 值来验证从 Prestashop 导入的密码在 Prestashop 中。
重写Mage_Customer_Model_Customer模型
- 使用命名空间 Retailon 和模块名称 Customerimport 创建一个模块
- 在 app/etc/modules/Retailon_Customerimport 中启用您的模块。xml
<?xml version="1.0"?>
<config>
<modules>
<Retailon_Customerimport>
<active>true</active>
<codePool>local</codePool>
</Retailon_Customerimport>
</modules>
</config>
- 创建 config.xml 文件 app/code/local/Retailon/Customerimport/etc/config.xml,内容如下:
<?xml version="1.0"?>
<config>
<modules>
<Retailon_Customerimport>
<version>0.1.0</version>
</Retailon_Customerimport>
</modules>
<global>
<models>
<customer>
<rewrite>
<customer>Retailon_Customerimport_Model_Customer</customer>
</rewrite>
</customer>
</models>
</global>
</config>
- 创建模型文件app/code/local/Retailon/Customerimport/Model/Customer.php,内容如下:
<?php
class Retailon_Customerimport_Model_Customer extends Mage_Customer_Model_Customer {
public function authenticate($login, $password)
{
$this->loadByEmail($login);
if ($this->getConfirmation() && $this->isConfirmationRequired()) {
throw Mage::exception('Mage_Core', Mage::helper('customer')->__('This account is not confirmed.'),
self::EXCEPTION_EMAIL_NOT_CONFIRMED
);
}
if (!$this->validatePassword($password) && !$this->validatePassword('u4qrHpFiADz3peo8rS5tBkWARaa2WqN3qa7XqCI8iddIo7gdbj3KPNzGyK0'.$password)) {
throw Mage::exception('Mage_Core', Mage::helper('customer')->__('Invalid login or password.'),
self::EXCEPTION_INVALID_EMAIL_OR_PASSWORD
);
}
Mage::dispatchEvent('customer_customer_authenticated', array(
'model' => $this,
'password' => $password,
));
return true;
}
}
- 你会在authenticate方法中看到密码变量前加了一个长字符串,这是Prestashop中用来生成密码的cookie字符串。
转到 config/settings。inc.php
Prestashop 项目目录的文件,您将看到类似
的行
define('_COOKIE_KEY_', 'u4qrHpFiADz3peo8rS5tBkWARaa2WqN3qa7XqCI8iddIo7gdbj3KPNzGyK0');
复制此字符串并替换您的 Magento 身份验证功能的 cookie 字符串。
这就是您需要做的全部。
现在您应该可以使用您的 Prestashop 凭证登录 Magento 商店了。
阅读愉快!
P.S。您也可以在这里阅读完整的 post:
信用:如何将相同的用户名和密码从 Prestashop 转移到 Magento 并保持不变?通过 Ankur Makadia 在网站上 | iOS & Android 应用 |游戏 |企业资源计划 |客户关系管理 (https://webappexperts.quora.com/How-can-I-transfer-and-keep-same-Username-Password-from-Prestashop-to-Magento)
我正在将我的商店从 Prestashop 迁移到 Magento。 所以我也想在迁移后保持所有用户的登录详细信息相同。
**如果您要从 Prestashop 迁移到 Magento,那么最重要的是迁移用户的用户名和密码。如果您将使用此方法,您将能够在迁移后使用相同的登录名。 **
要使从 Prestashop 迁移到 Magento 的密码正常工作,我们需要完成以下 2 个步骤:
步骤 1 从 Prestashop 导出客户。
在 Prestashop 中,没有直接导出客户密码的方法,但您始终可以编写自定义查询以从数据库中获取所需信息。登录到 Prestashop 管理部分,转到高级参数->SQL 管理器并编写一个新的 sql 查询“select 来自 ps_customer 的电子邮件、名字、姓氏、密码; “这将用于 select 客户的电子邮件 ID、名字、姓氏和来自客户 table 的密码。如果您想 select 更多字段,请相应地编写 sql 查询。之后将信息导出到csv文件中。
步骤 2 Prestashop 和 Magento 创建客户密码的过程略有不同。 Prestashop 使用“Cookie 密钥”作为客户密码的前缀,然后对其进行 MD5 加密。 Magento 在最后使用 MD5 和盐。一旦使用 MD5 加密密码就不可能将其转换为纯文本,因此我们需要重写客户身份验证模型以扩展默认验证过程并通过向用于生成密码的密码添加前缀 Cookie Key 值来验证从 Prestashop 导入的密码在 Prestashop 中。
重写Mage_Customer_Model_Customer模型
- 使用命名空间 Retailon 和模块名称 Customerimport 创建一个模块
- 在 app/etc/modules/Retailon_Customerimport 中启用您的模块。xml
<?xml version="1.0"?>
<config>
<modules>
<Retailon_Customerimport>
<active>true</active>
<codePool>local</codePool>
</Retailon_Customerimport>
</modules>
</config>
- 创建 config.xml 文件 app/code/local/Retailon/Customerimport/etc/config.xml,内容如下:
<?xml version="1.0"?>
<config>
<modules>
<Retailon_Customerimport>
<version>0.1.0</version>
</Retailon_Customerimport>
</modules>
<global>
<models>
<customer>
<rewrite>
<customer>Retailon_Customerimport_Model_Customer</customer>
</rewrite>
</customer>
</models>
</global>
</config>
- 创建模型文件app/code/local/Retailon/Customerimport/Model/Customer.php,内容如下:
<?php
class Retailon_Customerimport_Model_Customer extends Mage_Customer_Model_Customer {
public function authenticate($login, $password)
{
$this->loadByEmail($login);
if ($this->getConfirmation() && $this->isConfirmationRequired()) {
throw Mage::exception('Mage_Core', Mage::helper('customer')->__('This account is not confirmed.'),
self::EXCEPTION_EMAIL_NOT_CONFIRMED
);
}
if (!$this->validatePassword($password) && !$this->validatePassword('u4qrHpFiADz3peo8rS5tBkWARaa2WqN3qa7XqCI8iddIo7gdbj3KPNzGyK0'.$password)) {
throw Mage::exception('Mage_Core', Mage::helper('customer')->__('Invalid login or password.'),
self::EXCEPTION_INVALID_EMAIL_OR_PASSWORD
);
}
Mage::dispatchEvent('customer_customer_authenticated', array(
'model' => $this,
'password' => $password,
));
return true;
}
}
- 你会在authenticate方法中看到密码变量前加了一个长字符串,这是Prestashop中用来生成密码的cookie字符串。 转到 config/settings。inc.php Prestashop 项目目录的文件,您将看到类似 的行
define('_COOKIE_KEY_', 'u4qrHpFiADz3peo8rS5tBkWARaa2WqN3qa7XqCI8iddIo7gdbj3KPNzGyK0');
复制此字符串并替换您的 Magento 身份验证功能的 cookie 字符串。
这就是您需要做的全部。
现在您应该可以使用您的 Prestashop 凭证登录 Magento 商店了。
阅读愉快!
P.S。您也可以在这里阅读完整的 post:
信用:如何将相同的用户名和密码从 Prestashop 转移到 Magento 并保持不变?通过 Ankur Makadia 在网站上 | iOS & Android 应用 |游戏 |企业资源计划 |客户关系管理 (https://webappexperts.quora.com/How-can-I-transfer-and-keep-same-Username-Password-from-Prestashop-to-Magento)