Motivation

Currently commerce uses the standard Drupal menu system to present the various areas of the system. Because of the complexity of the various settings and forms, a proposal for adding some icon support and proper weighting/categorization would be a nice UI improvement.

Commerce Screen

Attached are a few examples of what other ecommerce platforms are currently doing in their UI's.

Proposed resolutions

Build a page template that will split up the UI into categories and navigation items/tabs with icon support.

User interface changes

Add a nicer looking UI to the main commerce page. Add category support for menu items.

API changes

Not defined yet.

Data model changes

Not defined yet.

Comments

AaronChristian created an issue. See original summary.

aaronchristian’s picture

StatusFileSize
new152.04 KB
new151.55 KB

A few ideas I've had floating around for a little while now.

Tile based menus (in d8's core seven theme).

Dasboard:

Commerce Dashboard

Dasboard w/ Modal:

 Modal

sumanthkumarc’s picture

Awesome, looks like we can get inspiration from status reports page :)

sumanthkumarc’s picture

Also, we could embed help links and other resources in the above to docs.commerce.org or other docs, as webform module does. This would help users go straight to the help rather than first raising a support request.

aaronchristian’s picture

Based on our slack channel discussion it looks as though we may be looking into building some sort of graphical representation of various elements of drupal commerce. I'll be posting an updated mockup sometime this evening to get the ball rolling on building a true dashboard experience.

aaronchristian’s picture

StatusFileSize
new1.29 MB
new1.06 MB

Made a few revisions to the last design.

I simplified the look of the tiles and added in a few more UX focused elements.

  • Installation progress section: This would essentially guide the user to the next step in the process of getting the store setup. Would likely tie in nicely with the new commerce wizard integration.
  • Grouping & Combining: Worked through the various commerce pages and tried to group and combine like items.
  • Iteration & Direction: An order outline and icon can be overlaid on items that required attention. Likewise, a red one could indicate a misconfiguration or problem with a particular area in the commerce setup. The idea behind this is to warn/notify administrators of issues through visual cues without pogo-sticking around the various screens.
  • Hide Action: Added the ability to hide warnings, this could be a simple variable set, so that these items don't interfere in the instance where the warning isn't applicable. (ie. The store doesn't collect tax).
  • Customize Dashboard: This would act like a blocks page where you could reorder elements or add/hide certain tiles which would add and element of personalization to the commerce dashboard.
  • Quick Add: Ability to quickly add a value associated with the group through a modal.

Contributed modules could create their own groups or hook into the "Plugins & Extensions" section.

Feedback welcome!

Commerce Dashboard 1.1

Quick Add Modal:

Commerce Dashboard 1.1 Modal

sumanthkumarc’s picture

@AaronChristian awesome job.

luksak’s picture

@AaronChristian wow, this is looking great!

An optiomal widget that shows unfulfilled orders wold be nice as well!

Mabey some aggregated data would be useful as well. Some commerce_reports widgets? But I guess that is a differnt issue.

bbuchert’s picture

Love it! Maybe the icons could be reused in the quick add modal.

aaronchristian’s picture

Awesome thank you guys for the feedback!

@sumanthkumarc, as always, thank you!

@Lukas von Blarer great idea. I've actually mocked that up as well, I added the designs here: https://www.drupal.org/node/2891258.

@bdichgans, good idea. My only concern would be around groups with a bunch of sub-screens where you can add many options like in the stores configuration group.

However, I will mock that up and see how the presentation looks. The idea of keeping it cohesive is definitely ideal, but not sure about the complexities of adding that to the modals. Perhaps some backend dev's could weigh in on that.

goz’s picture

Good job, i really love it !

Only one suggestion is to keep configuration and content separated to not be confusing. Commerce has a lot of entities and concepts, so we should expose only commerce contents items first and then configuration items in another page, like commerce 2.x does.

bojanz’s picture

You also need to account for unknown modules adding their own items (such as shipping), you won't have any applicable icons there, so you'd need to assign a generic one. Even if there were icons for the most popular contribs, such a case is always possible, and needs to be designed for.

aaronchristian’s picture

Thanks for your feedback @GoZ, will take this into account and figure out the best presentation for this sort of functionality.

@bojanz, I have a few ideas around grouping and iconsets. I can't remember where i saw this, but if an icon wasn't provided they used a letter (ie. could be the modules name "S" for Shipping or something. Then had it inside of a circle to mimic an icon-style. I think we could do that here as well. This would at least give it a cohesive look as default icons sometimes never get updated.

During sprint week we have Anders or Jay ready to work on iconsets so we'll try to get them a large list to cover for potential contrib modules.

Hopefully with a new core option we could expose icons right when you build out your menu items. Probably some technical complexities around this but could be done for sure.

gauravjeet’s picture

StatusFileSize
new8.52 KB

Patch creates a template that splits up the Commerce dashboard into multiple groups. Styling needed - I have added classes as required.

gauravjeet’s picture

TODO:
- add modal popup
- add group weight
- Add '+Quick Add', as needed

gauravjeet’s picture

StatusFileSize
new9.27 KB

Patch in #15 somehow missed the twig file. Here it is.

hubbs’s picture

Patch #16 is good. I'll get started with some styles.

aaronchristian’s picture

Nice work guys!

hubbs’s picture

Issue summary: View changes
StatusFileSize
new0 bytes
new185.62 KB

Alright, I made some progress on the styling of this, building on @gauravjeet 's patch.

Some things to note:
* updates gauravjeet's template file to follow BEM methodology.
* adds css/commerce.dashboard.css for styles.
* adds js/dashboard.js for generating the default icon based on the title first letter.
* adds icons/dashboard directory with some initial icons.

Still lots left to do, but it's a good start. Here's a screenshot.

hubbs’s picture

StatusFileSize
new29.45 KB

Whoops. Wrong patch file. This is the correct one. :S

rszrama’s picture

I've reviewed this thread, and while it appears there was a fair amount of real-time discussion about the approach, I'd like to offer some pushback here and some suggestions.

First, let me reiterate what GoZ said above. We shouldn't be mixing content and configuration into tiles like the proposed screenshots. We've always very carefully ensured that Orders, Products, Promotions, etc. - the actual content of the store - were easily accessible at the primary menu level while configuration tasks that are rarely referenced are placed beneath that menu.

Second, I kinda feel like the whole thing should really be the interface for the Configuration page itself. It makes sense to have a wizard there with more expansive tool tips and the like on a page like that. A tile based UI like Drupal uses elsewhere would be perfect for grouping configuration menu items, too ... like putting the "structure" menu items in a single group (Order types, Product types, etc.). I probably wouldn't try to use icons.

Last, the main Commerce dashboard should itself be sales oriented with quick links to Orders, Products, Promotions, etc. This is the same in most eCommerce platforms. I often reference it against Shopify, and it's in that spirit that we began developing our reports dashboard. Given that, I think we should retitle this issue to "Improve the Commerce configuration UX" and focus on that while leaving admin/commerce alone for now.

bojanz’s picture

Title: Improve the Main Commerce Dashboard » Improve the Commerce configuration UX
Category: Feature request » Plan

Added the first two issues:
#2897929: Move Stores to admin/commerce/config
#2897928: Rename the Tax Types menu entry to Taxes
Moving stores to confugration further reduces the main screen, which now has only Orders / Promotions / Products / Product Attributes / Configuration.

bojanz’s picture

I had a call with Ryan about this, where we iterated on the idea to have the configuration menu have the same tiles that the Drupal configuration menu has.

Here's a proposed structure.

Left column:

Stores
* Stores
* Taxes
* Currencies
* Store types

Payments
* Payment gateways

Shipping
* Shipping methods
* Shipment types
* Package types

Right column:

Products:
* Product types
* Product variation types

Orders:
* Order types
* Order item types
* Checkout flows

Note that the ordering of items is not alphabetic and aims to put more frequently used items first under each group.

bojanz’s picture

Status: Active » Needs review
StatusFileSize
new9.76 KB
new65.31 KB

Current version. Still missing the Stores link under "Store".

1) I really dislike the redundancy of the item descriptions, but I can't think of anything smarter for now.
Suggestions welcome. Removing them is an option, but would feel a bit alien compared to admin/config.

2) I renamed the "Stores" group to "Store", feels like it makes more sense, since it's more of a global site-wide thing. It breaks the convention a bit (since other groups are plural), but I'm not sure it matters much. It would also be weird to have "Stores" under "Stores", and we'd have a URL collision.

