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

StelCore - B2C Exports - compliance check #1635

Open
sonalishakya opened this issue Aug 12, 2024 · 13 comments
Open

StelCore - B2C Exports - compliance check #1635

sonalishakya opened this issue Aug 12, 2024 · 13 comments

Comments

@sonalishakya
Copy link

sonalishakya commented Aug 12, 2024

StelCore (B2C Export)

All Flows --

Flow error -->
Incorrect Flow as per context/timestamps - Timestamps cannot be same and should be in the following order

  • search,on_search,select,on_select,init,on_init,confirm,on_confirm,status,on_status

Schema error -->

/on_search

  1. Datatype of message > catalog > descriptor > images should be an array of objects, does not take value string value such as "NA".
  2. Datatype of message > catalog > providers should be an array.
  3. Invalid context > location > city > code for exports; use std:999.

/on_select

  1. message > order > fulfillment > 0 must have required property '@ondc/org/TAT'
  2. message > order > fulfillment > 0 must have required property 'state'
  3. message > order must have required property 'payments', not 'payment'.
  4. Invalid context > location > city > code for exports; use std:999.

/init

  1. message > order > billing > tax_id should be valid
  2. Invalid context > location > city > code for exports; use std:999.

/on_init

  1. message > order must have required property 'payments', not 'payment'
  2. message > order > fulfillments > @ondc1org1provider_name must be equal to constant (Loadshare)
  3. Invalid context > location > city > code for exports; use std:999.

/on_confirm

  1. message > order must have required property 'payments', not 'payment'
  2. message > order must have required property 'created_at'
  3. message > order must have required property 'updated_at'
  4. message > order > fulfillments > 0 tracking must be boolean, not string
  5. message > order > fulfillments > 0 rateable must be boolean, not string
  6. Invalid context > location > city > code for exports; use std:999.

/status

  1. message > order > id mismatch from /confirm
  2. Invalid context > location > city > code for exports; use std:999.

/on_status

  1. /on_status message > order > created_at and /confirm order > created_at should remain same - "2023-02-03T09:30:00.000Z"
  2. buyer_app_finder_fee_amount must be equal to constant (0) {same through all the payloads}
  3. message > order > id mismatch from /confirm
  4. Invalid context > location > city > code for exports; use std:999.

Flow 2 --

/on_select

  1. message > order > quote > breakup > 0 > @ondc/org/item_quantity should be updated to the available stock.

Flow 5 --

/on_select

  1. message > order > quote > price > value must be string
  2. message > order > quote > breakup > 0 > price must be object
  3. Mismatch in value of quote according to the breakup. Why are factors like packing charges, convenience fee included for 0 price.
  4. message > order > quote > breakup > 5 must have required property '@ondc/org/item_id'",

/on_init

  1. message > order > quote > price > value must be equal to constant
  2. message > order > quote > breakup > 0 > price must be object

Cancellation logs need to be provided

@StelCoreM

@sonalishakya
Copy link
Author

Log Report -- 30 August 2024

Report for Flow 1 --

on_search

on_search/0/message/catalog/descriptor/images/0 must be object, not a string
on_search/0/message/catalog/providers must be array, not an object

on_select

on_select/0/message/order/fulfillments/0/https://github.com/ondc1org1category must be equal to one of the allowed values (Express Delivery,Standard Delivery,Immediate Delivery,Same Day Delivery,Next Day Delivery)
on_select/0/message/order/fulfillments/0/https://github.com/ondc1org1TAT must match format "duration"
on_select/0/message/order/quote, the price values should add up to the final price
on_select/0/message/order/quote/price/value must be string
on_select/0/message/order/quote/breakup/0/price must be object
on_select/0/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces
on_select/0/message/order/payments/0 must have required property 'collected_by'

on_init

/on_init/0/message/order/provider/locations must be object not array
/on_init/0/message/order/fulfillments/0/https://github.com/ondc1org1provider_name must be equal to constant (ShipRocket)
/on_init/0/message/order/fulfillments/0/https://github.com/ondc1org1TAT must be equal to constant (5)
/on_init/0/message/order/quote, the price values should add up to the final price
/on_init/0/message/order/quote/price/value must be string
/on_init/0/message/order/quote/price/value must be equal to constant (580)
/on_init/0/message/order/quote/breakup/0/price must be object
/on_init/0/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces
/on_init/0/message/order/payments/0 must have required property '@ondc/org/buyer_app_finder_fee_type'
/on_init/0/message/order/payments/0 must have required property '@ondc/org/buyer_app_finder_fee_amount'

confirm

/confirm/0/message/order/billing/tax_id must be equal to constant (27AADCB2230M1ZT)
/confirm/0/message/order/quote/price/value must be equal to constant (250)
/confirm/0/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/confirm/0/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces

on_confirm

