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: Buying ๐Ÿฅก Products #1326

Open
16 of 22 tasks
Tracked by #831 ...
zspencer opened this issue Apr 8, 2023 · 0 comments
Open
16 of 22 tasks
Tracked by #831 ...

๐Ÿฅ”โœจ Marketplace: Buying ๐Ÿฅก Products #1326

zspencer opened this issue Apr 8, 2023 · 0 comments
Labels
โœจ feature Reduces Client's Burden or Grants them Benefits ๐Ÿฅ” Satisfices It's good enough to use, but not particularly great

Comments

@zspencer
Copy link
Member

zspencer commented Apr 8, 2023

Use Cases

Domain Model

Bugs

@zspencer zspencer changed the title s s from ๐Ÿฅ” Marketplace: Buying Products Apr 8, 2023
@zspencer zspencer added โœจ feature Reduces Client's Burden or Grants them Benefits ๐Ÿฅ” Satisfices It's good enough to use, but not particularly great labels Apr 8, 2023
@zspencer zspencer changed the title ๐Ÿฅ” Marketplace: Buying Products โœจ๐Ÿฅ” Marketplace: Buying Products Apr 8, 2023
@zspencer zspencer changed the title โœจ๐Ÿฅ” Marketplace: Buying Products ๐Ÿฅ”โœจ Marketplace: Buying Products Apr 8, 2023
zspencer added a commit that referenced this issue Apr 9, 2023
โ€ฆent`

- #1325
- #1324
- #1326

I didn't use the `marketplace_order, :full` factory outside of the
`Order::PlacedMailerPreview` and `Order::ReceivedMailerPreview`; and
apparently had flubbed the implementation; so that was not working...

So I fixed it and used it in the `Order::EmailReceiptComponent` spec to
test the `Order#delivery_area`

I also noticed we didn't wire in associations between the
`Marketplace::DeliveryArea` into the `Marketplace::Cart` and
`Marketplace::Order` so I added some specs for those.
zspencer added a commit that referenced this issue Apr 9, 2023
โ€ฆent`

- #1325
- #1324
- #1326

I didn't use the `marketplace_order, :full` factory outside of the
`Order::PlacedMailerPreview` and `Order::ReceivedMailerPreview`; and
apparently had flubbed the implementation; so that was not working...

So I fixed it and used it in the `Order::EmailReceiptComponent` spec to
test the `Order#delivery_area`

I also noticed we didn't wire in associations between the
`Marketplace::DeliveryArea` into the `Marketplace::Cart` and
`Marketplace::Order` so I added some specs for those.
zspencer added a commit that referenced this issue Apr 9, 2023
โ€ฆent` (#1332)

- #1325
- #1324
- #1326

I didn't use the `marketplace_order, :full` factory outside of the
`Order::PlacedMailerPreview` and `Order::ReceivedMailerPreview`; and
apparently had flubbed the implementation; so that was not working...

So I fixed it and used it in the `Order::EmailReceiptComponent` spec to
test the `Order#delivery_area`

I also noticed we didn't wire in associations between the
`Marketplace::DeliveryArea` into the `Marketplace::Cart` and
`Marketplace::Order` so I added some specs for those.
zspencer added a commit that referenced this issue Apr 9, 2023
- #1326
- #1187

- ๐Ÿ› ๏ธ `Components`: Makes sure Tailwind notices `Furniture`'s `Component` files

- ๐Ÿงน `Components` I'm not sure if this is the right path or not but it decouples our
  `ButtonComponent` from the `button.scss` file, and makes it a bit
  easier to override the defaults for how we present buttons.

- ๐ŸŒธ Gets rid of the extra
  `Marketplace::Cart::Delivery::EditButtonComponent` that hangs out
  underneath the cart

- ๐ŸŒธ Tailors the `Marketplace::Cart::Delivery::EditButtonComponent`
  better for smaller screens.
zspencer added a commit that referenced this issue Apr 9, 2023
- #1326
- #1187

- ๐Ÿ› ๏ธ `Components`: Makes sure Tailwind notices `Furniture`'s `Component` files

- ๐Ÿงน `Components` I'm not sure if this is the right path or not but it decouples our
  `ButtonComponent` from the `button.scss` file, and makes it a bit
  easier to override the defaults for how we present buttons.

- ๐ŸŒธ Gets rid of the extra
  `Marketplace::Cart::Delivery::EditButtonComponent` that hangs out
  underneath the cart

- ๐ŸŒธ Tailors the `Marketplace::Cart::Delivery::EditButtonComponent`
  better for smaller screens.
zspencer added a commit that referenced this issue Apr 10, 2023
- #1326
- #1187

- ๐Ÿ› ๏ธ `Components`: Makes sure Tailwind notices `Furniture`'s `Component` files

- ๐Ÿงน `Components` I'm not sure if this is the right path or not but it decouples our
  `ButtonComponent` from the `button.scss` file, and makes it a bit
  easier to override the defaults for how we present buttons.

