v2 > Services > MaterialsUpdate
Update one or more materials in Origin.
URL
/connect/v2/materials/update
/connect/v2/async/materials/update
Method:
POST
URL Params
none
Request :
Field | Type | Required | Description | Domain of value |
---|---|---|---|---|
materials[] |
array of object | At least one | The list of materials to update | Material object(s) |
materials[].locale |
string | Yes | An Origin supported locale | 'de', 'es_MX', 'en', 'fr' or 'zh_CN' |
materials[].originId |
string | Only if no materials[].externalId |
The material unique origin ID | Any string |
materials[].externalId |
string | Only if no materials[].originId |
The material unique ID in your system | Any string |
materials[].productId |
string | No | An identification code (ex: a catalog id, SKU code) | Any string |
materials[].managementPermission |
string | No | The access permission profile | COMPANY_READONLY, COMPANY_EDITABLE, ONLY_ME |
materials[].name |
string | No | The material name | Any string |
materials[].description |
string | No | The material description | Any string |
materials[].brand |
object | No | The material brand | A brand object |
materials[].brand.name |
string | Only if materials[].brand is present |
The brand name | Any string |
materials[].brand.website |
string | No | The brand website | A valid public facing URL |
materials[].logoUrl |
object | No | The material logo URL. In Origin, It refers to the material thumbnail image and the first image of the material. This image can also be set in Origin Website -> Material edit page -> Image Section -> Featured Image checkbox. | A logoUrl object |
materials[].logoUrl.originalUrl |
string | Only if materials[].logoUrl is present |
The logo URL | A valid public facing URL |
materials[].collection |
object | No | The Material collection (ex: winter collection) | A collection object |
materials[].collection.name |
string | Only if materials[].collection is present |
The collection name | Any string |
materials[].libraries[] |
array of object | No | The list of libraries for the material | Library object(s) |
materials[].libraries[].collectionBehavior |
string | Only if materials[].libraries[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].libraries[].name |
string | Only if materials[].libraries[] is present |
The library name | Any string |
materials[].category |
object | No | The category for the material | A category object |
materials[].category.code |
string | Only if materials[].category is present and materials[].category.name is empty |
The category code | data[].code in CategoriesLookup |
materials[].category.name |
string | Only if materials[].category is present and materials[].category.code is empty |
The category name. It's highly recommended to use materials[].category.code instead of materials[].category.name |
data[].name in CategoriesLookup |
materials[].csiDivisions[] |
array of object | No | The CSI Divisions for the material | CsiDivision object(s) |
materials[].csiDivisions[].collectionBehavior |
string | Only if materials[].csiDivisions[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].csiDivisions[].code |
string | Only if materials[].csiDivisions[] is present and if materials[].csiDivisions.name is empty |
The CSI Division code | data[].code in CsiDivisionsLookup |
materials[].csiDivisions[].name |
string | Only if materials[].csiDivisions[] is present and if materials[].csiDivisions.code is empty |
The CSI Division name. It's highly recommended to use materials[].csiDivisions[].code instead of materials[].csiDivisions.name |
data[].name in CsiDivisionsLookup |
materials[].images[] |
array of object | No | The list of images for the material | Image object(s) |
materials[].images[].collectionBehavior |
string | Only if materials[].images[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].images[].originalUrl |
string | Only if materials[].images[] is present |
URL of an image related to the material | A valid public facing URL |
materials[].additionalsDocuments[] |
array of object | No | The list of document for the material | Document object(s) |
materials[].additionalsDocuments[].collectionBehavior |
string | Only if materials[].additionalsDocuments[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].additionalsDocuments[].originalUrl |
string | Only if materials[].additionalsDocuments[] is present |
URL of a document related to the material | A valid public facing URL |
materials[].contacts[] |
array of object | No | The related contacts | Contact object(s) |
materials[].contacts[].collectionBehavior |
string | Only if materials[].contacts[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].contacts[].externalId |
string | Only if materials[].contacts[] is present |
A unique identifier of your choosing that serves as a unique key for the contact | Any string |
materials[].contacts[].type |
string | No | The contact type | MANUFACTURER, AUDITOR or VENDOR |
materials[].contacts[].companyName |
string | No | The contact company name | Any string |
materials[].contacts[].name |
string | No | The contact name | Any string |
materials[].contacts[].website |
string | No | The contact website | A valid public facing URL |
materials[].contacts[].postalAddress |
string | No | The contact postal address | Any string |
materials[].contacts[].phone |
string | No | The contact phone | Any string |
materials[].contacts[].email |
string | No | The contact email | A valid email |
materials[].channels[] |
array of object | No | The list of channels on which the material will be published or posted | Channel object(s). Not published if empty. |
materials[].channels[].collectionBehavior |
string | Only if materials[].channels[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. ADD will publish or save to. REMOVE will unpublish or remove from. | ADD, REMOVE |
materials[].channels[].name |
string | Only if materials[].channels[] is present |
The channel name. If you set the name to 'ORIGIN' this is equivalent to publish or unpublish your material on Origin (only for Manufacturer and Reporting Body users). If you set the name to 'COMPANY_LIBRARY' this is equivalent to save to or remove from your company library on Matter (only for AEC users) |
ORIGIN, COMPANY_LIBRARY |
materials[].featuresCustoms[] |
array of object | No | The Custom features for the material | Custom feature object(s) |
materials[].featuresCustoms[].collectionBehavior |
string | Only if materials[].featuresCustoms[] is present |
The update action. ADD is used to create or update. REMOVE is used to remove. | ADD, REMOVE |
materials[].featuresCustoms[].originId |
string | - To create (collectionBehavior = ADD) a feature : No - To update (collectionBehavior = ADD) a feature : No, but it's highly recommanded. - To remove (collectionBehavior = REMOVE) a feature : No, but it's highly recommanded. If it's present, the action will be performed on the right feature |
The custom feature unique origin ID | A UUID |
materials[].featuresCustoms[].name |
string | Only if materials[].featuresCustoms[] is present |
The custom feature name | Any string |
materials[].featuresCustoms[].code |
string | Only if materials[].featuresCustoms[] is present |
The custom feature property code | data[].code prefixed with CUSTOM in PropertiesLookup |
materials[].featuresCustoms[].value |
object | Only if materials[].featuresCustoms[] is present |
The custom feature value | Value object |
materials[].featuresCustoms[].value.code |
string | If the property require a reference code | The custom feature value reference code | possibleValues[].code in PropertyDetailsLookup |
materials[].featuresCustoms[].value.content |
string | If the property does not require a reference code | The custom feature value content | Any string |
materials[].featuresProperties[] |
array of object | No | The feature properties for the material | Feature property object(s) |
materials[].featuresProperties[].collectionBehavior |
string | Only if materials[].featuresProperties[] is present |
The update action. ADD is used to create or update. REMOVE is used to remove. | ADD, REMOVE |
materials[].featuresProperties[].originId |
string | - To create (collectionBehavior = ADD) a feature : No - To update (collectionBehavior = ADD) a feature : No, but it's highly recommanded. - To remove (collectionBehavior = REMOVE) a feature : No, but it's highly recommanded. If it's present, the action will be performed on the right feature |
The property feature unique origin ID | A UUID |
materials[].featuresProperties[].code |
string | Only if materials[].featuresProperties[] is present |
The property feature code | data[].code NOT prefixed with CUSTOM in PropertiesLookup |
materials[].featuresProperties[].value |
object | Only if materials[].featuresProperties[] is present |
The property feature value | Value object |
materials[].featuresProperties[].value.code |
string | If the property require a reference code | The property feature value reference code | possibleValues[].code in PropertyDetailsLookup |
materials[].featuresProperties[].value.content |
string | If the property does not require a reference code | The property feature value content | Any string |
materials[].featuresProperties[].unit |
string | No | The property feature unit | Unit object |
materials[].featuresProperties[].unit.code |
string | No | The property feature unit code | possibleUnits[].code in PropertyDetailsLookup |
materials[].tags[] |
array of object | No | The list of tags for the material | Tag object(s) |
materials[].tags[].collectionBehavior |
string | Only if materials[].tags[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].tags[].name |
string | Only if materials[].tags[] is present |
The tag name | Any string |
materials[].skus[] |
array of object | No | The list of SKUs for the material | Sku object(s) |
materials[].skus[].collectionBehavior |
string | Only if materials[].skus[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].skus[].originId |
string | - To create (collectionBehavior = ADD) a sku : No - To update (collectionBehavior = ADD) a sku : No, but it's highly recommanded. - To remove (collectionBehavior = REMOVE) a sku : No, but it's highly recommanded. If it's present, the action will be performed on the right sku |
The sku unique origin ID | A UUID |
materials[].skus[].name |
string | Only if materials[].skus[] is present |
The SKU name | Any string |
materials[].skus[].productId |
string | No | An identification code (ex: a catalog id, SKU code) | Any string |
materials[].skus[].images[] |
array of object | No | The list of images for the SKU | Image object(s) |
materials[].skus[].images[].collectionBehavior |
string | Only if materials[].skus[].images[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].skus[].images[].originalUrl |
string | Only if materials[].skus[].images[] is present |
URL of an image related to the SKU | A valid public facing URL |
materials[].skus[].additionalsDocuments[] |
string | No | The list of document for the SKU | Document object(s) |
materials[].skus[].additionalsDocuments[].collectionBehavior |
string | Only if materials[].skus[].additionalsDocuments[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].skus[].additionalsDocuments[].originalUrl |
string | Only if materials[].skus[].additionalsDocuments[] is present |
URL of a document related to the SKU | A valid public facing URL |
materials[].skus[].featuresCustoms[] |
array of object | No | The Custom features for the sku | Custom feature object(s) |
materials[].skus[].featuresCustoms[].collectionBehavior |
string | Only if materials[].skus[].featuresCustoms[] is present |
The update action. ADD is used to create or update. REMOVE is used to remove. | ADD, REMOVE |
materials[].skus[].featuresCustoms[].originId |
string | - To create (collectionBehavior = ADD) a feature : No - To update (collectionBehavior = ADD) a feature : No, but it's highly recommanded. - To remove (collectionBehavior = REMOVE) a feature : No, but it's highly recommanded. If it's present, the action will be performed on the right feature |
The custom feature unique origin ID | A UUID |
materials[].skus[].featuresCustoms[].name |
string | Only if materials[].skus[].featuresCustoms[] is present |
The custom feature name | Any string |
materials[].skus[].featuresCustoms[].code |
string | Only if materials[].skus[].featuresCustoms[] is present |
The custom feature property code | data[].code prefixed with CUSTOM in PropertiesLookup |
materials[].skus[].featuresCustoms[].value |
object | Only if materials[].skus[].featuresCustoms[] is present |
The custom feature value | Value object |
materials[].skus[].featuresCustoms[].value.code |
string | If the property require a reference code | The custom feature value reference code | possibleValues[].code in PropertyDetailsLookup |
materials[].skus[].featuresCustoms[].value.content |
string | If the property does not require a reference code | The custom feature value content | Any string |
materials[].skus[].featuresProperties[] |
array of object | No | The feature properties for the sku | Feature property object(s) |
materials[].skus[].featuresProperties[].collectionBehavior |
string | Only if materials[].skus[].featuresProperties[] is present |
The update action. ADD is used to create or update. REMOVE is used to remove. | ADD, REMOVE |
materials[].featuresProperties[].originId |
string | - To create (collectionBehavior = ADD) a feature : No - To update (collectionBehavior = ADD) a feature : No, but it's highly recommanded. - To remove (collectionBehavior = REMOVE) a feature : No, but it's highly recommanded. If it's present, the action will be performed on the right feature |
The property feature unique origin ID | A UUID |
materials[].skus[].featuresProperties[].code |
string | Only if materials[].skus[].featuresProperties[] is present |
The property feature code | data[].code NOT prefixed with CUSTOM in PropertiesLookup |
materials[].skus[].featuresProperties[].value |
object | Only if materials[].skus[].featuresProperties[] is present |
The property feature value | Value object |
materials[].skus[].featuresProperties[].value.code |
string | If the property require a reference code | The property feature value reference code | possibleValues[].code in PropertyDetailsLookup |
materials[].skus[].featuresProperties[].value.content |
string | If the property does not require a reference code | The property feature value content | Any string |
materials[].skus[].featuresProperties[].unit |
string | No | The property feature unit | Unit object |
materials[].skus[].featuresProperties[].unit.code |
string | No | The property feature unit code | possibleUnits[].code in PropertyDetailsLookup |
materials[].connectedCertifications[] |
array of object | No | The list of certifications connected to the material | Certification object(s) |
materials[].connectedCertifications[].collectionBehavior |
string | Only if materials[].connectedCertifications[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].connectedCertifications[].originId |
string | Only if materials[].connectedCertifications[] is present |
The certification unique origin ID | Any string |
materials[].connectedDeclarations[] |
array of object | No | The list of declarations connected to the material | Declaration object(s) |
materials[].connectedDeclarations[].collectionBehavior |
string | Only if materials[].connectedDeclarations[] is present |
The way the current collection element is updated. ADD will update attribute of existing element. | ADD, REMOVE |
materials[].connectedDeclarations[].originId |
string | Only if materials[].connectedDeclarations[] is present |
The declaration unique origin ID | Any string |
materials[].url |
string | No | The material URL | A valid public facing URL |
- Sample Request (Update of materials attributes):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"productId": "MY-MAT-001",
"managementPermission": "ONLY_ME",
"name": "My material",
"description": "a new material description",
"url": "https://public.facing.url/mynewmaterial.html"
}
]
}
- Sample Request (Update of brand):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"brand": {
"name": "ACME new brand.",
"website": "www.acmenewxyz.com"
}
}
]
}
- Sample Request (Update of category with category code):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"category": {
"code": "gc_22"
}
}
]
}
- Sample Request (Update of category with category name):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"category": {
"name": "Doors"
}
}
]
}
- Sample Request (Update of logoUrl):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"logoUrl": {
"originalUrl": "https://public.facing.url/newlogo.jpg"
}
}
]
}
- Sample Request (Update of collection):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"collection": {
"name": "Summer Collection"
}
}
]
}
- Sample Request (Update the material by ADDING a library):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"libraries": [
{
"collectionBehavior": "ADD",
"name": "My new Library"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a library):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"libraries": [
{
"collectionBehavior": "REMOVE",
"name": "My Acme Library"
}
]
}
]
}
- Sample Request (Update the material by ADDING a CSI division):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"csiDivisions": [
{
"collectionBehavior": "ADD",
"code": "126800",
"name": "Seat and Table Assemblies"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a CSI division):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"csiDivisions": [
{
"collectionBehavior": "REMOVE",
"code": "126800"
}
]
}
]
}
- Sample Request (Update the material by ADDING an image):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"images": [
{
"collectionBehavior": "ADD",
"originalUrl": "https://public.facing.url/image2.jpg"
}
]
}
]
}
- Sample Request (Update the material by REMOVING an image):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"images": [
{
"collectionBehavior": "REMOVE",
"originalUrl": "https://public.facing.url/image2.jpg"
}
]
}
]
}
- Sample Request (Update the material by ADDING a document):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"additionalsDocuments": [
{
"collectionBehavior": "ADD",
"originalUrl": "https://public.facing.url/document.doc"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a document):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"additionalsDocuments": [
{
"collectionBehavior": "REMOVE",
"originalUrl": "https://public.facing.url/document.doc"
}
]
}
]
}
- Sample Request (Update the material by ADDING a contact):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"contacts": [
{
"collectionBehavior": "ADD",
"externalId": "JOHNSMITHAUDITOR1",
"type": "AUDITOR",
"companyName": "ACME Inc.",
"name": "John Smith",
"website": "https://www.acme.com/",
"postalAddress": "2500 Street Avenues",
"phone": "1-999-123-1234",
"email": "auditsrep@acme.com"
}
]
}
]
}
- Sample Request (Update the material by UPDATING a contact website):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"contacts": [
{
"collectionBehavior": "ADD",
"externalId": "JOHNSMITHAUDITOR1",
"website": "https://www.acme-2000.com/"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a contact):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"contacts": [
{
"collectionBehavior": "REMOVE",
"externalId": "JOHNSMITHAUDITOR1"
}
]
}
]
}
- Sample Request (Update the material visibility. ADD channel = PUBLISH on that channel):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"channels": [
{
"collectionBehavior": "ADD",
"name": "ORIGIN"
}
]
}
]
}
- Sample Request (Update the material visibility. REMOVE channel = UNPUBLISH from that channel):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"channels": [
{
"collectionBehavior": "REMOVE",
"name": "ORIGIN"
}
]
}
]
}
- Sample Request (Save the material to the company library. ADD channel = SAVE TO that channel):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"channels": [
{
"collectionBehavior": "ADD",
"name": "COMPANY_LIBRARY"
}
]
}
]
}
- Sample Request (Remove the material from th company library. REMOVE channel = REMOVE FROM that channel):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"channels": [
{
"collectionBehavior": "REMOVE",
"name": "COMPANY_LIBRARY"
}
]
}
]
}
- Sample Request (Update the material by ADDING a custom feature):
Note : If the feature already exist, nothing happen.
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresCustoms":[
{
"collectionBehavior":"ADD",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
]
}
]
}
- Sample Request (Update the material by UPDATING a custom feature) New and Recommanded way with
originId
:
Note : To update a custom feature, the custom feature code and originId must be identical to those returned by the MaterialsSearch to be updated
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresCustoms":[
{
"collectionBehavior":"ADD",
"originId": "1aaaf230-1fb4-4213-9b26-dd7c4489bea6",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"2000C"
}
}
]
}
]
}
- Sample Request (Update the material by UPDATING a custom feature) Old and Not Recommanded way:
Note : To update a custom feature, you must delete the old custom feature and add the new custom feature. The old custom feature payload must be identical to the payload returned by the MaterialsSearch to be removed
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresCustoms":[
{
"collectionBehavior":"REMOVE",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
},
{
"collectionBehavior":"ADD",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"2000C"
}
}
]
}
]
}
- Sample Request (Update the material by REMOVING a custom feature.) New and Recommanded way with
originId
:
Note : If the feature does not exist, nothing happen. The custom feature code and originId must be identical to those returned by the MaterialsSearch to be removed
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresCustoms":[
{
"collectionBehavior":"REMOVE",
"originId": "1aaaf230-1fb4-4213-9b26-dd7c4489bea6",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
]
}
]
}
- Sample Request (Update the material by REMOVING a custom feature.) Old and Not Recommanded way:
Note : If the feature does not exist, nothing happen. The custom feature payload must be identical to the payload returned by the MaterialsSearch to be removed
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresCustoms":[
{
"collectionBehavior":"REMOVE",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
]
}
]
}
- Sample Request (Update the material by ADDING a property feature):
Note : If the feature already exist, nothing happen.
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresProperties":[
{
"collectionBehavior":"ADD",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
]
}
- Sample Request (Update the material by UPDATING a property feature) New and Recommanded way with
originId
:
Note : To update a property feature, the property feature code and originId must be identical to those returned by the MaterialsSearch to be updated.
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresProperties":[
{
"collectionBehavior":"ADD",
"originId":"f90d751d-c7ad-48b4-932b-6b1ce80469e8",
"code":"LENGTH",
"value":{
"content":"24"
},
"unit":{
"code":"INCH"
}
}
]
}
]
}
- Sample Request (Update the material by UPDATING a property feature) Old and Not Recommanded way:
Note : To update a property feature, you must delete the old property feature and add the new property feature. The old property feature payload must be identical to the payload returned by the MaterialsSearch to be removed.
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresProperties":[
{
"collectionBehavior":"REMOVE",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
},
{
"collectionBehavior":"ADD",
"code":"LENGTH",
"value":{
"content":"24"
},
"unit":{
"code":"INCH"
}
}
]
}
]
}
- Sample Request (Update the material by REMOVING a property feature) New and Recommanded way with
originId
:
Note : If the feature does not exist, nothing happen. The property feature code and originId must be identical to those returned by the MaterialsSearch to be removed
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresProperties":[
{
"collectionBehavior":"REMOVE",
"originId":"f90d751d-c7ad-48b4-932b-6b1ce80469e8",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
]
}
- Sample Request (Update the material by REMOVING a property feature) Old and Not Recommanded way:
Note : If the feature does not exist, nothing happen. The property feature payload must be identical to the payload returned by the MaterialsSearch to be removed.
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"featuresProperties":[
{
"collectionBehavior":"REMOVE",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
]
}
- For more sample requests related to features, please see the Advanced Guidelines Multilingual Material Features
- Sample Request (Update the material by ADDING a tag):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"tags": [
{
"collectionBehavior": "ADD",
"name": "modern"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a tag):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"tags": [
{
"collectionBehavior": "REMOVE",
"name": "modern"
}
]
}
]
}
- Sample Request (Update the material by ADDING a SKU):
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"skus":[
{
"collectionBehavior":"ADD",
"name":"New sku",
"productId":"SKU-A01",
"images":[
{
"collectionBehavior":"ADD",
"originalUrl":"https://public.facing.url/001.jpg"
}
],
"additionalsDocuments":[
{
"collectionBehavior":"ADD",
"originalUrl":"https://public.facing.url/001.pdf"
}
],
"featuresCustoms":[
{
"collectionBehavior":"ADD",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
],
"featuresProperties":[
{
"collectionBehavior":"ADD",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
]
}
]
}
- Sample Request (Update the material by UPDATING a SKU name and productId) New and Recommanded way with
originId
:
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"skus":[
{
"collectionBehavior":"ADD",
"originId":"cf020a53-f766-4320-949a-9173d3816a3a",
"name":"New sku updated",
"productId":"SKU-A01-UPDATED",
}
]
}
]
}
- Sample Request (Update the material by REMOVING custom feature and property feature of a SKU) New and Recommanded way with
originId
:
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"skus":[
{
"collectionBehavior":"ADD",
"originId":"cf020a53-f766-4320-949a-9173d3816a3a",
"name":"New sku",
"productId":"SKU-A01",
"featuresCustoms":[
{
"collectionBehavior":"REMOVE",
"originId":"4097a9a1-8ccb-4e1b-b609-2cdf10fccf2e",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
],
"featuresProperties":[
{
"collectionBehavior":"REMOVE",
"originId":"5b3119a7-e9fc-4a84-9f4e-157eedf11e4e",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
]
}
]
}
- Sample Request (Update the material by REMOVING custom feature and property feature of a SKU )Old and Not Recommanded way:
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"skus":[
{
"collectionBehavior":"ADD",
"name":"New sku",
"productId":"SKU-A01",
"featuresCustoms":[
{
"collectionBehavior":"REMOVE",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
],
"featuresProperties":[
{
"collectionBehavior":"REMOVE",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
]
}
]
}
- Sample Request (Update the material by REMOVING a SKU) New and Recommanded way with
originId
:
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"skus": [
{
"collectionBehavior": "REMOVE",
"originId":"cf020a53-f766-4320-949a-9173d3816a3a",
"name": "New sku"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a SKU) Old and Not Recommanded way:
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"skus": [
{
"collectionBehavior": "REMOVE",
"name": "New sku"
}
]
}
]
}
- Sample Request (Update the material by ADDING a connecting certification):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"connectedCertifications": [
{
"collectionBehavior": "ADD",
"originId": "f6f2c73e-4054-44bc-95f2-9e033b9c2282"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a connecting certification):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"connectedCertifications": [
{
"collectionBehavior": "REMOVE",
"originId": "f6f2c73e-4054-44bc-95f2-9e033b9c2282"
}
]
}
]
}
- Sample Request (Update the material by ADDING a connecting declaration):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"connectedDeclarations": [
{
"collectionBehavior": "ADD",
"originId": "ca3dcfc2-c8b6-4348-93ff-1f7a0cd84350"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a connecting declaration):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"connectedDeclarations": [
{
"collectionBehavior": "REMOVE",
"originId": "ca3dcfc2-c8b6-4348-93ff-1f7a0cd84350"
}
]
}
]
}
- Sample Request (Update the material by ADDING a connecting test report):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"connectedTestReports": [
{
"collectionBehavior": "ADD",
"originId": "71d2b7cf-686a-4b9b-9385-2560777a6a71"
}
]
}
]
}
- Sample Request (Update the material by REMOVING a connecting test report):
{
"materials": [
{
"locale": "en",
"originId": "88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"connectedTestReports": [
{
"collectionBehavior": "REMOVE",
"originId": "71d2b7cf-686a-4b9b-9385-2560777a6a71"
}
]
}
]
}
- Sample Request (All fields):
{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"productId":"MY-MAT-001",
"managementPermission":"COMPANY_EDITABLE",
"name":"My material",
"description":"a new material description",
"brand":{
"name":"ACME Super brand.",
"website":"www.acmesuperxyz.com"
},
"logoUrl":{
"originalUrl":"https://public.facing.url/newlogo.jpg"
},
"collection":{
"name":"Spring Collection"
},
"libraries":[
{
"collectionBehavior":"ADD",
"name":"My Acme Library"
}
],
"category":{
"name":"Tables"
},
"csiDivisions":[
{
"collectionBehavior":"ADD",
"code":"126800",
"name":"Seat and Table Assemblies"
}
],
"images":[
{
"collectionBehavior":"ADD",
"originalUrl":"https://public.facing.url/image2.jpg"
}
],
"additionalsDocuments":[
{
"collectionBehavior":"ADD",
"originalUrl":"https://public.facing.url/document.doc"
}
],
"contacts":[
{
"collectionBehavior":"ADD",
"externalId":"JOHNSMITHAUDITOR1",
"type":"AUDITOR",
"companyName":"ACME Inc.",
"name":"John Smith",
"website":"https://www.acme.com/",
"postalAddress":"2500 Street Avenues",
"phone":"1-999-123-1234",
"email":"auditsrep@acme.com"
}
],
"channels":[
{
"collectionBehavior":"ADD",
"name":"ORIGIN"
}
],
"featuresCustoms":[
{
"collectionBehavior":"ADD",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
],
"featuresProperties":[
{
"collectionBehavior":"ADD",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
],
"tags":[
{
"collectionBehavior":"ADD",
"name":"modern"
}
],
"skus":[
{
"collectionBehavior":"ADD",
"name":"New sku",
"productId":"SKU-A01",
"images":[
{
"collectionBehavior":"ADD",
"originalUrl":"https://public.facing.url/001.jpg"
}
],
"additionalsDocuments":[
{
"collectionBehavior":"ADD",
"originalUrl":"https://public.facing.url/001.pdf"
}
],
"featuresCustoms":[
{
"collectionBehavior":"ADD",
"code":"CUSTOM_TEXT_ATTRIBUTE",
"name":"Supported temperature",
"value":{
"content":"1550C"
}
}
],
"featuresProperties":[
{
"collectionBehavior":"ADD",
"code":"LENGTH",
"value":{
"content":"60"
},
"unit":{
"code":"CENTIMETER"
}
}
]
}
],
"connectedCertifications":[
{
"collectionBehavior":"REMOVE",
"originId":"f6f2c73e-4054-44bc-95f2-9e033b9c2282"
}
],
"url":"https://public.facing.url/mynewmaterial.html"
}
]
}
- Response (sync mode) :
Field | Type | Presence | Description | Domain of value |
---|---|---|---|---|
status |
object | Always | The execution status | A status object |
status.state |
string | Always | The state of execution | 'SUCCESS' or 'ERROR' |
status.code |
string | On error | The general error code and message | See Errors reference |
status.messages[] |
array of string | On error | List of error causes | A validation message or other causes |
result |
object | On success | The execution result | A result object |
result.entityType |
string | On success | The type of entity this result is about | 'MATERIAL' |
result.result |
object | On success | A simple completion message | 'Update completed.' |
connectRequest |
object | Always | The exact request sent that produced this response | A MaterialsUpdate request |
Sample Response (Success in sync mode):
HTTP Code : 200
{
"status":{
"state":"SUCCESS"
},
"result":{
"entityType":"MATERIAL",
"result":"Update completed."
},
"connectRequest":{
"materials":[
{
"locale":"en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"url":"https://public.facing.url/material"
}
]
}
}
- Response (async mode):
Field | Type | Presence | Description | Domain of value |
---|---|---|---|---|
status |
object | Always | The execution status | A status object |
status[].state |
string | Always | The state of execution | 'SUCCESS' or 'ERROR' |
status[].code |
string | On error | The general error code and message | See Errors reference |
status[].messages[] |
array of string | On error | List of error causes | A validation message or other causes |
result |
object | On success | The execution result | A result object |
result.poolingCallback |
string | On success | The URL callback to pool using the ResultGet endpoint | A URL |
connectRequest |
object | Always | The exact request you sent that produced this response | A MaterialsUpdate request |
Sample Response (Success in async mode):
HTTP Code : 200
{
"status":{
"state":"SUCCESS"
},
"result":{
"poolingCallback":"https://origin.build/equinox/connect/v2/result/materials_update/batch/1c8a06b6-45be-4e68-9e2d-5c1f075e6ca2"
},
"connectRequest":{
"materials": [
{
"locale": "en",
"originId":"88dada05-5d38-4b60-91b9-f1bf9d6bf5dd",
"url":"https://public.facing.url/material"
}
]
}
}
Sample Response (Error):
HTTP Code : 400, 500
{
"status": {
"state": "ERROR",
"code": "CE00001 - Connect request failed validation. Refer to provided messages for details.",
"messages": [
"materials[1] has invalid value 'eee' for field locale. Allowed value(s) : [de, es_MX, en, fr, zh_CN]",
"materials[1] has invalid value 'Empty string' for field name. Allowed value(s) : [Non-empty string]",
"materials[1] require one brand.name.",
"materials[1] has invalid value 'COMPANY_WRITE' for field managementPermission. Allowed value(s) : [COMPANY_EDITABLE,COMPANY_READONLY,ONLY_ME]",
"materials[1] require one originId or externalId.",
"materials[1] has invalid value 'Empty string' for field productId. Allowed value(s) : [Non-empty string]",
"materials[1] require one csiDivisions[1].code or csiDivisions[1].name.",
"materials[1] has invalid value 'ADD_ITEM' for field libraries[1].collectionBehavior. Allowed value(s) : [ADD,REMOVE]",
"materials[1] require one contacts[1].externalId.",
"materials[1] require one skus[1].name.",
"materials[1] require one logoUrl.originalUrl."
]
},
"connectRequest": {
"materials": [
{
"locale": "eee",
"productId": " ",
"managementPermission": "COMPANY_WRITE",
"name": "",
"description": "a new material description",
"brand": {
"website": "www.acmesuperxyz.com"
},
"logoUrl": {
},
"libraries": [
{
"collectionBehavior": "ADD_ITEM",
"name": "My Acme Library"
}
],
"csiDivisions": [
{
"collectionBehavior": "ADD"
}
],
"contacts": [
{
"collectionBehavior": "ADD",
"type": "AUDITOR",
"name": "John Smith",
"companyName": "ACME Inc.",
"website": "https://www.acme.com/",
"postalAddress": "2500 Street Avenues",
"phone": "1-999-123-1234",
"email": "auditsrep@acme.com"
}
],
"skus": [
{
"collectionBehavior": "ADD",
"productId": "SKU-A01"
}
]
}
]
}
}