/on_confirm/0/message/order must have required property 'id'
/on_confirm/0/message/order must NOT have additional properties (payment), should be payments
/on_confirm/0/message/order/billing/tax_id must be equal to constant (27AADCB2230M1ZT)
/on_confirm/0/message/order/fulfillments/0/https://github.com/ondc1org1provider_name must be equal to constant (ShipRocket)
/on_confirm/0/message/order/fulfillments/0/https://github.com/ondc1org1category must be equal to constant (Standard Delivery)
/on_confirm/0/message/order/fulfillments/0/https://github.com/ondc1org1TAT must be equal to constant (5)
/on_confirm/0/message/order/quote, the price values should add up to the final price
/on_confirm/0/message/order/quote/price/value must be string
/on_confirm/0/message/order/quote/breakup/0/price must be object
/on_confirm/0/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces
/on_confirm/0/message/order/created_at should remain same as in /confirm - "2024-08-07T09:30:00.000Z"

on_status

/on_status/0/message/order must NOT have additional properties (brdName)
/on_status/0/message/order must NOT have additional properties (tags)
/on_status/0/message/order/fulfillments/0 must have required property '@ondc/org/provider_name', remove trailing spaces
/on_status/0/message/order/fulfillments/0/stops/0 must have required property 'time'
/on_status/0/message/order/fulfillments/0/stops/1 must have required property 'time'
/on_status/0/message/order/fulfillments/0/stops/1/location/id must be string
/on_status/0/message/order/quote, the price values should add up to the final price
/on_status/0/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/on_status/0/message/order/quote/breakup/0 must have required property '@ondc/org/title_type', remove trailing spaces

/on_status/1/message/order must NOT have additional properties (brdName)
/on_status/1/message/order must NOT have additional properties (tags)
/on_status/1/message/order/fulfillments/0 must have required property '@ondc/org/provider_name', remove trailing spaces
/on_status/1/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Domestic-Custom-Cleared,Pickup-Approved,Pending,Packed,Searching-for-Agent,Agent-assigned,Out-for-pickup,Pickup-failed,Pickup-rescheduled,Order-picked-up,In-transit,At-destination-hub,Out-for-delivery,Delivery-failed,Delivery-rescheduled,Order-delivered,RTO-Initiated,RTO-Delivered,RTO-Disposed,Cancelled)
/on_status/1/message/order/fulfillments/0/stops/0 must have required property 'time'
/on_status/1/message/order/fulfillments/0/stops/1 must have required property 'time'
/on_status/1/message/order/fulfillments/0/stops/1/location/id must be string
/on_status/1/message/order/quote, the price values should add up to the final price
/on_status/1/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/on_status/1/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces

/on_status/2/message/order must NOT have additional properties (brdName)
/on_status/2/message/order must NOT have additional properties (tags)
/on_status/2/message/order/fulfillments/0 must have required property '@ondc/org/provider_name', remove trailing spaces
/on_status/2/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Domestic-Custom-Cleared,Pickup-Approved,Pending,Packed,Searching-for-Agent,Agent-assigned,Out-for-pickup,Pickup-failed,Pickup-rescheduled,Order-picked-up,In-transit,At-destination-hub,Out-for-delivery,Delivery-failed,Delivery-rescheduled,Order-delivered,RTO-Initiated,RTO-Delivered,RTO-Disposed,Cancelled)
/on_status/2/message/order/fulfillments/0/stops/0 must have required property 'time'
/on_status/2/message/order/fulfillments/0/stops/1 must have required property 'time'
/on_status/2/message/order/fulfillments/0/stops/1/location/id must be string
/on_status/2/message/order/quote, the price values should add up to the final price
/on_status/2/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/on_status/2/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces

/on_status/3/message/order must NOT have additional properties (brdName)
/on_status/3/message/order must NOT have additional properties (tags)
/on_status/3/message/order/fulfillments/0 must have required property '@ondc/org/provider_name', remove trailing spaces
/on_status/3/message/order/fulfillments/0/stops/0 must have required property 'time'
/on_status/3/message/order/fulfillments/0/stops/1 must have required property 'time'
/on_status/3/message/order/fulfillments/0/stops/1/location/id must be string
/on_status/3/message/order/quote, the price values should add up to the final price
/on_status/3/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/on_status/3/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces

/on_status/4/message/order must NOT have additional properties (brdName)
/on_status/4/message/order must NOT have additional properties (tags)
/on_status/4/message/order/fulfillments/0 must have required property '@ondc/org/provider_name', remove trailing spaces
/on_status/4/message/order/fulfillments/0/stops/0 must have required property 'time'
/on_status/4/message/order/fulfillments/0/stops/1 must have required property 'time'
/on_status/4/message/order/fulfillments/0/stops/1/location/id must be string
/on_status/4/message/order/quote, the price values should add up to the final price
/on_status/4/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/on_status/4/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces

/on_status/5/message/order must NOT have additional properties (brdName)
/on_status/5/message/order must NOT have additional properties (tags)
/on_status/5/message/order/fulfillments/0 must have required property '@ondc/org/provider_name', remove trailing spaces
/on_status/5/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Domestic-Custom-Cleared,Pickup-Approved,Pending,Packed,Searching-for-Agent,Agent-assigned,Out-for-pickup,Pickup-failed,Pickup-rescheduled,Order-picked-up,In-transit,At-destination-hub,Out-for-delivery,Delivery-failed,Delivery-rescheduled,Order-delivered,RTO-Initiated,RTO-Delivered,RTO-Disposed,Cancelled)
/on_status/5/message/order/fulfillments/0/stops/0 must have required property 'time'
/on_status/5/message/order/fulfillments/0/stops/1 must have required property 'time'
/on_status/5/message/order/fulfillments/0/stops/1/location/id must be string
/on_status/5/message/order/quote, the price values should add up to the final price
/on_status/5/message/order/quote/breakup/0 must have required property '@ondc/org/item_id', remove trailing spaces
/on_status/5/message/order/quote/breakup/* must have required property '@ondc/org/title_type', remove trailing spaces

@StelCoreM - As discussed and explained in the call earlier, kindly resolve the recurring issues. Reach out to me in case of any confusion.

@sonalishakya
Copy link
Author

Log Report -- 06 September 2024

Flow 1 --

Schema Errors --

on_search

/on_search/0/message/catalog/providers/0 must have required property 'creds'
/on_search/0/message/catalog/providers/0 must have required property 'fulfillments'
/on_search/0/message/catalog/providers/0/descriptor must have required property 'images'
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'city'
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'state'
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'country'
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'area_code'
/on_search/0/message/catalog/providers/0/locations/0/address must be string
/on_search/0/message/catalog/providers/0/items/* must have required property 'cancellation_terms'
/on_search/0/message/catalog/providers/0/items/* must have required property 'return_terms'
/on_search/0/message/catalog/providers/0/items/* must have required property 'recommended'
/on_search/0/message/catalog/providers/0/items//descriptor/images/0 must have required property 'url'
/on_search/0/message/catalog/providers/0/items//descriptor/images/1 must have required property 'url'
/on_search/0/message/catalog/providers/0/items//quantity/unitized/measure must have required property 'unit'
/on_search/0/message/catalog/providers/0/items//quantity/available/count must be integer
/on_search/0/message/catalog/providers/0/items//quantity/maximum/count must be integer
/on_search/0/message/catalog/providers/0/items//tags/2/list/2/value must be string

on_init

/on_init/0/message/order/provider/locations must be object
/on_init/0/message/order/fulfillments/0/id must be equal to constant (F1)

confirm

/confirm/0/message/order/quote/price/value must be equal to constant (240)
/confirm/0/message/order/quote/breakup/4 must have required property '@ondc/org/title_type'
/confirm/0/message/order/quote/breakup/4 must match then schema

on_confirm

/on_confirm/0/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Pending)
/on_confirm/0/message/order/payments/0/https://github.com/ondc1org1withholding_amount must be equal to constant

on_status

/on_status//message/order must have required property 'id'
/on_status//message/order must have required property 'state'
/on_status//message/order/fulfillments/0 must have required property '@ondc/org/provider_name'
/on_status//message/order/quote/breakup/4 must have required property '@ondc/org/title_type'
/on_status//message/order/quote/breakup/4 must match \then\ schema
/on_status//message/order/payments/0/https://github.com/ondc1org1withholding_amount must be equal to constant (10.00)
/on_status/*/message/order/created_at order/created_at should remain same as in /confirm - \2024-09-03T05:30:32.189Z\

Context Errors --

on_select: context/timestamp difference between on_select and select should be within 30 seconds
on_init: context/timestamp difference between on_init and init should be within 5 seconds
on_confirm: context/timestamp difference between on_confirm and confirm should be within 5 seconds
on_status_1: Message Id cannot be same for different sets of APIs
on_status_2: Message Id cannot be same for different sets of APIs
on_status_3: Message Id cannot be same for different sets of APIs
on_status_4: Message Id cannot be same for different sets of APIs
on_status_5: Message Id cannot be same for different sets of APIs

Message Errors --

on_search
msngCreds: Creds are required for exports in /providers,
missingLoc-0-err: Location id/s 0 in /items does not exist in /providers/locations,
missingpymntIds-0-err: Payment id/s 2 in /items does not exist in /payments,
originFrmtErr: Country of origin should be in a valid 'ISO 3166-1 alpha-3' format e.g. IND, SGP,
missingItemTags-0-err: 'g3' tag/s required in /items/tags,
missingLoc-1-err: Location id/s 0 in /items does not exist in /providers/locations,
missingpymntIds-1-err: Payment id/s 2 in /items does not exist in /payments,
missingItemTags-1-err: 'g3' tag/s required in /items/tags
select
providerLocErr0: Provider location with id 'L1' does not exist in the catalog provided in /on_search,
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags
on_select
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags,
item-0-DiffErr: In /items, 'fulfillment_id' mismatch from /select for item with id 53a21701-67a5-4eb0-a3f3-1d3be70ac9c3
init
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags
on_init
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags,
feeTypeErr: Buyer Finder Fee amount mismatches from /search
confirm
feeTypeErr: Buyer Finder Fee amount mismatches from /search
on_confirm
strtlctnErr: fulfillments/start/location/id - undefined is not matching with the provider location id - L1 provided in /on_search,
feeTypeErr: Buyer Finder Fee amount mismatches from /search

Flow 2 --

Incorrect Flow as per context/timestamps - (on_select,search,on_search,select,init,on_init,confirm,on_confirm,status,on_status)

Schema Errors --

on_search

/on_search/0/context/transaction_id Transaction ID should be same across the transaction: \3de5491e-0ead-472a-845c-0c5dfe89e51d
/on_search/0/context/message_id Message ID for on_action API should be same as action API: \6b85ba7e-6d33-46a2-bd5e-0f08570999a0
/on_search/0/message/catalog/descriptor/images/0 must be object
/on_search/0/message/catalog/providers must be array

on_select

/on_select/0/context/location/city/code must be equal to constant (std:999)
/on_select/0/context/transaction_id Transaction ID should be same across the transaction: \b442ae3e-c167-4fef-adc3-0907fbe7e93b
/on_select/0/context/message_id Message ID for on_action API should be same as action API: \c2f02740-ff6f-4f50-92e8-4e4c5ee1cc26
/on_select/0/message/order must have required property 'payments'
/on_select/0/message/order/fulfillments/0 must have required property '@ondc/org/TAT'
/on_select/0/message/order/fulfillments/0 must have required property 'state'
/on_select/0/message/order/fulfillments/0 must NOT have additional properties (stops)
/on_select/0/message/order/quote/breakup/* must have required property '@ondc/org/title_type'
/on_select/0/message/order/quote/breakup/* must match \then\ schema
/on_select/1/message/order/fulfillments/0 must NOT have additional properties (provider_id)
/on_select/1/message/order/quote must pass \isQuoteMatching\ keyword validation

on_init

/on_init/0/message/order/provider/locations must be object
/on_init/0/message/order/quote/price/value must be equal to constant (15.00)

confirm

/confirm/0/message/order/quote/price/value must be equal to constant (180.00)
/confirm/0/message/order/quote/breakup/4 must have required property 'https://github.com/ondc/org/title_type'
/confirm/0/message/order/quote/breakup/4 must match \then\ schema

on_confirm

/on_confirm/0/message/order/payments/0/@ondc1org1withholding_amount must be equal to constant (70.00)

status

/status/0/message/order_id must be equal to constant (3148-547359-1234)

on_status

/on_status/0/message/order must have required property 'id'
/on_status/0/message/order must have required property 'state'
/on_status/0/message/order/fulfillments/0 must have required property '@ondc/org/provider_name'
/on_status/0/message/order/quote/breakup/4 must have required property 'https://github.com/ondc/org/title_type'
/on_status/0/message/order/quote/breakup/4 must match \then\ schema
/on_status/0/message/order/payments/0/@ondc1org1withholding_amount must be equal to constant (10.00)
/on_status/0/message/order/created_at order/created_at should remain same as in /confirm - \2024-09-03T05:30:32.189Z\

Context Error --

on_init: context/timestamp difference between on_init and init should be within 5 seconds
on_confirm: context/timestamp difference between on_confirm and confirm should be within 5 seconds
on_status_1: Message Id cannot be same for different sets of APIs
on_status_2: Message Id cannot be same for different sets of APIs
on_status_3: Message Id cannot be same for different sets of APIs
on_status_4: Message Id cannot be same for different sets of APIs
on_status_5: Message Id cannot be same for different sets of APIs

Message Error --

on_select
cityCodeErr: Invalid city code for exports
on_select_1
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags
select
itemErr0: Item Id '51be0f61-4e23-4a6a-8261-c2341e66695a' does not exist in /on_search
init
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags
on_init
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags,
feeTypeErr: Buyer Finder Fee amount mismatches from /search
confirm
feeTypeErr: Buyer Finder Fee amount mismatches from /search
on_confirm
strtlctnErr: fulfillments/start/location/id - undefined is not matching with the provider location id - L1 provided in /on_search,
feeTypeErr: Buyer Finder Fee amount mismatches from /search

Flow 5 --

Incorrect Flow as per context/timestamps - (search,on_search,on_select,select,init,on_init,confirm,on_confirm,status,on_status)

Schema Error --

/on_search/0/message/catalog/providers/0 must have required property 'creds',
/on_search/0/message/catalog/providers/0 must have required property 'fulfillments',
/on_search/0/message/catalog/providers/0/descriptor must have required property 'images',
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'city',
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'state',
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'country',
/on_search/0/message/catalog/providers/0/locations/0 must have required property 'area_code',
/on_search/0/message/catalog/providers/0/locations/0/address must be string,
/on_search/0/message/catalog/providers/0/items/0 must have required property 'cancellation_terms',
/on_search/0/message/catalog/providers/0/items/0 must have required property 'return_terms',
/on_search/0/message/catalog/providers/0/items/0 must have required property 'recommended',
/on_search/0/message/catalog/providers/0/items/0/descriptor/images/* must have required property 'url',
/on_search/0/message/catalog/providers/0/items/0/quantity/unitized/measure must have required property 'unit',
/on_search/0/message/catalog/providers/0/items/0/quantity/available/count must be integer,
/on_search/0/message/catalog/providers/0/items/0/quantity/maximum/count must be integer,
/on_search/0/message/catalog/providers/0/items/0/tags/2/list/2/value must be string,
/on_init/0/message/order/provider/locations must be object,
/on_init/0/message/order/fulfillments/0/id must be equal to constant (F1),
/confirm/0/message/order/quote/price/value must be equal to constant (180.00),
/confirm/0/message/order/quote/breakup/4 must have required property 'https://github.com/ondc/org/title_type',
/confirm/0/message/order/payments/0/@ondc1org1withholding_amount must be equal to constant (10.00),
/on_confirm/0/message/order must NOT have additional properties (cancellation_terms),
/on_confirm/0/message/order/payments/0/https://github.com/ondc1org1withholding_amount must be equal to constant (70.00),
/status/0/message/order_id must be equal to constant (3148-547359-1234),
/on_status//message/order must have required property 'id',
/on_status//message/order must have required property 'state',
/on_status//message/order/fulfillments/0 must have required property '@ondc/org/provider_name',
/on_status//message/order/quote/breakup/4 must have required property '@ondc/org/title_type',
/on_status//message/order/payments/0/https://github.com/ondc1org1withholding_amount must be equal to constant (10.00),
/on_status//message/order/created_at order/created_at should remain same as in /confirm - \2024-09-03T09:04:23.278Z,

Context Error --

select: Timestamp mismatch for /select
on_init: context/timestamp difference between on_init and init should be within 5 seconds
on_confirm: context/timestamp difference between on_confirm and confirm should be within 5 seconds
on_status_1: Message Id cannot be same for different sets of APIs
on_status_2: Message Id cannot be same for different sets of APIs
on_status_3: Message Id cannot be same for different sets of APIs
on_status_4: Message Id cannot be same for different sets of APIs
on_status_5: Message Id cannot be same for different sets of APIs

Message Error --

on_search
msngCreds: Creds are required for exports in /providers,
missingLoc-0-err: Location id/s 0 in /items does not exist in /providers/locations,
missingpymntIds-0-err: Payment id/s 2 in /items does not exist in /payments,
originFrmtErr: Country of origin should be in a valid 'ISO 3166-1 alpha-3' format e.g. IND, SGP,
missingItemTags-0-err: 'g3' tag/s required in /items/tags,
missingLoc-1-err: Location id/s 0 in /items does not exist in /providers/locations,
missingpymntIds-1-err: Payment id/s 2 in /items does not exist in /payments,
missingItemTags-1-err: 'g3' tag/s required in /items/tags

on_select
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags

select
providerLocErr0: Provider location with id 'L1' does not exist in the catalog provided in /on_search,
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags

init
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags

on_init
fullfntTagErr: Delivery terms (INCOTERMS) are required for exports in /fulfillments/tags,
feeTypeErr: Buyer Finder Fee amount mismatches from /search

confirm
feeTypeErr: Buyer Finder Fee amount mismatches from /search

on_confirm
strtlctnErr: fulfillments/start/location/id - undefined is not matching with the provider location id - L1 provided in /on_search,
feeTypeErr: Buyer Finder Fee amount mismatches from /search

@StelCoreM - Kindly go through the above report for the issues in the logs. Additionally, share a demo video for the same post fixing.

@sonalishakya
Copy link
Author

Log Report - 11 September 2024

Flow 1 --

Schema Issues -

/on_search/0/message/catalog/providers/0/locations/0/city must be object
/on_search/0/message/catalog/providers/0/locations/0/state must be object
/on_search/0/message/catalog/providers/0/locations/0/country must be object

/on_select/0/message/order/fulfillments/0 must have required property 'id'

/on_init/0/message/order/provider/id must be equal to provider_id in on_search

/confirm/0 context timestamp should be greater than created_at = updated_at
/confirm/0/message/order/quote/price/value must be equal to on_init quote/price/value

/on_confirm/0/message/order/id must be equal to order id in confirm payload
/on_confirm/0/message/order/created_at should remain same as in /confirm - \2024-09-09T10:50:05.007Z\

/status/0/message/order_id must be equal to order id in confirm payload

/on_status/0/message/order/id must be equal to order id in confirm payload
/on_status/0/message/order/quote/breakup/4 must have required property '@ondc/org/title_type' (remove space)
/on_status/0/message/order/created_at should remain same as in /confirm order/created_at - \2024-09-09T10:50:05.007Z\

Message Issues -

on_search
missingLocErr: Location id 0 in /items and in tag serviceabilty > location does not exist in /providers/locations
missingpymntIdsErr: Payment id 2 in /items does not exist in /payments
originFrmtErr: Country of origin should be in a valid 'ISO 3166-1 alpha-3' format e.g. IND SGP

select_0:
providerLocErr0: Provider location with id 'L1' does not exist in the catalog provided in /on_search

on_select_0:
item-0-DiffErr: In /items 'fulfillment_id' mismatch from /select for item with id 53a21701-67a5-4eb0-a3f3-1d3be70ac9c3

on_init_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

confirm_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

on_confirm_0:
strtlctnErr: fulfillments/start/location/id - undefined is not matching with the provider location id - L1 provided in /on_search
feeTypeErr: Buyer Finder Fee amount mismatches from /search

Add ons in flow 2 --

Flow Error:
0: Incorrect Flow as per context/timestamps - (on_selectsearchon_searchselectiniton_initconfirmon_confirmstatuson_status)

Schema:

/on_search/0/context/message_id Message ID should not be equal to transaction_id: \4f9c65ae-6e37-4adb-9647-ca94a9c3c823
/on_search/0/message/catalog/providers/0/items/0/tags/2/list/2/value must be string

/on_select/0/context/transaction_id Transaction ID should be same across the transaction: \1b9819b3-8e2f-421c-bff7-2a17ec65937b
/on_select/0/context/message_id Message ID for on_action API should be same as action API: \8a842eda-d2f0-4efc-bdee-5f05912eccd7
/on_select/0/message/order/fulfillments/0 must NOT have additional properties (provider_id)
/on_select/0/message/order/quote must be the sum of all below defined costs
/on_select/1/message/order/fulfillments/0 must have required property '@ondc/org/category'
/on_select/1/message/order/fulfillments/0/state/descriptor/code must be string
/on_select/1/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Serviceable, Non-serviceable)

/on_init/0/message/order/quote/price/value must be equal on_select quote price

Message:

on_select 0 and on_select 1 have same payloads with out of stock messages

on_select_1:
No /select call present for not in stock call with same message ID
quoteItemQuantity1: Item quantity in quote breakup should be equal to the items/quantity/selected/count
outOfStockErr: Error object with appropriate error code should be sent when the selected item quantity is not available

select_0:
providerLocErr0: Provider location with id 'L1' does not exist in the catalog provided in /on_search

Add on for flow 5 --

Schema Issues -

/on_search/0/message/catalog/providers/0/items/0/quantity/available/count must be integer,
/on_search/0/message/catalog/providers/0/items/0/quantity/maximum/count must be integer,

/on_init/0/message/order/quote/price/value must be equal on_select quote/price/value

/on_confirm/0/message/order must have the required property 'created_at'

@StelCoreM - Kindly refer to the log report above.

@sonalishakya
Copy link
Author

Flow 1 --

/on_search/0/message/catalog/providers/0/items/0/tags/2/list/2/value must be string
/on_search/0/message/catalog/providers/0/items/1/tags/2/list/2/value must be string

/on_select/0/context/message_id Message ID for on_action API should be same as action API: \66a41100-fc8e-4b5d-8ac9-c99332b11cc7\

/init/0/context/transaction_id Transaction ID should be same across the transaction: \454a775e-931d-4770-a227-5af139c8572d\

/on_init/0/context/message_id Message ID for on_action API should be same as action API: \0794585a-c18e-4918-93dd-995d6d789bcd
/on_init/0/message/order/fulfillments/0/id must be equal to constant (F1)

/on_confirm/0/context/message_id Message ID for on_action API should be same as action API: \0794585a-c18e-4918-93dd-995d6d789bcd
/on_confirm/0/message/order/id must be equal to constant (3149-710692-3421)

/status/0/message/order_id must be equal to constant (3142-096887-3330)

/on_status/*/message/order/id must be equal to constant (3149-710692-3421)
/on_status/0/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Domestic-Custom-ClearedPickup-ApprovedPendingPackedSearching-for-AgentAgent-assignedOut-for-pickupPickup-failedPickup-rescheduledOrder-picked-upIn-transitAt-destination-hubOut-for-deliveryDelivery-failedDelivery-rescheduledOrder-deliveredRTO-InitiatedRTO-DeliveredRTO-DisposedCancelled)

