Skip to main content

Stock List Rules

Whippy Ware enables stock calculation based on stock locations and providers. In order to do this, the user needs to define a calculation rule which will work in the background of the application. The brand provides stock providers, stock locations, and location-based/independent safety stocks to be used for the preparation of a stock list. Stock list rules should be defined to do this. Rule types can be as follows;

List Stock List Rules

This method is used to list objects of StockListRule model.

GET List-Stock-List-Rules

Path: /api/v1/stock-list-rules/

Parameters

ParameterData TypeInDescription
api_tokenstringheaderThe API key of the customer account
limitintegerqueryThe amount of line items returned per page
pagestringqueryThe number of page returned

Example Request

import requests

url = "https://{whippy_api_url}/api/v1/stock-list-rules/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

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

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

Example Response (200 OK)

The response includes the following parameters.

ParameterData TypeDescription
idstringThe primary key of the created list
namestringThe name of the rule
rule_typestringThe type of the rule
ruledictionaryThe rule of the stock list
created_datedateThe creation date
modified_datedateThe last modified date
is_activebooleanThe activation status of the rule
{
"count": 2,
"next": "http://{whippy_api_url}/api/v1/stock-list-rules/?page=2",
"previous": null,
"results": [
{
"id": 1,
"created_date": "2023-05-05T15:54:53.689242+03:00",
"modified_date": "2023-05-05T15:54:53.691352+03:00",
"is_active": true,
"name": "Eshop Stock List Rule",
"rule": {},
"rule_type": "sql"
},
{
"id": 2,
"created_date": "2023-05-08T12:36:08.729480+03:00",
"modified_date": "2023-05-08T12:36:08.729561+03:00",
"is_active": true,
"name": "Webshop Stock List Rule",
"rule": {},
"rule_type": "sql"
}
]
}

Stock List Rule Instance

This method is used to get stock list rule instance specified with the Rule ID.

GET Stock-List-Rule-Instance

Path: api/v1/stock-list-rules/{rule_id}/

Parameters

ParameterData TypeInDescription
api_tokenstringheaderThe API key of the customer account
{rule_id}stringqueryThe ID of the rule

Example Request

import requests
url = "https://{whippy_api_url}/api/v1/stock-list-rules/{rule_id}"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

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

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

Example Response (200 OK)

The response includes the following parameters.

ParameterData TypeDescription
idstringThe primary key of the created list
namestringThe name of the rule
rule_typestringThe type of the rule
ruledictionaryThe rule of the stock list
created_datedateThe creation date
modified_datedateThe last modified date
is_activebooleanThe activation status of the rule
{
"id": 1,
"created_date": "2020-01-01T18:25:43.976080+03:00",
"modified_date": "2020-01-01T18:25:43.976080+03:00",
"is_active": true,
"name": "Eshop Stock List Rule",
"rule": {},
"rule_type": "sql"
}

Filters

The applicable filters are as follows.

"filters": {
"is_active": {
"type": "BooleanFilter",
"lookup_types": [
"exact"
]
},
"rule_type": {
"type": "ChoiceFilter",
"lookup_types": [
"exact"
]
},
"created_date": {
"type": "IsoDateTimeFilter",
"lookup_types": [
"gt",
"gte",
"lt",
"lte",
"exact"
]
},
"modified_date": {
"type": "IsoDateTimeFilter",
"lookup_types": [
"gt",
"gte",
"lt",
"lte",
"exact"
]
},
"name": {
"type": "CharFilter",
"lookup_types": [
"icontains"
]
}
}

Create Stock List Rule

This method is used to create a new stock list rule object based on the information in the request body.

POST Create-Stock-List-Rule

Path: /api/v1/stock-list-rules/

Example Request

import requests
import json

url = "https://{whippy_api_url}/api/v1/stock-list-rules/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

payload = json.dumps({
"name": "Sales channel Stock List Rule",
"rule_type": "sql",
"is_active": True,
"rule": {}
})
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token)
}
response = requests.request("POST", url, headers=headers, data=payload)print(response.text)

Example Response (201 Created)

The response includes the following parameters.

