7

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

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

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

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

谢谢

4

2 回答 2

10

首先

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

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


内置方式

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

该解决方案取决于您如何从打开的购物车中导出数据,坦率地说,我不是专家。只要您可以导出到 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.

一个模型通常有一个 init 方法调用_construct(它不是PHP 的__construct!),它定义了一个模型可以通过 via 实例化的字符串Mage::getModel()

可以在此处找到有关导入产品的更完整说明。Magento 中数据对象的风格几乎总是保持不变。

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

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

SQL方式

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

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

模块方式

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

最后的想法。

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

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

于 2012-07-30T17:19:04.893 回答
0

请参阅我的教程,该教程解释了如何使用 magento 脚本导入产品和类别。

http://www.pearlbells.co.uk/import-products-magento-script/

一步一步解释

  1. 导入属性选项
  2. 导入类别 magento
  3. 读取 CSV 数据
  4. 导入简单产品
  5. 导入可配置产品
  6. 导入产品图片
  7. 添加相关产品
  8. 进口等级价格
于 2016-12-07T23:13:21.237 回答