Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tipplr (SA) - compliance check #650

Open
sahil-ondc opened this issue Jan 29, 2024 · 29 comments
Open

Tipplr (SA) - compliance check #650

sahil-ondc opened this issue Jan 29, 2024 · 29 comments

Comments

@sahil-ondc
Copy link

Flow 1

on_search_full_catalog_refresh

  • category in serviceability construct should be one of the category ids bpp/providers[0]/items/category_id
  • /message/catalog/bpp/providers/categories/id should be alphanumeric & up to 12 characters
  • /message/catalog/bpp/providers/items/desciptor short_desc and long_desc should not be empty string ""

on_search_inc_catalog_refresh

  • /context/message_id for /search_inc_refresh and /on_search_inc_refresh api should be same
  • similar item as in /on_search_full_catalog_refresh api call, item id- food_item-170383211668086189
  • /message/catalog/bpp/providers/items should have category_ids one of the catalog/categories/id

Flow 2

on_select

  • /fulfillments[0]/@ondc/org/TAT (O2D) in /on_select can't be equal to @ondc/org/time_ship (O2S) in /on_search
  • Item's unit and total price mismatch for id: food_item-170383210597342600
  • Quoted Price in /on_select INR 190 does not match with the total price of items in /select INR 152

on_init

  • /message/order should not have property provider_location (deprecated)

on_confirm

  • order.updated_at timestamp should be updated as per the context.timestamp (since default fulfillment state is added)

on_status (delivered)

  • Transaction Id should be same from /select onwards
  • /message/order/id should be same as created in confirm call

Flow 3

on_select (out-of-stock)

  • /error/message should be as per the api contract
    https://docs.google.com/document/d/1brvcltG_DagZ3kGr1ZZQk4hG4tze3zvcxmGV4NMTzr8/edit#heading=h.w0p6bcyawc9u

Other Flows

on_cancel

  • /message/order/tags should have 'quote_trail' as per the API contract
    https://docs.google.com/document/d/1brvcltG_DagZ3kGr1ZZQk4hG4tze3zvcxmGV4NMTzr8/edit#heading=h.yzl8pn3ixxec

@punithraj

@punithrj26
Copy link
Contributor

@sahil-ondc

for flow 2,

  1. Item's unit and total price mismatch for id: food_item-170383210597342600
    We have added two differ unit prices to show the scratched value on the buyer app.
  2. Quoted Price in /on_select INR 190 does not match with the total price of items in /select INR 152
    We will not be knowing the end location before select api, once we know the end location we will add the delivery
    charges to the quote so the difference of 38 between select and on_select quote.

Working on other points thank you.

@punithrj26
Copy link
Contributor

Hi @sahil-ondc
Have raised a PR #716 with the corrected flow as required.
Have uploaded as required.
Please go through them.

@sahil-ondc
Copy link
Author

Flow 1

on_search_full_catalog

  • timestamp for item[0] can't be grater than context.timestamp
  • "accept_bap_terms" code should not be provided. It should be enabled when static terms are defined by the BNP and accepted by the seller app
  • images should not be provided as empty array [] in /message/catalog/bpp/providers/categories/descriptor
  • /message/catalog/bpp/providers/tags/serviceability/value should be same as /location/circle/range
  • short_desc and long_desc should not be provided as empty string "" in /message/catalog/bpp/providers/items/descriptor

on_search_inc_catalog

  • Similar Item as in /on_search_full_catalog_refresh api call, item id- food_item-166989377662162031

Flow 2

on_confirm

  • /message/documents/url should not be provided with placeholder values
  • provider_tax_number (pan number of merchant) should be provided in /tags/bpp_terms

on_status (out-for-delivery)

  • /message/order/fulfillment/start/range should have property 'timestamp' (order pickedup timestamp)
  • /message/order/fulfillment/end/range should not have property 'timestamp' (as it will be order-delivered timestamp)
  • context/message_id cannot be same as provided in /confirm and /on_confirm
  • context/message_id should be unique in unsolicited on_status calls

Flow 3

Note

  • multiple items should be selected and flow should continue with the items which are available in stock till delivery

