I'm building a multilingual joomla 1.7 website that will have to support up to 25 countries with each country being a website on its own, the site will be managed by different teams for each country, basically what i'm trying to achieve is, setting up the permissions system so that each team can only see content that belong to its country. now, i'm wondering how to achieve this in the following cases:
1. setting the permissions for standard joomla articles...may be using categories??
2.since i have coded a custom component for managing products on the site, how to implement the permissions in my own component.....
it's easy to implement the multilingual feature on the front-end but how about the backend in terms of access control?
any ideas, thoughts would be greatly appreciated :)
Cheers,
Maybe you have resolved your problem earlier but may be somebody else needs help on this.
First of all you have to create a User groups for every country (or a couple for
start, example Ireland, England).
Then you have to create a AccessLevels groups for those groups and set (select)
corresponding usergroup on it (e. ACL_Ireland / Ireland, ACL_England / England).
Then you can create a top level category for every country (ACL_Ireland, ACL_England, ...)
Users of other countries are not able to see top and sublevel categories if you set the category permission for single ACL and deny access from others.
Move to Category manager and create top level category for country Ireland.
Name it like "Ireland".
Set it permission for ACL_Ireland.
Remove all permissions from other country ACL's.
Save & close category.
Select the category from list of categories.
Select Add to root, Copy under Batch process the selected categories and click Process.
Category is copied as a new entry on category list.
Open category as editing and change name as England, save and close.
Select category England, ACL_England from Batch process the selected
categories and click Process.
Category England now have different acl-rights and can be accessed only by users in England - group.
Articles created in those categories are inherited permissions from top level category
so you are not needed to give persmissions on single articles.
Repeat this to categories of all needed countries and ACL's.
You have to also restrict access from those acl's to Users component because theycan be else change permissions by themself and see documents of other coutries.
It is necessary to design the accessing model before implementing it because it could be heady job to change permissons to all goups and acl's later.
Related
I had set up a "Store Owner" role in Magento. Users with that role will be able to add/edit/delete products only.
What I need is some one to tell me how can I limit these users to see only their products in the list when they go to Catalog -> Manage Products ?
I want to achieve this with code editing if possible.
Also note that all users are using the same store.
Thanks
This is not an "out of the box" feature in Magento Community Edition (or Enterprise), so you'll need to write some code to make this work.
In general terms you'll want to:
Add a (hidden?) attribute to the product to store the User Id of the product "owner".
Write an event observer for catalog_product_save_before which assigns the current user's User Id field to the new product owner attribute.
Rewrite the _prepareCollection or _addColumnFilterToCollection methods of Mage_Adminhtml_Block_Catalog_Product_Grid to add the product_owner attribute to the collection and filter it to just the current user.
That will ensure that the only products that appear in the grid for a given user are the products they own. However, I would also implement an observer on the controller_action_predispatch_adminhtml_catalog_product_edit and controller_action_predispatch_adminhtml_catalog_product_save events to check the product owner value on products before they're edited/saved to make sure the user hasn't tried to edit a product that doesn't appear on the grid.
If you need any further assistance with adding attributes, setting up block rewrites, or creating event observers, I'm sure those questions have already been answered on SO, this question is a bit too broad to answer at that level of detail.
We have Contact Associated View that displays all customers. These are people who have bought one or more item from the high street shop or online. But we also have a set of customers who goes to the shop and signup for news letters and offers. In our setup these are called PROSPECTs.
My current view (Contact Associated View) only displays customers but not prospect and I was wondering what is the best way to include them in this view? I don't want to create another cusom view as I don't know what the criterias are.
Also, if there is any way to find out what criteria is used to create Contact Associated View and if it is practicle to make changes in it.
Any guidance or tutorial link would be much appreciated.
Many thanks
EDIT: I manage to create a custom view under CONTACT which SUPPOSE to list all customers who purchased or didn't purchase item from that shop.
Simple check like Customer equal y;n
but when I view contacts from this view, it only list customers with purchase. Is there any master condition that is overwriting this condition or am I missing some thing? (forgive me if I sound stupid but I am from SharePoint world where master CSS rules takes over local CSS rules)
I'm setting up a Magento site and have some design requirements that we can't quite get right. What is the best way to setup for the website, store, store view and then the categories for the needs below?
Overview:
One domain name, one set of customers
3 similar product lines that appeal to different industries
Specific Requirements:
The home page should show static content about the company and featured products from all three main categories of products
Each main category of products should have a distinct visual design that carries through when looking at any of the products in those categories
It should be seamless for customers to move from one category of products to another and have the design change without having to choose a store from a dropdown etc.
Home Page: Design A, any and all products may show.
Category 1: Design 1, products only from cat 1 show
Category 2: Design 2, products only from cat 2 show
Category 3: Design 3, products only from cat 3 show
Every combination of websites and stores and store views that we have tried results in strange behavior like changing a store and getting "There was no Home CMS page configured or found." instead of seeing the unique design and category it should be showing. So far we can only get the designs to be different by making new CMS pages which doesn't seem practical.
This seems like something that Magento is made to do and I have to be missing something.
Thank you for any help.
-Shane
Your design needs imply work and considerations from multiple areas of configuration. I'll tackle them in turn. The tl;dr is that there may be more than one way to accomplish what you want, with the number of options at your disposal depending on your needs.
1) One domain name, one set of customers
Domain names (URLs) are configurable for all configuration scopes: Global (aka "Default"), Website, and Store (aka "Store View"). Ultimately, Magento configuration comes down to the most granular/specific scope, which is the store ("Store View") scope. If a configuration value is not specified at the store scope, its value is derived (inherited) from the website or global scope.
Customers are configured to "belong" to all websites or to an individual website (System > Configuration > Customer Configuration: Account Sharing Options). There is no out-of-box capability to restrict customers to a particular store.
2) 3 similar product lines that appeal to different industries
Depends on things discussed below.
1) The home page should show static content about the company and featured products from all three main categories of products
Assuming that you are using the standard configuration of having the Mage_Cms module serve up the home page (System > Web > Default Pages), that CMS page should be visible for all store views. CMS blocks and pages are restricted based on store. Now, later on in your post you mention that you see different behavior in the home page "instead of seeing the unique design and category it should be showing", which indicates that you would like to have different but analogous content for each store's home page. You can use one homepage to do this, but rather than specify content in the content area, you'll need to include your content by specifying a block in Layout XML Update - this block will load a particular category based on the store.
2) Each main category of products should have a distinct visual design that carries through when looking at any of the products in those categories
Establishing theme variants from global scope is possible at the website- and store-wide scopes. Theme variants can also be specified per CMS page, product, and category [each entity having a tab in its admin panel for effecting this change], with the latter having the option of "waterfalling" its custom theme settings to "child" categories and products. Which approach you take depends on your catalog hierarchy as well as the variations present in your themes.
It should be noted that if you need to present different category structure, or if you need to enable/disable products differently based on context, then you will be dealing with multiple websites. This is because category structure relies on root categories, and only websites are associated with root categories. As a reminder, "websites" in Magento have no implicit connection to distinct URLs, it's just an unfortunate naming convention for a scope level.
3) It should be seamless for customers to move from one category of products to another and have the design change without having to choose a store from a dropdown etc.
Based on this final stated requirement, and assuming that you are relying on Magento's native navigation, you are locked into one category structure, and will be using the approach of waterfalling category design, which you will set for each top-level main category under your single root using the "Custom Design" tab:
Another approach would be to create three distinct websites with distinct root categories and then build a menu by hand which links to each of the three stores, but I think this is less ideal based on your stated needs. You could also use one root category and then hide categories by website. Again, less likely that this will be appropriate for you.
Based on the information above you might end up clarifying or adding to your question. I'll update my answer in response if necessary.
I have 1 magento installation with 2 websites. i want to set a subcategory from website 1 as rootcategory of website 2.
and i don't know the id of the category, because this is local and has to work on production with other categories. So i can't set the id of the wanted category in code.
it must be adjustable in the backend.
in system->manage stores-> select a store
here you can set the rootcategory but there are no subcategories available.
is the only solution to build a module to select the id of the category?
copy
app/code/core/Mage/Catalog/Model/Resource/Category/Collection.php
to
app/code/local/Mage/Catalog/Model/Resource/Category/Collection.php
update around line 414
$this->addLevelFilter(1);
to
$this->addLevelFilter(2);
What this will do is when you go into System -> Manage Stores and click on the Store Name.
It lets you set the Root Category. This dropdown will now not only display the root categories but also the level 2 categories. It's perfectly fine to use a subcategory as the root category in a certain store.
This is really beneficial if you're running a corporate site and then a bunch of branded sub-sites but you don't want to manage a million different duplicate categories.
I understand what it is you're trying to do but not why. Are you trying to display specific categories for each Store View? You don't have to worry about Root Category to solve this.
I'll assume you're using a newer version of Magento Community Edition 1.5+.
Leave the category for both Store Views set to the same Root Category
(default is Default Category)
Go to Catalog > Manage Categories.
For each website you will need to enable/disable each subcategory to
build a custom catalog from the Root Category.
Above the category listings you can switch which Store View you need to customize. Leave this set as "All Store Views" and customize which subcategories you want or don't want for Website 1.
To do this just click on the specific category > General Information tab and set the Is Active to Yes or No. Disabled categories will grey out.
Once completed switch to the Store View of the other website "Website 2" and select a category that will be different than the default.
Now, to the right of the various fields you will see a checkbox (checked by default) labeled Use Default Value.
Uncheck the Use Default Value checkbox beside the Is Active field and toggle it to yes/no.
Save Category.
Now when you view each store you will see that the catalog is different.
Does this solve your issue?
I have searched and searched and can’t seem to find much on this that helps me out , so I have given up and decided to post. What I am looking for is to have:
4 different web stores all with only one associated view.
The aim is that each of these different stores will be maintained by different people. The products in one store will not be viewable in another store, etc.
To top it all off I would like to have a 5th store that has the ability to show all of the products from all stores and which store they are from. eg if you browse the catalog in this store you will be shown the catalogues from all the 4 other stores combined.
I thought I had it, but I don’t seem to be able to. If someone can point me in the right direction here for how to set this up, I am open to purchasing an extension if it is required…
Any help appreciated.
Cheers,
4 different web stores all with only one associated view.
The aim is that each of these different stores will be maintained by different people. The products in one store will not be viewable in another store, etc.
You create one website then 4 stores (e.g. English, French, German, Italian) for each store you create only one store view, you define a top category (e.g. Top Category English, top Category French, etc) in each store (not store view).
See in backend System > Manage Stores.
You set your products inside of a subcategory of the top category wished. E.g. you want a product only in the French Store, you set this product in a subcategory of the Top Category French. You can set the category in the Product Edit Page, in the tab "Category" or in the Category Edit Page itself
To top it all off I would like to have a 5th store that has the ability to show all of the products from all stores and which store they are from. eg if you browse the catalog in this store you will be shown the catalogues from all the 4 other stores combined.
The only way I see now is that you have to create a 5th store with a new top category and you set all of your products into this Top category too. You will have your products for example in the Top Category English + in the Top Category 5th Store. You set the product in this 5th top category in the same way as my previous paragraph.
The drawbacks with this solution, you can only display a product in one language. It will be the default one. The products management will be difficult too if you have a big catalog.
Maybe a module exists for that but I don't think.
You have to know that the search is global and search per Website and not per store.