7

私はオープンカートベースのショッピングカートサイトを持っています..

今、私はそれをmagentoサイトに変換したいと思います..

マジェントの新規インストールを行いました。次に、opencart データベースから新しい magento データベースにデータを移行する必要があります

誰でもテーブル名を教えて、移行を成功させるために何をすべきか教えてもらえますか?

ありがとう

4

2 に答える 2

10

初めに

Magentoにインポートするものを評価します。質問への回答が明確であればあるほど、選択肢の評価が容易になります。

基本的に、これらのオプションには、組み込みのインポートを介したデータのインポート(組み込みの方法)、カスタムスクリプトを介したデータのインポート(スクリプトの方法)、プレーンSQLを介したデータのインポート(ひどい、ひどいSQLの方法)、および外部モジュールを介したインポートが含まれます(モジュールウェイ)。


組み込みの方法

まず、opencartベースの製品/顧客をCSV形式で取り込むことができ、バックエンドで再インポートできる場合は、バックエンドを介して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

_constructモデルには通常、 (PHPではありません!)と呼ばれるinitメソッドがあり、__constructこれは、を介してモデルをインスタンス化できる文字列を定義しますMage::getModel()

製品のインポートに関するより完全な説明は、ここにあります。ほとんどの場合、スタイルはMagentoのデータオブジェクト間で同じです。

これはより長いオプションですが、Magentoの内部データ処理の多くを学ぶことができます。また、バックグラウンドでデータテーブルを知る必要ありません。

Magentoのナレッジベースでも、このトピックに関する多くのヘルプがあります。繰り返しになりますが、Magentoを学びたい場合は、これから始めるのが良い方法です。

SQLの方法

プレーンSQLを実行してMagentoのテーブルを埋めることもできます。

そうしないでください。他のすべてのMagentoバージョン用にSQLを記述していることに気付くでしょう。スクリプトを介して行う場合は、Magentoが提供するフレームワークを介して行ってください。

モジュールウェイ

上で示したスクリプトメソッドは大量のデータに対してあまり効率的ではないため、過去に大量のデータをインポートするために使用したモジュールがいくつかあります。それらのいくつかが積極的に維持されているかどうかはわかりませんが、MagentoConnectをざっと見てみるのは良い考えです。使用するものによっては、これらのモジュールが無料ではない場合があります。

最終的な考え。

Magentoを学ぶのに最適な方法なので、カスタムスクリプトを作成することをお勧めします。プログラミングを気にしない場合は、組み込みのインポーターを調べる必要があります。

さらに質問が残っている場合は、質問してください:)

于 2012-07-30T17:19:04.893 に答える