curl --request POST \
--url https://{host}/pos-discount/v1/discounted-purchases \
--header 'Content-Type: application/json' \
--data '
{
"receiptId": "fb7eb632-886f-4a5b-92c8-c63943006cf2",
"storeId": "475",
"memberId": "12396909",
"currencyCode": "DKK",
"totalAmount": 650,
"totalTaxAmount": 0,
"purchaseDateTimeUtc": "0001-01-01T00:00:00",
"purchaseBusinessDateTime": "0001-01-01T00:00:00",
"paymentMethods": [],
"products": [
{
"id": "d3ca42d7-b7ab-4c18-8293-1d39008a4e40",
"sequenceNumber": 1,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 2
},
"originalPrice": 200,
"price": 200
},
{
"id": "fd324399-ef53-4cba-8172-f855539e7a71",
"sequenceNumber": 2,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 3
},
"originalPrice": 450,
"price": 450
}
],
"discounts": [],
"taxes": []
}
'import requests
url = "https://{host}/pos-discount/v1/discounted-purchases"
payload = {
"receiptId": "fb7eb632-886f-4a5b-92c8-c63943006cf2",
"storeId": "475",
"memberId": "12396909",
"currencyCode": "DKK",
"totalAmount": 650,
"totalTaxAmount": 0,
"purchaseDateTimeUtc": "0001-01-01T00:00:00",
"purchaseBusinessDateTime": "0001-01-01T00:00:00",
"paymentMethods": [],
"products": [
{
"id": "d3ca42d7-b7ab-4c18-8293-1d39008a4e40",
"sequenceNumber": 1,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 2
},
"originalPrice": 200,
"price": 200
},
{
"id": "fd324399-ef53-4cba-8172-f855539e7a71",
"sequenceNumber": 2,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 3
},
"originalPrice": 450,
"price": 450
}
],
"discounts": [],
"taxes": []
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
receiptId: 'fb7eb632-886f-4a5b-92c8-c63943006cf2',
storeId: '475',
memberId: '12396909',
currencyCode: 'DKK',
totalAmount: 650,
totalTaxAmount: 0,
purchaseDateTimeUtc: '0001-01-01T00:00:00',
purchaseBusinessDateTime: '0001-01-01T00:00:00',
paymentMethods: [],
products: [
{
id: 'd3ca42d7-b7ab-4c18-8293-1d39008a4e40',
sequenceNumber: 1,
categoryId: '1',
quantity: {unitOfMeasure: 'pcs', value: 2},
originalPrice: 200,
price: 200
},
{
id: 'fd324399-ef53-4cba-8172-f855539e7a71',
sequenceNumber: 2,
categoryId: '1',
quantity: {unitOfMeasure: 'pcs', value: 3},
originalPrice: 450,
price: 450
}
],
discounts: [],
taxes: []
})
};
fetch('https://{host}/pos-discount/v1/discounted-purchases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/pos-discount/v1/discounted-purchases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'receiptId' => 'fb7eb632-886f-4a5b-92c8-c63943006cf2',
'storeId' => '475',
'memberId' => '12396909',
'currencyCode' => 'DKK',
'totalAmount' => 650,
'totalTaxAmount' => 0,
'purchaseDateTimeUtc' => '0001-01-01T00:00:00',
'purchaseBusinessDateTime' => '0001-01-01T00:00:00',
'paymentMethods' => [
],
'products' => [
[
'id' => 'd3ca42d7-b7ab-4c18-8293-1d39008a4e40',
'sequenceNumber' => 1,
'categoryId' => '1',
'quantity' => [
'unitOfMeasure' => 'pcs',
'value' => 2
],
'originalPrice' => 200,
'price' => 200
],
[
'id' => 'fd324399-ef53-4cba-8172-f855539e7a71',
'sequenceNumber' => 2,
'categoryId' => '1',
'quantity' => [
'unitOfMeasure' => 'pcs',
'value' => 3
],
'originalPrice' => 450,
'price' => 450
]
],
'discounts' => [
],
'taxes' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/pos-discount/v1/discounted-purchases"
payload := strings.NewReader("{\n \"receiptId\": \"fb7eb632-886f-4a5b-92c8-c63943006cf2\",\n \"storeId\": \"475\",\n \"memberId\": \"12396909\",\n \"currencyCode\": \"DKK\",\n \"totalAmount\": 650,\n \"totalTaxAmount\": 0,\n \"purchaseDateTimeUtc\": \"0001-01-01T00:00:00\",\n \"purchaseBusinessDateTime\": \"0001-01-01T00:00:00\",\n \"paymentMethods\": [],\n \"products\": [\n {\n \"id\": \"d3ca42d7-b7ab-4c18-8293-1d39008a4e40\",\n \"sequenceNumber\": 1,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 2\n },\n \"originalPrice\": 200,\n \"price\": 200\n },\n {\n \"id\": \"fd324399-ef53-4cba-8172-f855539e7a71\",\n \"sequenceNumber\": 2,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 3\n },\n \"originalPrice\": 450,\n \"price\": 450\n }\n ],\n \"discounts\": [],\n \"taxes\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/pos-discount/v1/discounted-purchases")
.header("Content-Type", "application/json")
.body("{\n \"receiptId\": \"fb7eb632-886f-4a5b-92c8-c63943006cf2\",\n \"storeId\": \"475\",\n \"memberId\": \"12396909\",\n \"currencyCode\": \"DKK\",\n \"totalAmount\": 650,\n \"totalTaxAmount\": 0,\n \"purchaseDateTimeUtc\": \"0001-01-01T00:00:00\",\n \"purchaseBusinessDateTime\": \"0001-01-01T00:00:00\",\n \"paymentMethods\": [],\n \"products\": [\n {\n \"id\": \"d3ca42d7-b7ab-4c18-8293-1d39008a4e40\",\n \"sequenceNumber\": 1,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 2\n },\n \"originalPrice\": 200,\n \"price\": 200\n },\n {\n \"id\": \"fd324399-ef53-4cba-8172-f855539e7a71\",\n \"sequenceNumber\": 2,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 3\n },\n \"originalPrice\": 450,\n \"price\": 450\n }\n ],\n \"discounts\": [],\n \"taxes\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/pos-discount/v1/discounted-purchases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"receiptId\": \"fb7eb632-886f-4a5b-92c8-c63943006cf2\",\n \"storeId\": \"475\",\n \"memberId\": \"12396909\",\n \"currencyCode\": \"DKK\",\n \"totalAmount\": 650,\n \"totalTaxAmount\": 0,\n \"purchaseDateTimeUtc\": \"0001-01-01T00:00:00\",\n \"purchaseBusinessDateTime\": \"0001-01-01T00:00:00\",\n \"paymentMethods\": [],\n \"products\": [\n {\n \"id\": \"d3ca42d7-b7ab-4c18-8293-1d39008a4e40\",\n \"sequenceNumber\": 1,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 2\n },\n \"originalPrice\": 200,\n \"price\": 200\n },\n {\n \"id\": \"fd324399-ef53-4cba-8172-f855539e7a71\",\n \"sequenceNumber\": 2,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 3\n },\n \"originalPrice\": 450,\n \"price\": 450\n }\n ],\n \"discounts\": [],\n \"taxes\": []\n}"
response = http.request(request)
puts response.read_body{
"receiptId": "<string>",
"storeId": "<string>",
"currencyCode": "<string>",
"totalAmount": 123,
"totalTaxAmount": 123,
"purchaseDateTimeUtc": "2023-11-07T05:31:56Z",
"purchaseBusinessDateTime": "2023-11-07T05:31:56Z",
"products": [
{
"id": "<string>",
"sequenceNumber": 123,
"name": "<string>",
"categoryId": "<string>",
"originalReceiptId": "<string>",
"disposalItem": {
"name": "<string>",
"unitPrice": 123,
"quantity": {
"unitOfMeasure": "<string>",
"value": 123
},
"totalAmount": 123
},
"unitPrice": 123,
"quantity": {
"unitOfMeasure": "<string>",
"value": 123
},
"originalPrice": 123,
"price": 123,
"isReturned": true,
"isCancelled": true,
"taxIncludedInPrice": true,
"taxes": [
{
"type": "<string>",
"taxableAmount": 123,
"amount": 123,
"percentage": 123
}
],
"metadata": {},
"discountAllocations": [
{
"discountSequenceNumber": 123,
"discountAmount": 123
}
]
}
],
"memberId": "<string>",
"externalDiscountCardId": "<string>",
"loyaltyCardId": "<string>",
"amountForBonusCalculation": 123,
"paymentMethods": [
{
"amount": 123,
"currencyCode": "<string>",
"conversionRate": 123,
"paymentType": "Card",
"cardPan": "<string>",
"rounding": 123,
"displayName": "<string>",
"metadata": {}
}
],
"discounts": [
{
"sequenceNumber": 123,
"name": "<string>",
"totalDiscountAmount": 123,
"couponId": "<string>",
"couponIds": [
"<string>"
],
"appliedProducts": [
123
],
"metadata": {}
}
],
"taxes": [
{
"type": "<string>",
"taxableAmount": 123,
"amount": 123,
"percentage": 123
}
],
"shipping": {
"refundAsBonus": true,
"totalAmount": 123
},
"paymentLocation": "<string>",
"metadata": {},
"posId": "<string>",
"phone": "<string>"
}Calculate the discounts for a specified purchase
curl --request POST \
--url https://{host}/pos-discount/v1/discounted-purchases \
--header 'Content-Type: application/json' \
--data '
{
"receiptId": "fb7eb632-886f-4a5b-92c8-c63943006cf2",
"storeId": "475",
"memberId": "12396909",
"currencyCode": "DKK",
"totalAmount": 650,
"totalTaxAmount": 0,
"purchaseDateTimeUtc": "0001-01-01T00:00:00",
"purchaseBusinessDateTime": "0001-01-01T00:00:00",
"paymentMethods": [],
"products": [
{
"id": "d3ca42d7-b7ab-4c18-8293-1d39008a4e40",
"sequenceNumber": 1,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 2
},
"originalPrice": 200,
"price": 200
},
{
"id": "fd324399-ef53-4cba-8172-f855539e7a71",
"sequenceNumber": 2,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 3
},
"originalPrice": 450,
"price": 450
}
],
"discounts": [],
"taxes": []
}
'import requests
url = "https://{host}/pos-discount/v1/discounted-purchases"
payload = {
"receiptId": "fb7eb632-886f-4a5b-92c8-c63943006cf2",
"storeId": "475",
"memberId": "12396909",
"currencyCode": "DKK",
"totalAmount": 650,
"totalTaxAmount": 0,
"purchaseDateTimeUtc": "0001-01-01T00:00:00",
"purchaseBusinessDateTime": "0001-01-01T00:00:00",
"paymentMethods": [],
"products": [
{
"id": "d3ca42d7-b7ab-4c18-8293-1d39008a4e40",
"sequenceNumber": 1,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 2
},
"originalPrice": 200,
"price": 200
},
{
"id": "fd324399-ef53-4cba-8172-f855539e7a71",
"sequenceNumber": 2,
"categoryId": "1",
"quantity": {
"unitOfMeasure": "pcs",
"value": 3
},
"originalPrice": 450,
"price": 450
}
],
"discounts": [],
"taxes": []
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
receiptId: 'fb7eb632-886f-4a5b-92c8-c63943006cf2',
storeId: '475',
memberId: '12396909',
currencyCode: 'DKK',
totalAmount: 650,
totalTaxAmount: 0,
purchaseDateTimeUtc: '0001-01-01T00:00:00',
purchaseBusinessDateTime: '0001-01-01T00:00:00',
paymentMethods: [],
products: [
{
id: 'd3ca42d7-b7ab-4c18-8293-1d39008a4e40',
sequenceNumber: 1,
categoryId: '1',
quantity: {unitOfMeasure: 'pcs', value: 2},
originalPrice: 200,
price: 200
},
{
id: 'fd324399-ef53-4cba-8172-f855539e7a71',
sequenceNumber: 2,
categoryId: '1',
quantity: {unitOfMeasure: 'pcs', value: 3},
originalPrice: 450,
price: 450
}
],
discounts: [],
taxes: []
})
};
fetch('https://{host}/pos-discount/v1/discounted-purchases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/pos-discount/v1/discounted-purchases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'receiptId' => 'fb7eb632-886f-4a5b-92c8-c63943006cf2',
'storeId' => '475',
'memberId' => '12396909',
'currencyCode' => 'DKK',
'totalAmount' => 650,
'totalTaxAmount' => 0,
'purchaseDateTimeUtc' => '0001-01-01T00:00:00',
'purchaseBusinessDateTime' => '0001-01-01T00:00:00',
'paymentMethods' => [
],
'products' => [
[
'id' => 'd3ca42d7-b7ab-4c18-8293-1d39008a4e40',
'sequenceNumber' => 1,
'categoryId' => '1',
'quantity' => [
'unitOfMeasure' => 'pcs',
'value' => 2
],
'originalPrice' => 200,
'price' => 200
],
[
'id' => 'fd324399-ef53-4cba-8172-f855539e7a71',
'sequenceNumber' => 2,
'categoryId' => '1',
'quantity' => [
'unitOfMeasure' => 'pcs',
'value' => 3
],
'originalPrice' => 450,
'price' => 450
]
],
'discounts' => [
],
'taxes' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/pos-discount/v1/discounted-purchases"
payload := strings.NewReader("{\n \"receiptId\": \"fb7eb632-886f-4a5b-92c8-c63943006cf2\",\n \"storeId\": \"475\",\n \"memberId\": \"12396909\",\n \"currencyCode\": \"DKK\",\n \"totalAmount\": 650,\n \"totalTaxAmount\": 0,\n \"purchaseDateTimeUtc\": \"0001-01-01T00:00:00\",\n \"purchaseBusinessDateTime\": \"0001-01-01T00:00:00\",\n \"paymentMethods\": [],\n \"products\": [\n {\n \"id\": \"d3ca42d7-b7ab-4c18-8293-1d39008a4e40\",\n \"sequenceNumber\": 1,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 2\n },\n \"originalPrice\": 200,\n \"price\": 200\n },\n {\n \"id\": \"fd324399-ef53-4cba-8172-f855539e7a71\",\n \"sequenceNumber\": 2,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 3\n },\n \"originalPrice\": 450,\n \"price\": 450\n }\n ],\n \"discounts\": [],\n \"taxes\": []\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/pos-discount/v1/discounted-purchases")
.header("Content-Type", "application/json")
.body("{\n \"receiptId\": \"fb7eb632-886f-4a5b-92c8-c63943006cf2\",\n \"storeId\": \"475\",\n \"memberId\": \"12396909\",\n \"currencyCode\": \"DKK\",\n \"totalAmount\": 650,\n \"totalTaxAmount\": 0,\n \"purchaseDateTimeUtc\": \"0001-01-01T00:00:00\",\n \"purchaseBusinessDateTime\": \"0001-01-01T00:00:00\",\n \"paymentMethods\": [],\n \"products\": [\n {\n \"id\": \"d3ca42d7-b7ab-4c18-8293-1d39008a4e40\",\n \"sequenceNumber\": 1,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 2\n },\n \"originalPrice\": 200,\n \"price\": 200\n },\n {\n \"id\": \"fd324399-ef53-4cba-8172-f855539e7a71\",\n \"sequenceNumber\": 2,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 3\n },\n \"originalPrice\": 450,\n \"price\": 450\n }\n ],\n \"discounts\": [],\n \"taxes\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/pos-discount/v1/discounted-purchases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"receiptId\": \"fb7eb632-886f-4a5b-92c8-c63943006cf2\",\n \"storeId\": \"475\",\n \"memberId\": \"12396909\",\n \"currencyCode\": \"DKK\",\n \"totalAmount\": 650,\n \"totalTaxAmount\": 0,\n \"purchaseDateTimeUtc\": \"0001-01-01T00:00:00\",\n \"purchaseBusinessDateTime\": \"0001-01-01T00:00:00\",\n \"paymentMethods\": [],\n \"products\": [\n {\n \"id\": \"d3ca42d7-b7ab-4c18-8293-1d39008a4e40\",\n \"sequenceNumber\": 1,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 2\n },\n \"originalPrice\": 200,\n \"price\": 200\n },\n {\n \"id\": \"fd324399-ef53-4cba-8172-f855539e7a71\",\n \"sequenceNumber\": 2,\n \"categoryId\": \"1\",\n \"quantity\": {\n \"unitOfMeasure\": \"pcs\",\n \"value\": 3\n },\n \"originalPrice\": 450,\n \"price\": 450\n }\n ],\n \"discounts\": [],\n \"taxes\": []\n}"
response = http.request(request)
puts response.read_body{
"receiptId": "<string>",
"storeId": "<string>",
"currencyCode": "<string>",
"totalAmount": 123,
"totalTaxAmount": 123,
"purchaseDateTimeUtc": "2023-11-07T05:31:56Z",
"purchaseBusinessDateTime": "2023-11-07T05:31:56Z",
"products": [
{
"id": "<string>",
"sequenceNumber": 123,
"name": "<string>",
"categoryId": "<string>",
"originalReceiptId": "<string>",
"disposalItem": {
"name": "<string>",
"unitPrice": 123,
"quantity": {
"unitOfMeasure": "<string>",
"value": 123
},
"totalAmount": 123
},
"unitPrice": 123,
"quantity": {
"unitOfMeasure": "<string>",
"value": 123
},
"originalPrice": 123,
"price": 123,
"isReturned": true,
"isCancelled": true,
"taxIncludedInPrice": true,
"taxes": [
{
"type": "<string>",
"taxableAmount": 123,
"amount": 123,
"percentage": 123
}
],
"metadata": {},
"discountAllocations": [
{
"discountSequenceNumber": 123,
"discountAmount": 123
}
]
}
],
"memberId": "<string>",
"externalDiscountCardId": "<string>",
"loyaltyCardId": "<string>",
"amountForBonusCalculation": 123,
"paymentMethods": [
{
"amount": 123,
"currencyCode": "<string>",
"conversionRate": 123,
"paymentType": "Card",
"cardPan": "<string>",
"rounding": 123,
"displayName": "<string>",
"metadata": {}
}
],
"discounts": [
{
"sequenceNumber": 123,
"name": "<string>",
"totalDiscountAmount": 123,
"couponId": "<string>",
"couponIds": [
"<string>"
],
"appliedProducts": [
123
],
"metadata": {}
}
],
"taxes": [
{
"type": "<string>",
"taxableAmount": 123,
"amount": 123,
"percentage": 123
}
],
"shipping": {
"refundAsBonus": true,
"totalAmount": 123
},
"paymentLocation": "<string>",
"metadata": {},
"posId": "<string>",
"phone": "<string>"
}Query Parameters
List of Offer types to consider during discount calculation
List of Offer types to exclude during discount calculation
When set tot true, coupons that granted discount/bonus will not be reserved
When set, controls whether external discounts are preserved in the response, overriding the PreserveExternalDiscounts feature flag
If true, discount evaluation (including coupon eligibility) is performed using the request's PurchaseDateTimeUtc, retrieving only the coupons that were valid at that historical purchase time. If false, the current server time is used and only coupons valid "now" are considered.
Body
The specified purchase that the discounts need to be calculated for.
113Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Pos, SelfCheckout, ScanAndPay, Online Show child attributes
Show child attributes
Response
OK
113Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes