- 8 Minutes to read
- DarkLight
Product Import Payload Structure
- 8 Minutes to read
- DarkLight
The Syndigo API allows you to import or update product's data using a single request.
You can include assets' URLs or even add taxonomies in the request payload.
To import or update products using the Syndigo API, you need to have at least an initial vocabulary created!
To import the product(s), mention the following in the postman and then click Send.
The resources allocated to the UAT environment are drastically lower than what exists in our Production Environment.
It is not possible to import as many products to UAT as to production.
Use the UAT environment ONLY for testing purposes and checking payload structures!
Query Parameters
Expand to see the parameters and description
Parameter | Parameter Type | Data Type | Accepted Values | Description |
companyId | Required | String | GUID | GUID associated with your company account. Unique to each account |
vocabularyId | Required | String | GUID | Each account using the API has a vocabulary associated with their account that allows for customer defined aliases on attributes. This is the GUID to your company's customer vocabulay file |
verbose | Optional | Booleen | true/false | Defaults to false. provides more verbose output in the response. Does have a major performance cost so is best used only during testing/prototype/troubleshooting |
whatIf | Optional | Booleen | true/false | When set to "true" the importer will run through all of its logic and generate the response output but will not commit any data. Meant for testing |
shouldIncludeMissingVocabularyAttributes | Optional | Boolean | true/false | Will determine if attributes not included in your company vocabulary will be returned in search results. Defaults to setting in customer vocabulary, else defaults to false. If set to true, attributes not in vocabulary will return with its GUID. |
Specify the required values for params companyId and vocabularyId.
Headers
Authorization: Specify required Auth Token in the header.
Request Parameters
Expand to see the parameters and description
Parameter | Parameter Type | Data Type | Accepted Values | Description |
ProductsToImport | Required | Array | Contains an a array of Products | |
ImportMode | Required | enum | CreateOrUpdate, Create, Update, ExportOnly | CreateOrUpdate: create product if does not exist or updates existing product. Create: only creates, error if product already exists. Update: only updates existing products, fails if product does not exist. ExportOnly: applies only to export payloads that were pulled using the parameters useLens and flattenLensedProduct set to true. Views flattened attributes that include only one value for any attribute. Can't import products using this value. |
ProductIdentifierPropertyOverride | Optional | enum | See Product Identifier Property Table | Used in an import with multiple products. For that single product, this changes the identifier property used as the API key. Sets what type of value you would like to use as the ProductIdentifierValue |
ProductIdentifierValue | Required | String | The unique identifier of the product that you are creating or updating. | |
TaxonomyNodes | Optional | Array of GUIDs | GUIDs | Used to set the taxonomy/category for a product. |
CatalogItems | Optional | Array | Party, TargetMarket value pairs | Used for GDSN publications only to request catalog registration for your product to a specific recipient |
Party | Optional, Required for CatalogItems | String | GUID | Recipient GUID (For Catalogue items this is the Supplier GDSN Party) |
TargetMarket | Optional, Required for CatalogItems | enum | Three digit code that aligns with Target Markets as defined within your company settings. Can be retrieved aby API call. | Determines which country/region you are requesting your catalog be registered. |
PackageType | Optional | enum | "Load" - Transporter Load "MixedModule" - Mixed Module "Pallet" - Pallet "Display" - Display Shipper"Pack" - Pack or Inner Pack"Case" - Case "BaseUnit" - Base Unit | Used mainly for GDSN when managing product hierarchy |
ImmediateParentDetails | Optional | Array | Contains ProductIdentifier, Quantity pairs | Used for managing product hierarchy to set the parent product and define the quantity contained. The parent product must exist before using this in product import |
ProductIdentifier | Optional, required with ImmediateParentDetails | String | GTIN of parent product | The identifier of the parent product that contains the current product. For GDSN, must use GTIN. Parent must exist before using. |
Quantity | Optional, required with ImmediateParentDetails | Integer | >0 | Sets the number of current products contained in the parent product |
RecipientsToLink | Optional | Array of strings | GUID or as mapped in customer vocabulary | Links the product to assoicated recipient default requirement set(s). May have one or more RecipientsToLink. |
WorkflowId | Optional | String | GUID or as mapped in customer vocabulary | Imports or updates and adds it to the Workflow step |
RecipientsRequirementSets | Optional | Array | Array of recipient requirement sets | Recipient with Array of requirement sets |
Values | Optional | Array | Contains all attribute values to be imported or updated. | |
MultiValues | Optional | Array | Holds all attributes of type MultiValue | |
AssetValues | Optional | Array | Array of asset attributes. "Name", "ValuesByLocale", "Url", "SourceUrl", "Format" | The array of asset attributes. Contains assets' attributes and URLs. |
Name | Optional, Required for AssetValues | String | Asset attribute name. | |
ValuesByLocale | Optional, Required for AssetValues | Object | Contains attribute's locales e.g. "en-US": {} | Object for locale values. |
Name | Part of ValuesByLocale | String | Asset name as it should appear in the UI. | |
URL | Part of ValuesByLocale | String | URL of the asset in the supplier's asset library. | |
SourceUrl | Optional for ValuesByLocale | String | URL from which the asset was originally obtained (external to Syndigo). The attribute prevents from getting duplicated asset images (that are from the same source). If SourceUrl exists before the import, it will match and prevent duplicate. | |
Format | Optional for ValuesByLocale | String | jpeg, png, jpg, gif, mp4, mov, pdf | Holds a file extenstion of an asset. |
SourceParty | Optional for ValuesByLocale | String | e.g. “Marketplace” | Party from which the value was sources if not the current party. |
Recipient | Optional for ValuesByLocale | String | Alias or GUID of the recipient to which the value applies if it is recipient specific. | |
Delete | Required for AssetValues | Boolean | true/false | Set to true to delete an existing value. |
IsExplicitNullValue | Required for AssetValues | Boolean | true/false | Indicates if value is intended to be published as empty. |
ContainerValues | Optional | Array | Holds all attributes of type ContainerValue | |
ComplexValues | Optional | Array | Holds all attributes of type ComplexValue | |
NutritionalInformationModule | Optional | Module | Contains the nutrition panel(s) information | |
ProductIdentifierProperty | Required | enum | Determines the unique identifier attribute to be used as your product identifier, ProductIdentifierValue. Note that this must be unique or the API will not be able to determine which record to update. | |
LifeCycle | Optional | String | Contains multiple fields:CreatedDate{Value, Delete}DiscontinueDateDeleteDate | Used to manage the product life cycle. CreatedDate is system generated. DiscontinueDate and DeleteDate can be set by user. See example for details |
ErrorMode | Optional | enum | Ignore/Fail | Ignore will ignore any error encountered and continue the operation. Fail will prevent any information from the payload from being committed. If you have one product out of 50 in an import with an error, no products will be imported or updated. All will fail. |
Below is a screenshot of the import payload.
The request payload contains comments with attributes description, so that you can check how to create a product import request.
Request
{
"ProductImportData": {
"ProductsToImport": [ //Contains an array of Products.
{
"ImportMode": "Update", //Type of import (Create, CreateOrUpdate, Update, etc.)
"ProductIdentifierPropertyOverride": "GTIN", //Allows override of ProductIdentifierProperty at item level.
"ProductReferencePropertyOverride": "GTIN", /*Used in an import with multiple products.
For that single product, this changes the identifier property used as the API key.
Sets what type of value you would like to use as the ProductIdentifierValue */
"ProductIdentifierValue": "12345678911111", //The unique identifier of the product that you are creating or updating.
"SourceParties": [],
"TaxonomyNodes": [], //Used to set the taxonomy/category for a product.
"CatalogItems": [],
"PackageType": "BaseUnit", //Used mainly for GDSN when managing product hierarchy.
"ImmediateParentDetails": {},
"RecipientsToLink": [], //List of recipients to which the item is linked.
"RecipientsRequirementSets": {}, /*List of requirement sets to which the item is linked based on the entries in RecipientsToLink.
Only needed if item is not linked to all requirement sets for a recipient. */
"ComplexValues": [], //Holds all attributes of type ComplexValue.
"NutritionalInformationModule": { //Contains the nutrition panel(s) information.
"Values": [],
"MultiValues": [],
"ContainerValues": [],
"AssetValues": [],
"DocumentValues": [],
"IsExplicitNullValue": false
},
"Archived": false, //Indicates if the items in the payload are archived.
"Values": [
{
"Name": "GTIN", //Attribute alias from vocabulary or GUID.
"ValuesByLocale": { /*Grouping of attribute values by locale.
Each applicable locale will have a separate entry denoted by the actual locale (e.g. “en-US” : “”). */
"en-US": "12345678911111",
"pl-PL": "33377788821122",
"de-DE": "45237654621242"
},
"SourceParty": "", //Party from which the value was sources if not the current party (e.g. “Marketplace”) .
"Recipient": "",
"Delete": false, //Set to true to delete an existing value.
"IsExplicitNullValue": false //Indicates if value is intended to be published as empty.
},
{
"Name": "UPC",
"ValuesByLocale": {
"en-US": "11122233345"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "UPC",
"ValuesByLocale": {
"en-US": "11111111111"
},
"SourceParty": "",
"Recipient": "Amazon US", //Alias or GUID of the recipient to which the value applies if it is recipient specific.
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "MFG Part",
"ValuesByLocale": {
"en-US": "TEST OEM Number 123"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "Product Name",
"ValuesByLocale": {
"en-US": "Whole Grain Bread"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "Short Description",
"ValuesByLocale": {
"en-US": "Whole Grain Bread is a nutritious and versatile staple made from whole grain flour."
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "MFG Name",
"ValuesByLocale": {
"en-US": "A bread company"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "MFG Brand Name",
"ValuesByLocale": {
"en-US": "Whole Grainy"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "Feature - Benefit Bullet 1",
"ValuesByLocale": {
"en-US": "High in fiber: whole grain bread is an excellent source of dietary fiber, which aids in digestion and helps maintain a healthy gut"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "Feature - Benefit Bullet 2",
"ValuesByLocale": {
"en-US": "Rich in nutrients: it contains essential vitamins and minerals such as B vitamins, iron, magnesium, and zinc"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "Feature - Benefit Bullet 3",
"ValuesByLocale": {
"en-US": "Supports heart health: the fiber and healthy fats in whole grain bread can help lower cholesterol levels and reduce the risk of heart disease"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
},
{
"Name": "Packaging Level",
"ValuesByLocale": {
"en-US": "BASE_UNIT_OR_EACH"
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
}
],
"MultiValues": [],
"ContainerValues": [],
"AssetValues": [ //Contains asset attributes with image URLs.
{
"Name": "Main Product Image", //Asset name as it should appear in the UI.
"ValuesByLocale": {
"en-US": {
"Name": "Coconut_water.jpg", //File name
"Url": "https://images.theconversation.com/files/293520/original/file-20190923-23784-1ivpi9f.jpg?ixlib=rb-1.1.0&q=45&auto=format&w=1200&h=1200.0&fit=crop",
/*URL of the asset in the suppliers asset library*/
"SourceUrl": "https://images.theconversation.com/files/293520/original/file-20190923-23784-1ivpi9f.jpg?ixlib=rb-1.1.0&q=45&auto=format&w=1200&h=1200.0&fit=crop",
/*URL from which the asset was originally obtained (external to Syndigo), prevents duplicated products */
"Format": "jpeg" //File format of the asset (e.g. “jpeg”, “png”)
}
},
"SourceParty": "",
"Recipient": "",
"Delete": false,
"IsExplicitNullValue": false
}
],
"IsExplicitNullValue": false
}
],
"ProductIdentifierProperty": "GTIN",
"ProductReferenceProperty": "",
"Archived": false
},
"ErrorMode": "Fail" /* Ignore will ignore any error encountered and continue the operation.
Fail will prevent any information from the payload from being committed.
If you have one product out of 50 in an import with an error, no products will be imported or updated.
All will fail.
*/
}
Response 200 OK
{
"VerboseResponse": false,
"OverallResult": "Success",
"Errors": [],
"ResultsByActionType": {
"ProductImportData": [
{
"Result": "Success",
"IdentifierValue": "00053883224346",
"MatchedId": "6a96a21c-0aa0-492f-bb95-c648bbd2108c",
"Errors": []
}
]
}
}