我希望迁移ZenCart"客户"到现有的Magento网站。我尝试了MagentoConnect的两个扩展;但是它不起作用。
osCommerce Migration Tool osCommerce Import
市场上有高级第三方迁移服务,但我想自己做。请通过代码提供一些步骤来帮助我。
目前,zen cart DB有前缀" zen _"。这会造成不便吗?请指出我的起点。谢谢
答案 0 :(得分:1)
我自己整理了这个。让我感到惊讶的是,除非有一些具有优质Magento扩展的论坛,否则没有关于如何将客户从ZenCart / OsCommerce导入到Magento的任何有关Web网站的有效文档。因此,我在这里发布我的解决方案,这对任何正在寻找同样解决方案的人都有帮助。
获取ZenCart客户详细信息
ZenCart显然使用MySQL DB。进入MySQL提示符并查看 customers 表。分别使用以下命令。
use ZenCart_DB
mysql> select * from customers\G
您可以在那里看到ZenCart客户的详细信息。每个客户的样本输出都是这样的。
customers_id: 1298
customers_gender: m
customers_firstname: firstname
customers_lastname: Lastname
customers_dob:
customers_email_address: customer@email.com
customers_nick:
customers_default_address_id:
customers_telephone: 12345678
customers_fax:
customers_password: dd2df54a57a4d35ffd2985b3584f0831:2c
customers_newsletter: 0
customers_group_pricing: 0
customers_email_format: TEXT
customers_authorization: 0
customers_referral:
customers_paypal_payerid:
customers_paypal_ec: 0
COWOA_account: 0
这是一个示例,我们必须将所有这些客户详细信息发送到unix文件。
select * from customers into outfile 'customer.txt'\G
现在退出MySQL提示符。要创建Magento用户,我们只需要名字,姓氏,电子邮件和密码。这四个细节是必需的。因此,请从 customer.txt 文件中获取这些详细信息。
customer.txt文件的位置为 /var/lib/mysql/ZenCart_DB/customer.txt
将所需的客户详细信息打包到不同的单个文件中,这有助于我们稍后将其置于 for 循环中。
awk {'print $3,$4,$7,$10'} customer.txt > details.txt
awk {'print$1'} details.txt > zen_firstname
awk {'print$2'} details.txt > zen_secondname
awk {'print$3'} details.txt > zen_email
awk {'print$4'} details.txt > zen_password
创建Magento用户
我们没有收集所有细节。现在要从后端创建一个测试Magento用户,我们必须在magento数据库中运行5个MySQL查询。他们是,
INSERT INTO customer_entity ( entity_id, entity_type_id, attribute_set_id, website_id, email, group_id, increment_id, store_id, created_at, updated_at, is_active, disable_auto_group_change) VALUES ( 1, 1, 0, 1, $email, 1, NULL, 4, 2014-11-24 11:50:33, 2014-11-24 12:05:53, 1, 0)
INSERT INTO customer_entity_varchar (value_id, entity_type_id, attribute_id, entity_id, value) VALUES (1, 1, 5, 1, $firstname);
INSERT INTO customer_entity_varchar (value_id, entity_type_id, attribute_id, entity_id, value) VALUES (2, 1, 7, 1, '$lastname' );
INSERT INTO customer_entity_varchar (value_id, entity_type_id, attribute_id, entity_id, value) VALUES (3, 1, 12, 1, '$password' );
INSERT INTO customer_entity_varchar (value_id, entity_type_id, attribute_id, entity_id, value) VALUES (5, 1, 3, 1, 'English' );
如果您要添加太多客户,那么最好将它们放入for循环中。这对每个人都是可选的。我们可以在Bash中创建 for 循环或在Perl中创建类似的东西,或者你擅长的语言。
很少有事情需要注意,
我认为这一切。谢谢。 :)