我正在使用下面的配置文件。但是,当我保存产品时,永远不会调用观察器类。
<?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。
最好
汤姆