ONDC-Official/v1.1.0-logs

Digiit - compliance checks

Closed this issue · 26 comments

Flow 1

  1. /on_search:
  • Context.timestamp same as for /search;
  • bpp/providers.time.timestamp should match Context.timestamp;
  • contact_details_consumer_care should have the format "name,email,contactno" as in the contract;
  • only non-deprecated categories from this list should be used;
  • serviceability construct for a provider should include all categories in the catalog;
  • item.fulfillment_id should be "1" matching the type for delivery;
  1. /on_select:
  • Context.timestamp should be RFC3339 compliant as per contract;
  1. /on_init:
  • payment: remove everything except buyer app finder fee type & amount, settlement_details;
  1. /on_confirm:
  • billing.created_at & updated_at should have the same timestamp as in /init;
  • order.created_at should have the same timestamp as in /confirm;
  • fulfillment."@ondc/org/provider_name" is different from what's in /on_select;
  1. /on_status (all APIs):
  • Context.timestamp should be RFC3339 compliant;
  1. /on_status_delivered: start.time.timestamp (pickup time) can't be same as end.time.timestamp (delivery time);

  2. No /update, /on_update flow?

Flow 2

  1. /on_select (non-serviceability): flow should be exactly as documented in API contract;

Flow 3

  1. /update & /on_update (return rejected): should be as per API contract;

@BLR-0118 We'll fix it asap

Flow 1

  1. /on_search:
  • timestamp for "enable" doesn't match Context.timestamp;
  • item.descriptor.code is not as per contract;
  • category_id has to be one of the non-deprecated categories in this list;
  • "month_year_of_manufacture_packing_import" should be in the format in the contract (i.e. "mm/yyyy");
  • keys with null value are invalid:
  • "@ondc/org/statutory_reqs_prepackaged_food": null,
    "@ondc/org/mandatory_reqs_veggies_fruits": null,
    "tags": {
    "veg": "",
    "non_veg": ""
    }
  • serviceability has to be defined for all categories in the catalog;
  • serviceability definition is invalid;
  1. /on_init:
  • fulfillment.provider_id is incorrect; this has been deprecated & should be removed;
  1. /on_status packed:
  • pickup time (fulfillment.start.time.timestamp) and delivery time (fulfillment.end.time.timestamp) should be set when the order is picked up (fulfillment state "Order-picked-up") or delivered ("Order-delivered");
  • order.updated_at not valid format (millisec should have 3 digits);
  1. /on_update:
  • return initiated is an interim state and liquidated a final state. Reverse qc fulfillment details need to be assigned only if the item needs to be actually returned. Check the logs for Shopalyst (for flow 1) to see how this should be done;

Flow 2

  1. /on_select:
  • error is not inside "order" but at the same level as "message" and "context";
  • when order is non-serviceable, how can there be a delivery charge?

Flow 3

  1. /on_update - no flow for return reject;

Flow 4

  1. /on_select:
  • for item "999", total price (breakup.price.value) should equal item price * qty (breakup.item.price.value * breakup."@ondc/org/item_quantity");

Flow 1

/on_search

  • must have required property schedule.holidays in bpp/providers/locations/time (can be an empty array)

/on_select

  • @ondc/org/TAT can't be smaller than time_to_ship in /on_search

/on_init

  • /quote must have required property 'ttl'
  • Billing object mismatches in /init and /on_init (door is not a part of /init address object)

/on_confirm

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

  • payment.uri and payment.params.transaction_id mismatches in /confirm and /on_confirm

/on_status

  • order.created_at should remain the same as in /confirm

/on_update (return initiated)

  • items[0] should be removed with count=0
  • fulfillment_id for reverse_qc is not created at Return_Initiated state
  • fulfillments[0] with id: 80853bb6-48dd-49de-ac6b-d1d649e800fe should have current state of the fulfillment and not the rto state
  • quote is not updated at Return_Initiated state
  • created_at, updated_at timestamps should be present

