Skip to content
Get started

List Products

ProductListProductsResponse Products.ListProducts(ProductListProductsParams?parameters, CancellationTokencancellationToken = default)
GET/api/v2/public/products

The product catalogue for the organisation. Returns the product_number values every other endpoint uses to refer to a product. For stock levels use the store products stock endpoints.

ParametersExpand Collapse
ProductListProductsParams parameters
string barcode
string pageSize
string pageStart
IReadOnlyList<string> productNumber
string storeNo
ReturnsExpand Collapse
class ProductListProductsResponse:

Lightweight paginated result set.

required Long PageNumber

Current page number (1-based).

formatint64
required Int PageSize

Maximum number of records returned per page.

formatint32
required Long TotalRecordCount

Total number of records matching the query across all pages.

formatint64
IReadOnlyList<ProductItem>? Records

Collection of records for the current page.

required string Barcode

Primary barcode for the product.

required Double CarrierItemQuantity
formatdouble
required Int EditMinMaxPercentage

How far store staff may move the minimum and maximum levels, as a percentage. Comes from the product’s category, not the product itself.

formatint32
required Double PriceCompareMultiplier

Multiplier applied with price_compare_unit to work out the comparison price.

formatdouble
required string ProductName

Display name of the product.

required string ProductNumber

Unique product number.

required Int ShelfLabelQuantity

Number of shelf labels to print.

formatint32
Boolean? AllowDecimal

true when the product can be counted in fractions, such as weighed goods.

string? AttentionCode

Attention code that flags the product for special handling.

Double? AverageWeight

Average weight of one unit, for products sold by weight.

formatdouble
string? BarcodesArray

All barcodes for the product, beyond the primary one.

string? BaseUnitName

Name of the unit the product is counted in.

string? BrandCode

Brand code in the source system.

string? BrandDescription

Brand name.

string? CategoryCode

Category the product belongs to. Matches category_code on the categories endpoint.

string? Color

Colour name, for products with variants.

string? ColorCode

Colour code, for products with variants.

IReadOnlyList<string>? CountriesAllowed

Countries where the product may be sold. Empty means all countries.

IReadOnlyList<string>? CountriesNotAllowed

Countries where the product may not be sold.

string? CountryCode

Country the product belongs to.

DateTimeOffset? DeprecationDate

Date the product stops being sold. Formatted yyyyMMdd.

formatdate-time
Int? ExpirationMinRange

Number of days before expiry at which the product should be acted on.

formatint32
IReadOnlyList<FreeField>? FreeFields

Free key/value fields carried against the product.

required Int SortOrder

Order the field is shown in.

formatint32
string? Key

Name of the free field.

string? Value

Value of the free field.

string? GeneralLedger

General ledger account the product books to.

string? ImageUrl

Link to the product image.

Boolean? IsActive

false when the product is no longer sold.

Boolean? IsCounted

true when the product is included in stock counts.

Boolean? IsEditMinMax

true when store staff may change the minimum and maximum levels.

Boolean? IsEditReplenishment

true when store staff may change the replenishment settings.

Boolean? IsExpiration

true when the product has an expiry date that has to be tracked.

Boolean? IsOrderManually

true when the product is ordered by hand instead of by replenishment.

Boolean? IsPromotion

true when the product is currently on promotion.

Boolean? IsSet

true when the product is a set made up of other products.

Boolean? IsStock

true when stock is tracked for this product.

Boolean? IsStoreProduct

true when the product is ranged in the store the request was scoped to.

Boolean? IsTemplate

true when the product is a template rather than a sellable item.

string? MarginCategory

Margin category used for reporting.

Double? Moq

Minimum order quantity. Orders below this are not placed.

formatdouble
Double? OldPrice

Previous sales price, kept so a price change can be shown.

formatdouble
Double? Price

Current sales price.

formatdouble
string? PriceCompareUnit

Unit the comparison price is expressed in, such as a litre or a kilo.

string? PriceLines
string? ProductDetails

Free text description of the product.

string? ProductType

Type of product, used to drive handling in the app.

string? ProductUrl

Link to the product page.

IReadOnlyList<string>? PromoStoresAllowed

Store numbers where the promotion applies. Empty means all stores.

IReadOnlyList<string>? PromoStoresNotAllowed

Store numbers where the promotion does not apply.

string? Promotion

Promotion the product is part of.

Double? PromotionPrice

Price while the product is on promotion.

formatdouble
string? PromotionWeek

Week the promotion runs in.

Double? PurchasePrice

Price paid to the supplier.

formatdouble
string? PurchaseUnitBarcode

Barcode of the unit the product is ordered in.

string? PurchaseUnitName

Name of the unit the product is ordered in.

string? PurchaseUnitProductNumber

Product number of the purchase unit, when it differs from this product.

Double? PurchaseUnitQuantity

How many base units are in one purchase unit.

formatdouble
string? ReferralProductID
Boolean? ResetStoreStock
IReadOnlyList<SetProduct>? SetProduct

The products that make up the set, with their quantities.

string? SetItemQuantity

How many of that component the set contains.

string? SetProductNumber

Product number of a component in the set.

Boolean? ShelfLabel

true when a shelf label should be printed for this product.

Boolean? ShelfLabelBarcode

true when the shelf label shows the barcode.

Int? ShelfLabelLayout

Layout used when printing a shelf label.

formatint32
Boolean? ShelfLabelPrice

true when the shelf label shows the price.

string? Size

Size name, for products with variants.

string? SizeCode

Size code, for products with variants.

string? SmallestProductNumber

Product number of the smallest sellable unit, when this product is a larger pack.

Double? SmallestQuantity

How many of the smallest unit this product contains.

formatdouble
Double? SpecialPrice

Temporary price that overrides the normal one while it applies.

formatdouble
IReadOnlyList<string>? StoresAllowed

Store numbers where the product may be sold. Empty means all stores.

IReadOnlyList<string>? StoresNotAllowed

Store numbers where the product may not be sold.

string? SupplierID

Supplier code. Matches supplier_code on the suppliers endpoint.

string? SupplierName

Supplier name.

string? SupplierProductNumber

The supplier’s own number for this product.

IReadOnlyList<Unit>? Units

The units the product can be handled in, each with its own barcode and quantity.

required Double UnitQuantity

How many base units this unit contains.

formatdouble
string? UnitBarcode

Barcode for this unit.

string? UnitName

Name of the unit.

string? VariantCode

Code that identifies this specific variant.

Double? VariantFactor
formatdouble
string? VariantFamily

Code shared by all variants of the same product.

string? Volume

Volume or content of the product, as text.

List Products

ProductListProductsParams parameters = new();

var response = await client.Products.ListProducts(parameters);

Console.WriteLine(response);
{
  "page_number": 0,
  "page_size": 0,
  "total_record_count": 0,
  "records": [
    {
      "barcode": "barcode",
      "carrier_item_quantity": 0,
      "edit_min_max_percentage": 0,
      "price_compare_multiplier": 0,
      "product_name": "product_name",
      "product_number": "product_number",
      "shelf_label_quantity": 0,
      "allow_decimal": true,
      "attention_code": "attention_code",
      "average_weight": 0,
      "barcodes_array": "barcodes_array",
      "base_unit_name": "base_unit_name",
      "brand_code": "brand_code",
      "brand_description": "brand_description",
      "category_code": "category_code",
      "color": "color",
      "color_code": "color_code",
      "countries_allowed": [
        "string"
      ],
      "countries_not_allowed": [
        "string"
      ],
      "country_code": "country_code",
      "deprecation_date": "2019-12-27T18:11:19.117Z",
      "expiration_min_range": 0,
      "free_fields": [
        {
          "sort_order": 0,
          "key": "key",
          "value": "value"
        }
      ],
      "general_ledger": "general_ledger",
      "image_url": "image_url",
      "is_active": true,
      "is_counted": true,
      "is_edit_min_max": true,
      "is_edit_replenishment": true,
      "is_expiration": true,
      "is_order_manually": true,
      "is_promotion": true,
      "is_set": true,
      "is_stock": true,
      "is_store_product": true,
      "is_template": true,
      "margin_category": "margin_category",
      "moq": 0,
      "old_price": 0,
      "price": 0,
      "price_compare_unit": "price_compare_unit",
      "price_lines": "price_lines",
      "product_details": "product_details",
      "product_type": "product_type",
      "product_url": "product_url",
      "promo_stores_allowed": [
        "string"
      ],
      "promo_stores_not_allowed": [
        "string"
      ],
      "promotion": "promotion",
      "promotion_price": 0,
      "promotion_week": "promotion_week",
      "purchase_price": 0,
      "purchase_unit_barcode": "purchase_unit_barcode",
      "purchase_unit_name": "purchase_unit_name",
      "purchase_unit_product_number": "purchase_unit_product_number",
      "purchase_unit_quantity": 0,
      "referral_product_id": "referral_product_id",
      "reset_store_stock": true,
      "set_product": [
        {
          "set_item_quantity": "set_item_quantity",
          "set_product_number": "set_product_number"
        }
      ],
      "shelf_label": true,
      "shelf_label_barcode": true,
      "shelf_label_layout": 0,
      "shelf_label_price": true,
      "size": "size",
      "size_code": "size_code",
      "smallest_product_number": "smallest_product_number",
      "smallest_quantity": 0,
      "special_price": 0,
      "stores_allowed": [
        "string"
      ],
      "stores_not_allowed": [
        "string"
      ],
      "supplier_id": "supplier_id",
      "supplier_name": "supplier_name",
      "supplier_product_number": "supplier_product_number",
      "units": [
        {
          "unit_quantity": 0,
          "unit_barcode": "unit_barcode",
          "unit_name": "unit_name"
        }
      ],
      "variant_code": "variant_code",
      "variant_factor": 0,
      "variant_family": "variant_family",
      "volume": "volume"
    }
  ]
}
{
  "code": 401,
  "status": "error",
  "message": "Authentication failed.",
  "error": "unauthorized",
  "error_description": "Authentication failed."
}
{
  "code": 500,
  "status": "fail",
  "message": "The request could not be processed.",
  "error": "internal_error",
  "error_description": "The request could not be processed."
}
Returns Examples
{
  "page_number": 0,
  "page_size": 0,
  "total_record_count": 0,
  "records": [
    {
      "barcode": "barcode",
      "carrier_item_quantity": 0,
      "edit_min_max_percentage": 0,
      "price_compare_multiplier": 0,
      "product_name": "product_name",
      "product_number": "product_number",
      "shelf_label_quantity": 0,
      "allow_decimal": true,
      "attention_code": "attention_code",
      "average_weight": 0,
      "barcodes_array": "barcodes_array",
      "base_unit_name": "base_unit_name",
      "brand_code": "brand_code",
      "brand_description": "brand_description",
      "category_code": "category_code",
      "color": "color",
      "color_code": "color_code",
      "countries_allowed": [
        "string"
      ],
      "countries_not_allowed": [
        "string"
      ],
      "country_code": "country_code",
      "deprecation_date": "2019-12-27T18:11:19.117Z",
      "expiration_min_range": 0,
      "free_fields": [
        {
          "sort_order": 0,
          "key": "key",
          "value": "value"
        }
      ],
      "general_ledger": "general_ledger",
      "image_url": "image_url",
      "is_active": true,
      "is_counted": true,
      "is_edit_min_max": true,
      "is_edit_replenishment": true,
      "is_expiration": true,
      "is_order_manually": true,
      "is_promotion": true,
      "is_set": true,
      "is_stock": true,
      "is_store_product": true,
      "is_template": true,
      "margin_category": "margin_category",
      "moq": 0,
      "old_price": 0,
      "price": 0,
      "price_compare_unit": "price_compare_unit",
      "price_lines": "price_lines",
      "product_details": "product_details",
      "product_type": "product_type",
      "product_url": "product_url",
      "promo_stores_allowed": [
        "string"
      ],
      "promo_stores_not_allowed": [
        "string"
      ],
      "promotion": "promotion",
      "promotion_price": 0,
      "promotion_week": "promotion_week",
      "purchase_price": 0,
      "purchase_unit_barcode": "purchase_unit_barcode",
      "purchase_unit_name": "purchase_unit_name",
      "purchase_unit_product_number": "purchase_unit_product_number",
      "purchase_unit_quantity": 0,
      "referral_product_id": "referral_product_id",
      "reset_store_stock": true,
      "set_product": [
        {
          "set_item_quantity": "set_item_quantity",
          "set_product_number": "set_product_number"
        }
      ],
      "shelf_label": true,
      "shelf_label_barcode": true,
      "shelf_label_layout": 0,
      "shelf_label_price": true,
      "size": "size",
      "size_code": "size_code",
      "smallest_product_number": "smallest_product_number",
      "smallest_quantity": 0,
      "special_price": 0,
      "stores_allowed": [
        "string"
      ],
      "stores_not_allowed": [
        "string"
      ],
      "supplier_id": "supplier_id",
      "supplier_name": "supplier_name",
      "supplier_product_number": "supplier_product_number",
      "units": [
        {
          "unit_quantity": 0,
          "unit_barcode": "unit_barcode",
          "unit_name": "unit_name"
        }
      ],
      "variant_code": "variant_code",
      "variant_factor": 0,
      "variant_family": "variant_family",
      "volume": "volume"
    }
  ]
}
{
  "code": 401,
  "status": "error",
  "message": "Authentication failed.",
  "error": "unauthorized",
  "error_description": "Authentication failed."
}
{
  "code": 500,
  "status": "fail",
  "message": "The request could not be processed.",
  "error": "internal_error",
  "error_description": "The request could not be processed."
}