SnapBizz - compliance check
Closed this issue · 6 comments
Flow 1
- key is an invalid attribute in context
/on_search
- /message/catalog/bpp/providers/items/@ondc/org/statutory_reqs_prepackaged_food must have required property 'imported_product_country_of_origin'
- store enable/disable timestamp (/bpp/providers/time/timestamp) must match context.timestamp
- @ondc/org/contact_details_consumer_care should be in the format "name,email,contactno" in /bpp/providers/items
/on_select
- /fulfillments/@ondc/org/TAT (O2D) in /on_select can't be equal to @ondc/org/time_ship (O2S) in /on_search
- @ondc/org/returnable and @ondc/org/cancellable not required in /items
- @ondc/org/TAT for 'Immediate Delivery' can be 60 min (max)
/on_init
- Discrepancies between the quote object in /on_select and /on_init
(why are duplicate items added with price.value 0) - item quantity not required in quote.breakup
/on_confirm
- order.updated_at timestamp should be updated as per the context.timestamp (since default fulfillment state is added)
- Billing object mismatches in /confirm and /on_confirm
(created_at and updated_at timestamps should be RFC 3339 UTC format) - Discrepancies between the quote object /on_select and /on_confirm
(similar issues as on_init, ttl has also changed)
/on_status_pending
- Invoice url must be present as part of documents objects (only in Order-picked-up state and thereafter)
- how is /items/tag/status 'Return_Approved' when order has not been delivered yet
- /fulfillments/start/time pickup time should not be present until order is picked
- /fulfillments/end/time delivery time should not be present until order is delivered
- Billing object mismatches in /confirm and /on_status_pending (same issue as /on_confirm)
- order/created_at timestamp can't change (should remain same as in /confirm)
- order.updated_at timestamp should match context timestamp for /on_status_pending api
- name is not required in order/state/descriptor in /on_status
- @ondc/org/TAT and @ondc/org/category not required in /fulfillments in /on_status
- extra attributes such as @ondc/org/withholding_amount,@ondc/org/return_window, etc not required in payment object in /on_status(refer API contract v1.1.0)
/on_status_packed
- pickup and delivery time cannot be provided for fulfillment state 'packed'
- similar issues as /on_status_pending
/on_status_picked
- /fulfillments/end/time delivery time should not be present until order is delivered
- Timestamp for /on_confirm api cannot be greater than or equal to /on_status_picked api
- Message Id cannot be same for different sets of APIs
- order/created_at timestamp can't change (should remain same as in /confirm)
- order created_at timestamp can't be equal to updated_at timestamp
- order/updated_at timestamp can't be less than the pickup time
/on_status_out_for_delivery
- delivery time cannot be provided
- pickup time should be match the pickup time in /on_status_picked
/on_status_delivered
- /fulfillments/state/descriptor/code must be const = 'Order-delivered' (instead of 'Order delivered')
- context/timestamp of /on_status_picked api cannot be equal to /on_status_delivered api
- Message Id cannot be same for different sets of APIs
- order/created_at timestamp can't change (should remain same as in /confirm)
- order created_at timestamp can't be greater than or equal to updated_at timestamp
/on_update
- fulfillment start timestamp is mandatory when fulfillment state is Order-delivered
- fulfillment end timestamp is mandatory when fulfillment state is Order-delivered
- invalid attributes in payment object (similar issue as /on_status)
Flow 2
- similar issues as Flow 1
/on_select
- how is the same area_code non-serviceable and serviceable both
/on_cancel
- appropriate 'cancellation_reason_id' should be used (refer Order cancellation codes)
Flow 3
- similar issues as Flow 1
/on_status
- all unsolicited /on_status calls should be provided for different fulfillment states
/on_update
- return flow is missing (refer to test case scenrios)
Flow 4, Flow 5
- similar issues as Flow 1 and Flow 3
/on_select
- error object missing in case of selected item quantity unavailable
Kindly make sure similar issues in all the flows are fixed
Flow 1
/on_search
- reverse geocoding of store gps cordinates shows a different pincode (what logic is being used)
/on_confirm
- address/door mismatches in /billing in /confirm and /on_confirm and onwards (billing object should remain same as sent by buyer app)
- start and end time range should be in RFC 3339 UTC format
Flow 2
- similar issues as Flow 1
/on_select (non-serviceable)
- delivery line item should be removed in case of non-serviceability
- fulfillments/state/code should be 'Non-serviceable'
Flow 3
- similar issues as Flow 1
Flow 4
/on_updated (Return Picked)
- quote/price does not match the total breakup price
Flow 5
/on_cancel
- Timestamp for /cancel api cannot be equal to /on_cancel api
Please ensure similar issues in all the flows are addressed
All Flows
/on_status and /on_update
- start and end time range should be in RFC 3339 UTC format (in all APIs)
/on_update (Initiated, Return_Approved, Return_Picked )
- order/updated_at timestamp can't be future dated (should match context/timestamp)
All Flows
/on_confirm (onwards)
-In /fulfillments start and end time range should be accurately recorded (If not provided by LSP, context/timestamp plus TAT can be used)
/on_update (Return_Approved and Return_Picked)
- Context/Timestamp for /on_update_initiated api cannot be equal to /on_update (Return_Approved and Return_Picked) api
/on_search
- discrepancies in the serviceability radius defined in the old and new construct (500km vs 5km)
- "net_quantity_or_measure_of_commodity_in_pkg" should include both quantity and UOM
/on_init
- no need to resend the attributes "@ondc/org/category", "@ondc/org/TAT", "@ondc/org/provider_name" in /fulfillments
/on_confirm
- start/instructions (optional property) are used for pickup instructions (not for the drop).
/on_status (pending)
- Why is order state "In-progress" when fulfillment state is still "pending"
- on_status (delivered) should also support unsolicited call
/on_update
- What is the significance of /on_update call at "2023-07-04T15:48:18.481Z"
- How can /on_update timestamp be earlier than the /update timestamp?
- return_status is invalid property in /fulfillment
Flow 2
- cancellation should be unsolicited as per Flow 2
Flow 5
- out of stock item should be removed from /items and /quote/breakup in /on_init and thereafter
- Why is it taking two days to fulfill a hyperlocal order?
- order/state can't change from "Accepted" in /on_confirm to "Created" in /on_status later
/on_update
- Invalid return flow. Why is the same return flow initiated after the second FYI /update call?
Flow 2
on_select (non-serviceable)
- Why is the location non-serviceable despite being within a 50 km radius?
@BLR-0118, the Snapbizz seller app logs (v1.1.0) seem fine, please proceed with your review.