Product Import Payload Structure
  • 8 Minutes to read
  • Dark
    Light

Product Import Payload Structure

  • Dark
    Light

Article summary

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.

IMPORTANT!

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.

POST


How to properly test API calls

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 TypeData TypeAccepted ValuesDescription
companyIdRequiredStringGUIDGUID associated with your company account. Unique to each account
vocabularyIdRequiredStringGUIDEach 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
verboseOptionalBooleentrue/falseDefaults to false. provides more verbose output in the response. Does have a major performance cost so is best used only during testing/prototype/troubleshooting
whatIfOptionalBooleentrue/falseWhen 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

OptionalBooleantrue/falseWill 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
RequiredArray
Contains an a array of Products
ImportMode
RequiredenumCreateOrUpdate, Create, Update, ExportOnlyCreateOrUpdate: 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
OptionalenumSee Product Identifier Property TableUsed 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
RequiredString
The unique identifier of the product that you are creating or updating.
TaxonomyNodes
OptionalArray of GUIDsGUIDsUsed to set the taxonomy/category for a product.
CatalogItems
OptionalArray
Party, TargetMarket value pairsUsed for GDSN publications only to request catalog registration for your product to a specific recipient
   Party
Optional, Required for CatalogItemsStringGUIDRecipient GUID (For Catalogue items this is the Supplier GDSN Party)
   TargetMarket
Optional, Required for CatalogItems
enumThree 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
Optionalenum"Load" - Transporter Load    "MixedModule" - Mixed Module    "Pallet" - Pallet    "Display" - Display Shipper"Pack" - Pack or Inner Pack"Case" - Case    "BaseUnit" - Base UnitUsed mainly for GDSN when managing product hierarchy
ImmediateParentDetails
OptionalArrayContains ProductIdentifier, Quantity pairsUsed 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
   ProductIdentifierOptional, required with ImmediateParentDetailsStringGTIN of parent productThe identifier of the parent product that contains the current product. For GDSN, must use GTIN. Parent must exist before using.
   QuantityOptional, required with ImmediateParentDetails
Integer>0Sets 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
RecipientsRequirementSetsOptional
ArrayArray of recipient requirement setsRecipient 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
ArrayArray of asset attributes.
"Name",
"ValuesByLocale",
"Url",
"SourceUrl",
"Format"
The array of asset attributes. Contains assets' attributes and URLs.
NameOptional, Required for AssetValues
String
Asset attribute name.
ValuesByLocale
Optional, Required for AssetValues
ObjectContains attribute's locales e.g. "en-US": {}Object for locale values.
Name
Part of ValuesByLocaleString
Asset name as it should appear in the UI.
URLPart of ValuesByLocaleString
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.
FormatOptional for ValuesByLocale
Stringjpeg, png,  jpg, gif, mp4, mov, pdfHolds a file extenstion of an asset.
SourceParty
Optional for ValuesByLocale
Stringe.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 AssetValuesBooleantrue/falseSet to true to delete an existing value.
IsExplicitNullValue
Required for AssetValues
Booleantrue/falseIndicates 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}DiscontinueDateDeleteDateUsed 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.
Product import payload.png
Product import 3.png

You can copy this sample request below!

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


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.
ESC

Eddy AI, facilitating knowledge discovery through conversational intelligence