2022-10-11 10:35:34 - 米境通
我有一個基于opencart的購物車網(wǎng)站..
現(xiàn)在我想把它轉(zhuǎn)換成一個magento網(wǎng)站..
我做了一個新的magento安裝.現(xiàn)在我需要將數(shù)據(jù)從opencart數(shù)據(jù)庫遷移到新的magento數(shù)據(jù)庫
那么,任何人都可以給我表名稱,并告訴我成功遷移應(yīng)該做些什么?
謝謝
Flo*_*ian10
首先
評估要導(dǎo)入Magento的內(nèi)容.qestion得到回答越清楚,評估你的選擇就越容易.
基本上,這些選項包括通過內(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)入-請參閱此處或此處(僅限產(chǎn)品).
這個解決方案取決于你如何從開放式購物車中導(dǎo)出數(shù)據(jù)這一事實,我坦率地說,這不是專家.只要你可以導(dǎo)出到XLS,CSV或類似產(chǎn)品,你應(yīng)該沒問題.
腳本方式
如果你不能這樣做,我建議使用Magento自己的模型編寫一個導(dǎo)入腳本.一個非?;镜钠?可以幫助您入門:
//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,其他數(shù)據(jù)類型可以是Mage_Sales_Model_Order訂單或Mage_Customer_Model_Customer客戶.我可以從內(nèi)存中回憶一下Magento風格的一些數(shù)據(jù)對象實例化調(diào)用的代碼:
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')
可以在相應(yīng)的核心模塊中查找這些調(diào)用-有時它們在不同的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().
可在此處找到有關(guān)導(dǎo)入產(chǎn)品的更完整說明.Magento中的數(shù)據(jù)對象幾乎總是保持相同的風格.
這是一個更冗長的選項,但您可以學(xué)習很多Magento的內(nèi)部數(shù)據(jù)處理.此外,你不neccessarily需要知道在后臺的數(shù)據(jù)表.
在Magento知識庫中,這些主題也有很多幫助.同樣,如果你想學(xué)習Magento,這是一個很好的開始