Magento - 在产品创建观察者之前获取商店ID

时间:2014-05-27 08:59:30

标签: php magento

我想根据catalog_product_save_before观察员中的当前商店ID为产品添加一些网站。

观察者工作正常,但我似乎无法获得创建产品的当前商店ID。这就是我试过的:

Mage::app()->getStore()->getId();

返回0。

Magento将管理面板视为名为admin且ID为0的单独商店。因此,它返回admin的商店ID,这不是我想要的。

所以,我在here中尝试了一些内容,它仍然将id返回为0。

更多详情:

我作为商店管理员登录到enterprise.lmm.dev(企业网站的虚拟主机)并正在创建产品。在这里,网站名称和商店名称都是“企业”。

创建产品时,我从“选择商店视图”下拉列表中选择“企业”,然后填写产品创建表单。

我编写了一个观察者函数'before_product_save()',其中我就是这样做的:

echo Mage::app()->getStore()->getStoreId();

但是,这将返回0。

我想知道这是否可行,以及我是否可以访问商店'enterprise'的商店ID。

感谢。

3 个答案:

答案 0 :(得分:2)

尝试:

Mage::app()->getStore()->getStoreId();

答案 1 :(得分:2)

此时,产品对象中的store_id已设置为您保存当前值的商店的ID。

因此,假设$product是您的产品对象,您可以使用:

$product->getStoreId()

或者,如果您需要商店模型:

Mage::app()->getStore($product->getStoreId());

答案 2 :(得分:0)

如果Mage::app()->getStore()->getStoreId()无效,请尝试$this->helper('core')->getStoreId()Mage::helper('core')->getStoreId()