2022-09-07 13:31:24 - 米境通
首先
評(píng)估要導(dǎo)入Magento的內(nèi)容.qestion得到回答越清楚,評(píng)估你的選擇就越容易.
基本上,這些選項(xiàng)包括通過內(nèi)置導(dǎo)入(內(nèi)置方式)導(dǎo)入數(shù)據(jù),通過自定義腳本導(dǎo)入數(shù)據(jù)(腳本方式),通過純SQL(可怕的,可怕的SQL方式)導(dǎo)入數(shù)據(jù)以及通過外部模塊導(dǎo)入(模塊方式).
內(nèi)置的方式
首先,您可以通過后端導(dǎo)入csv數(shù)據(jù),如果您可以將基于opencart的產(chǎn)品/客戶以CSV格式提供,然后可以在后端重新導(dǎo)入-請(qǐng)參閱此處或此處(僅限產(chǎn)品).
這個(gè)解決方案取決于你如何從開放式購(gòu)物車中導(dǎo)出數(shù)據(jù)這一事實(shí),我坦率地說,這不是專家.只要你可以導(dǎo)出到XLS,CSV或類似產(chǎn)品,你應(yīng)該沒問題.
腳本方式
如果你不能這樣做,我建議使用Magento自己的模型編寫一個(gè)導(dǎo)入腳本.一個(gè)非常基本的片段,可以幫助您入門:
//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;
}
}
這是一個(gè)利用的例子Mage_Catalog_Model_Product,其他數(shù)據(jù)類型可以是Mage_Sales_Model_Order訂單或Mage_Customer_Model_Customer客戶.我可以從內(nèi)存中回憶一下Magento風(fēng)格的一些數(shù)據(jù)對(duì)象實(shí)例化調(diào)用的代碼:
Mage_Catalog_Model_Product可以實(shí)例化為Mage::getModel('catalog/product')
Mage_Catalog_Model_Category可以實(shí)例化為Mage::getModel('catalog/category')
Mage_Customer_Model_Customer可以實(shí)例化為Mage::getModel('customer/customer')
Mage_Sales_Model_Order可以實(shí)例化為Mage::getModel('sales/order')
可以在相應(yīng)的核心模塊中查找這些調(diào)用-有時(shí)它們?cè)诓煌腗agento版本中有所不同.
您可以通過查看./app/code/core/Mage/和查看模塊的Model文件夾找到它們,您可以在基于文件夾的命名約定中找到上面的類,例如Mage_Catalog_Model_Productmapto./app/code/core/Mage/Catalog/Model/Product.php.
模型通常有一個(gè)名為_construct(不是PHP的__construct!)的init方法,它定義了一個(gè)模型可以用via實(shí)例化的字符串Mage::getModel().
可在此處找到有關(guān)導(dǎo)入產(chǎn)品的更完整說明.Magento中的數(shù)據(jù)對(duì)象幾乎總是保持相同的風(fēng)格.
這是一個(gè)更冗長(zhǎng)的選項(xiàng),但您可以學(xué)習(xí)很多Magento的內(nèi)部數(shù)據(jù)處理.此外,你不neccessarily需要知道在后臺(tái)的數(shù)據(jù)表.
在Magento知識(shí)庫(kù)中,這些主題也有很多幫助.同樣,如果你想學(xué)習(xí)Magento,這是一個(gè)很好的開始.