Orders by resource error code and message
How to use the Metrics API to check the errors associated with the orders of your organization (if any) .
The problem
You want to get the total number of orders over a selected date and time range, grouped by the associated resource error code. For each code, you also want to group the results by the related error message.
The solution
Query
You need to perform a breakdown query setting the required query keys as follows and adding the optional ones based on your needs:
by
resource_errors.code
field
order.id
operator
value_count
You also need to add a nested breakdown setting the related query keys as follows:
by
resource_errors.message
field
order.id
operator
value_count
Filter
Make sure to set the desired date and time range using the date_from
and date_to
keys in the filter.
As shown in the example below, use created_at
as the date_field
in the date filter if you want the results to count all the orders that were created in the selected date and time range (read more about this).
Example
The following request uses the Metrics API to get the total number of orders, grouped by the associated resource error code and message:
curl -g -X POST \
'https://{{your_domain}}.commercelayer.io/metrics/orders/breakdown' \
-H 'Accept: application/vnd.api.v1+json' \
-H 'Content-Type: application/vnd.api+json' \
-H 'Authorization: Bearer {{your_access_token}}' \
-d '{
"breakdown": {
"by": "resource_errors.code",
"field": "order.id",
"operator": "value_count",
"limit": 100,
"breakdown": {
"by": "resource_errors.message",
"field": "order.id",
"operator": "value_count",
"limit": 10
}
},
"filter": {
"order": {
"date_from": "2021-01-01T00:00:00Z",
"date_to": "2022-11-31T23:59:00Z",
"date_field": "created_at"
}
}
}'
Filtering specific error codes
The following request uses the Metrics API to get the total number of orders, grouped by the associated resource error code and message, filtering the ones related to some specific payment gateways only:
curl -g -X POST \
'https://{{your_domain}}.commercelayer.io/metrics/orders/breakdown' \
-H 'Accept: application/vnd.api.v1+json' \
-H 'Content-Type: application/vnd.api+json' \
-H 'Authorization: Bearer {{your_access_token}}' \
-d '{
"breakdown": {
"by": "resource_errors.code",
"field": "order.id",
"operator": "value_count",
"limit": 100,
"breakdown": {
"by": "resource_errors.message",
"field": "order.id",
"operator": "value_count",
"limit": 10
}
},
"filter": {
"order": {
"date_from": "2021-01-01T00:00:00Z",
"date_to": "2022-11-31T23:59:00Z",
"date_field": "created_at"
},
"resource_errors": {
"codes": {
"in": [
"ADYEN_ERROR",
"STRIPE_ERROR",
"PAYPAL_ERROR"
]
}
}
}
}'
Similar cases
Just changing a couple of query keys and/or filter parameters you can address lots of very similar use cases, such as:
Last updated