3) The configuration link on admin/commerce now has the description "Configure Commerce and related modules." which still sucks. Help?

rszrama’s picture

1. So, re: the item descriptions, I don't see harm in having them, but I agree that if they just restate the name of the menu item, they aren't really useful. I also wonder if we can get away with hiding descriptions by default. To rewrite them, we can describe the default or common actions you would perform in each menu:

  • Currencies: Enable the currencies your store requires.
  • Store types: Add or edit fields on your store edit forms.
  • Tax types: Define the taxes you collect.
  • Payment gateways: Configure one or more gateways you take payment through.
  • Product types: Add or edit fields on your product pages.
  • Product variation types: Add or edit fields that differentiate product variations on your product pages.
  • Order types: Add or edit fields on your order edit forms.
  • Order item types: Add or edit fields on your order item edit forms and their related Add to Cart forms.
  • Checkout flows: Define the checkout flows for each of your order types.

2. Since the group names don't actually appear in the menu hierarchy, I don't mind them being a bit redundant and including "Configuration" or something similar. They could all be "Store configuration", "Product configuration", etc. Even without a suffix, "Payment" works better than "Payments", so then "Store" will look less out of place.

3. How about something that gets at the combination of settings / structure? "Configure your store settings and structure."

  • bojanz committed 298da3c on 8.x-2.x
    Issue #2885483 by Hubbs, gauravjeet, bojanz, AaronChristian, rszrama:...
bojanz’s picture

Status: Needs review » Fixed
StatusFileSize
new146.85 KB

Iterated on Ryan's descriptions, and committed.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.