ChemPal Documentation - v1.7.0
    Preparing search index...

    Interface ChemsaversProductObject

    Represents a product from the Chemsavers catalog.

    Contains all product details including:

    • Basic information (name, description, ID)
    • Pricing information (retail, sale, MAP prices)
    • Inventory details
    • Categorization and metadata
    • Product identifiers (SKU, UPC, CAS)
    interface ChemsaversProductObject {
        CAS?: string;
        calculatedPrice: number;
        categories: string[];
        description: string;
        hasOptions: boolean;
        id: string;
        images: ChemsaversImage[];
        inventoryLevel: number;
        inventoryTracking: string;
        inventory_tracking: string;
        mapPrice: number;
        metaDescription: string;
        metaKeywords: string[];
        name: string;
        price: number;
        product_id: number;
        retailPrice: number;
        salePrice: number;
        sku: string;
        sortOrder: number;
        upc: string;
        url: string;
        variants?: ChemsaversProductVariant[];
        matchPercentage: number;
        _id?: number;
        parentProduct?: { title: string; url: string; permalink?: string };
        priceSeriesKey?: string;
        priceTrendValue?: number;
    }

    Hierarchy (View Summary)

    Index

    Properties

    CAS?: string

    Chemical Abstracts Service registry number

    calculatedPrice: number

    Final calculated price after any adjustments

    categories: string[]

    List of categories the product belongs to

    description: string

    Full product description

    hasOptions: boolean

    Whether the product has variant options

    id: string

    Unique identifier for the product

    images: ChemsaversImage[]

    Product images, each with full-size and thumbnail URLs

    inventoryLevel: number

    Current stock level

    inventoryTracking: string

    Type of inventory tracking used

    inventory_tracking: string

    BigCommerce inventory tracking mode: "none" (untracked, always purchasable), "product", or "variant"

    mapPrice: number

    Minimum Advertised Price

    metaDescription: string

    SEO meta description

    metaKeywords: string[]

    SEO keywords

    name: string

    Product name/title

    price: number

    Current price

    product_id: number

    Internal product ID number

    retailPrice: number

    Original retail price

    salePrice: number

    Discounted sale price

    sku: string

    Stock Keeping Unit identifier

    sortOrder: number

    Display order priority

    upc: string

    Universal Product Code

    url: string

    Product page URL

    Array of variant products

    matchPercentage: number

    Match percentage of the product title and the search string

    95
    
    _id?: number

    Positional index of the product within the current search-results list, assigned at render/persist time. This is NOT a stable product identifier (that is id) — it only conveys row position, so consumers that need a unique row key can use it without clobbering the real product id.

    0
    
    parentProduct?: { title: string; url: string; permalink?: string }

    Display-only back-reference to the main product, set on flattened variant rows when the "group product variants" setting is off (see flattenProductVariants). Lets the detail panel link back to the parent instead of listing variants. Never set by suppliers, never persisted or exported.

    priceSeriesKey?: string

    Display-only price-history series id for this row, stamped on flattened variant rows when the "group product variants" setting is off (see flattenProductVariants). Because flattening merges the variant onto a copy of the product and drops variants, the row can no longer recompute its own variantSeriesKey; carrying the resolved key lets the results table look up the variant's recorded series directly. Never set by suppliers, never persisted or exported.

    priceTrendValue?: number

    Display-only signed percent change of this row's price trend (rising = +, falling = −), stamped by the results table so its trend column has a value to sort by (price history isn't on the row — it's loaded separately). Absent when the row has no drawable trend. Never set by suppliers, never persisted or exported.