Skip to content

Commerce

Module to generate commerce and product related entries.

Overview

For a long product name like 'Incredible Soft Gloves', use productName(). The product names are generated from a list of adjectives, materials, and products, which can each be accessed separately using productAdjective(), productMaterial(), and product(). You can also create a description using productDescription().

For a department in a shop or product category, use department().

You can also create a price using price().

To work with product identifiers, generate an ISBN via isbn() or a 12‑digit UPC via upc(). You can compute a UPC check digit using calculateCheckDigit().

calculateCheckDigit

Calculates the check digit for a UPC‑A using the Modulo 10 algorithm.

Available since v10.1.0

Parameters

NameTypeDefaultDescription
digitsstring

The first 11 digits (UPC body) as a numeric string.

Returns: number

Throws: If digits is not exactly 11 numeric characters.

ts
function calculateCheckDigit(digits: string): number;

Examples

ts
faker.commerce.calculateCheckDigit('12345678901') // 2
faker.commerce.calculateCheckDigit('01234567890') // 5

See Also

  • upc

department

Returns a department inside a shop.

Available since v3.0.0

Returns: string

ts
function department(): string;

Examples

ts
faker.commerce.department() // 'Garden'

isbn

Returns a random ISBN identifier.

Available since v8.1.0

Parameters

NameTypeDefaultDescription
options10 | 13 | { ... }{}

The variant to return or an options object.

options.separator?string'-'

The separator to use in the format.

options.variant?10 | 1313

The variant of the identifier to return. Can be either 10 (10-digit format) or 13 (13-digit format).

Returns: string

ts
function isbn(
  options:
    | 10
    | 13
    | {
        variant?: 10 | 13;
        separator?: string;
      } = {}
): string;

Examples

ts
faker.commerce.isbn() // '978-0-692-82459-7'
faker.commerce.isbn(10) // '1-155-36404-X'
faker.commerce.isbn(13) // '978-1-60808-867-6'
faker.commerce.isbn({ separator: ' ' }) // '978 0 452 81498 1'
faker.commerce.isbn({ variant: 10, separator: ' ' }) // '0 940319 49 7'
faker.commerce.isbn({ variant: 13, separator: ' ' }) // '978 1 6618 9122 0'

price

Generates a price between min and max (inclusive).

To better represent real-world prices, when options.dec is greater than 0, the final decimal digit in the returned string will be generated as follows:

  • 50% of the time: 9
  • 30% of the time: 5
  • 10% of the time: 0
  • 10% of the time: a random digit from 0 to 9

Available since v3.0.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.dec?number2

The number of decimal places.

options.max?number1000

The maximum price.

options.min?number1

The minimum price.

options.symbol?string''

The currency value to use.

Returns: string

ts
function price(
  options: {
    min?: number;
    max?: number;
    dec?: number;
    symbol?: string;
  } = {}
): string;

Examples

ts
faker.commerce.price() // '828.07'
faker.commerce.price({ min: 100 }) // '904.19'
faker.commerce.price({ min: 100, max: 200 }) // '154.55'
faker.commerce.price({ min: 100, max: 200, dec: 0 }) // '133'
faker.commerce.price({ min: 100, max: 200, dec: 0, symbol: '$' }) // '$114'

product

Returns a short product name.

Available since v3.0.0

Returns: string

ts
function product(): string;

Examples

ts
faker.commerce.product() // 'Computer'

productAdjective

Returns an adjective describing a product.

Available since v3.0.0

Returns: string

ts
function productAdjective(): string;

Examples

ts
faker.commerce.productAdjective() // 'Handcrafted'

productDescription

Returns a product description.

Available since v5.0.0

Returns: string

ts
function productDescription(): string;

Examples

ts
faker.commerce.productDescription() // 'Featuring Phosphorus-enhanced technology, our Fish offers unparalleled Modern performance'

productMaterial

Returns a material of a product.

Available since v3.0.0

Returns: string

ts
function productMaterial(): string;

Examples

ts
faker.commerce.productMaterial() // 'Rubber'

productName

Generates a random descriptive product name.

Available since v3.0.0

Returns: string

ts
function productName(): string;

Examples

ts
faker.commerce.productName() // 'Incredible Soft Gloves'

upc

Returns a valid UPC‑A (12 digits).

When a prefix is provided, it is sanitized to digits and padded with random digits so that the body has 11 digits. The 12th digit (check digit) is computed using the Modulo 10 algorithm.

Available since v10.1.0

Parameters

NameTypeDefaultDescription
prefixstring''

Optional numeric prefix for the UPC body (0–11 digits). Non‑digits are ignored.

Returns: string

Throws: If prefix contains more than 11 digits after sanitization.

ts
function upc(prefix = ''): string;

Examples

ts
faker.commerce.upc() // '036000291452'
faker.commerce.upc('01234') // '012345678905'

See Also

  • calculateCheckDigit

Released under the MIT License.