***

title: "StockDisplayStrategy"
generated: true
---------------

<GenerationInfo sourceFile="packages/core/src/config/catalog/stock-display-strategy.ts" sourceLine="21" packageName="@vendure/core" />

Defines how the `ProductVariant.stockLevel` value is obtained. It is usually not desirable
to directly expose stock levels over a public API, as this could be considered a leak of
sensitive information. However, the storefront will usually want to display *some* indication
of whether a given ProductVariant is in stock.

:::info

This is configured via the `catalogOptions.stockDisplayStrategy` property of
your VendureConfig.

:::

```ts title="Signature"
interface StockDisplayStrategy extends InjectableStrategy {
    getStockLevel(
        ctx: RequestContext,
        productVariant: ProductVariant,
        saleableStockLevel: number,
    ): string | Promise<string>;
}
```

* Extends: [`InjectableStrategy`](/current/core/reference/typescript-api/common/injectable-strategy#injectablestrategy)

<div className="members-wrapper">

### getStockLevel

\<MemberInfo kind="method" type={`(ctx: <a href='/current/core/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, productVariant: <a href='/current/core/reference/typescript-api/entities/product-variant#productvariant'>ProductVariant</a>, saleableStockLevel: number) => string | Promise<string>`}   />

Returns a string representing the stock level, which will be used directly
in the GraphQL `ProductVariant.stockLevel` field.

</div>