Flow 4

/on_update

  • item's total price is missing in quote.breakup
  • quote.price must match the quote.breakup total price

@vignesh-arvind

@bluecypher

Flow 1:

items[0] should be removed with count=0

Qtn: Should this be removed? Since, in on_select we must send the items with available quantity. In case of item unavailability, it will be sent as 0.

Flow 4

item's total price is missing in quote.breakup

Qtn: In the contract for on_update, price object is not available in quote.breakup. Should we include it?
In approved logs that we took as reference, it was available in Liquidated state and hence we have included it there. Should we keep it?

@vignesh-arvind

  1. Why is the item's availability getting checked in /on_update?

  2. The schema should not change.

@bluecypher Flow 1 and Flow 4 comments are fixed

@BLR-0118 @bluecypher Kindly let me know if log verification is completed

Flow 1

  1. /on_search:
  • locations.gps and locations.circle.gps should match (since circle defines serviceability for the location);
  • pincode based serviceability not yet supported. If circle shows 5 km radius, why's the same not shown on serviceability construct?
  • fulfillments.contact.phone of 98454232 is not 10/11 digits (as spec'd in contract);
  1. /on_confirm:
  • diff b/w on_confirm & confirm timestamp is 13 secs. Why?
  • invoice should be added in /on_status after fulfillment state is shipped;
  1. /on_status Picked:
  • pickup time (fulfillment.start.time.timestamp) is required when order is picked up;
  1. /on_update Return Initiated:
  • fulfillment id is reqd for item for which return is initiated;
  1. /on_update Liquidated:
  • message_id should be same as update (as doc'd in the editable version of contract);
  • also 4 above;

Flow 2

  1. /on_cancel:
  • message_id same as in on_confirm;

Flow 3

  1. /on_update Return Initiated:
  • why is item qty count 0 for return initiated here? (is ok in flow 1);

pls resubmit logs for the flows which have issues (above)
@vignesh-arvind

Flow 1

  1. /on_search:
  • item.descriptor.code should have the full value in string (not in exponent form);
  • both old & new serviceability should be defined;
  • only non-deprecated categories from this list should be used ("Packaged Commodities" is deprecated);
  1. /on_select:
  • TAT of 5h 45 mins isn't immediate delivery which has TAT of <= 1hr;
  • what does fulfillment."@ondc/org/provider_name" of "Ganesh" hear mean? It doesn't match any of the provider names in the catalog;
  1. /on_update (return initiated):
  • quote.breakup has item_quantity & item as null for title_type="delivery"; this should be removed (this isn't in on_update liquidated);
  1. /on_update (liquidated):
  • item that's liquidated should show in quote.breakup with item_quantity as 0 (as documented in the contract);

pls resubmit logs for flow 1
@vignesh-arvind

@BLR-0118 Flow 1 logs have been submitted , kindly verify

  1. /on_init:
  • billing.created_at, updated_at timestamp is invalid (last 0 in millisec truncated). This is ok in /on_confirm. Why?
  1. /on_confirm:
  • diff between Context.timestamp for on_confirm & confirm is almost 18 secs. Why?
    Pls resubmit logs up to on_confirm
  1. /select, /init:
  • what's fulfillment.provider_id here for?
  1. /confirm:
  • what's item.category_id for?
  1. /on_confirm:
  • payment."@ondc/org/settlement_s" is invalid

@BLR-0118 The above comments are resolved , Pls review

@BLR-0118 Hi Supriyo, any update on the logs

Flow 1

  1. Why are the store coordinates (fulfillment.start.location.gps in /on_confirm) different from locations.gps (in /on_search) for provider "171".

@BLR-0118 Comments regarding (fulfillment.start.location.gps) has been fixed

@BLR-0118 Hi Supriyo,
any update on the logs

Hi Supriyo @BLR-0118

is the logs are verified ?

logs cleared for v1.1.0
@vignesh-arvind