使用 Magmi Datapump 删除产品
Posted
技术标签:
【中文标题】使用 Magmi Datapump 删除产品【英文标题】:Deleting Products with Magmi Datapump 【发布时间】:2013-03-25 07:26:46 【问题描述】:我可以使用 MAGMI 的 Web 前端成功删除产品。 但是在使用数据泵 API 时,它似乎只是忽略了 magmi:delete 列...
$this->magmi = Magmi_DataPumpFactory::getDataPumpInstance("productimport");
$this->magmi->beginImportSession("Default","create", new MagmiLogger($this));
$prods = Mage::getResourceModel('catalog/product_collection');
$count = $prods->getSize();
$i = 0;
foreach ($prods as $_p)
$this->magmi->ingest(array(
'sku' => $_p->getSku(),
'magmi:delete' => '1'
));
$this->magmi->endImportSession();
使用此代码,我尝试删除我的整个目录。执行时,foreach 循环通过 MAGMI 没有任何异常或错误。 Product Deleter 插件已在我选择的默认配置文件中激活。
我在这里错过了什么?
【问题讨论】:
【参考方案1】:没关系,我选择了错误的个人资料... 当您真正选择具有激活的“Product Deleter”插件的配置文件时,它适用于发布的代码。
【讨论】:
【参考方案2】:单击此处将 MAGMI 添加到您的模块中 -> https://magento.stackexchange.com/a/351175
启用产品删除插件。
使用 CSV
"sku","magmi:delete"
"sku1","1"
"sku2","1"
使用代码
$importData = [];
$configProduct = new \Magmi_ProductImport_DataPump('productimport');
$importData['sku'] = "your Product SKU";
$importData['magmi:delete'] = "1";
$configProduct->beginImportSession("default", "update");
$run = $configProduct->ingest($importData);
$configProduct->endImportSession();
检查 db 中的 catalog_eav_attribute 表。如果 is_configurable 列不存在,则从文件 .../magmi/plugins/base/itemprocessors/configurables/magmi_configurableprocessor. 中的 getConfigurableOptsFromAsId() 函数更新以下代码。 php
//$sql .= " JOIN $cea as cea ON cea.attribute_id=ea.attribute_id AND cea.is_global=1 AND cea.is_configurable=1";
$sql .= " JOIN $cea as cea ON cea.attribute_id=ea.attribute_id AND cea.is_global=1";
else
//$cond .= " AND ea.is_global=1 AND ea.is_configurable=1";
$cond .= " AND ea.is_global=1";
注意:- magmi:delete : 1 是删除产品 0 是不删除产品
【讨论】:
以上是关于使用 Magmi Datapump 删除产品的主要内容,如果未能解决你的问题,请参考以下文章
是否有 Magmi 插件可以删除不在 CSV 文件中的产品?