2022-09-07 13:31:24 - 米境通
首先
评估要导入Magento的内容.qestion得到回答越清楚,评估你的选择就越容易.
基本上,这些选项包括通过内置导入(内置方式)导入数据,通过自定义脚本导入数据(脚本方式),通过纯SQL(可怕的,可怕的SQL方式)导入数据以及通过外部模块导入(模块方式).
内置的方式
首先,您可以通过后端导入csv数据,如果您可以将基于opencart的产品/客户以CSV格式提供,然后可以在后端重新导入-请参阅此处或此处(仅限产品).
这个解决方案取决于你如何从开放式购物车中导出数据这一事实,我坦率地说,这不是专家.只要你可以导出到XLS,CSV或类似产品,你应该没问题.
脚本方式
如果你不能这样做,我建议使用Magento自己的模型编写一个导入脚本.一个非常基本的片段,可以帮助您入门:
//placethisfileintheMagentoroot,e.g../import.php,"."beingyouMagentoroot
//loadthemagentoappwiththeadminstore
require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
//dataimport,Iassumeyoucanwritesomesortofinputforthis$datalikereadingazipfileorsomeotherformat,ihere,Iassume,this$dataarrayholdsarraysofproducts($new_product)containinginformationonaproductfromopencart
$data=...
//loopoverthedataandcreatetheMagentomodels,thesecanincludeproducts,customers,etc.-forsimplicitythisisdoneforproducts,butcanbedoneforeveryotherdataobjectinmagento
foreach($dataas$new_product){
//loadanemptyMagentoproductmodel
$product=Mage::getModel('catalog/product');
//settheattributesyouwant
$product->setData('sku',$new_product['sku']);
$product->setData('name',$new_product['name']);
.
.
.
//saveit
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_Productmapto./app/code/core/Mage/Catalog/Model/Product.php.
模型通常有一个名为_construct(不是PHP的__construct!)的init方法,它定义了一个模型可以用via实例化的字符串Mage::getModel().
可在此处找到有关导入产品的更完整说明.Magento中的数据对象几乎总是保持相同的风格.
这是一个更冗长的选项,但您可以学习很多Magento的内部数据处理.此外,你不neccessarily需要知道在后台的数据表.
在Magento知识库中,这些主题也有很多帮助.同样,如果你想学习Magento,这是一个很好的开始.