Links

Orders paid with gift cards

How to use the Metrics API to get the total number of orders that were paid using a gift card

The problem

You want to get the total number of orders that were (partially or totally) paid with any gift card, over a selected date and time range.

The solution

Query

You need to perform a stats query setting the required query keys as follows and adding the optional ones based on your needs:
Key
Value
field
order.id
operator
value_count

Filter

Set the desired date and time range using the date_from and date_to keys and add additional filters on the order field to restrict the related computation to paid orders associated with a gift card only:
Attribute
Operator
gift_card
true
payment_statuses
"in": [ "skus" ]
As shown in the example below, use approved_at as the date_field in the date filter if you want the results to count all the orders that were approved in the selected date and time range (read more about this).

​Try it on Postman
🚀
​

Example

Request
Response
The following request uses the Metrics API to get the total number of orders that were paid using any gift card:
curl -g -X POST \
'https://{{your_domain}}.commercelayer.io/metrics/orders/stats' \
-H 'Accept: application/vnd.api.v1+json' \
-H 'Content-Type: application/vnd.api+json' \
-H 'Authorization: Bearer {{your_access_token}}' \
-d '{
"stats": {
"field": "order.id",
"operator": "value_count"
},
"filter": {
"order": {
"date_from": "2021-01-01T00:00:00Z",
"date_to": "2021-12-31T23:59:00Z",
"date_field": "approved_at",
"gift_card": true,
"payment_statuses": {
"in": [ "paid" ]
}
}
}
}'
On success, the API responds with a 200 OK status code, returning the computed value in the data object and additional information in the meta object:
{
"data": {
"value": 1234
},
"meta": {
"type": "stats",
"trace_id": "fe571ea2-8a4f-4a5e-bd26-ac54651bb2e4",
"mode": "test",
"organization_id": "xYZkjABcde",
"market_ids": [ "yzXKjYzaCx", "..." ]
}
}

Similar cases

Just changing a couple of query keys and/or filter parameters you can address lots of very similar use cases, such as: