ONDC-Official/v1.1.0-logs

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

Flow 3

  • similar issues as Flow 1

/on_status

  • all unsolicited /on_status calls should be provided for different fulfillment states

/on_update

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

@krishna-consciotech

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

@krishna-balasubramanyam-2020

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)

@krishna-balasubramanyam-2020

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

@krishna-balasubramanyam-2020

/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

@krishna-balasubramanyam-2020

  • 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?

@krishna-balasubramanyam-2020

@BLR-0118, the Snapbizz seller app logs (v1.1.0) seem fine, please proceed with your review.