Skip to main content

Product Stock

This article provides comprehensive information and documentation on a set of API methods specifically designed to handle product stocks. By leveraging these methods, users can retrieve, search, and create product stocks, allowing for seamless integration and management of product stock 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 product stock API.

GET Product Stock

Product Stock is responsible for keeping track of stock details of the related product within the specified stock list. There might be more than one piece of stock information for a product. Each product and stock list key pair is unique.

Path: /api/i1/product_stock/

  • content_type header represents the response type.

  • Authorization header is required for authentication. The api_token can be retrieved upon login.

Example Request

This request is used to retrieve all product stock data according to the limit and page parameters.

import requests

url = "https://{customer_api_url}/api/i1/product_stock/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

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

params = {
'limit': '4',
'page': '1'
}

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

Example Response (200 OK)

Response contains all stock data with given parameters. Response status is expected to be HTTP-200 Successful. Resource properties are in Python format.

PropertyData TypeDescription
idintegerID
product_skustringProduct SKU
stockintegerAmount of Stock (min: 0, max: 2147483647)
stock_listpk fieldStock List Primary Key
unit_typestringStocked Quantity Type (qty: Quantity, kg: Kilogram)
sold_quantity_unreportedintegerUnreported Sold Quantity (min: 0, max: 2147483647)
extra_fieldJSON objectExtra information field for related stock item of the product.

Additional metadata:

  • count: Number of product stocks in the system.
  • next: URL for the next page of product stocks.
  • previous: URL for the previous page of product stocks.
  • results: Array containing product stock details.
{
"count": 1012,
"next": "https://{customer_api_url}/api/i1/product_stock/?limit=4&page=2",
"previous": null,
"results": [
{
"id": 340,
"product_sku": "1116131001",
"stock": 100,
"stock_list": 1,
"unit_type": "qty",
"sold_quantity_unreported": 25
"extra_field": {
"test":"test"
}
}
]
}

POST Create or Update Stock

This API follows an upsert logic:

  • If the stock list already contains the product SKU, the stock will be updated.
  • If the product SKU is not in the stock list, a new stock entry is created.

To create or update a product's stock, the stock_list ID is required. Refer to this section for obtaining stock list details.

Path: /api/i1/product_stock/

  • content_type header represents the response type.

  • Authorization header is required for authentication. The api_token can be retrieved upon login.

Request Parameters

ParameterData TypeDefaultRequiredDescription
product_skustringYesProduct SKU
stockinteger0 during creation, no default in update; if not sent, update is skipped.NoStock Amount (min: 0, max: 2147483647)
stock_listpk fieldYesStock List Primary Key
unit_typestringqtyNoStocked quantity type. (qty: Quantity, kg: Kilogram)
sold_quantity_unreportedintegerNoUnreported Sold Quantity (min: 0, max: 2147483647)
extra_fieldJSON objectNoExtra information field for related stock item of the product.

Example Request

This request is used to create a new product stock according to the given body.

import requests
import json

url = "https://{customer_api_url}/api/i1/product_stock/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"

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

data = {
'product_sku': '1116131001',
'stock': 500,
'stock_list': 2,
'unit_type': 'qty',
"sold_quantity_unreported": 25
"extra_field": {
"test":"test"
}
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)

Example Response (201 Created)

A successful response returns HTTP-201 and the created stock details.

{
"id": 1270,
"product_sku": "1116131001",
"stock": 500,
"stock_list": 2,
"unit_type": "qty",
"sold_quantity_unreported": 25
"extra_field": {
"test":"test"
}
}