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: Seller receives Order in their Square Point of Sale #1500

Closed
1 task done
Tracked by #1654
zspencer opened this issue May 25, 2023 · 11 comments
Closed
1 task done
Tracked by #1654
Labels
πŸ’° active bounty Clients are want to pay us for this! ✨ feature Reduces Client's Burden or Grants them Benefits 🌫️ foggy Stuff we're not quite sure how to move forward with 🌱 Ready for Dev Stuff we are able to move forward on

Comments

@zspencer
Copy link
Member

zspencer commented May 25, 2023

@zspencer zspencer changed the title Seller receives Order in their Square Point of Sale ✨ Marketplace: Seller receives Order in their Square Point of Sale May 25, 2023
@zspencer
Copy link
Member Author

zspencer commented May 25, 2023

This was requested by Piikup on behalf of Crumble and Whisk, Oaklandia, and Mandela

@zspencer zspencer changed the title ✨ Marketplace: Seller receives Order in their Square Point of Sale 🌫️✨ Marketplace: Seller receives Order in their Square Point of Sale May 25, 2023
@zspencer zspencer changed the title 🌫️✨ Marketplace: Seller receives Order in their Square Point of Sale 🌫️✨ Marketplace: Seller receives Order Notification in their Square Point of Sale Jul 13, 2023
@rosschapman
Copy link
Contributor

rosschapman commented Aug 2, 2023

Spec document: https://docs.google.com/document/d/1Z-d1i5AEeFPDS44vyWSESd1p-1hFEuDAjsXZuhKzn1Y. Ask @rosschapman for access.

Consensus was reached at the 7/26 ensemble that @rosschapman would proceed to build a modest, demoable workflow for Square order notifications (creations) originating in Convene.

@zspencer zspencer changed the title 🌫️✨ Marketplace: Seller receives Order Notification in their Square Point of Sale 🌫️✨ Marketplace: Seller receives Order in their Square Point of Sale Aug 6, 2023
@zspencer
Copy link
Member Author

zspencer commented Aug 8, 2023

@zspencer zspencer added ✨ feature Reduces Client's Burden or Grants them Benefits 🌫️ foggy Stuff we're not quite sure how to move forward with πŸ’° active bounty Clients are want to pay us for this! labels Aug 8, 2023
@rosschapman
Copy link
Contributor

rosschapman commented Aug 18, 2023

Things are moving along! Allow me to share a sneak peak of a Square order (as "notification") programmatically created from a marketplace_order in my local Convene environment. I was able to simulate the checkout workflow by manually triggering a checkout.session.completed webhook event generated by the Stripe CLI. And voilΓ‘.

image

@anaulin
Copy link
Member

anaulin commented Aug 18, 2023

Exciting! πŸŽ‰

@zspencer zspencer added the 🌱 Ready for Dev Stuff we are able to move forward on label Aug 23, 2023
@zspencer zspencer changed the title 🌫️✨ Marketplace: Seller receives Order in their Square Point of Sale 🌱✨ Marketplace: Seller receives Order in their Square Point of Sale Aug 23, 2023
@rosschapman
Copy link
Contributor

rosschapman commented Aug 24, 2023

Recap from @rosschapman's 8/15/23 ride-along with Piikup:

Firstly, it should be noted that it was atypical for April to be driving the cargo truck. Normally she would be running dispatch from home/office. I'd like to first thank her and the Piikup team for accommodating us! April displayed a heroic effort in multi-tasking driving, executing a pickup route with multilpe, talking to me and keeping me informed along the way, continuing to manage dispatch, and handling other impromptu business issues during the ride-along.

