This website uses cookies to ensure you get the best experience on our website. By continuing to browse the site, you agree to our use of cookies.

More info ››
Contact sales: 1-888-DISK-IMAGE

1-888-DISK-IMAGE (1-888-347-5462)

Sales North America

+49-761-59018-202

Sales Europe

+81(3)3265-1278

Sales Japan

+7 (495) 789-6717

Sales Russia

Contact sales: 1-888-DISK-IMAGE

1-888-DISK-IMAGE (1-888-347-5462)

Sales North America

+49-761-59018-202

Sales Europe

+81(3)3265-1278

Sales Japan

+7 (495) 789-6717

Sales Russia

Paragon

Product Information Management

  • Flexible, rapidly growing web-based platform
  • Micro service architecture based on REST API
  • Embedded powerful logging

Paragon PIM is a rapidly growing platform of online micro services based on REST API that helps to streamline the process of uploading, standardizing, and publishing product catalogues and related data to sales channels.

Why Paragon PIM?

Flexible, web-based platform

Paragon PIM system has a modular architecture that currently consists of several online micro services and this number keeps growing rapidly. Contact our Sales Team if you need a specific micro service.

Easy to use and develop

Paragon PIM micro services are based on REST API that ensures incredible connectivity with enterprise systems and 3rd party applications. Develop your own micro service and get it connected with our core services in minimal time.

Integration with Amazon

Paragon PIM automates routine processes of import and export product listings scenarios (coming soon).

SEO-friendly

Paragon PIM helps you to enrich attributes, like product descriptions, with proper keywords and to annotate your products so that the invisible metadata can give search engines more context to land on your stores instead of someone else’s (coming soon).

Real-time analytics

Paragon PIM automates reporting and data collection from multiple channels, keeping track of your results in a real-time dashboard (coming soon).

How it Works

  1. Register and sign in to Paragon’s Account
  2. Go to the “Online services” section to:
    • Use Paragon PIM micro services via Front End
    • Create and download a certificate for authorizing your own apps
    • Use Swagger to try Paragon PIM micro services
    • Get direct REST links to access Paragon PIM micro services from your own apps
  3. Create and debug you own applications (see Developer scenarios for more details). Please note that you’re limited to 20 products while evaluating Paragon PIM.
  1. Product-Controller
  2. Attribute-Controller
  3. Attribute-Group-Controller

Product-Controller

Allows you to create, modify, and delete products, as well as obtain information about a specific product or set of products.

Set of API methods:

Methods
createProduct
updateProduct
deleteProduct
getProduct
getAllProducts
addAttributeGroupsToProduct
deleteAttributeGroupsFromProduct
addAttributesToProduct
deleteAttributesFromProduct
addAttributeValuesToProduct
updateAttributeValuesForProduct
deleteAttributeValuesFromProduct

createProduct

{baseUrl}/api/v0/products

Body
{
"attributeGroupIds":[
"string"
],
"attributeIds":[
"string"
],
"id":"string",
"productToAttributeValueDtos":[
{
"attributeGroupId":"string",
"attributeId":"string",
"attributeName":"string",
"attributeType":"string",
"attributeValue":"string"
}
]
}

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

updateProduct

{baseUrl}/api/v0/products/{productId}

Body
[
{
"attributeGroupId":"string",
"attributeId":"string",
"attributeName":"string",
"attributeType":"string",
"attributeValue":"string"
}
]

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteProduct

{baseUrl}/api/v0/products/{productId}

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

getProduct

{baseUrl}/api/v0/products/{productId}

Response
{
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"productToAttributeGroups":[
{
"attributeGroup":{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"name":"string",
"rowVersion":0
}
}
],
"productToAttributeValues":[
{
"attribute":{
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"created":"2019-08-05T07:07:30.977Z",
"id":{
"attributeId":"string",
"productId":"string"
},
"modified":"2019-08-05T07:07:30.977Z",
"rowVersion":0,
"value":"string",
"valueHash":"string"
}
],
"productToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:07:30.977Z",
"id":"string",
"modified":"2019-08-05T07:07:30.977Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"id":{
"attributeId":"string",
"productId":"string"
}
}
],
"rowVersion":0
}