Message:

on_search_0:
missingLoc-0-err: Location id 0 in /items does not exist in /providers/locations
missingpymntIds-0-err: Payment id 2 in /items does not exist in /payments
originFrmtErr: Country of origin should be in a valid 'ISO 3166-1 alpha-3' format e.g. IND SGP

select_0:
providerLocErr0: Provider location with id 'L1' does not exist in the catalog provided in /on_search
flfillmentIDerr0: Fulfillment id 'F1' does not match with the catalog provided in /on_search

on_select_0:
item-0-DiffErr: In /items 'fulfillment_id' mismatch from /select for item with id 53a21701-67a5-4eb0-a3f3-1d3be70ac9c3

on_init_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

confirm_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

on_confirm_0:
strtlctnErr: fulfillments/start/location/id - undefined is not matching with the provider location id - L1 provided in /on_search
feeTypeErr: Buyer Finder Fee amount mismatches from /search

Flow 2 --

Flow Error:
0: Incorrect Flow as per context/timestamps - (on_select,search,on_search,select,init,on_init,confirm,on_confirm,status,on_status)

Schema:
/on_search/0/message/catalog/providers/0/items/0/tags/2/list/2/value must be string,
/on_search/0/message/catalog/providers/0/items/1/tags/2/list/2/value must be string,

