Gir*_*iri 6 data-migration database-migration magento opencart
我有一个基于opencart的购物车网站..
现在我想把它转换成一个magento网站..
我做了一个新的magento安装.现在我需要将数据从opencart数据库迁移到新的magento数据库
那么,任何人都可以给我表名称,并告诉我成功迁移应该做些什么?
谢谢
Flo*_*ian 10
评估要导入Magento的内容.qestion得到回答越清楚,评估你的选择就越容易.
基本上,这些选项包括通过内置导入(内置方式)导入数据,通过自定义脚本导入数据(脚本方式),通过纯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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个利用的例子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_Productmap to ./app/code/core/Mage/Catalog/Model/Product.php.
模型通常有一个名为_construct(不是 PHP的__construct!)的init方法,它定义了一个模型可以用via实例化的字符串Mage::getModel().
可在此处找到有关导入产品的更完整说明.Magento中的数据对象几乎总是保持相同的风格.
这是一个更冗长的选项,但您可以学习很多Magento的内部数据处理.此外,你不neccessarily需要知道在后台的数据表.
在Magento知识库中,这些主题也有很多帮助.同样,如果你想学习Magento,这是一个很好的开始.
您也可以使用纯SQL来填充Magento的表.
不要那样做.您将发现自己为其他所有Magento版本编写SQL,如果您通过脚本执行,则通过Magento提供的框架执行.
我们过去使用了一些用于导入大量数据的模块,因为我上面展示的脚本方法对于大量数据效率不高.我不确定其中一些是否得到了积极维护,但在Magento Connect中逛一逛是个好主意.根据您的使用情况,这些模块可能不是免费的.
我真的建议你建立一个自定义脚本,因为它是学习Magento的好方法.如果您不关心编程,则应该查看内置导入器.
如果还有其他问题,请随便问:)
| 归档时间: |
|
| 查看次数: |
9044 次 |
| 最近记录: |