Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 其中,Mage Core中有一个产品';谁的状态设置?_Magento_Status_Extend_Mage - Fatal编程技术网

Magento 其中,Mage Core中有一个产品';谁的状态设置?

Magento 其中,Mage Core中有一个产品';谁的状态设置?,magento,status,extend,mage,Magento,Status,Extend,Mage,我正在尝试扩展core以更改magento设置产品状态的方式。本质上,当管理员用户试图将产品状态更改为禁用时,我希望它检查产品是否在EPOS系统中有库存,如果有,则抛出错误 为了做到这一点,我打算扩展设置产品状态的模型,并重写该函数。问题是,我在任何地方都找不到这个。magento_core_model_产品中没有任何内容。我在mage_catalog_model_product_status中找到了一个名为updateProductStatus的函数,但这似乎也不正确 有人知道我需要在哪里找到

我正在尝试扩展core以更改magento设置产品状态的方式。本质上,当管理员用户试图将产品状态更改为禁用时,我希望它检查产品是否在EPOS系统中有库存,如果有,则抛出错误

为了做到这一点,我打算扩展设置产品状态的模型,并重写该函数。问题是,我在任何地方都找不到这个。magento_core_model_产品中没有任何内容。我在mage_catalog_model_product_status中找到了一个名为updateProductStatus的函数,但这似乎也不正确


有人知道我需要在哪里找到这个函数吗?

经过一番研究,我发现Magento通过广泛使用
\u call()
函数,实际地生成了所有的getter和setter,调用未定义的函数时会调用该函数


要修改getter或setter的功能,只需在重写类时定义要修改的函数,该函数将在
\u call()
之前调用,基本上是以迂回的方式重写默认功能。

另一种方法是
之前保存产品。如果状态值没有更改,但EPOS状态有更改,这将为您提供一个额外的机会来纠正差异。这是一个简单得多的解决方案。但愿我一天前就想到了。谢谢你的建议。根据经验,在可能的情况下,使用事件来扩展核心对象是否更好?是的,事件更可取。几个不同的监听器可以同时观察一个事件(可能将模块与无关的开发人员分开),而不会相互干扰。但只有一个模块可以同时扩展核心对象,任何其他模块都必须覆盖覆盖,这是不必要的复杂。