Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🥡 Marketplace::MenuGroup #2340

Closed
5 of 10 tasks
rosschapman opened this issue Apr 4, 2024 · 3 comments
Closed
5 of 10 tasks

🥡 Marketplace::MenuGroup #2340

rosschapman opened this issue Apr 4, 2024 · 3 comments
Assignees

Comments

@rosschapman
Copy link
Contributor

rosschapman commented Apr 4, 2024

Use Cases

Execution Plan

April has pointed out - rightly so - that Product "menus" on Convene look "haphazard" because we don't allow sorting or categorization. Fortunately, @zspencer's implementation of #2189 laid a strong foundation for improving organization of product pages.

✅ DECISION: As a first step, let's implement the capability for Marketplace administrators to group Products under sections (err...menus, aisles, taxonomy pending...).

During spirited text-based Discord task planning, there was first some temptation to consider a separate model for Product Section with a many association to tags. This way Marketplace admins could manage these sections via a typical CRUD-y workflow, similar to managing other entities like Tags, Tax Rates, or Products. However, @anaulin encouraged us to consider enhancing Tags themselves without introducing any new entity relationships. Because tags and taxonomies are user-generated the use cases across customers will inherently evolve to be nuanced, various, and non-linear. In other words, hard to predict from our vantage point. Ultimately we hoist a strong risk if we design a rigid relationship structure into the data model from the start.

✅ DECISION: After some deliberation, @anaulin proposed a (most reasonable) minimum set of requirements we need to deliver to support grouping of tags in sections on the page. Let's do these, show them to April, and start the feedback loop quickly.

Phase 1

  • A person can mark a tag as a "section"
  • We can retrieve a list of products that belong to a "section"
  • We can retrieve a list of all the "section" tags

Phase 2

  • A person can (re)order sections by drag and drop

Further development tasks/considerations:

  • Tag will be extended with a boolean field like is_section
    • Show a checkbox in the Add/Edit Tag UIs
  • Tags should be sortable (we use ranked-model)
  • Default section sort is by alpha
  • [ ]

🔮 Considerations for the future:

  • Adding the concept of a TagGroup or TagCollection would be necessary if we have a reason to display all the tags for a single group, or inversely all the groups of a single tag.
    • This could be a achieve with polymorphism (TagGroupable) although it won't be necessary if we only have a Tas and TagGroups
    • In this data model there's the possibility of needing to restrict certain tags (or all?) to be belong to one group

April's ask from email thread with Zinc & Co11ectiva

Back end function ask: Currently the menu order for Oakalandia looks haphazard.
I'd like to be able to drag and reorder based on categories like Beverage, Lunch, Breakfast

A few catering menu items for Oaklandia have options for add ons ( see attached example)
A few catering menu items are priced as a range. In cases we entered the higher amount but need to ask Oaklandia about that or > include verbiage to clarify

@rosschapman rosschapman self-assigned this Apr 4, 2024
@zspencer
Copy link
Member

zspencer commented Apr 4, 2024

I expect she will want to be able to order these (i.e. breakfast, lunch, then dinner) as well; but grouping is a good first step!

@rosschapman
Copy link
Contributor Author

@zspencer Right. I'll add that as a part of a "Phase 2" in the description.

@zspencer zspencer changed the title 🥡 Marketplace: Product#Tag grouping and "menu"-style display 🥡 Marketplace::MenuGroup May 2, 2024
@rosschapman
Copy link
Contributor Author

🤝 I'm closing this ticket to tie a bow on the implementation of a menus prototype. April has not expressed further interest in this feature recently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants