---
title: Catalog node relations
slug: commerce-connect-15/service-api/catalog-node-relations
docTags: 
createdAt: 2026-07-22T14:38:28.000Z
---

## Example models

```csharp
[Serializable]
public class NodeRelation
  {
    public int SortOrder { get; set; }
    public string ParentNodeCode { get; set; }
    public string ChildNodeCode { get; set; }
  }
```

## Get all node relations

| GET | `get/episerverapi/commerce/nodes/{nodeCode}/noderelations` | Get all node relations |
| --- | ---------------------------------------------------------- | ---------------------- |

### JSON response type

```csharp
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);		
var result = client.GetAsync("/episerverapi/commerce/nodes/{node code}/noderelations").Result.Content.ReadAsStringAsync().Result
```

### XML response type

```csharp
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));		
var result = client.GetAsync("/episerverapi/commerce/nodes/{node code}/noderelations").Result.Content.ReadAsStringAsync().Result
```

Response

```xml
<ArrayOfNodeRelation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NodeRelation>
    <SortOrder>0</SortOrder>
    <ParentNodeCode>Books</ParentNodeCode>
    <ChildNodeCode>Bottoms</ChildNodeCode>
  </NodeRelation>
</ArrayOfNodeRelation>
```

## Get a specific node relation

| GET | `get/episerverapi/commerce/nodes/{nodeCode}/noderelations/{childCode}` | Get a specific node relation |
| --- | ---------------------------------------------------------------------- | ---------------------------- |

### JSON response type

```csharp
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);		
var result = client.GetAsync("/episerverapi/commerce/nodes/{node code}/noderelations/{childCode}").Result.Content.ReadAsStringAsync().Result
```

### XML response type

```csharp
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));		
var result = client.GetAsync("/episerverapi/commerce/nodes/{node code}/noderelations/{childCode}").Result.Content.ReadAsStringAsync().Result
```

Response

```xml
<NodeRelation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SortOrder>0</SortOrder>
  <ParentNodeCode>Books</ParentNodeCode>
  <ChildNodeCode>Bottoms</ChildNodeCode>
</NodeRelation>
```

## Create node relation

| PUT | `post/episerverapi/commerce/nodes/{nodeCode}/noderelations` | Create node relation |
| --- | ----------------------------------------------------------- | -------------------- |

### JSON response type

```csharp
var model = new NodeRelation()
  {
    ChildNodeCode = "Bottoms",
    ParentNodeCode = "Books",
    SortOrder = 0
  };
var json = JsonConvert.SerializeObject(model);
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);		
var result = client.PostAsync("/episerverapi/commerce/nodes/{node code}/noderelations", 
  new StringContent(json, Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync().Result
```

### XML response type

```csharp
var model = new NodeRelation()
  {
    ChildNodeCode = "Bottoms",
    ParentNodeCode = "Books",
    SortOrder = 0
  };
var client = new HttpClient()
 {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var serializer = new XmlSerializer(typeof(NodeRelation));
var xml = String.Empty;
using (var ms = new MemoryStream())
  {
    serializer.Serialize(ms, model);
    xml = Encoding.Default.GetString(ms.ToArray());
  } 
var result = client.PostAsync("/episerverapi/commerce/nodes/{node code}/noderelations", 
  new StringContent(xml, Encoding.UTF8, "text/xml")).Result.Content.ReadAsStringAsync().Result
```

Response

```xml
<NodeRelation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SortOrder>0</SortOrder>
  <ParentNodeCode>Books</ParentNodeCode>
  <ChildNodeCode>Bottoms</ChildNodeCode>
</NodeRelation>
```

## Update node relation

| PUT | `put/episerverapi/commerce/nodes/{nodeCode}/noderelations/{childCode}` | Update node relation |
| --- | ---------------------------------------------------------------------- | -------------------- |

### JSON response type

```csharp
var model = new NodeRelation()
  {
    ChildNodeCode = "Bottoms",
    ParentNodeCode = "Books",
    SortOrder = 0
  };
var json = JsonConvert.SerializeObject(model);
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);		
var result = client.PutAsync("/episerverapi/commerce/nodes/{node code}/noderelations/{childCode}",
  new StringContent(json, Encoding.UTF8, "application/json")).Result.Content.ReadAsStringAsync().Result
```

### XML response type

```csharp
var model = new NodeRelation()
  {
    ChildNodeCode = "Bottoms",
    ParentNodeCode = "Books",
    SortOrder = 0
  };
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
var serializer = new XmlSerializer(typeof(NodeRelation));
var xml = String.Empty;
using (var ms = new MemoryStream())
  {
    serializer.Serialize(ms, model);
    xml = Encoding.Default.GetString(ms.ToArray());
  } 	
var result = client.PutAsync("/episerverapi/commerce/nodes/{node code}/noderelations/{childCode}",
  new StringContent(xml, Encoding.UTF8, "text/xml")).Result.Content.ReadAsStringAsync().Result
```

Response

```text
204 No Content
```

## Delete node relation

| DELETE | `delete/episerverapi/commerce/nodes/{nodeCode}/noderelations/{childCode}` | Delete node relation |
| ------ | ------------------------------------------------------------------------- | -------------------- |

### JSON response type

```csharp
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);		
var result = client.DeleteAsync("/episerverapi/commerce/nodes/{node code}/noderelations/{childCode}").Result.Content.ReadAsStringAsync().Result
```

### XML response type

```csharp
var client = new HttpClient()
  {
    BaseAddress = new Uri(ConfigurationManager.AppSettings["integrationUrl"])
  };
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));	
var result = client.DeleteAsync("/episerverapi/commerce/nodes/{node code}/noderelations/{childCode}").Result.Content.ReadAsStringAsync().Result
```

Response

```xml
<NodeRelation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SortOrder>0</SortOrder>
  <ParentNodeCode>Books</ParentNodeCode>
  <ChildNodeCode>Bottoms</ChildNodeCode>
</NodeRelation>
```
