ZenCart到Magento进口

时间:2014-11-24 11:02:38

标签: magento import migration database-migration zen-cart

我希望迁移ZenCart"客户"到现有的Magento网站。我尝试了MagentoConnect的两个扩展;但是它不起作用。

osCommerce Migration Tool osCommerce Import

市场上有高级第三方迁移服务,但我想自己做。请通过代码提供一些步骤来帮助我。

目前,zen cart DB有前缀" zen _"。这会造成不便吗?请指出我的起点。谢谢

1 个答案:

答案 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中创建类似的东西,或者你擅长的语言。

很少有事情需要注意,

  • entity_id值很重要,在所有5个查询中都应该相同。它确定了客户的ID号。
  • value_id类似于表customer_entity_varchar中的行的序列号。按照原样顺序进行。
  • attribute_id应该保持在序列5,7,12,3中,因为它分别代表客户的名字,姓氏,密码和语言。

我认为这一切。谢谢。 :)