In magento backend you only have the choice between global and website scopes for the "status" attribute of a product. Can it be changed to the store level, so that different stores have different products activated? Will it have any side effects or is there another reason why it's not allowed to be on the store level by default?
To hide products on different stores, normally the Visibility is used which works on store level.
I don't think it is a good idea to change the status scope to storeview, because indexing and other things are working with this value.
The Status attribute is to conveniently Disable or Enable products without deleting them. If you have a requirement to have select products appear in specific store views, you need to assign the products to those store views.
If you want to Enable or Disable products across individual stores / views you need to modify the product at the products store view level:
- Catalog --> Manage Products
- The default store view should be "All Store Views"
- Click on the product you wish to assign
- Select the product Select "Websites" on the left
- Place a check mark in the store view you wish the product to appear
- Click "Save and Continue Edit"
- Click "General" From the "Choose Store View:" drop down, select the store / view you assigned the product.
- Scroll down to the "Status" attribute, notice the "Use Default Value" is checked.
- Deselect this value
- Set the "Status" to Enabled or Disabled
- Click Save
This will achieve what you are looking for.
NOTE: You can assign multiple products and Enable / Disable using the same principles with the "Actions" ---> "Update Attributes" tool on the "Manage Products" page.
I once stuck in the same issue. Whenever I tried changing status attribute value on a single store, it was getting change in the other store as well which was not required. Than I changed the is_global column for the status attribute in catalog_eav_attribute table and boom.