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

EPIC: Marketplace - Improve the checkout experience #1672

Closed
6 of 7 tasks
Tracked by #1326
KellyAH opened this issue Jul 14, 2023 · 5 comments
Closed
6 of 7 tasks
Tracked by #1326

EPIC: Marketplace - Improve the checkout experience #1672

KellyAH opened this issue Jul 14, 2023 · 5 comments
Assignees
Labels
🐞 bug Something isn't working 📝 documentation Make words more better good ⛰️ epic Work we expect will take multiple patches to complete ✨ feature Reduces Client's Burden or Grants them Benefits

Comments

@KellyAH
Copy link
Contributor

KellyAH commented Jul 14, 2023

This is an attempt to focus our efforts on improving/fixing the currently most valuable area of the app, the Marketplace which is used by Piikup and other clients.

Tasks

🐛 Fix bugs

Anyone can pick up fixing a bug 😄

Feature

Marketplace buyers can see when their order will arrive
See - Project doc

@KellyAH KellyAH added 🐞 bug Something isn't working ✨ feature Reduces Client's Burden or Grants them Benefits ⛰️ epic Work we expect will take multiple patches to complete 📝 documentation Make words more better good labels Jul 14, 2023
@KellyAH KellyAH added this to the 1.0 - Andromeda milestone Jul 14, 2023
@anaulin
Copy link
Member

anaulin commented Jul 22, 2023

Catching up with this project plan today (it's been that kind of week...). Thanks for putting this together, @KellyAH, I found it very helpful to see it all written up and also the screenshots with examples of how other apps do it. 😻

I wanted to offer some thoughts on the MVP, in case these are helpful for the implementation:

Always Display marketplace delivery window value on the marketplace page. Either at the top or bottom where total price is displayed.

In our current architecture, the delivery window depends on the delivery area chosen by the shopper. So we don't know the delivery window until the shopper chooses a delivery area -- that's why at the moment we don't show it until the "delivery details" are entered by the shopper.

The way I see other delivery sites dealing with this is that either they just have one delivery area for the entire marketplace, or they ask you upfront before you start shopping to enter a zip code or address or otherwise choose a delivery area. We could do something similar in Convene:

  • if Marketplace has only one delivery area
    • all orders will default to this delivery are, we don't need shoppers to pick one
    • we can show the delivery windows and delivery information on the Marketplace without any need for shopper input
  • if Marketplace has more than one delivery area
    • we will need the shopper to pick a delivery area before we can show them the delivery windows
    • we can't show the delivery window information upfront, but instead we could show some text that says "please select a delivery area to see delivery window information" in that same spot, with a link to select the delivery area

These are just some rough thoughts based on my mental model of the marketplace, I'm sure other (better?) approaches are possible.

@KellyAH
Copy link
Contributor Author

KellyAH commented Jul 22, 2023

Glad to see the project plan is helpful.

I am very happy and willing to write up more project plans for convene whenever it is needed/wanted to help add clarity and scope, etc. As a technical writer, I enjoy writing them and I also gain a lot of clarity and big-picture scope from them.

And right now I find writing up project plans more enjoyable than app coding.

I would just need others to review the project plans for accuracy.

@zspencer
Copy link
Member

I've really appreciated having the set of bugs that are most important laid out; as well as knowing that y'all are taking responsibility for polishing up the Delivery UX!

zspencer added a commit that referenced this issue Aug 14, 2023
- #1672

So, in reviewing a bunch of the delivery app workflows, most of them have:

- Choose Pickup or Delivery
- Enter Address
- Browse Menu
- Tap Item
- Add Item to Order

This lends me to believe we want to switch to gathering the
`DeliveryArea` *then* `DeliveryAddress` *then* showing the
`Products` that are available.

This uses TurboFrames to replace pieces of the page, rather than relying
on TurboStreams. On the one hand, it's lot easier (just respond with
html with matching `turbo_frame_tag`s`).

Blerg; anyway, I'm checking this in now; but not sure if I like it
enough.

Thoughts? In particular:

- Copy-editing
- Design tweaks?
- Name Collisions: How Undo?
zspencer added a commit that referenced this issue Aug 14, 2023
- #1672

So, in reviewing a bunch of the delivery app workflows, most of them have:

- Choose Pickup or Delivery
- Enter Address
- Browse Menu
- Tap Item
- Add Item to Order

This lends me to believe we want to switch to gathering the
`DeliveryArea` *then* `DeliveryAddress` *then* showing the
`Products` that are available.

This uses TurboFrames to replace pieces of the page, rather than relying
on TurboStreams. On the one hand, it's lot easier (just respond with
html with matching `turbo_frame_tag`s`).

Blerg; anyway, I'm checking this in now; but not sure if I like it
enough.

Thoughts? In particular:

- Copy-editing
- Design tweaks?
- Name Collisions: How Undo?
zspencer added a commit that referenced this issue Aug 15, 2023
- #1672

