1

我有一个包含大约 13000 个 SKU 的 CSV 产品列表,我正在使用 MAGMI 来管理它。

如果我在 UPDATE 模式下运行 MAGMI,它只会更新现有产品并跳过新产品,并以(示例)“info:Skus import OK:21/21”退出...

有没有办法知道更新了哪些产品?

我对浏览代码感到有点懒惰,所以请耐心等待我...

提前致谢!保罗

4

2 回答 2

3

只需创建一个基本插件,为 Magmi 日志中的每个项目输出日志。

1) 在 magmi 根目录下创建文件plugins/extra/itemprocessors/basicitemlogger/basicitemlogger.php

2)打开文件并粘贴以下内容

<?php
/**
 * Class BasicItemLogger
 * @author Axertion
 *
 * Returns basic SKU for item in the Magmi output log.
*/ 
class Magmi_BasicItemLogger extends Magmi_ItemProcessor
{


    public function getPluginInfo()
    {
        return array(
            "name" => "Basic Item Logger",
            "author" => "Axertion",
            "version" => "0.0.1",
            "url"=> "http://axertion.com"
        );
    }
    static public function getCategory()
    {
        return "Input Data Preprocessing";
    }

    public function getPluginParams($params)
    {
    }

    public function initialize($params)
    {
    }

    public function processItemAfterId(&$item,$params)
    {   

        if($params['new'] != 1)
        {
            $this->log("Item {$item["sku"]} has been updated.", "info");
        }

        return true;
    }
}

3) 在 Magmi UI 中,转到该Configure Current Profile部分。启用Basic Item Logger v0.0.1并单击Update Profile

4) Runtime Infos 窗格现在将列出每个不是新的和更新的项目,如下所示:

Basic Item Logger v0.0.1 - Item 123253221 has been updated.
Basic Item Logger v0.0.1 - Item 520448042 has been updated.
Basic Item Logger v0.0.1 - Item 606852342 has been updated.
Basic Item Logger v0.0.1 - Item 955884964 has been updated.

此外,您可以轻松修改插件代码(这是非常基本的)以写入简单的日志文件。Magmi 让您可以访问整个项目对象。$item['column_name']通过在processItemAfterId()方法中使用,您可以根据项目列值编写一些漂亮的逻辑。您还可以使用processItemBeforeId()它在 Magmi 处理之前更改项目对象。

于 2013-01-25T22:43:18.920 回答
0

您是否尝试过 MAGMI 邮件通知插件?这个应该可以做到。

如果您通过 php-script 和 cron 来管理导入,那就更容易了。如果您需要这方面的帮助,请回到我这里;

欢呼西蒙

于 2013-01-25T22:02:24.157 回答