I think the original issue raised in this thread was to do with access being denied in admin>catalog>categories/products to non superusers to create/edit products of custom product types. I found that I was having the same problem with the music product type which is a (sort of) core product type.
I tried the code change suggested by Niccol above but this did not work for me.
I have found a solution which I think gets to the root of the problem which is that the 'product_music' page is not registered as a valid Admin page. I upgraded from v1.39 to v1.5 so I'm not sure whether this is just an issue with upgrading or whether a clean new install will have the same issue.
This solution allows control of access to manage products by type via admin profiles. Although described for the music product type it should also work when applied to properly configured custom product types.
There are three steps to the solution:
- Edit admin/include/extra_datafiles/music_type_filenames.php by adding the following definition:
define('FILENAME_PRODUCT_MUSIC', 'product_music');
- Edit admin/includes/languages/english/extra_definitions/product_music.php by adding the following definition:
define('BOX_CATALOG_PRODUCT_MUSIC', 'Product Music');
- Back up your database and then run the following sql using your database manager (phpMyAdmin).
INSERT INTO `admin_pages` (`page_key`, `language_key`, `main_page`, `page_params`, `menu_key`, `display_on_menu`, `sort_order`)
VALUES ('product_music', 'BOX_CATALOG_PRODUCT_MUSIC', 'FILENAME_PRODUCT_MUSIC', '', 'catalog', 'N', '18');
Once you have completed these three steps go to Admin Access Management>Admin Profiles and click 'Edit' on one of your custom profiles. You should now see a tickbox labelled 'Product Music' in the 'Catalog' section which can be ticked or unticked to allow or deny access as required.
If you have a custom product type you need to ensure that files containing the appropriate 'filename' and 'box' definitions are placed in the appropriate folders and that you add an appropriate record to the admin_pages table.
Hope this helps.
Alan
workingIT.co.uk
working IT for business