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 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:
"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:
{
"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.
{
"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"
}
]
}
]
}
]
}
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"
]
}
]
}
]
}
- 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.