getAllProducts

{baseUrl}/api/v0/products

Parameters:

Name Description
offset integer
pageNumber integer
pageSize integer
paged boolean
sort.sorted boolean
sort.unsorted boolean
unpaged boolean
Response
{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"productToAttributeGroups":[
{
"attributeGroup":{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0
}
}
],
"productToAttributeValues":[
{
"attribute":{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"created":"2019-08-05T07:10:25.439Z",
"id":{
"attributeId":"string",
"productId":"string"
},
"modified":"2019-08-05T07:10:25.439Z",
"rowVersion":0,
"value":"string",
"valueHash":"string"
}
],
"productToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"id":{
"attributeId":"string",
"productId":"string"
}
}
],
"rowVersion":0
}

addAttributeGroupsToProduct

{baseUrl}/api/v0/products/{productId}/attributeGroups

Body
[
"string"
]

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteAttributeGroupsFromProduct

{baseUrl}/api/v0/products/{productId}/attributeGroups

Body
[
"string"
]

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

addAttributesToProduct

{baseUrl}/api/v0/products/{productId}/attributes

Body
[
"string"
]

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteAttributesFromProduct

{baseUrl}/api/v0/products/{productId}/attributes

Body
[
"string"
]

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

addAttributeValuesToProduct

{baseUrl}/api/v0/products/{productId}/attributeValues

Body
[
{
"id": "string",
"mandatoryToFill": true,
"name": "string",
"value": "string",
"valueType": "string",
"visible": true
}
]

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

updateAttributeValuesForProduct

{baseUrl}/api/v0/products/{productId}/attributeValues

Body
[
{
"id": "string",
"mandatoryToFill": true,
"name": "string",
"value": "string",
"valueType": "string",
"visible": true
}
]

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteAttributeValuesFromProduct

{baseUrl}/api/v0/products/{productId}/attributeValues

Body
[
"string"
]

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

Attribute-Controller

Allows you to create, modify, and delete attributes, as well as obtain information about a specific attribute or set of attributes.

Set of API methods:

Methods
createAttribute
updateAttribute
deleteAttribute
getAttribute
getAllAttributes

createAttribute

{baseUrl}/api/v0/attributes

Body
{
"name":"string",
"valueType":"string"
}

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

updateAttribute

{baseUrl}/api/v0/attributes/{attributeId}

Body
{
"name":"string",
"valueType":"string"
}

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteAttribute

{baseUrl}/api/v0/attributes/{attributeId}

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

getAttribute

{baseUrl}/api/v0/attributes/{attributeId}

