Magento Mass导入器(MAGMI)使用图像插件

时间:2012-01-20 02:40:41

标签: php magento e-commerce magmi

我正在使用数据泵,但是我需要添加图像处理器。到目前为止没有运气。有人知道怎么做吗?这是docs。这是我工作的代码。我没有把变种放进去。

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的

3 个答案:

答案 0 :(得分:3)

要使图像处理器正常工作,您必须通过magmi配置UI将其添加到“默认”配置文件的选定插件列表中。

答案 1 :(得分: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种产品进行了测试......但是......是的,首先使用测试版等。

干杯 - 杰里米

答案 2 :(得分:2)

jeremyBass_DC认为你错了,dweeves是对的。

你正在使用这个:

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

这意味着您使用的是“默认”个人资料。

您可以在此网址配置此个人资料: http://www.yourweb.com/magmi/web/magmi.php

如果没有图像处理器,您可以手动下载该插件 http://sourceforge.net/projects/magmi/files/magmi-0.7/plugins/individual/

要安装,您必须将“itemprocessors”文件夹放入 “magmi \插件\基地\ itemprocessors”

起初我遇到了和你一样的问题,这种方式很好。