ParameterData TypeDescription
idstringThe primary key of the created list
namestringThe name of the rule
rule_typestringThe type of the rule
ruledictionaryThe rule of the stock list
created_datedateThe creation date
modified_datedateThe last modified date
is_activebooleanThe activation status of the rule
{
"id": 3,
"created_date": "2023-05-09T11:41:58.884366+03:00",
"modified_date": "2023-05-09T11:41:58.885409+03:00",
"is_active": true,
"name": "Webshop Stock List Rule",
"rule": {},
"rule_type": "sql"
}

Search Stock List Rules

This method is used to search stock list rules.

GET Search-Stock-List-Rules

Path: /api/v1/stock-list-rules/?name=<string>&is_active=<string>&rule_type=<string>&sort=<string>&page=<integer>&limit=<integer>

Parameters

ParameterData TypeInDescription
api_tokenstringheaderThe API key of the customer account
namestringqueryThe name of the rule
rule_typestringqueryThe type of the rule
is_activebooleanqueryThe activation status of the rule
limitintegerqueryThe amount of line items returned per page
pagestringqueryThe number of page returned

Example Request

import requests

url = "https://{whippy_api_url}/api/v1/stock-list-rules/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

params = {
'rule_type': 'sql'
}

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

response = requests.request("GET", url, headers=headers, data=params)

print(response.text)

Example Response (200 OK)

The list of stock list rule objects according to the filter parameters is returned.

{
"count": 2,
"next": "http://{whippy_api_url}/api/v1/stock-list-rules/?page=2&rule_type=sql",
"previous": null,
"results": [
{
"id": 2,
"created_date": "2023-05-08T12:36:08.729480+03:00",
"modified_date": "2023-05-08T12:36:08.729561+03:00",
"is_active": true,
"name": "Webshop Stock List Rule",
"rule": {},
"rule_type": "sql"
},
{
"id": 3,
"created_date": "2023-05-09T11:41:58.884366+03:00",
"modified_date": "2023-05-09T11:41:58.885409+03:00",
"is_active": true,
"name": "PetShop Stock List Rule",
"rule": {},
"rule_type": "sql"
}
]
}

Filters

The following filters can be applied via the request URL.

"filters": {
"is_active": {
"type": "BooleanFilter",
"lookup_types": [
"exact"
]
},
"rule_type": {
"type": "ChoiceFilter",
"lookup_types": [
"exact"
]
},
"created_date": {
"type": "IsoDateTimeFilter",
"lookup_types": [
"gt",
"gte",
"lt",
"lte",
"exact"
]
},
"modified_date": {
"type": "IsoDateTimeFilter",
"lookup_types": [
"gt",
"gte",
"lt",
"lte",
"exact"
]
},
"name": {
"type": "CharFilter",
"lookup_types": [
"icontains"
]
}
}

Stock List Rule Partial Update

This method is used to partially update a stock-list-rule object.

PATCH Stock-List-Rule-Partial-Update

Path: /api/v1/stock-list-rules/{rule_id}/

Parameters

ParameterData TypeInDescription
api_tokenstringheaderThe API key of the customer account
{rule_id}stringqueryThe stock list rule ID

Example Request

import requests
import json

url = "http://localhost:8000/api/v1/stock-list-rules/1/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

payload = json.dumps({
"name": "PetShop Stock List Rule",
"rule_type": "raw_sql"
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
}

response = requests.request("PATCH", url, headers=headers, data=payload)

print(response.text)

Example Response (200 OK)

The response includes the following parameters.

ParameterData TypeDescription
idstringThe primary key of the created list
namestringThe name of the rule
rule_typestringThe type of the rule
ruledictionaryThe rule of the stock list
is_activebooleanThe activation status of the rule

Stock List Rule Full Update

This method is used to update all fields of the specified stock list rule object with PUT request.

PUT Stock-List-Rule-Full-Update

Path: /api/v1/stock-list-rules/{rule_id}/

Parameters

ParameterData TypeInDescription
api_tokenstringheaderThe API key of the customer account
{rule_id}stringqueryThe stock list rule ID

Example Request

{
"name": "<string>",
"rule_type": "<string>",
"is_active": "<boolean>",
"rule": "<object>"
}

Example Response (200 OK)

{
"id": 1,
"created_date": "2023-05-09T11:41:58.884366+03:00",
"modified_date": "2023-05-09T12:59:18.813081+03:00",
"is_active": true,
"name": "PetShop Stock List Rule",
"rule": {},
"rule_type": "raw_sql"
}