在magento中成功导入产品时调用函数

时间:2012-12-24 13:47:23

标签: magento

您好我正在使用高级导入配置文件以编程方式导入磁盘产品,我希望在整个导入完成后运行重新索引。我试过挖掘magento,但是在导入完成后找不到任何被调用的函数......

我找到了一个文件process.phtml,它为每个csv行调用ajax / app / design / adminhtml / default / default / template / system / convert / profile

所以我在root上创建了一个文件并通过ajax调用它来导入每一行,但它在Mysql中创建了一个死锁并导入了throws错误SQLSTATE [40001]:序列化失败:1213在尝试锁定时发现死锁;尝试重新启动交易。

function reIndexData(){
                        var url = '<?php echo str_replace("index.php/","",Mage::getBaseUrl()); ?>';
                         new Ajax.Request(url+'reindex.php', {
                          method: "post",
                          parameters: 'data',
                          onSuccess: function(transport) {}
                        });
                    }

3 个答案:

答案 0 :(得分:2)

有一个叫做

的观察者
catalog_product_import_finish_before

这应该允许您在每次导入产品时重新索引数据库

以下是有关Magento Observers的一些信息:

什么是Magento Observer?

观察者允许您查看(观察)程序中某个动作何时发生(例如,查看项目何时被导入)。

观察者允许我们在看到某个操作(例如正在导入的产品)后注入并运行代码

如何设置观察者?

请参阅此问题:What is the correct way to set up an observer in Magento?

答案 1 :(得分:2)

您也可以在Magento的任何地方发送自定义事件,并调用您的方法进行reIndex处理。

有关详细信息,请参阅这些FirstSecond

答案 2 :(得分:0)

使用此路径.. 应用程序/代码/核心/法师/ Adminhtml /控制器/系统/转换

你会发现文件ProfileController.php有一个名为batchFinishAction()的函数 在导入配置文件完成时调用它

P P ......太懂了!!谢谢大家的帮助......