---
title: "Upsert a Product"
method: POST
path: "/integrate/P"
tags: ["Products"]
---

# Upsert a Product

`POST /integrate/P`

Upserts a product.<p>
- To *add* a new product that does not exist, specify the `sku` parameter in the request.<p>
- 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.<p>
Use the **`/integrate/{TypeCode}/returnolddata`** endpoint to return also the data of the previous version in the response.

---
<!-- theme: warning -->
> **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.<p>
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.

<!-- theme: note -->
>**Information**:
>You can upsert multiple records using one request. To do so, add multiple `data` objects into your JSON. See the example below.
```json
[
  {
    "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"
    }
  }
]
```

---

## Request body

- object
  - `data` object, required — Specify field names and values you want to insert or update.
    - `sku` string, required
    - `typedId` string
    - `label` string
    - `unitOfMeasure` string
    - `currency` string
    - `formulaName` string
    - `userGroupEdit` string
    - `userGroupViewDetails` string
    - `attribute1` string
    - `attribute2` string

## Response `200`

Returns full record details.

- object
  - `response` union
    - object
      - `data` Product[] — The Product object. The Type code is P.
        - `createDate` string, date-time
        - `createdBy` integer
        - `currency` string, nullable
        - `formulaName` string, nullable
        - `image` boolean, nullable
        - `label` string
        - `lastUpdateBy` integer
        - `lastUpdateDate` string, date-time
        - `sku` string
        - `typedId` string
        - `unitOfMeasure` string, nullable
        - `userGroupEdit` string, nullable
        - `userGroupViewDetails` string, nullable
        - `version` integer
        - `attribute1` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute2` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute3` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute4` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute5` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute6` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute7` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute8` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute9` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute10` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute11` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute12` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute13` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute14` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute15` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute16` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute17` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute18` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute19` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute20` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute21` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute22` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute23` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute24` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute25` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute26` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute27` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute28` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute29` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
        - `attribute30` union
          - integer, nullable
          - string, nullable
          - number, nullable
          - string, date-time, nullable
          - string, date, nullable
          - string, uri, nullable
      - `status` number
    - object — A nested array of values.
      - `data` unknown[]
        - unknown

---

[API](https://skmtc.net/pricefx/apis/the-pricefx-backend-api.md) · [All operations](https://skmtc.net/pricefx/apis/the-pricefx-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pricefx/the-pricefx-backend-api/versions/0850b5d6be73/schema)
