curl --request PUT \
--url https://api.loopreturns.com/api/v1/products \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"name": "Classic Brown Dress Shoes",
"external_id": "564400c7-7a6b-4f29-b6a5-7bb580b2992c",
"sales_channel": "<string>",
"sku": "SHOES-US44-M-Brwn",
"weight_grams": 440,
"barcode": 712345000019,
"description": "<string>",
"type": "shoes",
"vendor": "Internal",
"price": 10000,
"created_at": "2023-04-25T13:25:00-05:00",
"updated_at": "2023-04-25T13:45:00-05:00",
"options": [
{
"position": 1,
"values": [
"red"
],
"name": "Colors"
}
],
"images": [
"https://example.com/example.jpg"
],
"tags": [
"shoes"
],
"source": "Shopify",
"is_gift_card": false,
"locale_data": [
{
"locale": "fr-CA",
"name": "Chaussures Habillées Marron Classiques",
"description": "<string>",
"options": [
{
"position": 1,
"name": "Couleur",
"values": {
"red": "rouge",
"green": "vert",
"blue": "bleu"
}
}
]
}
]
}
'import requests
url = "https://api.loopreturns.com/api/v1/products"
payload = {
"name": "Classic Brown Dress Shoes",
"external_id": "564400c7-7a6b-4f29-b6a5-7bb580b2992c",
"sales_channel": "<string>",
"sku": "SHOES-US44-M-Brwn",
"weight_grams": 440,
"barcode": 712345000019,
"description": "<string>",
"type": "shoes",
"vendor": "Internal",
"price": 10000,
"created_at": "2023-04-25T13:25:00-05:00",
"updated_at": "2023-04-25T13:45:00-05:00",
"options": [
{
"position": 1,
"values": ["red"],
"name": "Colors"
}
],
"images": ["https://example.com/example.jpg"],
"tags": ["shoes"],
"source": "Shopify",
"is_gift_card": False,
"locale_data": [
{
"locale": "fr-CA",
"name": "Chaussures Habillées Marron Classiques",
"description": "<string>",
"options": [
{
"position": 1,
"name": "Couleur",
"values": {
"red": "rouge",
"green": "vert",
"blue": "bleu"
}
}
]
}
]
}
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Classic Brown Dress Shoes',
external_id: '564400c7-7a6b-4f29-b6a5-7bb580b2992c',
sales_channel: '<string>',
sku: 'SHOES-US44-M-Brwn',
weight_grams: 440,
barcode: 712345000019,
description: '<string>',
type: 'shoes',
vendor: 'Internal',
price: 10000,
created_at: '2023-04-25T13:25:00-05:00',
updated_at: '2023-04-25T13:45:00-05:00',
options: [{position: 1, values: ['red'], name: 'Colors'}],
images: ['https://example.com/example.jpg'],
tags: ['shoes'],
source: 'Shopify',
is_gift_card: false,
locale_data: [
{
locale: 'fr-CA',
name: 'Chaussures Habillées Marron Classiques',
description: '<string>',
options: [
{
position: 1,
name: 'Couleur',
values: {red: 'rouge', green: 'vert', blue: 'bleu'}
}
]
}
]
})
};
fetch('https://api.loopreturns.com/api/v1/products', 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://api.loopreturns.com/api/v1/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Classic Brown Dress Shoes',
'external_id' => '564400c7-7a6b-4f29-b6a5-7bb580b2992c',
'sales_channel' => '<string>',
'sku' => 'SHOES-US44-M-Brwn',
'weight_grams' => 440,
'barcode' => 712345000019,
'description' => '<string>',
'type' => 'shoes',
'vendor' => 'Internal',
'price' => 10000,
'created_at' => '2023-04-25T13:25:00-05:00',
'updated_at' => '2023-04-25T13:45:00-05:00',
'options' => [
[
'position' => 1,
'values' => [
'red'
],
'name' => 'Colors'
]
],
'images' => [
'https://example.com/example.jpg'
],
'tags' => [
'shoes'
],
'source' => 'Shopify',
'is_gift_card' => false,
'locale_data' => [
[
'locale' => 'fr-CA',
'name' => 'Chaussures Habillées Marron Classiques',
'description' => '<string>',
'options' => [
[
'position' => 1,
'name' => 'Couleur',
'values' => [
'red' => 'rouge',
'green' => 'vert',
'blue' => 'bleu'
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <api-key>"
],
]);
$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://api.loopreturns.com/api/v1/products"
payload := strings.NewReader("{\n \"name\": \"Classic Brown Dress Shoes\",\n \"external_id\": \"564400c7-7a6b-4f29-b6a5-7bb580b2992c\",\n \"sales_channel\": \"<string>\",\n \"sku\": \"SHOES-US44-M-Brwn\",\n \"weight_grams\": 440,\n \"barcode\": 712345000019,\n \"description\": \"<string>\",\n \"type\": \"shoes\",\n \"vendor\": \"Internal\",\n \"price\": 10000,\n \"created_at\": \"2023-04-25T13:25:00-05:00\",\n \"updated_at\": \"2023-04-25T13:45:00-05:00\",\n \"options\": [\n {\n \"position\": 1,\n \"values\": [\n \"red\"\n ],\n \"name\": \"Colors\"\n }\n ],\n \"images\": [\n \"https://example.com/example.jpg\"\n ],\n \"tags\": [\n \"shoes\"\n ],\n \"source\": \"Shopify\",\n \"is_gift_card\": false,\n \"locale_data\": [\n {\n \"locale\": \"fr-CA\",\n \"name\": \"Chaussures Habillées Marron Classiques\",\n \"description\": \"<string>\",\n \"options\": [\n {\n \"position\": 1,\n \"name\": \"Couleur\",\n \"values\": {\n \"red\": \"rouge\",\n \"green\": \"vert\",\n \"blue\": \"bleu\"\n }\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
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.put("https://api.loopreturns.com/api/v1/products")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Classic Brown Dress Shoes\",\n \"external_id\": \"564400c7-7a6b-4f29-b6a5-7bb580b2992c\",\n \"sales_channel\": \"<string>\",\n \"sku\": \"SHOES-US44-M-Brwn\",\n \"weight_grams\": 440,\n \"barcode\": 712345000019,\n \"description\": \"<string>\",\n \"type\": \"shoes\",\n \"vendor\": \"Internal\",\n \"price\": 10000,\n \"created_at\": \"2023-04-25T13:25:00-05:00\",\n \"updated_at\": \"2023-04-25T13:45:00-05:00\",\n \"options\": [\n {\n \"position\": 1,\n \"values\": [\n \"red\"\n ],\n \"name\": \"Colors\"\n }\n ],\n \"images\": [\n \"https://example.com/example.jpg\"\n ],\n \"tags\": [\n \"shoes\"\n ],\n \"source\": \"Shopify\",\n \"is_gift_card\": false,\n \"locale_data\": [\n {\n \"locale\": \"fr-CA\",\n \"name\": \"Chaussures Habillées Marron Classiques\",\n \"description\": \"<string>\",\n \"options\": [\n {\n \"position\": 1,\n \"name\": \"Couleur\",\n \"values\": {\n \"red\": \"rouge\",\n \"green\": \"vert\",\n \"blue\": \"bleu\"\n }\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loopreturns.com/api/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Classic Brown Dress Shoes\",\n \"external_id\": \"564400c7-7a6b-4f29-b6a5-7bb580b2992c\",\n \"sales_channel\": \"<string>\",\n \"sku\": \"SHOES-US44-M-Brwn\",\n \"weight_grams\": 440,\n \"barcode\": 712345000019,\n \"description\": \"<string>\",\n \"type\": \"shoes\",\n \"vendor\": \"Internal\",\n \"price\": 10000,\n \"created_at\": \"2023-04-25T13:25:00-05:00\",\n \"updated_at\": \"2023-04-25T13:45:00-05:00\",\n \"options\": [\n {\n \"position\": 1,\n \"values\": [\n \"red\"\n ],\n \"name\": \"Colors\"\n }\n ],\n \"images\": [\n \"https://example.com/example.jpg\"\n ],\n \"tags\": [\n \"shoes\"\n ],\n \"source\": \"Shopify\",\n \"is_gift_card\": false,\n \"locale_data\": [\n {\n \"locale\": \"fr-CA\",\n \"name\": \"Chaussures Habillées Marron Classiques\",\n \"description\": \"<string>\",\n \"options\": [\n {\n \"position\": 1,\n \"name\": \"Couleur\",\n \"values\": {\n \"red\": \"rouge\",\n \"green\": \"vert\",\n \"blue\": \"bleu\"\n }\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"product": {
"id": 810772,
"external_id": "564400c7-7a6b-4f29-b6a5-7bb580b2992c",
"sales_channel": "<string>",
"sku": "SHOES-US44-M-Brwn",
"name": "Classic Brown Dress Shoes",
"weight_grams": 440,
"barcode": 712345000019,
"description": "<string>",
"type": "shoes",
"vendor": "Internal",
"price": {
"amount": 50000,
"currency_code": "USD"
},
"created_at": "2023-04-25T13:25:00-05:00",
"updated_at": "2023-04-25T13:45:00-05:00",
"collections": [
{
"id": 891009,
"external_id": "62291d16-9b61-4fbb-b868-21c2d32dc155",
"name": "<string>"
}
],
"options": [
{
"position": 1,
"values": [
"red"
],
"name": "Colors"
}
],
"images": [
"https://example.com/example.jpg"
],
"tags": [
"shoes"
],
"source": "Shopify",
"default_variant_id": 810773
}
}{
"errors": "Unauthorized."
}Upsert Product
Upsert a product, identified using the product’s external_id.
curl --request PUT \
--url https://api.loopreturns.com/api/v1/products \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"name": "Classic Brown Dress Shoes",
"external_id": "564400c7-7a6b-4f29-b6a5-7bb580b2992c",
"sales_channel": "<string>",
"sku": "SHOES-US44-M-Brwn",
"weight_grams": 440,
"barcode": 712345000019,
"description": "<string>",
"type": "shoes",
"vendor": "Internal",
"price": 10000,
"created_at": "2023-04-25T13:25:00-05:00",
"updated_at": "2023-04-25T13:45:00-05:00",
"options": [
{
"position": 1,
"values": [
"red"
],
"name": "Colors"
}
],
"images": [
"https://example.com/example.jpg"
],
"tags": [
"shoes"
],
"source": "Shopify",
"is_gift_card": false,
"locale_data": [
{
"locale": "fr-CA",
"name": "Chaussures Habillées Marron Classiques",
"description": "<string>",
"options": [
{
"position": 1,
"name": "Couleur",
"values": {
"red": "rouge",
"green": "vert",
"blue": "bleu"
}
}
]
}
]
}
'import requests
url = "https://api.loopreturns.com/api/v1/products"
payload = {
"name": "Classic Brown Dress Shoes",
"external_id": "564400c7-7a6b-4f29-b6a5-7bb580b2992c",
"sales_channel": "<string>",
"sku": "SHOES-US44-M-Brwn",
"weight_grams": 440,
"barcode": 712345000019,
"description": "<string>",
"type": "shoes",
"vendor": "Internal",
"price": 10000,
"created_at": "2023-04-25T13:25:00-05:00",
"updated_at": "2023-04-25T13:45:00-05:00",
"options": [
{
"position": 1,
"values": ["red"],
"name": "Colors"
}
],
"images": ["https://example.com/example.jpg"],
"tags": ["shoes"],
"source": "Shopify",
"is_gift_card": False,
"locale_data": [
{
"locale": "fr-CA",
"name": "Chaussures Habillées Marron Classiques",
"description": "<string>",
"options": [
{
"position": 1,
"name": "Couleur",
"values": {
"red": "rouge",
"green": "vert",
"blue": "bleu"
}
}
]
}
]
}
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Classic Brown Dress Shoes',
external_id: '564400c7-7a6b-4f29-b6a5-7bb580b2992c',
sales_channel: '<string>',
sku: 'SHOES-US44-M-Brwn',
weight_grams: 440,
barcode: 712345000019,
description: '<string>',
type: 'shoes',
vendor: 'Internal',
price: 10000,
created_at: '2023-04-25T13:25:00-05:00',
updated_at: '2023-04-25T13:45:00-05:00',
options: [{position: 1, values: ['red'], name: 'Colors'}],
images: ['https://example.com/example.jpg'],
tags: ['shoes'],
source: 'Shopify',
is_gift_card: false,
locale_data: [
{
locale: 'fr-CA',
name: 'Chaussures Habillées Marron Classiques',
description: '<string>',
options: [
{
position: 1,
name: 'Couleur',
values: {red: 'rouge', green: 'vert', blue: 'bleu'}
}
]
}
]
})
};
fetch('https://api.loopreturns.com/api/v1/products', 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://api.loopreturns.com/api/v1/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Classic Brown Dress Shoes',
'external_id' => '564400c7-7a6b-4f29-b6a5-7bb580b2992c',
'sales_channel' => '<string>',
'sku' => 'SHOES-US44-M-Brwn',
'weight_grams' => 440,
'barcode' => 712345000019,
'description' => '<string>',
'type' => 'shoes',
'vendor' => 'Internal',
'price' => 10000,
'created_at' => '2023-04-25T13:25:00-05:00',
'updated_at' => '2023-04-25T13:45:00-05:00',
'options' => [
[
'position' => 1,
'values' => [
'red'
],
'name' => 'Colors'
]
],
'images' => [
'https://example.com/example.jpg'
],
'tags' => [
'shoes'
],
'source' => 'Shopify',
'is_gift_card' => false,
'locale_data' => [
[
'locale' => 'fr-CA',
'name' => 'Chaussures Habillées Marron Classiques',
'description' => '<string>',
'options' => [
[
'position' => 1,
'name' => 'Couleur',
'values' => [
'red' => 'rouge',
'green' => 'vert',
'blue' => 'bleu'
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <api-key>"
],
]);
$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://api.loopreturns.com/api/v1/products"
payload := strings.NewReader("{\n \"name\": \"Classic Brown Dress Shoes\",\n \"external_id\": \"564400c7-7a6b-4f29-b6a5-7bb580b2992c\",\n \"sales_channel\": \"<string>\",\n \"sku\": \"SHOES-US44-M-Brwn\",\n \"weight_grams\": 440,\n \"barcode\": 712345000019,\n \"description\": \"<string>\",\n \"type\": \"shoes\",\n \"vendor\": \"Internal\",\n \"price\": 10000,\n \"created_at\": \"2023-04-25T13:25:00-05:00\",\n \"updated_at\": \"2023-04-25T13:45:00-05:00\",\n \"options\": [\n {\n \"position\": 1,\n \"values\": [\n \"red\"\n ],\n \"name\": \"Colors\"\n }\n ],\n \"images\": [\n \"https://example.com/example.jpg\"\n ],\n \"tags\": [\n \"shoes\"\n ],\n \"source\": \"Shopify\",\n \"is_gift_card\": false,\n \"locale_data\": [\n {\n \"locale\": \"fr-CA\",\n \"name\": \"Chaussures Habillées Marron Classiques\",\n \"description\": \"<string>\",\n \"options\": [\n {\n \"position\": 1,\n \"name\": \"Couleur\",\n \"values\": {\n \"red\": \"rouge\",\n \"green\": \"vert\",\n \"blue\": \"bleu\"\n }\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
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.put("https://api.loopreturns.com/api/v1/products")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Classic Brown Dress Shoes\",\n \"external_id\": \"564400c7-7a6b-4f29-b6a5-7bb580b2992c\",\n \"sales_channel\": \"<string>\",\n \"sku\": \"SHOES-US44-M-Brwn\",\n \"weight_grams\": 440,\n \"barcode\": 712345000019,\n \"description\": \"<string>\",\n \"type\": \"shoes\",\n \"vendor\": \"Internal\",\n \"price\": 10000,\n \"created_at\": \"2023-04-25T13:25:00-05:00\",\n \"updated_at\": \"2023-04-25T13:45:00-05:00\",\n \"options\": [\n {\n \"position\": 1,\n \"values\": [\n \"red\"\n ],\n \"name\": \"Colors\"\n }\n ],\n \"images\": [\n \"https://example.com/example.jpg\"\n ],\n \"tags\": [\n \"shoes\"\n ],\n \"source\": \"Shopify\",\n \"is_gift_card\": false,\n \"locale_data\": [\n {\n \"locale\": \"fr-CA\",\n \"name\": \"Chaussures Habillées Marron Classiques\",\n \"description\": \"<string>\",\n \"options\": [\n {\n \"position\": 1,\n \"name\": \"Couleur\",\n \"values\": {\n \"red\": \"rouge\",\n \"green\": \"vert\",\n \"blue\": \"bleu\"\n }\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loopreturns.com/api/v1/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Classic Brown Dress Shoes\",\n \"external_id\": \"564400c7-7a6b-4f29-b6a5-7bb580b2992c\",\n \"sales_channel\": \"<string>\",\n \"sku\": \"SHOES-US44-M-Brwn\",\n \"weight_grams\": 440,\n \"barcode\": 712345000019,\n \"description\": \"<string>\",\n \"type\": \"shoes\",\n \"vendor\": \"Internal\",\n \"price\": 10000,\n \"created_at\": \"2023-04-25T13:25:00-05:00\",\n \"updated_at\": \"2023-04-25T13:45:00-05:00\",\n \"options\": [\n {\n \"position\": 1,\n \"values\": [\n \"red\"\n ],\n \"name\": \"Colors\"\n }\n ],\n \"images\": [\n \"https://example.com/example.jpg\"\n ],\n \"tags\": [\n \"shoes\"\n ],\n \"source\": \"Shopify\",\n \"is_gift_card\": false,\n \"locale_data\": [\n {\n \"locale\": \"fr-CA\",\n \"name\": \"Chaussures Habillées Marron Classiques\",\n \"description\": \"<string>\",\n \"options\": [\n {\n \"position\": 1,\n \"name\": \"Couleur\",\n \"values\": {\n \"red\": \"rouge\",\n \"green\": \"vert\",\n \"blue\": \"bleu\"\n }\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"product": {
"id": 810772,
"external_id": "564400c7-7a6b-4f29-b6a5-7bb580b2992c",
"sales_channel": "<string>",
"sku": "SHOES-US44-M-Brwn",
"name": "Classic Brown Dress Shoes",
"weight_grams": 440,
"barcode": 712345000019,
"description": "<string>",
"type": "shoes",
"vendor": "Internal",
"price": {
"amount": 50000,
"currency_code": "USD"
},
"created_at": "2023-04-25T13:25:00-05:00",
"updated_at": "2023-04-25T13:45:00-05:00",
"collections": [
{
"id": 891009,
"external_id": "62291d16-9b61-4fbb-b868-21c2d32dc155",
"name": "<string>"
}
],
"options": [
{
"position": 1,
"values": [
"red"
],
"name": "Colors"
}
],
"images": [
"https://example.com/example.jpg"
],
"tags": [
"shoes"
],
"source": "Shopify",
"default_variant_id": 810773
}
}{
"errors": "Unauthorized."
}Authorizations
API Scope: "Product (write)"
Body
The name of the product.
255"Classic Brown Dress Shoes"
The identifier used by an external source to identify the product.
100"564400c7-7a6b-4f29-b6a5-7bb580b2992c"
If a channel with this name is not already associated with the shop, it will be used to create a new channel.
255The SKU of the product.
255"SHOES-US44-M-Brwn"
The weight of the product in grams.
440
The barcode of the product.
255712345000019
The description of the product.
65000The "type" of the product. This is a single value used to classify and group similar products.
255"shoes"
The manufacturer or seller of the product.
255"Internal"
The price of the product in minor units, such as cents, with its corresponding currency.
Show child attributes
Show child attributes
10000
The date and time at which the product was created.
"2023-04-25T13:25:00-05:00"
The date and time at which the product was updated. The value must be equal to or greater than created_at.
"2023-04-25T13:45:00-05:00"
An array of optional features or characteristics of the product that can be selected by the customer.
Show child attributes
Show child attributes
An array of URLs which reference images of the product.
1An array of tags added to the product.
1 - 255The ecommerce platform from which the product is available.
255"Shopify"
Whether the product is a gift card.
false
Translated content for this product, one entry per locale. Locales must be unique within the array — uniqueness is checked against each locale's canonicalized tag (fr-CA, fr_ca, and FR-CA all collide).
Show child attributes
Show child attributes
Response
OK
Show child attributes
Show child attributes