Make sure you have consumed the below APIs before requesting integration team for the sign-off -
- Order Relay
- Order Status Update from POS to UP
- Order Status Update from UP to POS
- Rider Status Update
- Adding/updating the stores
- Store Configuration Callback
- Stores Actions API
- Stores Actions Callback
- Manage Catalogue Update
- Catalogue Configuration Callback
- Items Action API
- Webhook API
- Satellite SDK Widget
Important points to remember while validating the integration development at POS end.
- These pieces of information should show on POS frontend/screen along with the ordered item details,
- Order_id of aggregator
- payment type
- delivery rider contact details
- current status of the order
- current status of the delivery rider
- Merchant Sponsored Discount
- Merchant Sponsored Discount = (discount - total_external_discount). Make sure this logic is handled at the POS end for the merchant to show how much merchant sponsored discount has been applied for an order. Also, show the same on the POS screen and bill.
- Merchant receivable amount from aggregators = (order_total + total_external_discount). This will give an estimate of what is the total receivable money from the aggregators. This will not include the charges in which aggregators are put for merchants on each order.
- Placed and cancelled order status from aggregators should show as a pop-up notification/sound notification on POS screen,
- Validate order level, as well as item level taxes and charges, are taken care and the same is visible in the POS screen.
- Validate the ordered items with options, quantity, taxes, charges, and discount information is showing correctly on the POS screen.
- Check all the mandatory order status update - Acknowledged, Food Ready, Cancelled is being passed from the POS system and the status has been updated in the UP system.
- Food Ready - the status update should be passed as soon as the food is prepared in the kitchen.
- The POS has to push only the online selling menu to UrbanPiper system.
- Use https://staging.urbanpiper.com as host for staging environment and use https://api.urbanpiper.com as host for production environment while making the request.
- Make sure you have made a provision for configuring the different API-keys for different brands.
- If you have merchants who are running multiple brands in the same outlet, then make sure you have multi-brand integration with us. That is the same API-keys will be associated with multiple brands and you will pass one more header to insert the biz_id value of the brand under - x-upr-biz-id. The biz_id will be shared by the UrbanPiper team.
- Check if the requests are being made to UrbanPiper APIs is of https scheme.
- Check the time taken to show the orders in the POS screen and time taken for status update happening from POS to the UP system. The changes should reflect within 10 seconds.
- Make sure POS has handled the throttling limit for all the APIs.
- Make sure the retry mechanism for a failed response should have max. of 3 times only.
- Make sure the Swiggy Cancellation Error Response use case has been tested.
- The request call to our APIs should always happen as a bulk request. The objects should be sent in bulk while making a request to our system.
- If POS doesn't have any data for a given optional attribute in the request, allow null values, NOT the empty string.
- If POS doesn't have any data for a given optional array in the request, allow empty array or null, NOT the empty string.
- While passing the tax information in the Managing Catalogue API, in the ref_id always keep a prefix of POS location ref id. This will help in not overwriting the tax data when you push it location wise.
- POS should not have the logic - same items at 2 different locations having the common item ref id should not have a two different price concept.
- The POS Menu catalog IDs for an item should be the same for all the stores for a single brand - Federated Structure.
- The same item should not have different prices for different aggregators for the same location. Basically, we don't support the differential pricing for aggregators.
- Make sure you have simulated all the payloads shared in the Postman collection for Order Relay and Rider Status Update webhook.
If you have any queries to ask, feel free to drop an email to firstname.lastname@example.org.