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
- Register and sign in to Paragon’s Account
- 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
- 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.
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:
createProduct
{baseUrl}/api/v0/products
Body |
{ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
updateProduct
{baseUrl}/api/v0/products/{productId}
Body |
[ |
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 |
{ |
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 |
{ |
addAttributeGroupsToProduct
{baseUrl}/api/v0/products/{productId}/attributeGroups
Body |
[ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
deleteAttributeGroupsFromProduct
{baseUrl}/api/v0/products/{productId}/attributeGroups
Body |
[ |
Response codes:
Code | Description |
200 | OK |
204 | No Content |
401 | Unauthorized |
403 | Forbidden |
addAttributesToProduct
{baseUrl}/api/v0/products/{productId}/attributes
Body |
[ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
deleteAttributesFromProduct
{baseUrl}/api/v0/products/{productId}/attributes
Body |
[ |
Response codes:
Code | Description |
200 | OK |
204 | No Content |
401 | Unauthorized |
403 | Forbidden |
addAttributeValuesToProduct
{baseUrl}/api/v0/products/{productId}/attributeValues
Body |
[ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
updateAttributeValuesForProduct
{baseUrl}/api/v0/products/{productId}/attributeValues
Body |
[ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
deleteAttributeValuesFromProduct
{baseUrl}/api/v0/products/{productId}/attributeValues
Body |
[ |
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 |
{ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
updateAttribute
{baseUrl}/api/v0/attributes/{attributeId}
Body |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
updateAttributeGroup
{baseUrl}/api/v0/attribute-groups/{attributeGroupId}
Body |
{ |
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 |
{ |
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 |
{ |
addAttributesToGroup
{baseUrl}/api/v0/attribute-groups/{attributeGroupId}/attributes
Body |
[ |
Response codes:
Code | Description |
200 | OK |
201 | Created |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
deleteAttributesFromGroup
{baseUrl}/api/v0/attribute-groups/{attributeGroupId}/attributes
Body |
[ |
Response codes:
Code | Description |
200 | OK |
204 | No Content |
401 | Unauthorized |
403 | Forbidden |
- Pre-Condition
- Developer scenarios
Pre-Condition
The user should Sign Up on Paragon site to get access to microservice by URL and get his/her own certificate.
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 |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
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 |
{ |
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 |
[ |
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 |
{ |
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 |
{ |