Flow 4

on_cancel

  • /message/order/cancellation/time cannot be past timestamp before /cancel

Note

  • /track and /on_track should be submitted in case of tracking true

@punithrj26

@punithrj26
Copy link
Contributor

Hi @sahil-ondc
Have raised a PR #902 with the corrected flow as required.
Have uploaded as required.
Please go through them.

@nishthamongaondc
Copy link

Flow 1

on_search_full_catalog_refresh

  • /message/catalog/bpp~1providers/0/items/0/category_id Invalid category ID found for item for on_search
  • /message/catalog/bpp~1providers/0/items/0/category_ids/0 format of category_ids must be followed as per API contract. The length of categories id in message/catalog/bpp/providers/categories/id should not exceed 12 characters and sequence in category_ids should start from 1.

Flow 2

on_select

  • Item's unit and total price mismatch for id: food_item-170383210597342600
  • item with id: merchant-167714647372249847 in quote.breakup[3] does not exist in items[] (should be a valid item id)

on_init

  • items[0].fulfillment_id mismatches for Item food_item-170383210597342600 in /on_select and /on_init
  • Key length mismatch for breakup.0.item

on_confirm

  • /message/order/id Should be alphanumeric upto 32 letters max
  • items[0].parent_item_id mismatches for Item food_item-170383210597342600 in /on_select and /on_init

on_status_out_for_delivery

  • /message/order/fulfillments/0/end/time/range must have required property 'end'
  • pickup timestamp should match context/timestamp and can't be future dated

on_status_delivered

  • order/updated_at timestamp can't be less than the delivery time

@punithrj26

@NishthaMonga
Copy link

Flow 1

on_search_full_catalog_refresh

  • /message/catalog/bpp~1providers/0/locations/0/address/area_code must NOT have fewer than 6 characters
  • Either one of fixed (range) or split (frequency and times) timings should be provided in /bpp/providers[0]/locations[0]/time
  • STD code does not match with correct area_code on /on_search
  • category in serviceability construct should be one of the category ids bpp/providers[0]/items/category_id

on_search_inc_refresh

  • Similar Item as in /on_search_full_catalog_refresh api call, item id- food_item-166989377662162031

Flow 2

on_select

  • provider.locations[0].id mismatches in /select and /on_select

NOTE

on_status_packed,on_status_picked logs missing

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search_full_catalog_refresh

  • /message/catalog/bpp~1providers/0/locations/0/address/area_code must NOT have fewer than 6 characters.
  • /message/catalog/bpp~1providers/1/locations/0/address/area_code must NOT have fewer than 6 characters.
  • Either one of fixed (range) or split (frequency and times) timings should be provided in /bpp/providers[0]/locations[0]/time.
  • STD code does not match with correct area_code on /on_search.
  • category in serviceability construct should be one of the category ids bpp/providers[0]/items/category_id.

search_inc_refresh

  • /message/intent/tags/list/start_time/value cannot be greater than or equal to /context/timestamp.
  • /message/intent/tags/list/end_time/value cannot be greater than /context/timestamp.

on_search_inc_refresh

  • Similar Item as in /on_search_full_catalog_refresh api call, item id- food_item-166989377662162031.

Flow 2

on_select

  • provider.locations[0].id mismatches in /select and /on_select.

on_init

  • provider.locations[0].id mismatches in /on_search and /confirm.
  • Mismatch found for item with item_id food_item-170383210808146459.

confirm

  • provider.locations[0].id mismatches in /on_search and /confirm.

on_confirm

  • provider.locations[0].id mismatches in /on_search and /on_confirm.
  • store name /fulfillments[0]/start/location/descriptor/name can't change.
  • Mismatch found for item with item_id food_item-170383210808146459.
  • message/order/tags/bpp_terms/np_type: np_type is missing in message/order/tags/bpp_terms for ON_CONFIRM.

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search

  • context/transaction_id for /search and /on_search api should be same
  • context/message_id for /search and /on_search api should be same
  • repeated serviceability provided for same location_id and category_id
  • timming tags should be provided on provider level as per API contract

