Php 以编程方式调用目录产品保存不会调用Magento中的observer?

Php 以编程方式调用目录产品保存不会调用Magento中的observer?,php,zend-framework,magento-1.7,Php,Zend Framework,Magento 1.7,我创建了观察者,以便在产品保存时在表中插入产品属性 <adminhtml> <events> <catalog_product_save_after> <observers> <Test_price_save_product_data> <type>singleton<

我创建了观察者,以便在产品保存时在表中插入产品属性

<adminhtml>
         <events>
        <catalog_product_save_after>
                <observers>
                    <Test_price_save_product_data>
                        <type>singleton</type>
                        <class>Magetest_test_Model_Observer</class>
                        <method>saveProductAttr</method>
                    </Test_price_save_product_data>
                </observers>
        </catalog_product_save_after>
    </events>
  </adminhtml>
当我运行脚本时,它会逐个保存产品,但不会触发“observer”之后的“catalog\u product\u save\u”。因为我需要使用此observer在另一个表中分别插入7000个产品属性


我在这件事上做错了什么?敬请告知。

观察员没有开火,因为Magento从未加载应用程序的
区域。至于解决方案,我们可以尝试将您的观察者移动到
区域。只有
事件在运行命令行脚本时才会触发

<global>
         <events>
        <catalog_product_save_after>
                <observers>
                    <Test_price_save_product_data>
                        <type>singleton</type>
                        <class>Magetest_test_Model_Observer</class>
                        <method>saveProductAttr</method>
                    </Test_price_save_product_data>
                </observers>
        </catalog_product_save_after>
    </events>
  </global>

独生子女
Magetest_测试_模型_观察者
saveProductAttr

这可能是因为产品未修改。在Mage/Core/Model/Abstract.php文件中,函数“save()”包含以下代码 如果(!$this->\u hasModelChanged()){ 退还$this; }


如果编辑该产品的任何字段:
setData(“名称”、“测试”)它会工作。

或者更好的$product->setData(“\u hasDataChanges”,true);
<global>
         <events>
        <catalog_product_save_after>
                <observers>
                    <Test_price_save_product_data>
                        <type>singleton</type>
                        <class>Magetest_test_Model_Observer</class>
                        <method>saveProductAttr</method>
                    </Test_price_save_product_data>
                </observers>
        </catalog_product_save_after>
    </events>
  </global>