We spent nearly 2 hours together and drove a somewhat typical route:

  1. I was picked up at Mandela Grocery a little after 10am. Piikup has begun a partnership with them to deliver prepared, hot meals, and also list them on their Convene marketplace instance. April introduced me to the employees onsite, including the chef. April is excited for this partnership and believes it will drive a lot new business. A note about their handling of "hot" food: they will stick to currently established delivery window guarantees.
  2. We hopped back in the truck and headed to Gabriela's in downtown Oakland, made a brief stop for an intro (although April did physically ask if there were any new deliveries while we were there). Next we proceeded to the Alameda farmers market for a pickup. Then delivered to Omni Commons. Then attempted (failed, see below) to pickup empty boxes at the ANV farm -- no one was there. Finally I was dropped off at Mandela Grocery.
  3. Along the way April explained and demonstrated how they use OnFleet.
    • When you start a delivery in the driver app, a text message with a tracking link and ETA is sent to the business. However, OnFleet is not very sophisticated and poses challenges for Piikup's drivers. As April explained:
      • What if the driver needs to make a course correction after starting the delivery. For example, they forgot something. Once the delivery has begun, OnFleet's tooling does not provide anyway to pause, stop, or mark the delivery as delayed and send an update to the customer.
    • Another challenge for April is that OnFleet's dispatch service is only accessible through a web browser. This makes "toggling" between dispatch and driver "views" on a phone cumbersome while driving. Keep in mind drivers are likely using cell phones and not tablets. Also the Piikup fleet of cargo vehicles are not necessarily equipped with (or well designed for) dashboard attachments for phones.
    • Delivery pickups and dispatching/routing are all manually coordinated by April. OnFleet does not provide any smart, suggestive matching, etc...
    • OPPORTUNITY: April expressed a desire for new deliveries to show up in a queue in OnFleet's web view of in-progress deliveries. Currently new deliveries must be entered manually, one at a time. She thinks that OnFleet's capabilities may allow for new deliveries to be "sent into" a queue/category that sits above the list of in-progress deliveries. This ability would add some automation and save time entering these manually.
  4. April also covered the types of deliveries they make:
    • Single order deliveries (B2C), catering (B2C), and wholesale (B2B). ANV Farm is a good example of a B2B vendor.
    • The B2C deliveries come through the Convene marketplace
    • However, the B2B of the business is coordinated and managed separately and idiosyncratically
      • For Piikup, wholesale business is effectively recurring deliveries. I observed April use the terms "wholesale" and "recurring" interchangeably.
      • Although wholesale deliveries are recurring, managing intake for them is laborious. Every order, even if the same as last week, must be entered into a shared Google spreadsheet by the vendor. From what I can remember this spreadsheet is transparent, and accessible by all wholesale vendors.
      • April noted this manual process is prone to failure:
        1. Monitoring new orders requires human vigilance. Inevitably human error occurs -- which April accepts, wisely, as a given -- and a once in a while a weekly might be missed when designing the next routing schedule
        2. April says they mitigate this issue by planning for a quick stop every week, regardless of whether there is definitely an order that day. She'd rather show up mistakenly, then miss a delivery. But she admits this is wasteful.
        3. I wonder if it's possible for a vendor to literally overwrite another vendor's order?
        4. OPPORTUNITY (including notes from 8/23/23 ensemble): Could Convene have a Gizmo that support a simple table with notifications (@anaulin's idea). @zspencer noted we should understand the cost of shifting from the spreadsheet system to a new intake system on Convene. The question might become, then, can we bridge the gap between a Google Sheet and Convene so that we could still support timely notifications of new or updated recurring/wholesale orders. Is there even a lighter approach, where Zinc might build notifications into Google Sheets directly -- either programmatically, with extensions, etc...
  5. We also experienced a common frustration for Piikup drivers when attempting to pickup the previous weeks empty boxes at ANV:
    • No one was present at ANV farm when we arrived for pickup
    • What's more, April wasn't able to reach anyone directly (I can't quite remember if it was because she doesn't have a direct contact by phone, or if no one picked up either directly or on a general line -- possibly both)
    • April noted that wasting even a few minutes can be a huge disruption/waste for effective dispatching
    • I gathered this wasn't about blame so much as a troubling inconvenience that must have a solution, somehow
    • OPPORTUNITY: It seems a shame that in this day in age a group of business partners that need to coordinate regular pickup/delivery do not have an effective, standardized way to communicate. Could a technology partner help here? In this case, all April needed to know was weather anyone would be at the farm when she arrived.

@anaulin
Copy link
Member

anaulin commented Aug 24, 2023

Thanks for the writeup, @rosschapman, super interesting stuff!

A quick search revealed that Google Sheets has a feature for change notifications. Tools > Notification settings > Edit notifications gives the options:
image

Any thoughts if these ^ kinds of edit notifications would be helpful to April?

@rosschapman
Copy link
Contributor

rosschapman commented Aug 24, 2023

@anaulin I suspect so. Let's ask and find out. It's possible they just haven't had the capacity or wherewithal to discover this. I can help reach out!

@anaulin
Copy link
Member

anaulin commented Aug 24, 2023

@rosschapman if you could reach out to April with that suggestion, that would be aces! πŸ™

@rosschapman
Copy link
Contributor

rosschapman commented Oct 31, 2023

Quick dev update: I've upgraded the version of the API in my Square Sandbox environment from 7/20/23 -> 10/18/23. I was behind 4 versions. Our code and any new manual e2e tests will hit this version. Although from what I could gather scanning the release notes, there haven't been any notable changes in the Orders API.

zspencer added a commit that referenced this issue Jan 8, 2024
- #1500
- #2034

I'm not quite sure what the reason is; and didn't want to tinker too
much since @rosschapman and @anaulin know more about how this works.

My current theory is we need to update the [`Dependabot`
Secrets](https://github.com/zinc-collective/convene/settings/secrets/dependabot)
with the Square credentials and Locations that they set up last
Wednesday.

I think we used the [email protected] account, but the phone number
for that is not tied to the Google Voice number for
[email protected]; so I wasn't able to log in.

I did log in as [email protected]; and there are credentials there but I
am not brainy enough to figure out if that's the right account or not.

Anyway, to unbreak the tests for Dependabot rolling again; I am ditching
the `with_square` trait in the `marketplace` in the
`buying_products_spec.rb`. We'll probably want to write a
`marketplace/order_notifications/with_square_spec.rb` that tests that
use case more explicitely, including assertions against the Square API
that confirm we get the data in the PoS right.
@rosschapman
Copy link
Contributor

rosschapman commented Jan 20, 2025

I'm going to close this Issue since work on the Marketplace has generally crawled to a halt. The feature has been ready to test for sometime with a vendor, we just never got a chance to sync with April to try it out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
πŸ’° active bounty Clients are want to pay us for this! ✨ feature Reduces Client's Burden or Grants them Benefits 🌫️ foggy Stuff we're not quite sure how to move forward with 🌱 Ready for Dev Stuff we are able to move forward on
Projects
None yet
Development

No branches or pull requests

3 participants