search_inc

  • /message/intent/tags/list/start_time/value cannot be greater than or equal to /context/timestamp
  • /message/intent/tags/list/end_time/value cannot be greater than /context/timestamp
  • static_terms should not be provided as part of phase 1

Flow 2

on_select

  • provider.locations[0].id mismatches in /select and /on_select

on_init

  • type, collected_by, uri, tl_method, status, settlement_basis, settlement_window, withholding_amount in /payment should only be provided when BPP is collecting prepaid
  • quote/breakup/items should be provided as per the API contract

on_confirm

  • provider.locations[0].id mismatches in /on_search and /on_confirm
  • store name /fulfillments[0]/start/location/descriptor/name can't change
  • np_type and provider_tax_number is missing in message/order/tags/bpp_terms

on_status

  • created_at timestamp for /on_status_delivered should be equal to context timestamp at confirm

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search

  • timing should be provided in the construct as per the documentation in the provider level

Flow 2

select

  • location_id should be same for the item food_item-170383210627835789 as in on_search
  • provider.locations[0].id merchant-167714647372249847 mismatches in /on_search and /select

on_select

  • Quoted Price in /on_select INR 70 does not match with the total price of items in /select INR 56

on_init

  • quote/breakup/item should be provided as per API contract (quantity should not be included)
  • if SNP is getting prepaid payment then payment url should be sent by SNP only

on_confirm

  • np_type should be provided in bpp_terms

Flow 3

  • multiple items should be selected, and flow should continue with the items which are in stock

Flow 5

on_cancel

  • Fulfillment state should be RTO-initiated in Flow 5, instead of cancelled
  • updated_at provided in pre_cancel state should be when order-state got last updated
  • missing flow RTO-delivered or RTO-disposed

Flow 6

  • same as above

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search_full_catalog

  • Duplicate serviceability tags should not be provided i.e. for same category and location_id
  • timming tags should be provided at the provider level as per the contract

Flow 2

select

  • Buyer selects multiple items (> 1 qty for each item) for checkout
    https://docs.google.com/spreadsheets/d/1JZV6ZQzXcHUsOwegGtArX3DdIXYIy3gxkhQ00q7kICc/edit#gid=1367601795

on_status

  • /message/order/fulfillment/end/time/timestamp should be provided when order got delivered
  • /message/order/fulfillment/end/time/range should remain same once decided

Flow 4

on_cancel

  • /message/order/fulfillment/tags/precancel_state/update_at should be captured correctly
  • /message/order/fulfillment/start/time/timestamp should be provided once order is picked up, but as per precancel_state its in pending state

Flow 5

  • same as above
  • RTO flow missing

Flow 6

  • Partial-cancellation, reverseQC should be provided as part of Flow 6

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search (full_catalog)

  • context/message_id for /search and /on_search api should be same
  • context/transaction_id for /search and /on_search api should be same
  • /message/catalog/bpp/providers/locations/address should be as per provided as per the provided GPS
  • /message/catalog/bpp/providers/offers/descriptor/images should not be provided placeholders and should be publically accessible
  • custom_menu's are provided in /message/catalog/bpp/providers/categories but are not mapped to any items
  • /message/catalog/bpp/providers/items/category_ids should not be provided as empty string

Flow 2

on_select

  • /message/order/quote/breakup/quantity should be same as provided in on_search
  • parent_item_id should only be provided in case of customizations

on_init

  • /message/order/payment collected_by should be 'BAP' in case of type 'ON-ORDER'
  • @ondc/org/settlement_basis, @ondc/org/settlement_window, @ondc/org/withholding_amount should not be provided

on_status

  • range provided in /message/order/fulfillment start and end cannot be same
  • pickup timestamp should only be provided once the order-state is picked-up or after that
  • /message/order/documents/url should not be provided as placeholder value and it should be publically accessible
  • multiple issues in timestamps (pickup timestamp, delivery timestamp and range)

Flow 3

  • same as flow 2

Flow 4

on_cancel

  • order should be cancelled when its not picked up (RTO should be submitted in Flow 5 as per the sheet )
    https://docs.google.com/spreadsheets/d/1JZV6ZQzXcHUsOwegGtArX3DdIXYIy3gxkhQ00q7kICc/edit#gid=1367601795