- ๐ŸŒธ Gets rid of the extra
  `Marketplace::Cart::Delivery::EditButtonComponent` that hangs out
  underneath the cart

- ๐ŸŒธ Tailors the `Marketplace::Cart::Delivery::EditButtonComponent`
  better for smaller screens.
zspencer added a commit that referenced this issue Apr 10, 2023
* ๐ŸŒธ๐Ÿ› ๏ธ๐Ÿงน `Marketplace`: Tidy up `Marketplace#show`

- #1326
- #1187

- ๐Ÿ› ๏ธ `Components`: Makes sure Tailwind notices `Furniture`'s `Component` files

- ๐Ÿงน `Components` I'm not sure if this is the right path or not but it decouples our
  `ButtonComponent` from the `button.scss` file, and makes it a bit
  easier to override the defaults for how we present buttons.

- ๐ŸŒธ Gets rid of the extra
  `Marketplace::Cart::Delivery::EditButtonComponent` that hangs out
  underneath the cart

- ๐ŸŒธ Tailors the `Marketplace::Cart::Delivery::EditButtonComponent`
  better for smaller screens.

* ๐Ÿงน`Components`: Consolidate `margin` and `padding` as `spacing`

Again, not sure this is a great idea but I wanted some way to partially
overload the default classes a component uses.
zspencer added a commit that referenced this issue May 4, 2023
- #1326
- #1324

This is wildly insufficient, but it gets us to the point where we're
able to test that the way we're calling `Stripe::Checkout::Session.create`
is at least *close* to what it's supposed to be called with.

It would be far better to get a `spec/furniture/marketplace/system` that
actually hits Stripe...
zspencer added a commit that referenced this issue May 4, 2023
`Marketplace`: Get a test on the `Checkout`

- #1326
- #1324

This is wildly insufficient, but it gets us to the point where we're
able to test that the way we're calling `Stripe::Checkout::Session.create`
is at least *close* to what it's supposed to be called with.

It would be far better to get a `spec/furniture/marketplace/system` that
actually hits Stripe...
zspencer added a commit that referenced this issue May 6, 2023
- #1428
- #1326

A quick insertion of the photos into the cart view. We probably should
do a broader redesign pass on the `Cart` UI ๐Ÿ”œ but this seems decent
enough?
zspencer added a commit that referenced this issue May 6, 2023
- #1428
- #1326

A quick insertion of the photos into the cart view. We probably should
do a broader redesign pass on the `Cart` UI ๐Ÿ”œ but this seems decent
enough?
zspencer added a commit that referenced this issue May 6, 2023
- #1428
- #1326

A quick insertion of the photos into the cart view. We probably should
do a broader redesign pass on the `Cart` UI ๐Ÿ”œ but this seems decent
enough?
zspencer added a commit that referenced this issue May 6, 2023
- #1428
- #1326

A quick insertion of the photos into the cart view. We probably should
do a broader redesign pass on the `Cart` UI ๐Ÿ”œ but this seems decent
enough?
zspencer added a commit that referenced this issue Jan 14, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.

I'm going to start driving towards a more `Menu` centric approach so the
Shopping experience looks and feels a bit less nerd-forward.

Theoretically, this will entail:

- [ ] Sprouting `Product#show`
- [ ] Ditching the `Marketplace::Cart` ui almost completely, perhaps?
- [ ] Updating `buying_products_system_spec.rb`
zspencer added a commit that referenced this issue Jan 14, 2024
- #1326

The aspect ratio is now 16x9, which should be easier for people to just
"naturally" upload. The width of the small hero variant is edge-to-edge
full-def on Apple's current highest-end device, the iPhone 15 Pro Max.

There's probably a way smarter way of doing this that uses say,
background images and CSS selectors to load just-the-right-sized image
for the particular use-case; but I figure going big-and-downscaling is
probably better from a "make pretty" perspective.
zspencer added a commit that referenced this issue Jan 15, 2024
- #1326

The aspect ratio is now 16x9, which should be easier for people to just
"naturally" upload. The width of the small hero variant is edge-to-edge
full-def on Apple's current highest-end device, the iPhone 15 Pro Max.

There's probably a way smarter way of doing this that uses say,
background images and CSS selectors to load just-the-right-sized image
for the particular use-case; but I figure going big-and-downscaling is
probably better from a "make pretty" perspective.
zspencer added a commit that referenced this issue Jan 15, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 21, 2024
- #1326

The aspect ratio is now 16x9, which should be easier for people to just
"naturally" upload. The width of the small hero variant is edge-to-edge
full-def on Apple's current highest-end device, the iPhone 15 Pro Max.

There's probably a way smarter way of doing this that uses say,
background images and CSS selectors to load just-the-right-sized image
for the particular use-case; but I figure going big-and-downscaling is
probably better from a "make pretty" perspective.
zspencer added a commit that referenced this issue Jan 21, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 25, 2024
- #1326