Response
{
"created":"2019-08-05T07:33:36.021Z",
"id":"string",
"modified":"2019-08-05T07:33:36.021Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}

getAllAttributes

{baseUrl}/api/v0/attributes

Parameters:

Name Description
offset integer
pageNumber integer
pageSize integer
paged boolean
sort.sorted boolean
sort.unsorted boolean
unpaged boolean
Response
{
"created":"2019-08-05T07:34:26.608Z",
"id":"string",
"modified":"2019-08-05T07:34:26.608Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}

Attribute-Group-Controller

Allows you to create, modify, and delete attributes groups, as well as obtain information about a specific attributes group or set of attributes groups.

Set of API methods:

Methods
createAttributeGroup
updateAttributeGroup
deleteAttributeGroup
getAllAttributeGroups
addAttributesToGroup
deleteAttributesFromGroup

createAttributeGroup

{baseUrl}/api/v0/attribute-groups

Body
{
"attributeIds":[
"string"
],
"name":"string"
}

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

updateAttributeGroup

{baseUrl}/api/v0/attribute-groups/{attributeGroupId}

Body
{
"attributeIds":[
"string"
],
"name":"string"
}

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteAttributeGroup

{baseUrl}/api/v0/attribute-groups/{attributeGroupId}

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

getAttributeGroup

{baseUrl}/api/v0/attribute-groups/{attributeGroupId}

Response
{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:41:01.321Z",
"id":"string",
"modified":"2019-08-05T07:41:01.321Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:41:01.321Z",
"id":"string",
"modified":"2019-08-05T07:41:01.321Z",
"name":"string",
"rowVersion":0
}

getAllAttributeGroups

{baseUrl}/api/v0/attribute-groups

Parameters:

Name Description
offset integer
pageNumber integer
pageSize integer
paged boolean
sort.sorted boolean
sort.unsorted boolean
unpaged boolean
Response
{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:39:07.588Z",
"id":"string",
"modified":"2019-08-05T07:39:07.588Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:39:07.588Z",
"id":"string",
"modified":"2019-08-05T07:39:07.588Z",
"name":"string",
"rowVersion":0
}

addAttributesToGroup

{baseUrl}/api/v0/attribute-groups/{attributeGroupId}/attributes

Body
[
"string"
]

Response codes:

Code Description
200 OK
201 Created
401 Unauthorized
403 Forbidden
404 Not Found

deleteAttributesFromGroup

{baseUrl}/api/v0/attribute-groups/{attributeGroupId}/attributes

Body
[
"string"
]

Response codes:

Code Description
200 OK
204 No Content
401 Unauthorized
403 Forbidden

Developer scenarios

Developer scenarios

Developer starts to develop his/her application. Before it, he/she has registered on Paragon site and got a certificate. Developed application is the main user of the REST API.

The user should go to the authorization service by URL got before and enter credentials or provide certificate.

After that, the user receives a token that can be used to interact with PIM.

The user should create a set of attributes and attributes groups first.

The user should specified all future product properties as the set of attributes.

After that, the user should combine attributes into groups.

The attributes groups used for assigning to a product a set of attributes that are required for a specific product group to which this product will be assigned.

Now we will considering our use cases.

Working with a set of attributes

Create a set of attributes

I want to create a set of attributes. For each attribute creation I should call:

{base-api-url}/api/v0/attributes

And send a request with body, contains:

Body
{

"name":"string",

"valueType":"string"
}

When the attribute successfully changed, I got a response:

201 Created

Change an attribute properties

If I want to change an attribute name or valueType then I should call:

{base-api-url}/api/v0/attributes/{attributeId}

And send a request with body, contains new information:

Body
{

"name":"string",

"valueType":"string"
}

When the attribute successfully changed, I got a response:

201 Created

Delete an attribute

If I want to delete an attribute then I should call:

{base-api-url}/api/v0/attributes/{attributeId}

And send a request. When the attribute successfully deleted, I got a response:

200 OK

Get an attribute properties

If I want to get an attribute properties then I should call:

{base-api-url}/api/v0/attributes/{attributeId}

And send a request. Response will return:

Response
{
"created":"2019-08-05T07:34:26.608Z",
"id":"string",
"modified":"2019-08-05T07:34:26.608Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}

Enumerate attributes

If I want to enumerate attributes then I should call:

{base-api-url}/api/v0/attributes

And send a request. Response will return:

Response
{
"created":"2019-08-05T07:34:26.608Z",
"id":"string",
"modified":"2019-08-05T07:34:26.608Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}

Working with attributes groups

Now I have a set of attributes and I can combine it into attributes groups.

Create an attributes group

I want to create an attributes group. For each attributes group creation I should call:

{base-api-url}/api/v0/attribute-groups

And send a request with body, contains:

Body
{
"attributeIds":[
"string"
],
"name":"string"
}

When the attributes group successfully created, I got a response:

201 Created

Change an attributes group

If I want to change an attributes group name or IDs then I should call:

{base-api-url}/api/v0/attribute-groups /{attributeGroupId}

And send a request with body, contains new information:

Body
{
"attributeIds":[
"string"
],
"name":"string"
}

When the attributes group successfully changed, I got a response:

201 Created

Delete an attributes group

If I want to delete an attributes group then I should call:

{base-api-url}/api/v0/attribute-groups /{attributeGroupId}

And send a request. When the attributes group successfully deleted, I got a response:

200 OK

Get an attributes group properties

If I want to get an attributes group properties then I should call:

{base-api-url}/api/v0/attribute-groups /{attributeGroupId}

And send a request. Response will return:

Response
{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:41:01.321Z",
"id":"string",
"modified":"2019-08-05T07:41:01.321Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:41:01.321Z",
"id":"string",
"modified":"2019-08-05T07:41:01.321Z",
"name":"string",
"rowVersion":0
}

Enumerate attributes groups

If I want to enumerate attributes groups then I should call:

{base-api-url}/api/v0/attribute-groups

And send a request. Response will return:

Response
{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:39:07.588Z",
"id":"string",
"modified":"2019-08-05T07:39:07.588Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:39:07.588Z",
"id":"string",
"modified":"2019-08-05T07:39:07.588Z",
"name":"string",
"rowVersion":0
}

Working with products

Now I have the set of attributes combined into one or several groups and I can start to create a set of products.

Create a product

I want to create the set of products. For each product creation I should call:

{base-api-url}/api/v0/products

And send a request with body, contains:

Body
{
"attributeGroupIds":[
"string"
],
"attributeIds":[
"string"
],
"id":"string",
"productToAttributeValueDtos":[
{
"attributeGroupId":"string",
"attributeId":"string",
"attributeName":"string",
"attributeType":"string",
"attributeValue":"string"
}
]
}

When the product successfully created, I got a response:

201 Created

Change a product properties

If I want to change product attributes then I should call:

{base-api-url}/api/v0/products/{productId}

And send a request with body, contains new information:

Body
[
{
"attributeGroupId":"string",
"attributeId":"string",
"attributeName":"string",
"attributeType":"string",
"attributeValue":"string"
}
]

When the product successfully changed, I got a response:

201 Created

Delete a product

If I want to delete a product then I should call:

{base-api-url}/api/v0/products/{productId}

And send a request. When the product successfully deleted, I got a response:

200 OK

Get a product properties

If I want to get a product properties then I should call:

{base-api-url}/api/v0/products/{productId}

And send a request. Response will return:

Response
{
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"productToAttributeGroups":[
{
"attributeGroup":{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"name":"string",
"rowVersion":0
}
}
],
"productToAttributeValues":[
{
"attribute":{
"created":"2019-08-05T07:07:30.976Z",
"id":"string",
"modified":"2019-08-05T07:07:30.976Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"created":"2019-08-05T07:07:30.977Z",
"id":{
"attributeId":"string",
"productId":"string"
},
"modified":"2019-08-05T07:07:30.977Z",
"rowVersion":0,
"value":"string",
"valueHash":"string"
}
],
"productToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:07:30.977Z",
"id":"string",
"modified":"2019-08-05T07:07:30.977Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"id":{
"attributeId":"string",
"productId":"string"
}
}
],
"rowVersion":0
}

Enumerate products

If I want to enumerate products then I should call:

{base-api-url}/api/v0/products

And send a request. Response will return:

Response
{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"productToAttributeGroups":[
{
"attributeGroup":{
"attributeGroupToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
}
}
],
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0
}
}
],
"productToAttributeValues":[
{
"attribute":{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"created":"2019-08-05T07:10:25.439Z",
"id":{
"attributeId":"string",
"productId":"string"
},
"modified":"2019-08-05T07:10:25.439Z",
"rowVersion":0,
"value":"string",
"valueHash":"string"
}
],
"productToAttributes":[
{
"attribute":{
"created":"2019-08-05T07:10:25.439Z",
"id":"string",
"modified":"2019-08-05T07:10:25.439Z",
"name":"string",
"rowVersion":0,
"valueType":"string"
},
"id":{
"attributeId":"string",
"productId":"string"
}
}
],
"rowVersion":0
}

Spelling error report

The following text will be sent to our editors: