Upsert a Product

post/integrate/P

Upserts a product.

  • To add a new product that does not exist, specify the sku parameter in the request.

  • To update an existing product, specify the sku or typedId parameter of the existing product. The /integrate method performs a partial update – it does not delete values from fields that have not been specified in the update request.

    Use the /integrate/{TypeCode}/returnolddata endpoint to return also the data of the previous version in the response.


Please note: This method is intended to be used with one or two objects and it allows you to update particular fields. The request will overwrite the existing data of the record being updated, regardless of other changes. To work with more products in bulk please use the /loaddata/P endpoint.


This operation is particularly useful if the caller does not (and should not) know about typed IDs and other internal data fields, i.e. typically in an integration scenario.

The only mandatory pre-requisite for this operation is that the object's defined business key fields (vary per object type) are present in every request. No typed ID or version fields are required. This also means that no version checking is performed, thus the request will overwrite existing data of that record, regardless of other changes.

Information: You can upsert multiple records using one request. To do so, add multiple data objects into your JSON. See the example below.

[
  {
    "data": {
      "sku": "111111",
      "typedId": "2147501227.P",
      "label": "The New Label",
      "unitOfMeasure": "EA",
      "currency": "USD",
      "formulaName": "priceLogic2",
      "attribute1": "1",
      "attribute2": "2",
      "userGroupEdit": "Administrators",
      "userGroupViewDetails": "PricingManagers"
    }
  },
  {
    "data": {
      "sku": "222222",
      "label": "The New Label 2",
      "unitOfMeasure": "EA",
      "currency": "EUR",
      "formulaName": "priceLogic2",
      "attribute1": "1",
      "attribute2": "2",
      "userGroupEdit": "Administrators",
      "userGroupViewDetails": "PricingManagers"
    }
  }
]

Securitybasic or X-PriceFx-jwt
Request
Request Body schema: application/json

Either sku or typedId must be specified in order to update an existing product. To insert a new product, specify at least the sku parameter.

Please note: The data sent in your request might be different from our sample request schema. Custom fields (attribute1..attribute30) can be retrieved using the /fetch/PAM operation.

required
object

Specify field names and values you want to insert or update.

sku
required
string [ 1 .. 255 ] characters
typedId
string non-empty
label
string [ 1 .. 255 ] characters
unitOfMeasure
string [ 1 .. 255 ] characters
currency
string [ 1 .. 255 ] characters
formulaName
string [ 1 .. 255 ] characters
userGroupEdit
string [ 1 .. 255 ] characters
userGroupViewDetails
string [ 1 .. 255 ] characters
attribute1
string [ 1 .. 255 ] characters
attribute2
string [ 1 .. 255 ] characters
Responses
200

Returns full record details.

Response Schema: application/json
object or object
Any of:
Array of objects (Product) non-empty unique

The Product object. The Type code is P.

Array (non-empty)
createDate
string <date-time>
createdBy
integer
currency
string or null <= 255 characters
formulaName
string or null <= 255 characters
image
boolean or null
label
string <= 255 characters
lastUpdateBy
integer
lastUpdateDate
string <date-time>
sku
string <= 255 characters
typedId
string
unitOfMeasure
string or null <= 255 characters
userGroupEdit
string or null <= 255 characters
userGroupViewDetails
string or null <= 255 characters
version
integer
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
(integer or null) or (string or null) or (number or null) or (string or null) or (string or null) or (string or null)
status
number
Request samples
application/json
{
  • "data": {
    • "sku": "123456",
    • "typedId": "2147501227.P",
    • "label": "The Label",
    • "unitOfMeasure": "EA",
    • "currency": "USD",
    • "formulaName": "PricingFormula01",
    • "userGroupEdit": "Administrators",
    • "userGroupViewDetails": "PricingManagers",
    • "attribute1": "20",
    • "attribute2": "10"
    }
}
Response samples
application/json
{
  • "response": {
    • "node": "node",
    • "startRow": 0,
    • "data": [
      • {
        • "version": 8,
        • "label": "Label One",
        • "attribute1": "23"
        },
      • {
        • "version": 11,
        • "label": "Label Two",
        • "attribute1": "33"
        },
      • {
        • "version": 8,
        • "label": "Label Three",
        • "attribute1": "56"
        },
      • {
        • "version": 13,
        • "label": "Label Four",
        • "attribute1": "20"
        },
      • {
        • "version": 0,
        • "label": "Label Five",
        • "attribute1": "123"
        },
      • {
        • "version": 0,
        • "label": "Tofu",
        • "attribute1": "2"
        }
      ],
    • "endRow": 8,
    • "totalRows": 8,
    • "status": 0
    }
}