1. Ensure you have reviewed Getting Started with the Doshii Partner API, and are supporting either WebHooks or WebSockets for async communication. You can only submit orders to locations that you have subscribed to, so it is imperative to have first implemented Onboarding.
2. Familiarise yourself with the Doshii Sequence Diagrams for Create Order, Create Prepaid Order and Create Order Payments.
3. Understand the order status lifecycles, and who is responsible for the transitions: Order Status Flows
4. Review Doshii's API concepts, especially:
5. Check out some of the Frequently Asked Questions
- What are "variants" and "options" on an item?
- Why can't I change the status on a transaction or order
- Can I send items with a different price to the menu item or variant?
- What do values represent?
6. Review functionality of the Trial Dashboard that will help you with your development.
To complete Doshii Certification for Order Ahead, here is a broad scope of the use cases we test for:
|Demonstrate the Order Sequence using your Application||Demonstrate the order being received in Pending status and being accepted by the POS.|
|POS rejects the order||Demonstrate how the app handles an order rejection|
|POS doesn't respond to the order submission||In the event of the POS being offline at the venue, how does the App handle an order which remains in a Pending state for an extended period of time?|
|Demonstrate support for POS menu items (single items)||Demonstrate the use of the menu posId, variants, modifiers and surcounts.|
|Demonstrate support for POS menu items (bundle items)||Ensure the App supports submission of bundle items to the POS.|
|Add items to an accepted order, update an accepted order, cancel an accepted order||Demonstrate the workflow and the order sequence correctly followed when an order is subsequently changed after it has been accepted.|
|Submit an order with a prepaid transaction||Demonstrate that the prepaid property is set correctly on a transaction|
|Process a payment for the accepted order||If the transaction was not prepaid, and the customer uses the App to pay for the order, demonstrate the submission of a payment request, and subsequent completion of the payment.|
|Provide important fields to Doshii - externalOrderRef, transaction reference and transaction method||Used for troubleshooting purposes in the live environment, and also assist with venue's analytics.|
|Ensure all order amounts and values are correct||Demonstrate that the item unitPrices, quantities, surcount amounts, totalBeforeSurcount and totalAfterSurcount are all correct.|
|Use of the requiredAt field for pickup orders||If order is a pickup and App supports future collection dates, demonstrate the use of the Doshii requiredAt property.|
1. For dine in orders, you may wish to additionally implement the retrieval of the POS Tables and subsequently create a Check In against the table. Review Check In Statuses, and ensure a check in is created prior to the order.
2. Synchronise the POS menu to have the POS validate the items on the order. Alternatively, you may submit 'open items' by excluding the posId from the item.
3. Each order should subsequently be paid for by the submission of one or multiple transactions. You can submit prepaid transactions, or submit a transaction and process it once the customer is ready to pay. Review the transaction status flow, or the implementation of POS-Initiated Payments.
If you need further assistance, please reach out to us by sending an email to firstname.lastname@example.org