The aspect ratio is now 16x9, which should be easier for people to just
"naturally" upload. The width of the small hero variant is edge-to-edge
full-def on Apple's current highest-end device, the iPhone 15 Pro Max.

There's probably a way smarter way of doing this that uses say,
background images and CSS selectors to load just-the-right-sized image
for the particular use-case; but I figure going big-and-downscaling is
probably better from a "make pretty" perspective.
zspencer added a commit that referenced this issue Jan 25, 2024
- #1326

The aspect ratio is now 16x9, which should be easier for people to just
"naturally" upload. The width of the small hero variant is edge-to-edge
full-def on Apple's current highest-end device, the iPhone 15 Pro Max.

There's probably a way smarter way of doing this that uses say,
background images and CSS selectors to load just-the-right-sized image
for the particular use-case; but I figure going big-and-downscaling is
probably better from a "make pretty" perspective.
zspencer added a commit that referenced this issue Jan 25, 2024
โ€ฆesolution (#2115)

- #1326

The aspect ratio is now 16x9, which should be easier for people to just
"naturally" upload. The width of the small hero variant is edge-to-edge
full-def on Apple's current highest-end device, the iPhone 15 Pro Max.

There's probably a way smarter way of doing this that uses say,
background images and CSS selectors to load just-the-right-sized image
for the particular use-case; but I figure going big-and-downscaling is
probably better from a "make pretty" perspective.

* Just a smidge of space
zspencer added a commit that referenced this issue Jan 25, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 26, 2024
- #1326
- #2155

Now that the Marketplace lives inside a TurboFrame, we don't need the
turbo streams.

Extracted from #2072
zspencer added a commit that referenced this issue Jan 26, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 26, 2024
- #2155
- #1326

This gets rid of a bunch of nonsense from the `CartProductComponent`,
and tees up some parts that I use in the `Menu::ProductComponent`

Extracted from: #2072
zspencer added a commit that referenced this issue Jan 26, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 26, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 26, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 29, 2024
- #1326
- #2155

Now that the Marketplace lives inside a TurboFrame, we don't need the
turbo streams.

Extracted from #2072
zspencer added a commit that referenced this issue Jan 29, 2024
- #2155
- #1326

This gets rid of a bunch of nonsense from the `CartProductComponent`,
and tees up some parts that I use in the `Menu::ProductComponent`

Extracted from: #2072
zspencer added a commit that referenced this issue Jan 29, 2024
)

* ๐Ÿงน `Marketplace`: Simplify changing `Product` quantities in `Cart`

- #2155
- #1326

This gets rid of a bunch of nonsense from the `CartProductComponent`,
and tees up some parts that I use in the `Menu::ProductComponent`

Extracted from: #2072
zspencer added a commit that referenced this issue Jan 29, 2024
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.
zspencer added a commit that referenced this issue Jan 29, 2024
โ€ฆ2072)

- #2153
- #1326


* ๐ŸŒธ `Marketplace`: Distinguish the `Cart` from the `Menu`
- #2043
- #1326

While we definitely need a `Cart`; treating the `Cart` as the `Menu` is
a clunky ducky way of operating.

* ๐Ÿงน `Marketplace`: Drop the overly ambitious `Products#show` work

Getting the `Menu` to a good place is the more important move here; we
can add a `Products#show` endpoint ๐Ÿ”œ rather than :now:

* ๐ŸŒธ `Marketplace`: Order `Products` in `Cart` by time added

I always forget that if you don't explicitely include an `order`
Postgresql will return things based upon... well, how it feels in the
moment.

This ensures the `Cart` always shows it's `Products` in the order they
were added to the `Cart`; so that they don't randomly swap around when
changing quantity.

* ๐ŸŒธ `Marketplace`: `Product` on the `Menu` looks consistent with `Products#index`

The `Products#index` is really only available to a `Space` `Member` at
the moment; but it is what `People` adding `Products` to the
`Marketplace` see; so it makes sense that the `Menu` look the same

* ๐ŸŒธ `Marketplace`: `Menu` has a prettier Add to Cart button

- #2153

The `Add to Cart` button is wide and looks nice!
@zspencer zspencer changed the title ๐Ÿฅ”โœจ Marketplace: Buying Products ๐Ÿฅ”โœจ Marketplace: ๐Ÿฅก Buying Products Feb 17, 2024
@zspencer zspencer changed the title ๐Ÿฅ”โœจ Marketplace: ๐Ÿฅก Buying Products ๐Ÿฅ”โœจ Marketplace: Buying ๐Ÿฅก Products Feb 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
โœจ feature Reduces Client's Burden or Grants them Benefits ๐Ÿฅ” Satisfices It's good enough to use, but not particularly great
Projects
None yet
Development

No branches or pull requests

1 participant