/on_select/0/context/transaction_id Transaction ID should be same across the transaction: \589b90e0-fa6e-455b-bfb6-968fbdf10590,
/on_select/0/context/message_id Message ID for on_action API should be same as action API: \75d01967-5f68-4d10-8421-e502c500eec2,
/on_select/0/message/order/fulfillments/0 must NOT have additional properties (provider_id),
/on_select/0/message/order/quote must pass \isQuoteMatching\ keyword validation,
/on_select/1/message/order/fulfillments/0 must have required property '@ondc/org/category',
/on_select/1/message/order/fulfillments/0/state/descriptor/code must be string,
/on_select/1/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Serviceable,Non-serviceable),

/on_init/0/context/message_id Message ID for on_action API should be same as action API: \16bc5dbb-8d61-4a87-9a80-a557ff0d03a8,
/on_init/0/message/order/quote/price/value must be equal to constant (0),

/confirm/0/message/order/quote/price/value must be equal to constant (250.00),

/on_confirm/0/context/message_id Message ID for on_action API should be same as action API: \16bc5dbb-8d61-4a87-9a80-a557ff0d03a8,
/on_confirm/0/message/order/created_at should remain same as in /confirm - \2024-09-09T10:50:05.007Z,

/on_status/0/message/order/fulfillments/0/state/descriptor/code must be equal to one of the allowed values (Domestic-Custom-Cleared,Pickup-Approved,Pending,Packed,Searching-for-Agent,Agent-assigned,Out-for-pickup,Pickup-failed,Pickup-rescheduled,Order-picked-up,In-transit,At-destination-hub,Out-for-delivery,Delivery-failed,Delivery-rescheduled,Order-delivered,RTO-Initiated,RTO-Delivered,RTO-Disposed,Cancelled),
/on_status/0/message/order/payments/0/@ondc1org1withholding_amount must be equal to constant (10.00),
/on_status/0/message/order/created_at order/created_at should remain same as in /confirm - \2024-09-09T10:50:05.007Z,