So, in reviewing a bunch of the delivery app workflows, most of them have:

- Choose Pickup or Delivery
- Enter Address
- Browse Menu
- Tap Item
- Add Item to Order

This lends me to believe we want to switch to gathering the
`DeliveryArea` *then* `DeliveryAddress` *then* showing the
`Products` that are available.

This uses TurboFrames to replace pieces of the page, rather than relying
on TurboStreams. On the one hand, it's lot easier (just respond with
html with matching `turbo_frame_tag`s`).

Blerg; anyway, I'm checking this in now; but not sure if I like it
enough.

Thoughts? In particular:

- Copy-editing
- Design tweaks?
- Name Collisions: How Undo?
zspencer added a commit that referenced this issue Aug 17, 2023
- #1672

So, in reviewing a bunch of the delivery app workflows, most of them have:

- Choose Pickup or Delivery
- Enter Address
- Browse Menu
- Tap Item
- Add Item to Order

This lends me to believe we want to switch to gathering the
`DeliveryArea` *then* `DeliveryAddress` *then* showing the
`Products` that are available.

This uses TurboFrames to replace pieces of the page, rather than relying
on TurboStreams. On the one hand, it's lot easier (just respond with
html with matching `turbo_frame_tag`s`).

Blerg; anyway, I'm checking this in now; but not sure if I like it
enough.

Thoughts? In particular:

- Copy-editing
- Design tweaks?
- Name Collisions: How Undo?

* Establish more appropriate DOM Hierarchy

Card => TurboFrame => Content appears to be a little bit more reasonable
for how we nest dom things.

The Card is a layout and presentation element, so it sits as close to
the top of the dom as possible.

The Turbo Frame allows the pieces to be swapped; so it resides within
the layout.

The Content itself (be it a `DisplayArea::Form` or `DisplayArea`) is the
most inwardly nested, so that it can be replaced with frames, or laid
out differently depending on where it is being presented.
zspencer added a commit that referenced this issue Aug 17, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Aug 17, 2023
* `Marketplace`: `Shopper` chooses `DeliveryArea` independently

- #1672

So, in reviewing a bunch of the delivery app workflows, most of them have:

- Choose Pickup or Delivery
- Enter Address
- Browse Menu
- Tap Item
- Add Item to Order

This lends me to believe we want to switch to gathering the
`DeliveryArea` *then* `DeliveryAddress` *then* showing the
`Products` that are available.

This uses TurboFrames to replace pieces of the page, rather than relying
on TurboStreams. On the one hand, it's lot easier (just respond with
html with matching `turbo_frame_tag`s`).

Blerg; anyway, I'm checking this in now; but not sure if I like it
enough.

Thoughts? In particular:

- Copy-editing
- Design tweaks?
- Name Collisions: How Undo?

* Establish more appropriate DOM Hierarchy

Card => TurboFrame => Content appears to be a little bit more reasonable
for how we nest dom things.

The Card is a layout and presentation element, so it sits as close to
the top of the dom as possible.

The Turbo Frame allows the pieces to be swapped; so it resides within
the layout.

The Content itself (be it a `DisplayArea::Form` or `DisplayArea`) is the
most inwardly nested, so that it can be replaced with frames, or laid
out differently depending on where it is being presented.

* Add tests!
zspencer added a commit that referenced this issue Aug 24, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Aug 31, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Aug 31, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Aug 31, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Aug 31, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Sep 7, 2023
- #1672
- #1325
- #1763

This starts to split out the Checkout flow to it's own page; so we can
do things like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Sep 7, 2023
- #1672
- #1325
- #1763

This splits out the Checkout flow to it's own page; so we can do things
like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Sep 14, 2023
- #1672
- #1325
- #1763

This splits out the Checkout flow to it's own page; so we can do things
like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???
zspencer added a commit that referenced this issue Sep 15, 2023
- #1672
- #1325
- #1763

This splits out the Checkout flow to it's own page; so we can do things
like:

- Collect the Delivery Address and Phone Number
- Let the Shopper pick a Delivery Time
- Confirm prices
- ???

* Communicate why we need Shoppers to choose a Delivery Area

* Make pretty! MAKE PRETTY!

* So much pretty

* Remove unnecessary click
@zspencer
Copy link
Member

@KellyAH, if you get a chance can you run through the checkout experience and let me know if you think it meets the intent of the epic?

@KellyAH
Copy link
Contributor Author

KellyAH commented Sep 21, 2023

✅ confirmed the checkout experience is better! Customers now can more easily tell when orders will arrive based on the delivery location and order time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐞 bug Something isn't working 📝 documentation Make words more better good ⛰️ epic Work we expect will take multiple patches to complete ✨ feature Reduces Client's Burden or Grants them Benefits
Projects
None yet
Development

No branches or pull requests

5 participants