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.

Property
Data Type
Description

id

integer

ID

product_sku

string

Product SKU

stock

integer

Amount of Stock (min: 0, max: 2147483647)

stock_list

pk field

Stock List Primary Key

unit_type

string

Stocked Quantity Type (qty: Quantity, kg: Kilogram)

sold_quantity_unreported

integer

Unreported Sold Quantity (min: 0, max: 2147483647)

extra_field

JSON object

Extra 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

Parameter
Data Type
Default
Required
Description

product_sku

string

Yes

Product SKU

stock

integer

0 during creation, no default in update; if not sent, update is skipped.

No

Stock Amount (min: 0, max: 2147483647)

stock_list

pk field

Yes

Stock List Primary Key

unit_type

string

qty

No

Stocked quantity type. (qty: Quantity, kg: Kilogram)

sold_quantity_unreported

integer

No

Unreported Sold Quantity (min: 0, max: 2147483647)

extra_field

JSON object

No

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

Was this helpful?