Flow 5

on_cancel

  • rto fulfillment state should be rto-initiated and on_status should be provided for rto-disposed

Flow 6

  • Same as flow 2
  • Partial-cancellation, reverseQC should be provided as part of Flow 6

@punithrj26

@sahil-ondc
Copy link
Author

Logs submitted with repeated issues

Flow 1

on_search (full catalog)

customizable catalog should be provided

  • provided area_code should be as per provided gps in /message/catalog/bpp/providers/locations
  • placeholders should not be provided in /message/catalog/bpp/providers/offers/descriptor/images (provided: https://sellerNP.com/images/offer2-banner.png)
  • time_from and time_to is not mapped correctly in timing tags (it should be as per provided in /message/catalog/bpp/providers/locations/schedule)
  • invalid property 'parent_item_id' in /message/catalog/bpp/providers/items
  • properties provided in address should be as per API contract
    https://docs.google.com/document/d/1brvcltG_DagZ3kGr1ZZQk4hG4tze3zvcxmGV4NMTzr8/edit#heading=h.4b1aemczbswx

Flow 2

on_select

  • invalid category 'Instant Delivery' provided in /message/order/fulfillments/@ondc/org/category
  • /message/order/quote/breakup/tag/type is optional for non-customizable items
  • /message/order/items/tag/type is optional for non-customizable items
  • tracking should be provided for hyperlocal deliveries

on_init

  • /message/order/payment should be as per API contract (no extra properties should be provided)
  • np_type should be specified in bpp_terms
  • in case of ISN, provider_tax_number and tax_number should be of same entity
  • /message/order/quote/breakup should be as per API contract
    https://docs.google.com/document/d/1brvcltG_DagZ3kGr1ZZQk4hG4tze3zvcxmGV4NMTzr8/edit#heading=h.ks3uqu8tq83s

on_confirm

  • store name /fulfillments[0]/start/location/descriptor/name can't change
  • in case of ISN, provider_tax_number and tax_number should be of same entity
  • properties provided in /message/order/fulfillment/start/address should be as per API contract (no additional properties should be provided)
  • /message/order/quote/breakup should be as per API contract
    https://docs.google.com/document/d/1brvcltG_DagZ3kGr1ZZQk4hG4tze3zvcxmGV4NMTzr8/edit#heading=h.ks3uqu8tq83s
  • /message/order/fulfillment/start/range/pickup should only be provided when order gets picked up
  • /message/order/fulfillment/start/range/start should not be less than context/timestamp
  • @ondc/org/provider_name should remain same as provided in on_select

on_status

  • pickup and delivery range cannot be same
  • invalid timestamps for pickup

Flow 3

  • same as flow 2

Flow 4

  • same as flow 2

on_cancel

  • invalid /message/order/quote/price/value
  • invalid fulfillment_state provided in precancel_state fulfillment tags
  • additional property 'time' provided in /message/order/cancellation

Flow 5

  • same as flow 2

on_cancel (rto)

  • why commented logs are provided ?
  • rto fulfillment/end/range/timestamp should only be provided why rto gets disposed or delivered

Flow 6

  • same as flow 2
  • multiple issues please refer to API contract (multiple invalid timestamps mapping)

on_status

  • after part-cancellation refund settlement details should get appended in @ondc/org/settlement_details

Note

  • customization flow should be provided

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search

  • If the timing construct for order and delivery are the same, you can use the enum 'All' instead.
  • How can the price be 0 for the item_id: food_item-170383210588937185?
  • Why is the rank the same for the category IDs used in items, e.g., ['UUK7SZXN4K:1], it's been used in multiple items.

Flow 2

on_confirm

  • /message/order/fulfillment/start/range/start should not be less than context/timestamp.

on_status_picked

  • Invoice must be present and publicly accessible.
  • The start/time/timestamp for 'Delivery' fulfillment is not in the given range provided.

on_status_delivered

  • The end/time/timestamp for 'Delivery' fulfillment is not in the given range provided.
  • How can the delivery time be less than 30 seconds? The picked timestamp and delivered timestamp are not valid according to the location provided.

Flow 3

  • Same as in Flow 2.

on_select_out_of_stock

  • In case of dynamic_item_id, refer to this error message: "[{\"dynamic_item_id\":\"DI1\",\"item_id\":\"I1\",\"error\":\"40002\"}, {\"dynamic_item_id\":\"DI2\",\"customization_id\":\"C15\",\"customization_group_id\":\"CG3\",\"error\":\"40002\"}]".

Flow 5

  • Same as in Flow 2.
  • Terminal state of RTO (delivered/disposed) must be provided through /on_status call.
  • retry count is missing in cancel_request

@punithrj26

@punithrj26
Copy link
Contributor

@sahil-ondc
Hi we have worked on changes mentioned in compliance. #1866

Comments as per compliance:
If the timing construct for order and delivery are the same, you can use the enum 'All' instead.
Our reply: We dont support Pickup option, If we give “All” it will take pickup also, so We intentionally added Delivery and Order.

Please go through ad give us a feedback.

Thank you.

@sahil-ondc
Copy link
Author

Flow 2

on_init

  • Only @ondc/org/buyer_app_finder_fee_type, @ondc/org/buyer_app_finder_fee_amount,@ondc/org/settlement_details are required in payment object as only buyer is collecting payment currently. Incase seller wants to collect the payment then you can send it the way you sent.

on_status (packed)

  • Why the deliveryFulfillment/end/range is changed as compared to the on_status_pending

on_status (picked)

  • The invoice should be available and publically accessible

Flow 5

on_cancel

  • 005 is not a valid reason code which triggers RTO

Flow 6

on_status (pending)

  • estimated pickup and delivery time ranges can't be same

on_status (picked)

  • The invoice is not updated after the part cancellation

@punithrj26

@sahil-ondc
Copy link
Author

Flow 1

on_search (full catalog refresh)

  • order timings provided in /message/catalog/bpp/providers/locations should be aligned with /message/catalog/bpp/providers/tags/timings

on_search (inc catalog refresh)

  • new provider (merchant-1647068977692367) should not be sent in on_search increments

Flow 2, 3, 4

on_select

  • tags/type/item is not mandatory for standalone SKUS (non-customizable)

on_init

  • type, collected_by, status should not be sent in payment object

on_status

  • quote provided in payload and invoice are not aligned
  • updated_at provided in out-for-delivery cannot be same as updated_at provided in order-picked-up
  • pickup time range cannot be prior than context.timestamp

Flow 5

  • Rto-disposed state missing

Flow 6

on_update (part-cancellation)

  • cancelled item missing in breakup

on_update (interim liquidate)

  • return items should not be mapped to return fulfillment in interim request

on_update (liquidated)

  • why returned or cancelled items are being removed from quote

@punithrj26

@srinii99
Copy link

srinii99 commented Jul 4, 2024

@sahil-ondc @sandeepshahi

Hi Sandeep / Sahil,

We have fixed all the issues and have raised the PR # 1989

We have also reviewed previous issue which was raised and ensure none of the issues are repeated. I have also attached the status report for the same.

Request you to kindly validate the logs and provide us the feedback if any.

Thanks for all the help

Regards,
Srini
ONDC_Issue_Logs.xlsx

@punithrj26

@Jagannath-wits
Copy link

Jagannath-wits commented Jul 11, 2024

Tipplr

Flow 1

on_search

  • Don't provide placeholder offers as offers are not enabled yet.
  • You can provide a timing object with type ‘All’ if the timing for both order and fulfillments is the same.

search_inc

  • Static terms are not enabled yet; please remove bap_terms.

Flow 2

on_status

  • If tracking is true, a tracking object should be provided.

Flow 5

on_cancel

  • Reason should be the same in order.cancellation and cancel_request.
  • Reason code and initiated_by should be mapped correctly according to the sheet.
  • Won’t you charge for delivery as the out is already out for delivery.
  • RTO_fulfillment not captured correctly. Please refer to contract.

on_status_rto_delivered

  • RTO_fulfillment not captured correctly. Please refer to contract.
  • RTO_fulfillment.end.time.timestamp should be updated here as defined in contract and the quote trail will follow same as on_cancel.

Flow 6

On Update Part Cancel

  • Question: Why is on_update_part_cancel sent before order is accepted?

on_update_interim_liquidated

  • invoice should not be updated after on_status_picked

@punithrj26

@punithrj26
Copy link
Contributor

@Jagannath-wits

Hi jagannath,

We are able to see the mentioned merchant-16470689776923676 in on_search of flow 1 "Merchant-16470689776923676 provider does not exist in on_search." Available here https://github.com/ONDC-Official/v1.2.0-logs/blob/master/Tipplr/tipplr-v1.2-logs(F%26B-RET11)-03-July/Flow_1/2.%20on_search_full_catalog_refresh.json

Our latest logs are available in this folder: https://github.com/ONDC-Official/v1.2.0-logs/tree/master/Tipplr/tipplr-v1.2-logs(F%26B-RET11)-03-July.

Can you please confirm that you have used the same folder mentioned above for the log verification process.

Thank you.

@srinii99
Copy link

srinii99 commented Jul 11, 2024 via email

@Jagannath-wits
Copy link

Tipplr

Flow 1

on_search

  • Don't provide placeholder offers as offers are not enabled yet.
  • You can provide a timing object with type ‘All’ if the timing for both order and fulfillments is the same.

search_inc

  • Static terms are not enabled yet; please remove bap_terms.

Flow 2

on_status

  • If tracking is true, a tracking object should be provided.

Flow 5

on_cancel

  • Reason should be the same in order.cancellation and cancel_request.
  • Reason code and initiated_by should be mapped correctly according to the sheet.
  • Won’t you charge for delivery as the out is already out for delivery.
  • RTO_fulfillment not captured correctly. Please refer to contract.

on_status_rto_delivered

  • RTO_fulfillment not captured correctly. Please refer to contract.
  • RTO_fulfillment.end.time.timestamp should be updated here as defined in contract and the quote trail will follow same as on_cancel.

Flow 6

On Update Part Cancel

  • Question: Why is on_update_part_cancel sent before order is accepted?

on_update_interim_liquidated

  • invoice should not be updated after on_status_picked

@punithrj26

@srinii99 @punithrj26 Please refer to the updated issues now

@srinii99
Copy link

@Jagannath-wits @sandeepshahi @sahil-ondc

Thanks for the feedback , below are our comments :

Flow 1 :
on_search
1 . Don't provide placeholder offers as offers are not enabled yet. - REMOVED THE PLACEHOLDER
2. You can provide a timing object with type ‘All’ if the timing for both order and fulfillments is the same - SELECTING 'ALL' WILL ENABLE PICKUP OPTION, SINCE WE DON'T SUPPORT PICKUP OPTION, WE HAVE DISABLED 'ALL ' OPTION. ALREADY DISCUSSED THE SAME WITH SANDEEP / SAHIL ABOUT THIS AND THEY HAD AGREED WITH OUR SUGGESTION.

search_inc

  1. Static terms are not enabled yet; please remove bap_terms - REMOVED THE STATIS TERMS

Flow 2
on_status

  1. If tracking is true, a tracking object should be provided- WE HAVE MADE THE NECESSARY CHANGES

Flow 5
on_cancel

  1. Reason should be the same in order.cancellation and cancel_request - WE HAVE MADE THE NECESSARY CHANGES
  2. Reason code and initiated_by should be mapped correctly according to the [sheet] - CORRECTED (https://docs.google.com/spreadsheets/d/1_qAtG6Bu2we3AP6OpXr4GVP3X-32v2xNRNSYQhhR6kA/edit?gid=1095388031#gid=1095388031).
  3. Won’t you charge for delivery as the out is already out for delivery - NO WE ARE NOT CHARGING WHEN THE ORDER IS CANCELLED , SINCE WE HAVE OUR OWN DELIVERY FLEET AND THE CUSTOMER WOULD HAVE PAID FOR DELIVERY WHILE PLACING, HENCE WE ARE NOT CHARGING AGAIN.
  4. RTO_fulfillment not captured correctly. Please refer to contract - WE DON'T HAVE RTO DELIVERY SINCE IT IS AN FOOD ITEM, HENCE WE ARE DISPOSING THE ITEM

Flow 6
On Update Part Cancel

  1. Question: Why is on_update_part_cancel sent before order is accepted? - BASED ON OUR DISCUSSION WITH SANDEEP, WE WERE ADVISED TO UPDATE PART CANCEL IF ONE OF THE ITEM IS OUT OF STOCK. SO BEFORE ACCEPTING THE ORDER, IF ANY ITEM IS OUT OF STOCK, WE CANCEL THAT PARTICULAR ITEM AND THEN ACCEPT THE ORDER.

on_update_interim_liquidated

  1. invoice should not be updated after on_status_picked : WE CROSSED CHECKED THE INVOICE AND NO WHERE IT IS GETTING CHANGED. AS SOON AS THE ORDER IS ACCEPTED, WE ARE GENERATING THE INVOICE, IN CASE PART CANCELLATION, WE ARE UPDATING THE INVOICE, ELSE WE ARE KEEPING THE SAME TILL THE ORDER IS DELIVERED.

@srinii99
Copy link

srinii99 commented Jul 12, 2024

@Jagannath-wits @sahil-ondc @sandeepshahi

Hi Jagannath,

We have made the necessary changes as per your feedback. Before we raise the PR, can you please provide us your feedback for the below comments, so that if any changes we can fix else we can go ahead and raise the PR.

Flow 1 :
on_search
1.You can provide a timing object with type ‘All’ if the timing for both order and fulfillments is the same -

OUR COMMENT ;

Selecting 'ALL' will enable pickup option, since we dont support pickup optkion, we have disabled 'ALL' option. We have already discussed this issue with Sandeep/ Sahil and they have agreed with our suggestions.

Flow 5
on_cancel

1.Won’t you charge for delivery as the out is already out for delivery -

Our Comment :
NO, we are not charging when the order is cancelled, since we have our own delivery fleet and the customer while placing the order , would have paid for the delivery, hence we are not charging again.

2.RTO_fulfillment not captured correctly. Please refer to contract -
Our Comment :
We dont have RTO Delivery since this is an perishable items, hence we dispose the item

Flow 6
On Update Part Cancel

Question: Why is on_update_part_cancel sent before order is accepted? -

Our Comment :
Based on our discussion with Sandeep, we were advised to update part cancel if one of the items are out of stock. So, before accepting the order, if any item is out of stock, we cancel that particular item and then accept the order.

on_update_interim_liquidated

invoice should not be updated after on_status_picked :

Our Comment :
We crossed checked the invoice and no where it is getting changed. As soon as the order is accepted, we are generating the invoice. In case of part cancellation, we are updating the invoice, else we are keeping the same invoice

@Jagannath-wits
Copy link

Flow 1 : on_search 1.You can provide a timing object with type ‘All’ if the timing for both order and fulfillments is the same -

OUR COMMENT ;

Selecting 'ALL' will enable pickup option, since we dont support pickup opttion, we have disabled 'ALL' option. We have already discussed this issue with Sandeep/ Sahil and they have agreed with our suggestions.

- 'All' only covers timing for order and the provided fulfillments and not all types of fulfillments

Flow 5 on_cancel

1.Won’t you charge for delivery as the out is already out for delivery -

Our Comment : NO, we are not charging when the order is cancelled, since we have our own delivery fleet and the customer while placing the order , would have paid for the delivery, hence we are not charging again.

  • Acknowledged

2.RTO_fulfillment not captured correctly. Please refer to contract - Our Comment : We dont have RTO Delivery since this is an perishable items, hence we dispose the item

  • Acknowledged

Flow 6 On Update Part Cancel

Question: Why is on_update_part_cancel sent before order is accepted? -

Our Comment : Based on our discussion with Sandeep, we were advised to update part cancel if one of the items are out of stock. So, before accepting the order, if any item is out of stock, we cancel that particular item and then accept the order.

  • Acknowledged

on_update_interim_liquidated

invoice should not be updated after on_status_picked :

Our Comment : We crossed checked the invoice and no where it is getting changed. As soon as the order is accepted, we are generating the invoice. In case of part cancellation, we are updating the invoice, else we are keeping the same invoice

- Ok please, proceed with the fixes
@srinii99 @punithrj26

@srinii99
Copy link

Hi ONDC Team,

We have made the necessary changes as per the suggestions above and have submitted the logs, the PR # 2061

@sandeepshahi
Can you please merge the logs
@Jagannath-wits
It would be really helpful , if you could review the logs ( once merged) and provide us the feedback , so that we can work on it immediately . Appreciate your quick response.

Thanks,
Srini

@punithrj26
Copy link
Contributor

@Jagannath-wits
Hi Jagannath,

Our Pr is merged in master.
Can you please go through our logs and give feedback on it.

Thanks.

@punithrj26
Copy link
Contributor

@Jagannath-wits @sandeepshahi

Hi Team,

Please let us know the status of the uploaded logs.

Thanks.

@sandeepshahi
Copy link
Member

Flow 1

/on_search

  • entire store address shouldn't be provided in /locations/address/street; some buyer apps may put length restrictions
  • store timings in /locations/time/schedule doesn't match with timing in /tags/timing; for fixed timing use "range" instead of schedule/frequency and schedule/times
  • supporting nested customizations are mandatory
  • returnable is set as true but return window is set as 0 days. why?
  • for above point return window can't be 0 irrespetive of returnable flag;
  • default customization must be set for custom group with config.min > 0
  • upper/lower price range and default_selection price ranges must be supported in /items/price for base item
  • tags/type is missing for base item: "food_item-170383210588937185"; must be present for items associated with custom group

/inc search

  • isn't push based incremental supported?
  • both inc /search and /on_search seem mocked; check below points
  • correct snapshop of incremental changes should be provided;
  • How can the timestamp at /locations/time be earlier than the one provided in the full catalog pull?
  • "schedule" need not be provided in incremental call;

Flow 2

  • isn't context/timestamp precise upto milliseconds level?

/on_select

  • tags/type is missing for base item: "food_item-170383210588937185" in /items and quote/breakup; applicable for subsequent APIs

/on_confirm

  • how can estimated pickup and delivery time ranges be provided even before the order is accepted?

/on_status

  • invoice should only be provided once the order is picked
  • delivery TAT should not change; must remain the same as in /on_select; why is there discrepancy in the data population?
  • Is Agent-assigned state supported?
  • where is the contact information in /start/contact being captured from?
  • Order-delivered: invalid usage of DCC code in /end/instructions

Flow 3

/on_select (OOS)

  • out of stock details should also be communicated through incremental calls
  • customization doesn't seem to be OOS as per the quote/breakup; shouldn't be included in error/message

Flow 4

/on_cancel

  • parent_item_id and tags/type should not be from /items
  • "Created" is not a valid "fulfillment_state" in "precancel_state"
  • subtype should be provided in quote_trail for base items and associated customizations

Flow 5

/on_cancel (RTO)

  • similar issues as in Flow 4
  • RTO initiation timestamp /start/time/timestamp can't be future dated

/on_status (disposed)

  • message_id should be unique for unsolicited call
  • Why is there such a long delay in disposing of the RTO?

Flow 6

/on_update (interim)

  • /items should not be updated in interim state; returned item(s) should not be mapped to return shipment until the order is liquidated

/on_update (liquidated)

  • updated_at timestamp is not captured correctly

@punithrj26 @srinii99

@Jagannath-wits, FYR

@sandeepshahi
Copy link
Member

Flow 1

/on_search

  • short_desc and long_desc should be provided
  • default_section, upper/lower range need not be provided for independent SKUs; only required for customizable items

Flow 5

/on_status (RTO)

  • on_status (disposed) can’t have the same timestamp as in /on_cancel

Flow 6

/on_update (part cance/liquidatedl)

  • part cancelled/lilquidated item mapped with forward shipment should be included in quote/breakup with remaining count (0 here)

@punithrj26 @srinii99

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants