magento - 将产品数据从 opencart 迁移到 magento

标签 magento opencart data-migration database-migration

我有一个基于 opencart 的购物车网站..

现在我想把它转换成一个magento网站..

我已经完成了全新的 magento 安装。现在我需要将数据从我的 opencart 数据库迁移到新的 magento 数据库

那么谁能给我表名并告诉我应该做些什么才能成功迁移?

谢谢

最佳答案

首先

评估您要导入 Magento 的内容。问题回答得越清楚,就越容易评估您的选择。

基本上,这些选项包括通过内置导入( 内置方式 )导入数据,通过自定义脚本导入数据( 脚本方式 ),通过普通 SQL 导入数据( 可怕的 SQL 方式 )并通过外部模块导入( 模块方式 )。

内置方式

首先,您可以通过后端导入 csv 数据,如果您可以将基于 opencart 的产品/客户以 CSV 格式导入,然后可以在后端重新导入 - 请参阅 herehere (只是产品)。

该解决方案取决于您如何从打开的购物车中导出数据,坦率地说,我不是专家。只要您可以导出到 XLS、CSV 或类似文件,您应该没问题。

脚本方式

如果你不能这样做,我会建议使用 Magento 自己的模型编写一个导入脚本。一个非常基本的片段可以帮助您入门:

<?php
//place this file in the Magento root, e.g. ./import.php, "." being you Magento root
//load the magento app with the admin store 
require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

//data import, I assume you can write some sort of input for this $data like reading a zip file or some other format, i here, I assume, this $data array holds arrays of products ($new_product) containing information on a product from open cart
$data = ...

// loop over the data and create the Magento models, these can include products, customers, etc. - for simplicity this is done for products, but can be done for every other data object in magento
foreach ($data as $new_product) {
    //load an empty Magento product model
    $product = Mage::getModel('catalog/product');

    //set the attributes you want
    $product->setData('sku', $new_product['sku']);
    $product->setData('name', $new_product['name']);

    .
    .
    . 
    //save it
    try {
        $product->save();
    }
    catch(Exception $e) {
        Mage::logException($e);
        continue;
    }
}

这是一个使用 Mage_Catalog_Model_Product 的示例, 其他数据类型可能是 Mage_Sales_Model_Order订购或Mage_Customer_Model_Customer为客户。我可以从内存中记忆一些 Magento 风格的数据对象实例化调用的代码:
  • Mage_Catalog_Model_Product可以实例化为 Mage::getModel('catalog/product')
  • Mage_Catalog_Model_Category可以实例化为 Mage::getModel('catalog/category')
  • Mage_Customer_Model_Customer可以实例化为 Mage::getModel('customer/customer')
  • Mage_Sales_Model_Order可以实例化为 Mage::getModel('sales/order')

  • 这些调用可以在相应的核心模块中查找——有时它们会因不同的 Magento 版本而异。

    您可以通过查看 ./app/code/core/Mage/ 找到它们。并查看模块的 Model文件夹,您可以在基于文件夹的命名约定中找到上述类,例如Mage_Catalog_Model_Product映射到 ./app/code/core/Mage/Catalog/Model/Product.php .

    模型通常有一个名为 _construct 的 init 方法。 (它是 而不是 PHP 的 __construct !)它定义了一个模型可以通过 Mage::getModel() 实例化的字符串.

    更完整的进口产品说明见 here . Magento 中数据对象的风格几乎总是保持不变。

    这是一个比较冗长的选项,但您可以了解 Magento 的大量内部数据处理。此外,您不一定需要知道后台的数据表。

    Magento 知识库中也有很多关于该主题的帮助。同样,如果您想学习 Magento,这是一个很好的开始方式。

    SQL方式

    您还可以执行普通 SQL 来填充 Magento 的表。

    不要那样做。您会发现自己为每个其他 Magento 版本编写 SQL,如果您通过脚本执行此操作,请通过 Magento 提供的框架执行此操作。

    模块方式

    过去我们使用一些模块来导入大量数据,因为我上面展示的脚本方法对于大量数据不是很有效。我不确定其中一些是否得到积极维护,但最好在 Magento Connect 中四处寻找。 .根据您使用的内容,这些模块可能对您不是免费的。

    最后的想法。

    我真的建议您构建一个自定义脚本,因为它是学习 Magento 的好方法。如果你不关心编程,你应该看看内置的导入器。

    如果还有其他问题,请走开:)

    关于magento - 将产品数据从 opencart 迁移到 magento,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11725597/

    相关文章:

    php - 在 opencart 中使用 css 更改 h 标签

    MySQL INSERT INTO 使用 WHERE 子句

    laravel - Laravel 数据迁移的推荐/标准处理

    python - Django - 代理模型的权限

    html - 网站标题 Logo 图像不清晰

    Magento:以编程方式添加新产品

    php - 上传 OpenCart 数据库后,我收到此错误消息。我做错了什么?

    hadoop - 如何在集群之间迁移数据?

    jquery - magento 使用 jquery 且无冲突

    html - 超链接在 Magento 中显示路径