As a merchant I need to be able to correctly manage all my stores
Thus, this project aims at specifying the current and expected behaviour when the multistore is enabled and when there are several stores. It’s the general behavior. Some pages can have specific behaviors, you can find these specific cases here
From 1.7.8, while creating a shop or a group, the user can select a color as described in the specs to setup the multistore feature
This color will be displayed in the multistore header for the selected shop or shop group.
It will be also displayed before the name of each shop / group in the context drop-down.
User acceptance test
Given I am a merchant, when I am creating a new shop then I want to be able to choose a color for my shop.
Given I am a merchant, when I am creating a new shop group then I want to be able to choose a color for my shop group.
DESIGN:https://invis.io/QPWKQY5DV79#/410364467_All_Shops_0
On each page, when the multistore feature is enabled and if many shops are created, a multistore header is displayed.
The multistore header contains many things listed below:
Color (only from 1.7.8) DESIGN: https://invis.io/QPWKQY5DV79#/412654655_Contexte_Candy
This header takes the color of the selected context:
If the shop or the group selected doesn’t have yet a color configured, the default color is light grey #EBEBEB.
In this case, an information message is displayed on the page to prompt the user to define a color with a link opening the store’s or group’s page edition: “Customize your multistore header, follow the link to pick a color for this shop context” in Admin.Navigation.Header
The user can close the information message. The message is closed only for the selected context and it will not be redisplayed if the user refreshes or returns to this page later.
User acceptance test
Given I am a merchant in a multistore context, when I am in a specific shop context in the back-office and if I have define a color for it, then I want to see the color of the shop selected in the header
Given I am a merchant in a multistore context, when I am in a shop group context in the back-office and if I have define a color for it, then I want to see the color of the shop group selected in the header
Given I am a merchant in a multistore context, when I am in “all shops” context in the back-office then I want to see the header in blue #25B9D7
Given I am a merchant in a multistore context, when I am in a specific shop context or in a shop group context in the back-office and if I haven’t define any color for it, then I want to see the header in light grey #EBEBEB
Name of the selected context
The name of the selected context is displayed, it can be:
User acceptance test
Given I am a merchant in a multistore context, when I am in the back-office, then I want to see the name of the context selected in the header
View my shop link
When a shop with a configured URL is selected, a link “view my shop” is displayed and opens the front-office of the shop.
User acceptance test
Given I am a merchant in a multistore context, when I am in a specific shop context in the back-office and if the URL of the shop has been configured, then I want to be able to see the shop URL and click on it to see the front-office.
Context drop-down DESIGN:https://invis.io/QPWKQY5DV79#/410364468_All_Shops_Dropdown
In the multistore header, there is a context drop-down allowing to select the context.
In the drop-down there is a search bar with auto-completion allowing to search and select a shop or a group quickly.
There is a placeholder: “Search shop name”
As soon as a user types a character in the field, a search is immediately performed and returned.
The results should not show shop(s) for which the URL has not been configured.
The results are displayed in a frame below the search field.
The displayed results can then be browsed, either by the arrow keys on the keyboard, or by the mouse cursor.
If the user chooses one of the listed results, it is automatically written in the search field and selected as context.
The options listed in this drop-down are:
The colors of each shop and group are displayed before each option.
When the user hovers the color, a tooltip is displayed “edit color”
The user can click on the color to change it
It opens the store’s or group’s page edition.
The selected context has a check icon in front of the name. On hover, the check is replaced by the color with the tooltip.
If the shop URL is configured, a “view my shop” link is displayed after each shop name.
It opens the front-office of the corresponding shop.
If the shop URL isn’t configured, a “configure shop URL” link is displayed after each shop name.
It opens the store’s URL page edition.
As a merchant I should not be able to configure my store if the URL of the shop is not yet defined. So, please note that a shop without an URL configured can’t be selected as context.
User acceptance test
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office and if the URL of the shop has been configured, then I want to be able to search for a context.
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office and if the URL of the shop has not been configured, then I want to not be able to search for this context.
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office and if the URL of the shop has been configured, then I want to be able to select the context
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office and if the URL of the shop has not been configured, then I want to not be able to select this shop context.
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office, then I want to be able to edit the shop color and shop group color.
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office, then I want to be able to see which context is selected.
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office and if the URL of the shop has been configured, then I want to be able to see the shop URL and click on it to see the front-office.
Given I am a merchant in a multistore context, when I am in the multistore header context drop-down in the back-office and if the URL of the shop has not been configured, then I want to be able to configure the URL.
Behavior when switching context DESIGN:https://invis.io/QPWKQY5DV79#/420155466_Poppin_Context_Switch
If the user tries to change context without having saved, a modal appears with the following content: Title: “Switch context?” Body: “Switching context now will discard all unsaved changes.” 2 buttons “Switch context anyway” and “Cancel” If the user clicks on “Switch context anyway”, then modifications are not saved and the context is changed for the one selected. If the user clicks on “Cancel”, then the context is not changed.
User acceptance test
Given I am a merchant in a multistore context, when I am in the back-office and when I try to change context, if I have not saved my modifications then a modal is displayed with 2 choices: Save & Cancel.
Given the modal displayed, when I click on Save, then my modifications are saved and the context is changed for the one selected.
Given the modal displayed, when I click on Cancel, then my modifications are not saved and the context is changed for the one selected.
The shop association block is displayed when you add or edit something.
The shop association block displays all groups and all shops.
Checkboxes allow to select / unselect groups and shops.
It’s possible to expand / collapse the wall tree and expand / collapse each group
If you select / unselect a group, all shops of this group are selected / unselected
The shop association block allows to choose for which store(s) you want to associate or disassocate the current element.
When you add something, the shop(s) selected in the context are automatically checked in the shop association block.
But it’s possible to select / uncelect shops, no matter the context selected.
When you edit something, you can unselect shop(s) previously selected and therefore disassocate it from these shops.
And you can also, select shop(s) not previously selected and therefore associate it with these shops.
If the merchant unselect all the checkboxes (all the shops), then an error message in red is displayed below the shop association block to inform of the obligation to have at least one shop checked: “You have to select at least one shop to associate this item with” + the save button is disabled. only from 1.7.8
Add / edit pages with shop association block
When an element (category, attribute, feature …) is edited, the modifications made are applied to all the stores with which the element is associated. This way, the content of the element is always the same for all the shops with which it is associated: we don’t let to the user the possibility of having different content for an element associated with several shops.
User acceptance test Given I am a merchant in a multistore context, when I am editing an element then I want the changes I made to be applied to all stores with which the element is associated.
Example
Let’s suppose I have 2 shops: “Shop1” and “Shop2”.
I create a category called “Shirts” with the description “my awesome shirts” and I associate it with all stores through the shop association block.
In the listing in all shops context I have:
“Shirts” | “my awesome shirts” which is associated with “Shop1” and “Shop2”
Finally I change my mind and in “Shop2”, I want another description for this category: “my very awesome shirts”
I have to edit the “Shirts” category and uncheck the “shop2” box, then I have to create a new “Shirts” category associated only with “Shop2” with my description “my very awesome shirts”.
Now, in the listing in all shops context I have:
“Shirts” | “my awesome shirts” which is associated with “Shop1”
“Shirts” | “my very awesome shirts” which is associated with “Shop2”
If an element (category, attribute, feature …) is associated with several shops, then if I delete it from the listing, it will be disassociated for the selected context(s) and deleted if it is no longer associated with any store.
User acceptance test Given I am a merchant in a multistore context, when I am deleting an element associated with several shops from the lisitng then I want it to be disassociated from the stores selected in the context.
Given I am a merchant in a multistore context, when I am deleting an element associated with several shops from the lisitng then I want it to be deleted if it is no longer associated with any store.
If an element (category, attribute, feature …) is associated with several shops, then if I enable or disable it from the listing, the action will be done for the store(s) with which the item is associated and not only for the selected context. When the user hovers the enable/disable icon, a tooltip is displayed “It will apply to all stores associated with this item” (from 1.7.8)
User acceptance test Given I am a merchant in a multistore context, when I am enabling / disabling an element associated with several shops, then I want it to be enabled / disabled for all the stores it is associated with.
If the listing has a position column, then it should be displayed only in a specific shop context. Changing the position of an element is possible only in a specific shop context.
User acceptance test Given I am a merchant in a multistore context, when I am in a specific shop context and if the listing has a position column, then I want to be able to change the position of the element
DESIGN: https://invis.io/QPWKQY5DV79#/410364470_Contexte_1_Yes
Checkboxes are displayed in a specific shop context and in a group context
They are not displayed in all shops context
They are displayed before each fields / toggles / parameters unless if an exception is defined in the specs of the page
When checkboxes are not selected, the fields or toggles are disabled.
If a box was checked in a specific shop or group context, if I uncheck it and save, then the parameter takes the value defined for the group if configured or the value defined in all shops context.
Checkboxes allow:
An information message is displayed on all pages where there are checkboxes, to indicate what they are used for.
The user can close the information message. The message is closed only for the selected context and it will not be redisplayed if the user refresh or return on this page later.
“If you want to apply specific settings to a store or a group of shops, you need to select the parameter to modify, bring your modifications and then save.”
Configurations pages with checkboxes
User acceptance test
Given I am a merchant in a multistore context, when I am configuring my shop(s) in a specific shop context or in a group context then I want to be able to select one or many fields / toggles to apply a different configuration for the selected store or group
Given I am a merchant in a multistore context, when I am configuring my shop(s) in a specific shop context or in a group context then I want to be able to see which fields / toggles have a different configuration for the selected store or group
DESIGN: https://invis.io/QPWKQY5DV79#/410367397_All_Shops_Specific_Set-_Dropdown
This drop-down is displayed in all shops context and only for parameters that have been customized in one or many specific shops or groups of shop. This drop-down is displayed in a group context and only for parameters that have been customized in one or many specific shops of the group.
Search bar (only from 1.7.8)
In the specific settings drop-down there is a search bar with auto-completion allowing to search and select a shop or a group quickly.
There is a placeholder: “Search shop name”
As soon as a user types a character in the field, a search is immediately performed and returned.
The results are displayed in a frame below the search field.
The displayed results can then be browsed, either by the arrow keys on the keyboard, or by the mouse cursor.
If the user chooses one of the listed results, it is automatically written in the search field and selected as context.
In all shops context, in the specific settings drop-down there are:
Next to each shop name, there is a mention:
In a group context, in the specific settings drop-down there are:
Next to each shop name, there is a mention:
Example:
Consider the following group and shops:
Group1 maintenance field value is “The shop is in maintenance”
Shop A maintenance field value has been changed and is “Shop A is in maintenance”
Shop B maintenance field value is “The shop is in maintenance”
All shop context:
Shop A => Customized
Shop B => Inherited
Group1 context:
Shop A => Customized
Shop B => Inherited
Configurations pages with specific settings drop-down
User acceptance test
Given I am a merchant in a multistore context, when I am configuring my shops in “all shops” context, then I want to know the parameters that have been customized in one or many specific shops
Given I am a merchant in a multistore context configuring my shops in “all shops” context, when I am looking if a parameter has been customized in one or many specific shops, then I want to be able to search for a context
Given I am a merchant in a multistore context configuring my shops in “all shops” context, when I am looking if a parameter has been customized in one or many specific shops, then I want to be able to switch context