ChannelEngine: parent-child relationships

About this document

This document describes the setup of parent-child relationships on ChannelEngine.

Table of contents

Introduction

Child products

Parent products

Grandparent products

How to set up relationships via a product feed

How to set up relationships via an API connection

Introduction

Multiple variants of the same product should be considered before selling products via marketplaces. T-shirts, for instance, can be offered in several different sizes and colors.

To get sizes and variations (i.e.: children) connected to the same product (i.e.: parent), the children need to include the parent's unique identifiers. Have a look at the XML file below:

<Products>
    <Product>
        <Id>25320</Id>
        <MerchantProductNo>001201-blue</MerchantProductNo>
        <Name>T-shirt with short sleeves BASIC</Name>
        <Description>
        <br><br> Basic t-shirt with short sleeves. The model has a tight fit and is available in 2 colors.
        <br><br>Material:</br> 92% cotton 8% elastane.
        </Description>
        <Price>15.00</Price>
        <MSRP>24.99</MSRP>
        <PurchasePrice>10.00</PurchasePrice>
        <Stock>0</Stock>
        <ShippingCost>3.95</ShippingCost>
        <ShippingTime>
        Ordered on working days before 17:00, delivered the next day.
        </ShippingTime>
        <Brand>MyBrand</Brand>
        <Url>http://www.myshop.com/shirt-basic-blue</Url>
        <ParentMerchantProductNo/>
        <ParentId/>
        <ImageUrl>http://feeds.channelengine.net/shirt-basic-blue.jpg</ImageUrl>
        <Category>Women > Tops > T-shirts > Shortsleeve > Basic</Category>
        <VendorProductNo>120675B</VendorProductNo>
        <Color>Blue</Color>
        <Size/>
        <EAN/>
        <Type>parent</Type>
    </Product>
    <Product>
        <Id>25321</Id>
        <MerchantProductNo>001201-blue-S</MerchantProductNo>
        <Name>T-shirt with short sleeves BASIC Blue: S</Name>
        <Description>
        <br><br> Basic t-shirt with short sleeve. The model has a tight fit and is available in 2 colors.
        <br><br>Material:</br> 92% cotton 8% elastane.
        </Description>
        <Price>15.00</Price>
        <MSRP>24.99</MSRP>
        <PurchasePrice>10.00</PurchasePrice>
        <Stock>0</Stock>
        <ShippingCost>3.95</ShippingCost>
        <ShippingTime>This product is currently out of stock</ShippingTime>
        <Brand>MyBrand</Brand>
        <Url>http://www.myshop.com/shirt-basic-blue</Url>
        <ParentMerchantProductNo>001201</ParentMerchantProductNo>
        <ParentId>25320</ParentId>
        <ImageUrl>http://feeds.channelengine.net/shirt-basic-blue.jpg</ImageUrl>
        <Category>Women > Tops > T-shirts > Shortsleeve > Basic</Category>
        <VendorProductNo>120675BS</VendorProductNo>
        <Color>Blue</Color>
        <Size>S</Size>
        <EAN>8719351029609</EAN>
        <Type>child</Type>
    </Product>
    <Product>
        <Id>25322</Id>
        <MerchantProductNo>001201-blue-M</MerchantProductNo>
        <Name>T-shirt with short sleeves BASIC Blue: M</Name>
        <Description>
        <br><br> Basic t-shirt with short sleeve. The model has a tight fit and is available in 2 colors.
        <br><br>Material:</br> 92% cotton 8% elastane.
        </Description>
        <Price>15.00</Price>
        <MSRP>24.99</MSRP>
        <PurchasePrice>10.00</PurchasePrice>
        <Stock>3</Stock>
        <ShippingCost>3.95</ShippingCost>
        <ShippingTime>Ordered on working days before 17:00, delivered the next day.</ShippingTime>
        <Brand>MyBrand</Brand>
        <Url>http://www.myshop.com/shirt-basic-blue</Url>
        <ParentMerchantProductNo>001201</ParentMerchantProductNo>
        <ParentId>25320</ParentId>
        <ImageUrl>http://feeds.channelengine.net/shirt-basic-blue.jpg</ImageUrl>
        <Category>Women > Tops > T-shirts > Shortsleeve > Basic</Category>
        <VendorProductNo>120675BM</VendorProductNo>
        <Color>Blue</Color>
        <Size>M</Size>
        <EAN>8719351029610</EAN>
        <Type>child</Type>
    </Product>
    <Product>
        <Id>25323</Id>
        <MerchantProductNo>001201-blue-L</MerchantProductNo>
        <Name>T-shirt with short sleeves BASIC Blue: L</Name>
        <Description>
        <br><br> Basic t-shirt with short sleeve. The model has a tight fit and is available in 2 colors.
        <br><br>Material:</br> 92% cotton 8% elastane.
        </Description>
        <Price>15.00</Price>
        <MSRP>24.99</MSRP>
        <PurchasePrice>10.00</PurchasePrice>
        <Stock>11</Stock>
        <ShippingCost>3.95</ShippingCost>
        <ShippingTime>Ordered on working days before 17:00, delivered the next day.</ShippingTime>
        <Brand>MyBrand</Brand>
        <Url>http://www.myshop.com/shirt-basic-blue</Url>
        <ParentMerchantProductNo>001201</ParentMerchantProductNo>
        <ParentId>25320</ParentId>
        <ImageUrl>http://feeds.channelengine.net/shirt-basic-blue.jpg</ImageUrl>
        <Category>Women > Tops > T-shirts > Shortsleeve > Basic</Category>
        <VendorProductNo>120675BL</VendorProductNo>
        <Color>Blue</Color>
        <Size>L</Size>
        <EAN>8719351029611</EAN>
        <Type>child</Type>
    </Product>
