如何在观察者中编辑产品自定义选项

时间:2016-09-15 13:13:43

标签: magento events request

我遇到Magento 1.9.2.4的问题

我需要做的是当我添加产品时,我需要对正在添加的产品自定义选项进行一些自定义验证。 验证后,我还需要编辑这些选项。

我尝试过这些活动

catalog_product_type_prepare_full_options
controller_action_predispatch_checkout_cart_add

但是没有结果,也是在谷歌研究后我试图编辑请求并设置我的参数但是仍然没有结果。

有没有人有解决方案?或者也许我可以使用另一个活动?

2 个答案:

答案 0 :(得分:2)

在此Add events for before/after a action of a controller in Magento找到解决方案。 我使用了错误的事件。需要使用predispatch

答案 1 :(得分:0)

也许您应该尝试观察产品型号本身? 此事件将允许您比较旧产品和新产品值:

catalog_product_save_before

在这里,您可以在保存产品之前做任何您喜欢的事情

catalog_product_save_after

您甚至可以通过抛出异常来阻止实际更新数据库数据,如下面的核心代码所示($ this-> _afterSave())

/* Mage_Core_Model_Abstract */
try {
        $this->_beforeSave();
        if ($this->_dataSaveAllowed) {
            $this->_getResource()->save($this);
            $this->_afterSave();
        }
        $this->_getResource()->addCommitCallback(array($this, 'afterCommitCallback'))
            ->commit();
        $this->_hasDataChanges = false;
        $dataCommited = true;
} catch (Exception $e) {
        $this->_getResource()->rollBack();
        $this->_hasDataChanges = true;
        throw $e;
}

catalog_product_save_after

如果您想确保您的产品已保存,并且您想要做一些额外的工作,请尝试以下方法:

catalog_product_save_commit_after