Skip to main content

Product content

Product content can be included in the ImportProducts service using the Content array on product level.

Images

This section will go into more detail on inserting images via ImportProducts.

For more information

For a broad introduction to using images in EVA, please see our Images docs.

You can add one or multiple images to your products by including image URLs. During upload, EVA will access those URLS to download the images to our own CDN.

You can set images on Configurable products if you use a product hierarchy. That way you can set the images on the ‘Parent Product’ only, after which all underlying sizes get the same image.

We encourage always setting an image on your Parent product anyhow, as those will show up in the product search results in the applications.

Let's start off with a simple sample. To include images, add this object:

Simple image inclusion

"Images": [
{
"ImageUrl": "https://newblack.io/er/3000342794-BCK-front",
"Name": "BCK_front",
"Sequence": 1,
"MimeType": "image/png",
"IsPrimaryImage": true
},
{
"ImageUrl": "https://newblack.io/er/3000342794-BCK-side",
"Name": "BCK_side",
"Sequence": 2,
"MimeType": "image/png",
"IsPrimaryImage": false
}
...]

Explanation of variables

  • ImageUrl (Required): This is the URL we fetch the image from.
  • Name (Optional): The unique name of the image; it is shown on hover-over on a website.
  • Sequence (Optional): The sequence number of the image. This can be used to determine the display order of images in applications.
    • Smaller numbers mean a higher priority.
  • MimeType (Optional): The image mime type. If null, then the mime type will be guessed by the ImageUrl. This is especially relevant when you want to upload PNGs with a transparent background to EVA.
    • Ensure you use correct MimeType syntax, such as: image/png or image/jpeg.
  • IsPrimaryImage (Optional): If an image is specified as IsPrimaryImage = true then it will be used as the primary image on the product.
    • Please ensure that only one image has this value set.

3rd party CDN

By default EVA will sync your ImageURL content to our own CDN. This usually works fine in a global POS landscape, but could result in performance issues in a global e-commerce context.

If you want to rely on your own 3rd party CDN and its caching logic, you can optionally override our CDN and have EVA directly access ImageURLs at your designated CDN.

To do so, include the value CDN on the property LocationType as follows:

Using a 3rd party CDN
{
"ImageUrl": "https://newblack.io/er/3000342794-BCK-front”,
"Name": "BCK_front",
"Sequence": 1,
"LocationType": "CDN",
"MimeType": "image/png"
}

Advanced image upload

Below is a full request to add a hoodie, including an image on the Parent Product on the color level, which will then apply to all underlying sizes.

Image upload sample

{
"SystemID": "Mulesoft",
"Products": [
{
"ID": "HOODIE-576579",
"Name": "New Black Hoodie",
"CustomID": "20399280",
"TaxCode": "Clothing",
"Brand": "New Black",
"Variations": {
"Property": "color",
"LogicalLevel": "color",
"Products": [
{
"ID": "HOODIE-576579-BLK",
"Name": "New Black Hoodie - Black",
"CustomID": "3000342794",
"TaxCode": "Clothing",
"Brand": "New Black",
"Content": [
{
"CustomContent": {
"color": "Black"
},
"Images": [
{
"ImageUrl": "https://newblack.io/er/3000342794-BCK",
"Name": "BCK",
"Sequence": 1,
"MimeType": "image/png",
"IsPrimaryImage": true
}
]
}
],
"VariationValues": [
{
"Value": "Black"
}
],
"IsDeleted": false,
"Variations": {
"Property": "size",
"LogicalLevel": "size",
"Products": [
{
"ID": "HOODIE-576579-BLK-XL",
"Name": "New Black Hoodie - Black XL",
"CustomID": "400002393747",
"TaxCode": "Clothing",
"Brand": "New Black",
"Barcodes": [
"2300009489492"
],
"Type": {
"Stock": true
},
"Content": [
{
"CustomContent": {
"color": "Black",
"size": "XL"
}
}
],
"VariationValues": [
{
"Value": "XL"
}
],
"IsDeleted": false
},
{
"ID": "HOODIE-576579-BLK-L",
"Name": "New Black Hoodie - Black L",
"CustomID": "400002393747",
"TaxCode": "Clothing",
"Brand": "New Black",
"Barcodes": [
"2300009476492"
],
"Type": {
"Stock": true
},
"Content": [
{
"CustomContent": {
"color": "Black",
"size": "L"
}
}
],
"VariationValues": [
{
"Value": "L"
}
],
"IsDeleted": false
}
]
}
}
]
},
"IsDeleted": false
}
]
}

Languages

Note how the Content object in our example request is an array, that's because you can add content for multiple languages:

{
"SystemID": "InsomniaImport",
"Products": [
{
"ID": "1",
"Name": "Unisex T-shirt",
"TaxCode": "High",
"Content": [
{
"LanguageID": "nl",
"ShortDescription": "Unisex heavyweight t-shirt met geborduurd Nerd logo.",
"Images": [
{
"ImageUrl": "https://picsum.photos/200"
}
]
},
{
"LanguageID": "en",
"ShortDescription": "Unisex heavyweight t-shirt with embroidered Nerd logo.",
"Images": [
{
"ImageUrl": "https://picsum.photos/200"
}
]
}
]
}
]
}
More information about using languages

You can find much more information about the use of languages and countries in the Content object in the Custom product properties docs.

USP Text and USP Blobs

Using the UniqueSellingPointTexts and UniqueSellingPointBlobIDs you can display product information on POS and Companion App directly in the search result by providing the respective input to the referred to properties.

Here is what this would look like using our NewBorn T-Shirt example:

{
"SystemID": "PimCore",
"Products": [
{
"ID": "121",
"Name": "NewBorn T-Shirt",
"TaxCode": "High",
"Content": [
{
"LanguageID": "nl",
"ShortDescription": "NewBorn t-shirt voor de kleintjes.",
"Images": [
{
"ImageUrl": "https://i.ibb.co/tDVGybm/newborn-logo.jpg"
}
],
"UniqueSellingPointTexts": [
"Green choice",
"Vegan"
],
"UniqueSellingPointBlobIDs": [
"290c4a1e-3ac0-4d69-b7d2-c622a55352e2",
"62cc81df-c975-48de-bba4-0ddf0e85cead"
]
}
]
}
]
}
note
  • The text and blobs are order sensitive. So in our example, "Green choice" will link to the first BlobID, "Vegan" to the second, and so forth.
  • For the BlobID you can refer to Blob management.