1

我可以使用 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 插件在我选择的默认配置文件中被激活。

我在这里想念什么?

4

2 回答 2

0

没关系,我选择了错误的配置文件...它适用于发布的代码,当您真正选择具有激活的“产品删除器”插件的配置文件时。

于 2013-03-25T07:32:26.483 回答
0

单击此处将 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列不存在,则从该文件中的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:delete : 1 是删除产品 0 是不删除产品

于 2021-12-30T10:09:01.920 回答