Price List

This article provides comprehensive information and documentation on a set of API methods specifically designed to handle price lists. By leveraging these methods, users can retrieve, search, and create price lists, allowing for seamless integration and management of price list data within the system.

The article includes detailed explanations, parameter descriptions, and usage examples for each API method, empowering developers to effectively utilize the capabilities provided by the price list API.

Get Price List

PriceList is used to connect ProductPrice objects with catalog. Therefore, a catalog can have prices for its catalog items with this relation. PriceList and Catalog objects have OneToMany relationship. This means a PriceList can have relation with more than one catalog, while one catalog can only have one PriceList relation. However, with a new implementation for some clients, a PriceList can connect to the extra_price_lists field on a catalog object. Therefore, a catalog may also have more than one PriceList. This feature is for clients that want to have multiple price options for their different retail stores.

Parameter

Data Type

In

Description

name

string

query

Price list name

limit

integer

query

Amount of line items per page that will be returned

page

string

query

Page number to return

Note: If limit and page parameters are not sent, response returns 10 product prices by default.

Request GET

GET request is used for reading current price lists from Omnitron (both i1 and v1 can be used). This request is expected to return all price lists data according to page and limit parameters.

‘content_type’ header represents the response type.

‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.

Path: price_list/


import requests

url = "https://{customer_api_url}/api/v1/price_list/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

headers = {
    'content-type': 'application/json',
    'Authorization': 'Token {}'.format(api_token)
}

response = requests.get(url, headers=headers)
print(response.text)

Response

Response contains all price list data with given parameters (if exist) and with pagination. Response status is expected to be HTTP-200 Successful. Only ‘v1’ contains ‘created_date’ and ‘modified_date’ fields.

Resource properties are in Python format.

Property

Data Type

Description

name

string

List name

code

string

The list ID in ERP

is_auto_sync

boolean

Specifies whether the list will have synchronization with ERP. If the parameter is True, the list will be automatically updated by ERP.

currency

string enum

Currency of the price list

modified_date

datetime

Last modified date of the price list

created_date

datetime

Shows the date when the price list was created

“count” shows how many price lists exist in the system.

“next” shows the next cursor url to retrieve the desired price list.

“previous” shows the previous page url to retrieve the desired price list.

“results” shows every price list property with detailed field descriptions for the current page.


{
  "count": 3,
  "next": "https://{customer_api_url}/api/v1/price_list/?page=2",
  "previous": null,
  "results": [
    {
      "pk": 1,
      "name": "Demo Price List",
      "code": null,
      "is_auto_sync": false,
      "currency": "try",
      "modified_date": "2022-03-02T09:20:07.171465Z",
      "created_date": "2022-03-02T09:20:07.171453Z"
    },
    {
      "pk": 2,
      "name": "Sync Price List",
      "code": "112",
      "is_auto_sync": true,
      "currency": "try",
      "modified_date": "2022-03-02T09:20:07.171465Z",
      "created_date": "2022-03-02T09:20:07.171453Z"
    },
    {
      "pk": 3,
      "name": "Shop Price List",
      "code": null,
      "is_auto_sync": false,
      "currency": "try",
      "modified_date": "2022-03-02T09:20:07.171465Z",
      "created_date": "2022-03-02T09:20:07.171453Z"
    }
  ]
}

Search Price List

GET requests can be filtered with parameters. price_list endpoint gives the opportunity to make their GET request filtered according to PriceList fields.

Parameter

Data Type

In

Description

name

string

query

Price list's name

limit

integer

query

Amount of items per page that will be returned

page

string

query

Page number to return

Note: If limit and page parameters are not sent, response returns 10 product prices by default.

Request GET

Standard GET request with parameters (both i1 and v1 can be used). Parameters are used to get PriceLists with conditions.

Example: params = {'name': 'price'} is expected to return price lists with names containing ‘price’.

‘code’, ‘is_auto_sync’ and ‘created_date’ parameters can also be added.

Example:

{
	`name’: ‘price’,
	‘is_auto_sync’: True,
	‘code’: ‘default’,
	‘created_date__date__gte’: ‘2022-01-01’
} 

Note:

['gt', 'gte', 'lt', 'lte', 'date__gt', 'date__gte', 'date__lt', 'date__lte'] lookup keys can be used for created_date field. code__exact parameter can be used to get an exact match for the code field.

‘content_type’ header represents the response type.

‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.

Path: price_list/

import requests

url = "https://{customer_api_url}/api/v1/price_list/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

headers = {
    'content-type': 'application/json',
    'Authorization': 'Token {}'.format(api_token),
}

params = {
    'name': 'price'
}

response = requests.get(url, headers=headers, params=params)
print(response.text)

Response

Response contains all price list data with search parameters and with pagination. Response status is expected to be HTTP-200 Successful.

Only ‘v1’ contains ‘created_date’ and ‘modified_date’ fields.

Resource properties are in Python format.

Property

Data Type

Description

name

string

List name

code

string

The list ID in ERP

is_auto_sync

boolean

Specifies whether the list will have synchronization with ERP. If the parameter is True, the list will be automatically updated by ERP.

currency

EnumField

Currency of the price list

modified_date

datetime

Last modified date of the price list

created_date

datetime

Shows the date when the price list was created

“count” shows how many price lists exist in the system.

“next” shows the next page url to retrieve the desired price list.

“previous” shows the previous page url to retrieve the desired price list.

“results” shows every price list property with detailed field descriptions.

{
  "count": 3,
  "next": null,
  "previous": null,
  "results": [

    {
      "id": 696,
      "name": "Shop Price List v02",
      "code": "Shop Price List v02",
      "is_auto_sync": true,
      "currency": "try",
      "modified_date": "2022-03-02T09:20:07.171465Z",
      "created_date": "2022-03-02T09:20:07.171453Z"
    },
    {
      "id": 697,
      "name": "Example Price List",
      "code": "example_price_list",
      "is_auto_sync": true,
      "currency": "try",
      "modified_date": "2022-03-02T09:20:07.171465Z",
      "created_date": "2022-03-02T09:20:07.171453Z"
    },
    {
      "id": 698,
      "name": "Example Price List 2",
      "code": "example_price_list_2",
      "is_auto_sync": true,
      "currency": "try",
      "modified_date": "2022-03-02T09:20:07.171465Z",
      "created_date": "2022-03-02T09:20:07.171453Z"
    }
  ]
}

Create Price List

The prices of the products are kept in the price list. Therefore, before defining a price for a product, if there is no price list, it is necessary to define a price list first.

Parameter

Data Type

In

Required

Description

name

float

body

YES

List name

code

string

body

YES

The list ID in ERP

is_auto_sync

id

body

YES

Specifies whether the list will have synchronization with ERP. If the parameter is True, the list will be automatically updated by ERP. If it is False, price creation and updating processes are managed in Omnitron with excel.

currency

EnumField

body

YES

Currency of the price list. Default value is “try”

Request POST

POST request is used to create a new price list.

‘content_type’ header represents the response type.

‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.

‘name’ and ‘code’ fields should be unique.

Path: v1/price_list/


import requests
import json

url = "https://{customer_api_url}/api/v1/price_list/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

headers = {
    'content-type': 'application/json',
    'Authorization': 'Token {}'.format(api_token)
}

data = {
    'name': 'shop_price_list_v03',
    'code': 'shop_price_list_v03',
    'is_auto_sync': True,
    'currency': 'usd',    
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)

Response

Returns the created object data, after successfully creating the object. Response status is expected to be HTTP-201 Created.

Resource properties are in Python format.

Property

Data Type

Description

pk

int

Primary key of the created list

name

string

List name

code

string

The list ID in ERP

is_auto_sync

boolean

Specifies whether the list will have synchronization with ERP. If the parameter is True, the list will be automatically updated by ERP.

modified_date

date

Last modified date of the price list

created_date

date

Shows the date when the price list was created

currency

string enum

Currency of the price list


{
  "pk": 697,
  "name": "shop_price_list_v03",
  "code": "shop_price_list_v03",
  "is_auto_sync": true,
  "modified_date": "2021-07-12T08:05:37.190931Z",
  "created_date": "2021-07-12T08:05:37.190905Z",
  "currency": "usd"
}

Bad Request Responses

When the requested action cannot be executed, API gives an explanation about the request.

While creating a price list, if is_auto_sync is _True _and code is None, then the below error appears.

{
    'non_field_errors': u'PriceList code is required when is_auto_sync is True.',
    'error_code': u'product_price_300_2'
}

‘name’ and ‘code’ fields should be unique.

{
    'name': [ErrorDetail(string=u'price list with this name already exists.', code=u'unique')]
}
{
    'code': [ErrorDetail(string=u'price list with this code already exists.', code=u'unique')]
}

Last updated

Was this helpful?