Message:

on_select_1:
quoteItemQuantity1: Item quantity in quote breakup should be equal to the items/quantity/selected/count,
outOfStockErr: Error object with appropriate error code should be sent when the selected item quantity is not available

on_search_0:
missingLoc-0-err: Location id/s 0 in /items does not exist in /providers/locations,
missingpymntIds-0-err: Payment id/s 2 in /items does not exist in /payments,
originFrmtErr: Country of origin should be in a valid 'ISO 3166-1 alpha-3' format e.g. IND, SGP,

select_0:
providerLocErr0: Provider location with id 'L1' does not exist in the catalog provided in /on_search,

on_init_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

confirm_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

on_confirm_0:
strtlctnErr: fulfillments/start/location/id - undefined is not matching with the provider location id - L1 provided in /on_search,
feeTypeErr: Buyer Finder Fee amount mismatches from /search

@StelCoreM

@sonalishakya
Copy link
Author

Flow 1 & 5 --

Schema issue -
/on_init/0/message/order/provider must have required property 'locations'

on_init_0:
feeTypeErr: Buyer Finder Fee amount mismatches from /search

FLow 2 --

Flow Error -
0: Incorrect Flow as per context/timestamps - (on_select,search,on_search,select,init,on_init,confirm,on_confirm,status,on_status)

Schema Error -
on_select (For items not in stock)
/on_select/0/context/transaction_id Transaction ID should be same across the transaction: \6495d53b-ce51-4a17-a47a-827a70c74684
/on_select/0/context/message_id Message ID for on_action API should be same as action API: \349d0e67-a734-44cf-9976-10b4a93345e3
/on_select/0/message/order/provider/locations/0/id must be equal to constant (022)
/on_select/0/message/order/fulfillments/0 must NOT have additional properties (provider_id)
/on_select/0/message/order/quote must pass \isQuoteMatching\ keyword validation

/on_init/0/message/order/provider must have required property 'locations'
/on_init/0/message/order/fulfillments/0/id must be equal to constant (1)
/on_init/0/message/order/quote/price/value must be equal to constant (0)

/on_confirm/0/message/order/quote must pass \isQuoteMatching\ keyword validation
/on_confirm/0/message/order/tags must NOT have fewer than 2 items

Message Error -

on_select (For items not in stock)
"quoteItemQuantity1": "Item quantity in quote breakup should be equal to the items/quantity/selected/count"
"outOfStockErr": "Error object with appropriate error code should be sent when the selected item quantity is not available"

Note --

  1. Kindly share the correct payload for on_select call for out of stock flow within the same transaction and timestamp.
  2. Kindly resubmit fresh logs for the buyer and seller cancellation flows with the updated APIs.

@StelCoreM

@sonalishakya
Copy link
Author

Hi @StelCoreM

Seems like a great improvement in the logs. Below are few more errors from Flow 2. Kindly share the select call logs for the item out of stock payload as well (for the message ID check).
Also, the buyer and seller cancellation logs are not updated as per the updated APIs. Kindly share fresh logs so we could run a check against them as well.

Log report for Flow 2 --
Schema:
schemaErr0: /on_select/2/context/message_id Message ID for on_action API should be same as action API: ff5b72dc-362a-4cf9-a13b-d126b437e91a
schemaErr1: /on_init/0/message/order/provider must have required property 'locations'
schemaErr2: /on_confirm/0/message/order/quote must pass \isQuoteMatching\ keyword validation
schemaErr3: /on_confirm/0/message/order/tags must NOT have fewer than 2 items

