ONDC-Official / v1.1.0-logs

2 stars 107 forks source link

eVitalRx - compliance check #157

Closed BLR-0118 closed 1 year ago

BLR-0118 commented 1 year ago

Flow 1

  1. /on_search:
    • bpp/providers.time.label - valid values are "enable", "disable". You should use this to enable or disable stores;
    • item.quantity.available.count and maximum.count are string as per contract;
    • item.price.value & item.price.maximum_value are string;
    • for serviceability: type="12" (means pan-India), val should be "IND" and unit "country";
    • fulfillments.contact.phone should be 10 or 11 digit numeric only (no "+");
    • item.id encoding is based on hashed or encrypted val? This may create problems with signing.
  2. /select:
    • provider.id & location.id are different from what came in /on_search but item.id is the same. How?
  3. /on_init:
    • quote.breakup should have both total price & unit price (as in /on_select);
    • buyer_app_finder_fee_type should be "percent" (lower "p");
    • in payment block, remove everything except buyer_app_finder_fee_type, buyer_app_finder_fee_amount, settlement_details;
  4. /on_confirm:
    • remove order.documents which has invoice and add to /on_status when fulfillment state changes to "Order-picked-up";
  5. /on_status:
    • using same message_id as /confirm;
    • billing.updated_at should not change;
    • price.value, params.amount should be string;
    • remove settlement_basis, settlement_window;
  6. /on_status2:
    • same issues as for /on_status above;
    • fulfillment.start.time.timestamp should be set when fulfillment state becomes "Order-picked-up" and fulfillment.end.time.timestamp should be set when fulfillment state becomes "Order-delivered";
  7. /on_update:
    • item.quantity.count should not become 0 when status is "Return_Initiated";
    • you should have another unsolicited /on_update call where status is "Liquidated" and here item.quantity.count and item_quantity becomes 0 (use the same message_id here as in /update);
    • quote has 2 items but items has only 1 (it should have both these items);
    • fulfillments is empty array but fulfillment_id is referenced in items. Details of fulfillment "F1" should be in fulfillments;

Flow 3

BLR-0118 commented 1 year ago

@evital-manav

evital-manav commented 1 year ago

/on_search

  1. If we are not servicing pan India, let's say our sellers entertain orders in the range of 10 km, then is it valid? 6 It is based on encryption. It was in the 1.0.0 but did not get any error of signing.
evital-manav commented 1 year ago

/on_select did not get this point.

BLR-0118 commented 1 year ago

/on_search: for 10km radius, use type="10" (for radius based serviceability), val="10" (for 10 km as defined by unit), unit="km"; .on_select - there's nothing for /on_select but /select. why has the provider id & location id changed between on_search & select for the same items (as identified by the id);

BLR-0118 commented 1 year ago

@evital-manav

evital-manav commented 1 year ago

/select is with the same provider_id and same location_id, and 2 items are different.

  1. /on_status messsage_id should be different right? @BLR-0118
evital-manav commented 1 year ago

/on_update:

  1. fulfillment details still be needed for liquidated returns? @BLR-0118
BLR-0118 commented 1 year ago

yes, for both /on_status & /on_update

BLR-0118 commented 1 year ago

Flow 1

  1. /on_search:
    • serviceability of 100km radius may not work out as contract specifies that radius based serviceability be capped at 5km. Why don't you change this to pan-India?
  2. /on_select:
    • delivery charge needs to be provided for serviceable fulfillment (even if with 0 cost);
  3. /on_init:
    • same as 2
  4. /on_confirm: log is empty;
  5. /on_status, /on_status2, /on_status3:
    • billing.address.locality can't be empty;
    • billing.created_at & billing.updated_at should be the same as what's in /init;
    • "@ondc/org/provider_name" is "Mohit Chouhan" in on_select but is different here;
    • fulfillment.start.location.descriptor is "Mohit Pharma Admin loose" which is different from the provider name in on_search ("Manav Medical GJ");
    • fulfillment.end.location.address.locality can't be empty;
    • order.created_at must be same as what's in /confirm;
    • quote.breakup.price.value should be string;
    • delivery charge needs to be provided for fulfillment (even if with 0 cost);
  6. /on_update:
    • "Return_Initiated" means not yet approved for refund; hence, quote & quantity of item can't change here;
    • 2nd entry in order.items array should be removed;
    • quote & fulfillment should be same as what's in /on_status3;
  7. /on_update:
    • 2nd entry in order.items array should be removed;
    • fulfillment should be same as what's in /on_status3;
BLR-0118 commented 1 year ago

@evital-manav

BLR-0118 commented 1 year ago

Flow 2

  1. /on_select2:
    • fulfillment.state.descriptor.code should be "Non-serviceable" as the error (30009) is being sent;
    • for non-serviceable fulfillment, there should be no delivery charge in quote;
BLR-0118 commented 1 year ago

@evital-manav

BLR-0118 commented 1 year ago

Flow 3

  1. /on_update, /on_update2: changes should be consistent with what's mentioned for Flow 1 above;
BLR-0118 commented 1 year ago

@evital-manav

evital-manav commented 1 year ago

Flow 1: /on_search the sellers we connect are more into hyperlocal, that's why we kept it as radius based. the 100 km radius I had added in the staging for testing. will change it to below 5km.

  1. fulfillment.start.location.descriptor is "Mohit Pharma Admin loose" which is different from the provider name in on_search ("Manav Medical GJ") Both are different providers. Mohit Pharma Admin Loose is also in the on_search response.
evital-manav commented 1 year ago

/on_update: 2nd entry in order.items array should be removed;

It should be removed, because it is 0? @BLR-0118

BLR-0118 commented 1 year ago

/on_update: 2nd entry in order.items array should be removed;

It should be removed, because it is 0? @BLR-0118 If you're returning the entire qty for an item, you can set the status for that item entry. If you're returning part of the qty for an item, you can create a separate entry but the item.quantity can't be 0. It should be the qty that's being returned. It should be set to 0 in the quote indicating when the return approval reaches the refund trigger stage (e.g. liquidated or return picked);

evital-manav commented 1 year ago

Okay

BLR-0118 commented 1 year ago

Flow 1

  1. /on_status, /on_status2, /on_status3:
    • delivery charge of 50 in /on_confirm is 0 here. why?
BLR-0118 commented 1 year ago

@evital-manav

BLR-0118 commented 1 year ago

logs cleared for v1.1.0