Improve Quote workflow
abishop451 opened this issue · 4 comments
As a Buyer, I would like to submit a quote and receive the quote back from the Seller/Marketplace manager so that I can continue my order online and submit an order for the item at the quoted price.
Workflow:
- Buyer user locates a Quote product. They make their selections (often times quote products are quoted because you have custom selections which alter the state of the product), and request a quote.
- Buyer can see in their Order History that their quote is submitted (maybe it's not an actual submitted order, but there needs to be notation of the history of the quote request).
- Owner of the quote product gets notified that they have an incoming quote request
- Owner of the quote product sets pricing for that product for that Buyer.
- Owner of the quote product sends the quote back to the Buyer via some action within the application.
- Buyer is notified that quote has been returned, and can now see the quoted price.
- Buyer could write a comment back to the Owner of the product for a revised quote, and the same process would happen again. OR
- Buyer accepts the quoted price and submits order with the product at the quoted price.
- Order is processed like all other orders.
Considerations:
- Quote products should not hold up orders of non-quote products, so I think they need to be on their own order
- Potential to have the ability to put multiple quote products on a single order (MVP can just be a single quote product, like Headstart operates today)
User flow:
- User adds a quote product (xp.Type == 'Quote') at which point order.xp.OrderType is set to "Quote" and order.xp.QuoteStatus is set to "SellerReview", note that at this point the order is NOT submitted. We decided to make this change because it potentially muddies up statistics on actually submitted orders vs those that were submitted because they were quotes.
- Message appears to buyer that their quote has been sent for review. At the same time, an email is sent to the relevant seller letting them know there is a new quote product to review.
- The buyer user can navigate to a section under orders specific for viewing quote orders to check on the status of their open quoted orders at any point in time.
- The seller can also navigate to a section on the admin app under orders for viewing quote orders to check on the status of their open quoted orders. Via middleware, they can override the unit price of the line item to the desired price and once satisfied can submit their quote which will notify the buyer user via email as well as in-app notification and set xp.QuoteStatus to "BuyerReview". Additionally xp.QuoteSellerContactEmail and xp.QuoteBuyerContactEmail will be provided to allow additional communication between the buyer and seller if necessary. We decided to go this route because order xp is not a suitable location since comments can be unbounded and there are hard caps on xp limits. Additonally we wanted to avoid external dependencies as well as reinventing the wheel. OrderCloud is not meant to be a chat application.
- If the buyer user is satisfied they will click a button to accept and a notification will appear letting them know the quote products will be added to their current active order, after which a notification will be sent to both the seller and the buyer letting them know the quote was accepted and the quote order will be deleted.
- The user can now check out and add other products to their active order if desired and finally submit and pay for their order.
A few restrictions to this is that unsubmitted orders are automatically cleaned up by OrderCloud after inactivity. For anonymous users this occurs after 7 days, and for profiled users this is up to 90 days. We'll add some verbiage based on user type as to how long the quote is valid for as well as indicate that logging in will extend the lease of their quote, this could be used as an incentive piece for profiling users.
Data model:
Product XP
{
"ProductType": "" // "Quote" or "Standard"
}
Order XP
{
"OrderType": "", // "Quote" or "Standard"
"QuoteStatus": "", // "NeedsSellerReview" or "NeedsBuyerReview"
"QuoteSellerContactEmail": "", // email of the seller user that should be contacted for quote purposes
"QuoteBuyerContactEmail": "" // email of the buyer user that should be contacted for quote purposes
}
Here are a few bugs I've found with the quote process:
-
Clicking to see the PDP from the Buyer perspective shows an error:
-
When the Buyer completes their order with the quoted price, the Supplier doesn't see that price when they view the order in the Admin interface:
-
I can work around this if needed, but I noticed if your click the "reorder" button on a order that contains a quote product with negotiated price, the item goes into the cart at $0.00.
One question also -- once the Supplier sets the price, is there a place they can continue seeing that order?
This is merged and bugs Ashley mentioned are fixed