2

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

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();                            

现在我已经浏览了,但我看不到如何加载插件..有什么修复它的想法吗?总热量

4

3 回答 3

3

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

于 2012-01-20T13:40:09.370 回答
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 种产品进行了测试.. 但是.. 是的,首先使用 beta 等。

干杯-杰里米

于 2012-01-23T03:30:38.987 回答
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\plugins\base\itemprocessors”

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

于 2012-09-25T11:35:12.077 回答