Magento不调用观察者类



我正在使用下面的配置文件。但是,当我保存产品时,永远不会调用观察器类。

<?xml version="1.0"?>
<config>
<modules>
    <PcTp_Stock>
        <version>1.0.0</version>
    </PcTp_Stock>
</modules>
<global>
    <blocks>
        <stock>
            <class>PcTp_Stock_Block</class>
        </stock>
    </blocks>
    <models>
        <stock>
            <class>PcTp_Stock_Model</class>
        </stock>
    </models>
</global>
<adminhtml>
    <layout>
        <updates>
            <stock>
                <file>stock.xml</file>
            </stock>
        </updates>
    </layout>
    <events>
        <catalog_product_save_after>
            <observers>
                <pctp_stock_product_catalog_data_inventory>
                    <type>singleton</type>
                    <class>stock/observer</class>
                    <method>saveProductTabData</method>
                </pctp_stock_product_catalog_data_inventory>
            </observers>
        </catalog_product_save_after>
    </events>
</adminhtml>

观察器类 (Pc_Tp_Stock_Model_Observer) 保存到 app/code/local/PcTp/Stock/Model/Observer.php

我如何让它工作?

<?php
class Pc_Tp_Stock_Model_Observer

config.xml

<?xml version="1.0"?>
<config>
<modules>
    <PcTp_Stock>
        <version>1.0.0</version>
    </PcTp_Stock>
</modules>
<global>
    <models>
        <PcTp_Stock>
            <class>PcTp_Stock_Model</class>
        </PcTp_Stock>
    </models>
</global>
<adminhtml>
    <events>
        <catalog_product_save_after>
            <observers>
                <pctp_stock_save_after>
                    <type>model</type>
                    <class>PcTp_Stock/observer</class>
                    <method>catalogProductSaveAfter</method>
                </pctp_stock_save_after>
            </observers>
        </catalog_product_save_after>
    </events>
</adminhtml>
</config>

app\code...\PcTp\Stock\Model\Observer.php

<?php
class PcTp_Stock_Model_Observer {
    public function catalogProductSaveAfter($observer) {
        die('observer launched');
    }
}

您的命名体系结构在声明观察者/类的位置看起来有点偏离。 尝试将其更改为此;

<observers>
            <PcTp_Stock_Model_Observer>
                <type>singleton</type>
                <class>PcTp_Stock_Model_Observer</class>
                <method>saveProductTabData</method>
            </PcTp_Stock_Model_Observer>
</observers>

然后在您的模型/观察点.php文件中;

class PcTp_Stock_Model_Observer {
    public function saveProductTabData() {
        // Do something
    }
}

还要确保该事件在 1.7 中可用。 我使用此站点作为 1.7 https://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/的快速参考指南,可能值得尝试catalog_product_prepare_save。

最好

汤姆

最新更新