我想根据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。
感谢。
答案 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()