您好我正在使用高级导入配置文件以编程方式导入磁盘产品,我希望在整个导入完成后运行重新索引。我试过挖掘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) {}
});
}
答案 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)
答案 2 :(得分:0)
使用此路径.. 应用程序/代码/核心/法师/ Adminhtml /控制器/系统/转换
你会发现文件ProfileController.php有一个名为batchFinishAction()的函数 在导入配置文件完成时调用它
P P ......太懂了!!谢谢大家的帮助......