OptionaltitleDisplay name of the variant
"Sodium Chloride 500g"
OptionaldescriptionDescription of the variant
"Sodium Chloride 500g"
OptionalshortShort description of the variant
"Sodium Chloride 500g"
OptionalratingRating of the variant
4.5
OptionalreviewNumber of reviews for the variant
100
OptionaluomUnit of measurement for the variant quantity
"g"
OptionalpriceNumeric price value of the variant
19.99
OptionalcurrencyISO currency code for the price
"USD"
OptionalcurrencyDisplay symbol for the currency
"$"
OptionalquantityAvailable quantity in stock
100
OptionalbaseReference quantity for unit conversion calculations
500
OptionalbaseReference unit of measurement for conversions
"g"
OptionalusdPrice converted to USD for comparison
19.99
OptionallocalThe price convert to the users local currency
OptionalskuStock keeping unit identifier for inventory tracking
"NaCl-500"
OptionalurlURL ChemPal queries/processes for this variant — may be an API endpoint rather than a human-facing page.
"/products/sodium-chloride-500g"
OptionalpermalinkHuman-facing page for this variant, i.e. what the user opens in the browser. Defaults to url when not separately provided.
"https://supplier.com/products/sodium-chloride-500g"
OptionalidUnique identifier within the system
12345
OptionaluuidGlobally unique identifier
"550e8400-e29b-41d4-a716-446655440000"
OptionalcacheStable per-product cache/exclusion identity, as derived by
SupplierBase.getUniqueProductKey and frozen on the builder at parse
time. Combined with the supplier name (via getProductIdentityKey) to
key the product-detail cache and the "Ignore Product" exclusion store.
"FAM_889460"
OptionalgradeChemical grade specification (e.g., 'ACS', 'Technical')
"ACS"
OptionalconcentrationChemical concentration specification
"98%"
OptionalmoleweightMolecular weight of the variant
100.00
OptionalformulaMolecular formula
`C<sub>18</sub>H<sub>33</sub>NaO<sub>3</sub>`
OptionalpurityPurity of the variant, as a percentage string. Keeps any qualifier the supplier reports,
e.g. comparators (<, >, ≤, ≥) and the % sign.
"98%"
"≥99%"
OptionalstatusCurrent status code of the variant
"IN_STOCK"
OptionalstatusHuman-readable status description
"In Stock"
OptionalshippingSpecial shipping requirements or information
"Hazardous material - special shipping required"
OptionalpurchaseParsed purchase restrictions (region/buyer/etc.) used to hide options a given user cannot buy. See PurchaseRestriction.
OptionalavailabilityAvailability of the variant
"IN_STOCK"
OptionalattributesAttributes of the variant
`[{ name: "Size", value: "500g" }]`
OptionalmolesNumber of moles of the variant
23.5
OptionalimagesFlat list of the product's images. Full-size images and thumbnails are
kept as separate, independent entries distinguished by their type field
(see ProductImage; a supplier's main image/thumbnail is often not
part of its gallery). The
first entry of each type is treated as that type's default.
`[{ href: "https://example.com/image.jpg", type: "image" }, { href: "https://example.com/thumb.jpg", type: "thumbnail" }]`
Represents a specific variation of a product with its unique characteristics and pricing. Used to model different versions or package sizes of the same product.
Example