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"
}

Last updated

Was this helpful?