Pricefx REST API Reference
The Pricefx Backend API
Request
Inserts multiple products to the Master Data table.
The /loaddata operation is a very efficient and quick way to insert bulk data to the Master Data table. The main advantage is its greater speed when loading thousands of records (compared to e.g. /integrate).
Use the ISO 8601 date format (YYYY-MM-DD) if a date is included in the table.
Please note: If no
joinFieldsare provided in the request, then this operation will insert entire records. It means that in this case (withoutjoinFields) with /loaddata it is not possible to update just some fields (for this use the /integrate endpoint instead). The source data must always contain the entire row’s content.
Specify product field names in the header object and fields values in the data object.
Information: Field names (columns) sent in your request might be different from our sample request schema. Custom fields (
attribute1..attribute30) can be retrieved using the/fetch/PAMendpoint.
- Mock serverhttps://api.pricefx.com/_mock/openapi/reference/pricefx-server_openapi/loaddata/P
- URL:https://companynode.pricefx.com/pricefx/companypartition/loaddata/P
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://api.pricefx.com/_mock/openapi/reference/pricefx-server_openapi/loaddata/P \
-H 'Content-Type: application/json' \
-d '{
"data": {
"header": [
"sku",
"label",
"unitOfMeasure",
"currency",
"lastUpdateDate",
"formulaName",
"attribute1",
"attribute2",
"attribute3",
"attribute4",
"attribute5",
"attribute6",
"attribute7",
"attribute8",
"userGroupEdit",
"userGroupViewDetails"
],
"options": {
"detectJoinFields": true
},
"data": [
[
"B-0001",
"Pub Beer",
"",
"EUR",
"2020-12-17T09:45:56",
"ElementWithVLookup",
"17.16",
"American Pale Lager",
"",
"",
"DG_03",
"Maturity",
"",
"2018-04-18",
"",
""
],
[
"B-0002",
"Devil'\''s Cup",
"",
"EUR",
"2022-10-07T09:43:30",
"",
"24.05",
"American Pale Ale (APA)",
"",
"",
"DG_03",
"Maturity",
"",
"2018-04-18",
"",
""
],
[
"B-0003",
"Rise of the Phoenix",
"",
"EUR",
"2019-07-15T11:18:26",
"ConfiguratorWithRadioButton",
"34.4",
"American IPA",
"",
"A",
"DG_03",
"",
"",
"2018-04-18",
"",
""
]
]
}
}'{ "response": { "node": "<the server>", "data": [ … ], "status": 0 } }
Request
Upserts a product.
- To add a new product that does not exist, specify the
skuparameter in the request. - To update an existing product, specify the
skuortypedIdparameter of the existing product. The/integratemethod performs a partial update – it does not delete values from fields that have not been specified in the update request.Use the
/integrate/{TypeCode}/returnolddataendpoint 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/Pendpoint.
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
dataobjects 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"
}
}
]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/PAMoperation.
Specify field names and values you want to insert or update.
- Mock serverhttps://api.pricefx.com/_mock/openapi/reference/pricefx-server_openapi/integrate/P
- URL:https://companynode.pricefx.com/pricefx/companypartition/integrate/P
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://api.pricefx.com/_mock/openapi/reference/pricefx-server_openapi/integrate/P \
-H 'Content-Type: application/json' \
-d '{
"data": {
"sku": "123456",
"typedId": "2147501227.P",
"label": "The Label",
"unitOfMeasure": "EA",
"currency": "USD",
"formulaName": "PricingFormula01",
"userGroupEdit": "Administrators",
"userGroupViewDetails": "PricingManagers",
"attribute1": "20",
"attribute2": "10"
}
}'- listProductsResponseExample_resultFields
- listProductsResponseExample_valueFields
- listProductsResponseExample
{ "response": { "node": "node", "startRow": 0, "data": [ … ], "endRow": 8, "totalRows": 8, "status": 0 } }
- Mock serverhttps://api.pricefx.com/_mock/openapi/reference/pricefx-server_openapi/add/P
- URL:https://companynode.pricefx.com/pricefx/companypartition/add/P
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://api.pricefx.com/_mock/openapi/reference/pricefx-server_openapi/add/P \
-H 'Content-Type: application/json' \
-d '{
"data": {
"sku": "p2398759575012555",
"label": "Smoked Tofu",
"unitOfMeasure": "ea",
"currency": "USD",
"formulaName": "PriceList",
"attribute1": "2",
"attribute2": "PG1",
"attribute3": 1,
"userGroupEdit": "PricingManagers,Administrators",
"userGroupViewDetails": "PricingManagers"
},
"operation": "add"
}'- listProductsResponseExample_resultFields
- listProductsResponseExample_valueFields
- listProductsResponseExample
{ "response": { "node": "node", "startRow": 0, "data": [ … ], "endRow": 8, "totalRows": 8, "status": 0 } }
See the Key-Value Database Storage Knowledge Base article for more details.
Here you can find all fields of the corresponding entity (represented by the type code).
Use the /metadata.describe endpoint to find out the correct data type of the field that is used in your partition.
Comments