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
Parameter | Data Type | In | Description |
---|---|---|---|
api_token | string | header | The API key of the customer account |
limit | integer | query | The amount of line items returned per page |
page | string | query | The 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.
Parameter | Data Type | Description |
---|---|---|
id | string | The primary key of the created list |
name | string | The name of the rule |
rule_type | string | The type of the rule |
rule | dictionary | The rule of the stock list |
created_date | date | The creation date |
modified_date | date | The last modified date |
is_active | boolean | The 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
Parameter | Data Type | In | Description |
---|---|---|---|
api_token | string | header | The API key of the customer account |
{rule_id} | string | query | The 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.
Parameter | Data Type | Description |
---|---|---|
id | string | The primary key of the created list |
name | string | The name of the rule |
rule_type | string | The type of the rule |
rule | dictionary | The rule of the stock list |
created_date | date | The creation date |
modified_date | date | The last modified date |
is_active | boolean | The 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.
Parameter | Data Type | Description |
---|---|---|
id | string | The primary key of the created list |
name | string | The name of the rule |
rule_type | string | The type of the rule |
rule | dictionary | The rule of the stock list |
created_date | date | The creation date |
modified_date | date | The last modified date |
is_active | boolean | The 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
Parameter | Data Type | In | Description |
---|---|---|---|
api_token | string | header | The API key of the customer account |
name | string | query | The name of the rule |
rule_type | string | query | The type of the rule |
is_active | boolean | query | The activation status of the rule |
limit | integer | query | The amount of line items returned per page |
page | string | query | The 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
Parameter | Data Type | In | Description |
---|---|---|---|
api_token | string | header | The API key of the customer account |
{rule_id} | string | query | The 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.
Parameter | Data Type | Description |
---|---|---|
id | string | The primary key of the created list |
name | string | The name of the rule |
rule_type | string | The type of the rule |
rule | dictionary | The rule of the stock list |
is_active | boolean | The 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
Parameter | Data Type | In | Description |
---|---|---|---|
api_token | string | header | The API key of the customer account |
{rule_id} | string | query | The 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"
}