Skip to main content

Product Master Data

The Channel Engine product master data flow allows you to create, update, and synchronize all product information in a centralized way, including variants, images, and custom attributes, ensuring that data is always consistent across all connected marketplaces.

The system allows products to be processed in bulk, verifying that each product is coherent and valid. During processing, if a field of the parent product or a variant is null, the existing value on Channel Engine is retrieved. If the field is provided as empty (e.g., "description": ""), the value is cleared. Values are retrieved from Channel Engine only if the product already exists on the platform.

Each provided product is structured into at least three levels:

  • GranParent, which represents the main container.
  • Parent, which groups variants based on the option with the fewest values, giving priority to the color and size options.
  • Child, which represents individual variants.

The main options color and size determine the product behavior, while other options are stored in extra fields. If color and size are not present, the first available options are assigned to these two main fields, and the remaining options become extra fields.

Image management is structured as follows: the first image provided in the media list is selected as the main image. Up to ten images are assigned to the main fields of the products, while additional images are added in the extra data with progressively numbered keys (ExtraImageUrl{index}). This behavior respects the limit imposed by Channel Engine, which allows a maximum of 10 images per product.

If any level of a product being created generates an error, the entire group of related products is removed to maintain data consistency. Conversely, if the product already exists and it is an update, any errors do not result in the deletion of the other levels.

Payload

Payload for inserting products, including an example of typed metafields.

{
"sku": "BGSM001C210",
"title": "Product Test 1 Con Varianti",
"barcode": "14785985742",
"handle": "product-product-1",
"not-found-handle": "/collections/all",
"description": "Description of product",
"type": "product-type",
"price": 15.99,
"compareAtPrice": 19.99,
"vendor": "Flowlyze",
"category": "category",
"tags": [
"tagprimo",
"tag2"
],
"media": [
{
"alternativeText": "image test",
"url": "https://demo.sintra-soh.com/csv-import-images/BGSM001C005/BGSM001C005.jpg"
},
{
"alternativeText": "image test 1",
"url": "https://demo.sintra-soh.com/csv-import-images/BGSM001C005/BGSM001C005_1.jpg"
}
],
"files": {
"namespace.certification_file": "http://demo.sintra-soh.com/LdV/samplepdf.pdf",
"documents_file": "http://demo.sintra-soh.com/LdV/samplepdf_1.pdf",
"gallery_images_file": "http://demo.sintra-soh.com/ShippingLabels/1002-816-0.pdf",
"manual": "http://demo.sintra-soh.com/ShippingLabels/1006-867-0.pdf"
},
"metafields": {
"namespace.accessories_included": "value",
"addition_features": "value",
"attachment": "value",
"attachment_system": "value",
"audio_output": "value",
"audio_power": "value",
"audio_power_unit": "value",
"logistic_depth": 1,
"type_product": "[\"tipo1\",\"tipo2\"]",
"video": "https://www.youtube.com/watch?v=WqDiH5bnZ4s",
"volume_control_position": "value",
"warrentyupgrade": false
},
"variants": [
{
"sortingNumber": 1,
"sku": "BGSM001C210-1",
"barcode": "1478598574258",
"price": 12.99,
"compareAtPrice": 15.99,
"optionValues": {
"color": "Blue"
},
"media": [
{
"alternativeText": "image test 1 facoltativo",
"url": "http://demo.sintra-soh.com/csv-import-images/BGSM003C014/BGSM003C014.jpg"
},
{
"alternativeText": "image test 2 facoltativo",
"url": "http://demo.sintra-soh.com/csv-import-images/BGSM003C014/BGSM003C014_1.jpg"
}
],
"metafields": {
"subtitle": "value"
},
"files": {
"gallery_images_file": "http://demo.sintra-soh.com/ShippingLabels/1006-867-0.pdf"
},
"harmonizedSystemCode": "147856923",
"countryCodeOfOrigin": "IT",
"provinceCodeOfOrigin": "IT-52",
"costPerItem": 14.95,
"isDigitalItem": true
},
{
"sortingNumber": 2,
"sku": "BGSM001C210-2",
"barcode": "1478598574259",
"optionValues": {
"color": "Lilac"
},
"media": [
{
"alternativeText": "lilla davanti",
"url": "http://demo.sintra-soh.com/csv-import-images/BGSM003C015/BGSM003C015.jpg"
},
{
"alternativeText": "lilla sopra",
"url": "http://demo.sintra-soh.com/csv-import-images/BGSM003C015/BGSM003C015_1.jpg"
}
],
"metafields": {
"subtitle": "value"
},
"files": {
"gallery_images_file": "http://demo.sintra-soh.com/ShippingLabels/1006-867-0.pdf"
},
"weight": "1.09",
"weightUnit": "kg",
"harmonizedSystemCode": "123456789",
"countryCodeOfOrigin": "IT",
"provinceCodeOfOrigin": "IT-52",
"costPerItem": 14.95,
"isDigitalItem": true
}
],
"weight": "1090",
"weightUnit": "g",
"metaTitle": "SEO Product metaTile",
"metaDescription": "SEO Product metaDescription",
"harmonizedSystemCode": "987456321",
"countryCodeOfOrigin": "IT",
"provinceCodeOfOrigin": "IT-52",
"costPerItem": 14.95,
"isDigitalItem": true
}

Destination configuration

Configure a Channel Engine destination and associate it with the flow, in addition to the basic data flow configuration.

FieldValueNotes
Destination TypeChannel Engine
OperationProduct syncPOST /egress/sync-product-to-ce
Channel Engine URLhttps://CEURL.channelengine.net/apiChannel Engine API base URL
Channel Engine tokenALPHANUMERICCODEChannel Engine API token
Ignore pricetrue / falseIgnore prices during product synchronization (default: false)

Deprecated — previous configuration (HTTP Adapter)

Deprecated

Configuration via HTTP Adapter with Base Url, Resource Path, and x-api-key header in Settings Override is deprecated. Use the Channel Engine destination configuration described above.

In addition to the basic data flow configuration, the following Settings Override settings were required:

FieldValueNotes
Base Urlhttps://adapter.flowlyze.ioURL of the adapters
Resource Path/api/adp/channel-engine/egress/sync-product-to-ceAdapter path for products
Headers :: x-api-key**********API key used to validate endpoint interaction
Headers :: x-ce-urlhttps://CEURL.channelengine.net/apiURL of the Channel Engine to connect to
Headers :: x-ce-tokenALPHANUMERICCODEToken for the integration
Headers :: x-ignore-pricefalseIndicates whether Channel Engine should ignore prices in the request (default false)