magento 使用Magmi数据泵删除产品

hivapdat  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(159)

我可以用MAGMI的网络前端成功地删除产品。但是当使用数据泵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没有任何异常或错误。产品删除器插件在我选择的默认配置文件中被激活。
我错过了什么?

qgelzfjb

qgelzfjb1#

没关系,我选择了错误的配置文件...它的工作与张贴的代码,当你真的选择了一个配置文件与激活**“产品删除器”**插件。

fquxozlt

fquxozlt2#

单击此处将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();

请检查数据库中的catalog_eav_attribute表。如果is_configurable列不存在,则从该文件中的getConfigurableOptsFromAsId()函数更新以下代码.../magmi/plugins/base/itemprocessors/configurables/magmi_configurableprocessor.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:删除:1是删除产品0是不删除产品

相关问题