</Products>

The XML-file contains one parent (i.e.: SKU 25320) and three children in three different sizes. If there were a yellow variant of the same item, for example, a similar tree could be created with 001201-yellow as the parent.

Child products

A child product (sometimes referred to as a simple product) is the sellable product on a marketplace. This product has specific, unique product attributes, such as its EAN, Merchant product number (SKU), size, and color to differentiate it from other products. Most marketplaces use the SKU or GTIN/EAN as the unique identifier for products.

NB: it is important that every child has its own price, stock, Merchant product number, and EAN. If you use a single EAN for multiple sizes, most marketplaces either reject them or list only one of the products.

Parent products

Parents are unsellable products, but they must be set up correctly on ChannelEngine. This is needed to correctly set parent-child relationships for marketplaces that support this feature. Note that some marketplaces use generic data such as the description from the parent product. Amazon is an example, as noted on their Seller Central

"The Clothing, Accessories and Luggage, Sports and Outdoors, and Beauty categories display best-selling parent products in search results and on product detail pages. This means that display elements such as product title and description appear from the data associated with the parent product."

While some CMS, PIM, and ERP systems allow sizes or colors to be an option of a parent product (and this may work within your own webshop), it makes it very hard to sell these individual products (i.e.: children) on marketplaces.

Grandparent products

Grandparent products are also possible as an option to add an extra level of hierarchy to a product family, though not many marketplaces support it. Grandparents are the common parent of a particular type (i.e.: parent), and can also be applied to the previous XML example. The result is:

<MerchantProductNo>001201</MerchantProductNo>
	<MerchantProductNo>001201-yellow</MerchantProductNo>
		<MerchantProductNo>001201-yellow-S</MerchantProductNo>
		<MerchantProductNo>001201-yellow-M</MerchantProductNo>
		<MerchantProductNo>001201-yellow-L</MerchantProductNo>
	<MerchantProductNo>001201-blue</MerchantProductNo>
		<MerchantProductNo>001201-blue-S</MerchantProductNo>
		<MerchantProductNo>001201-blue-M</MerchantProductNo>
		<MerchantProductNo>001201-blue-L</MerchantProductNo>

The grandparent is optional, and usually only relevant in case of fashion products.

How to set up relationships via a product feed

Setting up relationships via the API works in the same way as for product feeds, however, it may not always be clear when to use what attribute to identify the level above it. The relationship is set up so each level refers to its immediate parent via a specific (Grand)Parent SKU field.

  • Child product - refers to its parent by placing the Merchant product number of its parent in the Parent SKU field. Bear in mind that children do not have their own reference to a Grandparent SKU, as this would confuse the relationship.

  • Parent product - refers to its parent (i.e.: the grandparent) by placing the Merchant product number of its parent in the Grandparent SKU field.

  • Grandparent product - does not need any references to its children or grandchildren

Note that parent and grandparent products have to exist on ChannelEngine to be used on marketplaces. Therefore, they must be included as individual products in your product feed. If this is not possible, allow them be generated automatically.

Generating parents and grandparents

It is possible to let ChannelEngine automatically generate parent and grandparent products, if you cannot provide them. To do so, enable the Generate parent products or Generate grandparent products setting at the top of the product feed mapping. All information shared among the individual child products with the same (Grand)parent SKU is automatically added to the product data of the (grand)parent product. 

There is one requirement to use this feature: a shared unique identifier for that parent must be available on the products. That is, there needs to be an existing shared reference to an attribute that can be used as the Merchant product number for the (grand)parent.

How to set up relationships via an API connection

Setting up relationships via the API works in the same way as for product feeds, however, you must know when to use what attribute to identify the level above. The relationship is set up so each level refers to its immediate parent via a specific Parent merchant product number field:

  • Child product - refers to its parent by placing the Merchant product number of its parent in the Parent merchant product number field.
  • Parent product - refers to its parent (i.e.: the grandparent) by placing the Merchant product number of its parent in the Parent merchant product number 2 field.
  • Grandparent product - does not need any references to its children or grandchildren.

Check out the example below:

[
    {
        "Ean": null,
	"Description": "Grandparent product of awesome product",
        "MerchantProductNo": "GP-AwesomeProduct",
        "Name": "Awesome Product",
        "ParentMerchantProductNo": null,
        "ParentMerchantProductNo2": null
    },
    {
        "Ean": null,
	"Description": "Parent product of awesome product",
        "MerchantProductNo": "P-AwesomeProduct",
        "Name": "Awesome Product - Yellow",
        "ParentMerchantProductNo": null,
        "ParentMerchantProductNo2": "GP-AwesomeProduct"
    },
    {
        "Ean": "8712345678941",
	"Description": "Awesome product itself, which can be sold on marketplaces",
        "MerchantProductNo": "AwesomeProduct",
        "Name": "Awesome Product - Yellow - Size L",
        "ParentMerchantProductNo": "P-AwesomeProduct",
        "ParentMerchantProductNo2": null
    }
]
NB: unlike with product feeds, there is no option to automatically generate parents and/or fetch data from the parent. Including parent and grandparent products is required with all relevant data in the API calls.
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.