Message:
on_select_0:
quoteItemQuantity1: Item quantity in quote breakup should be equal to the items/quantity/selected/count

@sonalishakya
Copy link
Author

@StelCoreM

Buyer and Seller Cancellation Flow Issues --

/on_confirm/0/message/order/cancellation_terms/2/fulfillment_state/descriptor/code must be equal to one of the allowed values - Domestic-Custom-Cleared
/on_cancel/0/message/order must NOT have additional properties (cancel)
/on_cancel/0/message/order must NOT have additional properties (documents)
/on_cancel/0/message/order/payments/1/collected_by must be equal to constant (buyer) in case of refund

For all the flows, kindly change the value of settlement type / payment type to OPGSP.
There seems to be a lot of discrepancy in the updated flow 2. Kindly share clean and fresh logs for the same.

@sonalishakya
Copy link
Author

@StelCoreM

Flow Issues --

Buyer Cancellation -
/on_cancel/0/message/order/payments/1/params/amount should be updated to updated quote price - "80.00" as per the refund amount set in the quote/breakup/ title": "Convenience Fee", "@ondc/org/title_type": "refund",

Seller Cancellation -
Refund details are not mentioned in payments for PRE-FULFILMENT orders.

Flow 2 -
The select and on_select call have different timestamps and message ID.
How are further calls (init - confirm) even possible if the select and on_select are not compatible and the only other select call is for item out of stock for the same item ID.

For all the flows, kindly change the value of settlement type / payment type to OPGSP.

@sonalishakya
Copy link
Author

@StelCoreM

Seller Cancellation — 
/on_cancel/0/message/order/quote, the quote/price/value is not matching the breakup (total amount should be item amount minus refund value)
/on_cancel/0/message/order/payments must NOT have fewer than 2 items, add second item with refund details which will be further collected_by the buyer.

Buyer Cancellation — 
/on_cancel/0/message/order/payments/1 must have collected_by as 'buyer’

Changes pending from RTGS —> OPGSP
Flows - confirm, on_confirm, on_status
Path - payments//@ondc1org1settlement_details//settlement_type

@sonalishakya
Copy link
Author

@StelCoreM

How is the total calculation for the quote break in buyer cancellation wrong (because 80 - 10 != 0) but correct for the seller cancellation, when both are running on the same API's code?

@StelCoreM
Copy link
Contributor

StelCoreM commented Oct 21, 2024 via email

@tanyamadaan
Copy link
Collaborator

/on_search:

  • seller_terms incorrectly used in tags.
  • category in serviceability tag group is referred to domain, not category. In case of single serviceability construct for all categories in the domain, use ex. RET10-*
  • seller_id has an incorrect gst no. seller_id is optional for b2c exports and if used, kindly specify the correct details.
  • dummy example values are used in FSSAI_LICENSE_NO. kindly use correct ones.
  • items.descriptor.code - use correct format. Considering this is exports, kindly use correct HSN codes. format- 4:
  • available count of item shows 0. any specific reason.
  • incorrect category_ids is used in items.
  • Cancellation terms - Kindly specify the cancellation terms for more terminal states.
  • return terms are mandatory.
  • items.tags.g3 is optional. Incoorectly used here.

@StelCoreM

@abhinavv245
Copy link
Collaborator

Flow 1

  • remove older files
  • all dummy values to be removed (for e.g. xxxxxx), provide real values for required fields, remove attributes for optional fields.

/on_select

  • discount should be a negative value in quote/breakup

/confirm

  • settlement_details/0/settlement_type must be equal to one of the allowed values (OPGSP)

/on_status

  • pickup and delivery slots cannot be updated in every on_status call.
  • once the pickup timestamp is recorded (fulfillments/stops(start)/time/timestamp), it should not be removed in the later calls (at-destination-hub, domestic custom cleared)
  • pickup and delivery instructions (PCC and DCC code in short_desc) should not be dummy values
  • dummy invoice url should not be used

Flow 2

  • similar issues as above

/on_select

  • both the select calls have the same quantity and item id selected, on what basis one of the select calls is rejected with out of stock error, this needs to be automated.

/on_init

  • provider must have required property 'locations' (instead of 'location')

Flow 5

  • similar issues

/init

  • howcome the flow has moved forward with the same location, when in on_select, location was non serviceable

Buyer Cancel

  • remove older files

/on_confirm

  • cancellation_terms/0/cancellation_fee/amount/currency 'IND' is not valid

/cancel

  • appropriate cancellation reason id to be used (how is BPP handling this)

Seller Cancel

/on_cancel

  • cancellation reason id 022 refers to payment failed due to ttl expiry, however the payment is already done, use appropriate reason codes as per Error-UI
  • invalid tags (cancel_request, precancel_state), not as per version 2.0.2

@StelCoreM Please remove older files to avoid confusion. Let us know if there are any concerns, we can have a call in that case.

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

4 participants