magento|rocketweb_shoppingfeed无法生成feed的异常

rocketweb_shoppingfeed是一款用来生成googleshopping feed的插件,该插件安装后直接可以在后台创建feed生成计划,并配合定时任务,每天固定更新feed,简单省事方便。插件效果如下:

  

但是在使用过程中却出现了个问题,就是偶尔会在执行过程中直接卡死,报错然后走不下去,报错一下全部不再执行和显示。而这种情况往往过段时间就又自动好了,具体原因未知。但是在客户急用feed的时候不能一直等着他自己好,只能深入的去查找原因。最初的时候当出现这种情况,个人写了个脚本去生成,这样也可以实现。但后来发现脚本执行也同样报错,没办法只能彻底解决了。最后发现的问题是,插件封装的一个toArray()方法有问题,在部分情况异常的时候,就会出现空对象无法toArray()的错误,解决方案就是把这个干掉,具体位置是:
/app/code/community/RocketWeb/ShoppingFeeds/Model/Feed.php中第82行和第172行,
//$batchLimit = Mage::getConfig()->getNode('default/general/batch_limit')->asArray();
$batchLimit = Mage::getConfig()->getNode('default/general/batch_limit');

还有一种可能是某个文件夹没有创建权限,app\code\community\RocketWeb\ShoppingFeeds\Model\Hook\Google,hook下面的google文件夹,检查是否被删除掉然后无法创建,同样会导致无法生成。

最后罗列三种执行feed的方式:

1、后台在定义好的feed后面点击run now,然后状态变为pending,接着到服务器网站根目录执行sh corn.sh几次,观察后台进度变化,一般间隔性的执行几次就会开始生成。

2、同样后台点击run now,然后到网站目录下的shell文件夹,执行php gsf_generate.php命令,这个是最近发现的,插件中自带的生成feed的方式。

3、定义计划任务,开启相关权限,默认是5分钟,具体情况可以根据个人需求更改。

猜你喜欢

转载自blog.csdn.net/lolgigeo/article/details/88287891