2012-01-20 2 views
2

私はデータポンプを使用していますが、すべてがうまくいっていますが、イメージプロセッサを追加する必要があります。今まで運がない。誰でもこれを行う方法を知っていますか?ここにはdocsがあります。これは私が働いているコードです。私はVARSを入れていなかった。イメージプラグインを使用してMagento Mass importer(MAGMI)を使用しています

require_once(MAGENTO."/magmi/integration/magmi_datapump.php"); 
class TestLogger{ 
    public function log($data,$type){ 
     $mess.="$type:$data\n"; 
    } 
} 
$dp=Magmi_DataPumpFactory::getDataPumpInstance("productimport"); 
$dp->beginImportSession("default","create",new TestLogger()); 
$item=array(
          "type"=>"simple", 
          "sku"=>$sku, 
          "name"=>$p_name, 
          "short_description"=>$shortdesc, 
          "description"=>$longdesc, 
          "cost"=>$cost, 
          "price"=>$price, 
          "min_qty"=>0, 
          "qty"=>$stock, 
          "tax_class_id"=>2, 
          "status"=>2, 

          "attribute_set"=>$attribute_set, 
          "category_ids"=>implode(",",array_unique($cat_list)), 
          "manufacturer"=>$manufacturer 
         ); 
//This doesn't seem to be working. 
$item["image"]="http://images.domain.com/product_images".$image[0]; 

$item["store"]=""; 
$dp->ingest($item); 
$dp->endImportSession();        

今私はを通じて見ていると私は、プラグインのロードされたを取得する方法を見ていない...それを修正上の任意のアイデアを? Tk

答えて

2

私はそれを行うことができませんでした..しかし、なぜ今も知っています。私はUIを使用していないので、すべてのクラスに固有のものではないため、itemprocessorを使用できません。イメージプロセッサはそれを継承して以来、だからここで私はそれを回避する方法です。私はMAGMIが​​データ・ポンプを介してそれを行うと、リストの上をリロードするだけです。ここにあります

$imgAttrIds = array(79,80,81); 
$imageGalId = 82; 
$conn = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$connW = Mage::getSingleton('core/resource')->getConnection('core_write'); 


if($image[0]!=''){ 
$image_file="http://domain.com/product_images".$image[0]; 
$param=array(); 
$config=array(); 


$p=Mage::getModel('catalog/product')->loadByAttribute('sku',$line[0]); 
$entity_id=$p->getId(); 
$insertData = array(); 
$skusToInsert = array(); 


for ($i = 0; $i <= count($image)-1; $i++) { 
    //there is a very nifty image sizer there so $params is a for that ;) 
    $param['to']="/media/catalog/product".$image[$i]; 
    echo function_supersizer($param,$config)."<br/>"; 
    if($i<=0){ 
     foreach($imgAttrIds as $img) {    
      $insertData[] = "(4, ".$img.", 0, ".$entity_id.", '".$image[$i]."')"; 
     } 
    } 
    $skusToInsert[] = "(".$imageGalId.", ".$entity_id.", '".$image[$i]."')"; 
} 
$sql = "INSERT INTO mag_catalog_product_entity_media_gallery (attribute_id, entity_id, value) VALUES ".implode(",",$skusToInsert).";"; 
$connW->query($sql); 
$sql = "INSERT INTO mag_catalog_product_entity_varchar (entity_type_id, attribute_id, store_id, entity_id, value) VALUES ".implode(",",$insertData).";"; 
$connW->query($sql); 

これはうまくいきます。それは私のためにうまくいきます。ただ、15,000製品のテストをしました..しかし..ええそのまま、など最初のベータ版で使用

乾杯-Jeremy

3

imageprocessorを動作させるには、magmi設定UIを使用して、「デフォルト」プロファイルの選択したプラグインリストに追加する必要があります。

+0

ok ..私は何が必要なのか知っていると思います。プラグインをmagmi/conf/plugins.confにリストアップする必要があります。誰かがそのファイルのサンプルを持っていますか?私のものは空であり、私はまだUIの設定ページを実行して、アンドンの事を危険にさらしたいとは思っていません。 –

+0

何も破壊したくない場合は、UIに新しいmagmiプロファイルを作成し、この新しいプロファイルでプラグインを変更します。この新しいプロファイルは、たとえば「test」と呼ばれます: $ dp-> beginImportSession( "test "、"作成 "、新しいTestLogger());基本的なデフォルトプロファイルの代わりにそれを使用する – dweeves

+0

@dweeves私はこの同じ問題を抱えていますが、 "デフォルト"を使用せず、イメージプロセッサが有効でconfigsの内部​​にあります。エラーはありません。 –

2

jeremyBass_DCあなたは間違っているとdweevesが正しいと思います。あなたはこれを使用している

は:

$dp->beginImportSession("default","create",new TestLogger()); 

これは、あなたが "デフォルト" プロファイルを使用していることを意味します。

あなたは、次のURLからこのプロファイルを設定できるの: http://www.yourweb.com/magmi/web/magmi.php

何の画像処理プロセッサが存在しない場合は、あなたが に「itemprocessors」フォルダを配置する必要がありますインストールするには、手動で http://sourceforge.net/projects/magmi/files/magmi-0.7/plugins/individual/

プラグインをダウンロードすることができます"magmi \ plugins \ base \ itemprocessors"

最初私はあなたと同じ問題を抱えています。この方法でうまくいきます。

+0

こんにちは、ようこそ! - これはhttp://meta.stackexchange.com/questions/5029/are-taglines-signatures-disallowedで、将来の投稿については素早く覗いてください。 – Fluffeh

+0

http://www.yourweb.com/magmiとは何ですか? /web/magmi.phpここに..?ラオの土地へのリダイレクトだけですか?しかし、私はあなたが後で提案するように調整しようとしました。私は別の実行を与えて、私がtypo'edか何かがあるかどうかを見なければならないかもしれません。 –

関連する問題