如何只展示我自己的产品Magento

Jam*_*mes 2 product roles editing admin magento

我在Magento设立了"店主"角色.具有该角色的用户将只能添加/编辑/删除产品.

我需要的是告诉我如何限制这些用户在他们转到目录 - >管理产品时只能看到列表中的产品?

如果可能的话,我想通过代码编辑实现这一目标.

另请注意,所有用户都使用同一商店.

谢谢

Jim*_*ran 5

这不是Magento Community Edition(或Enterprise)中的"开箱即用"功能,因此您需要编写一些代码才能使其正常工作.

一般而言,您需要:

  1. 向产品添加(隐藏?)属性以存储产品"所有者"的用户ID.
  2. 编写一个事件观察器catalog_product_save_before,将当前用户的用户ID字段分配给新的产品所有者属性.
  3. 重写_prepareCollection_addColumnFilterToCollection方法Mage_Adminhtml_Block_Catalog_Product_Grid将product_owner属性添加到集合中,并将其过滤到当前用户.

这将确保给定用户在网格中出现的唯一产品是他们拥有的产品.但是,在编辑/保存产品之前,我还会实施一个观察者controller_action_predispatch_adminhtml_catalog_product_editcontroller_action_predispatch_adminhtml_catalog_product_save事件来检查产品所有者对产品的价值,以确保用户没有尝试编辑未出现在网格上的产品.

如果您在添加属性,设置块重写或创建事件观察器方面需要任何进一步的帮助,我确信这些问题已经在SO上得到了解答,这个问题有点过于宽泛,无法在该详细程度上回答.