我正在使用数据泵,但是我需要添加图像处理器。到目前为止没有运气。有人知道怎么做吗?这是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的
答案 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”
起初我遇到了和你一样的问题,这种方式很好。