---
displayed_sidebar: entitiesSidebar
slug: /references/entities/classes/DiscountRule
---

import ParameterTypes from "@site/src/components/ParameterTypes"

# DiscountRule

A discount rule defines how a Discount is calculated when applied to a Cart.

## Properties

<ParameterTypes parameters={[{"name":"id","type":"`string`","description":"The discount rule's ID","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"created_at","type":"`Date`","description":"The date with timezone at which the resource was created.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"updated_at","type":"`Date`","description":"The date with timezone at which the resource was updated.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"deleted_at","type":"`null` \\| `Date`","description":"The date with timezone at which the resource was deleted.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"description","type":"`string`","description":"A short description of the discount","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"type","type":"[DiscountRuleType](../enums/entities.DiscountRuleType.mdx)","description":"The type of the Discount, can be `fixed` for discounts that reduce the price by a fixed amount, `percentage` for percentage reductions or `free\\_shipping` for shipping vouchers.","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"FIXED","type":"`\"fixed\"`","description":"Discounts that reduce the price by a fixed amount.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"PERCENTAGE","type":"`\"percentage\"`","description":"Discounts that reduce the price by a percentage reduction.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"FREE_SHIPPING","type":"`\"free_shipping\"`","description":"Discounts that sets the shipping price to `0`.","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"value","type":"`number`","description":"The value that the discount represents; this will depend on the type of the discount","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"allocation","type":"[AllocationType](../enums/entities.AllocationType.mdx)","description":"The scope that the discount should apply to.","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"TOTAL","type":"`\"total\"`","description":"The discount should be applied to the checkout total.","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"ITEM","type":"`\"item\"`","description":"The discount should be applied to applicable items in the cart.","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"conditions","type":"[DiscountCondition](entities.DiscountCondition.mdx)[]","description":"The details of the discount conditions associated with the rule. They can be used to limit when the discount can be used.","optional":false,"defaultValue":"","expandable":true,"children":[{"name":"id","type":"`string`","description":"The discount condition's ID","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"created_at","type":"`Date`","description":"The date with timezone at which the resource was created.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"updated_at","type":"`Date`","description":"The date with timezone at which the resource was updated.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"deleted_at","type":"`null` \\| `Date`","description":"The date with timezone at which the resource was deleted.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"type","type":"[DiscountConditionType](../enums/entities.DiscountConditionType.mdx)","description":"The type of the condition. The type affects the available resources associated with the condition. For example, if the type is `products`, that means the `products` relation will hold the products associated with this condition and other relations will be empty.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"operator","type":"[DiscountConditionOperator](../enums/entities.DiscountConditionOperator.mdx)","description":"The operator of the condition. `in` indicates that discountable resources are within the specified resources. `not\\_in` indicates that discountable resources are everything but the specified resources.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"discount_rule_id","type":"`string`","description":"The ID of the discount rule associated with the condition","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"discount_rule","type":"[DiscountRule](entities.DiscountRule.mdx)","description":"The details of the discount rule associated with the condition.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"products","type":"[Product](entities.Product.mdx)[]","description":"products associated with this condition if `type` is `products`.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"product_types","type":"[ProductType](entities.ProductType.mdx)[]","description":"Product types associated with this condition if `type` is `product\\_types`.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"product_tags","type":"[ProductTag](entities.ProductTag.mdx)[]","description":"Product tags associated with this condition if `type` is `product\\_tags`.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"product_collections","type":"[ProductCollection](entities.ProductCollection.mdx)[]","description":"Product collections associated with this condition if `type` is `product\\_collections`.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"customer_groups","type":"[CustomerGroup](entities.CustomerGroup.mdx)[]","description":"Customer groups associated with this condition if `type` is `customer\\_groups`.","optional":false,"defaultValue":"","expandable":true,"children":[]},{"name":"metadata","type":"`Record<string, unknown>`","description":"An optional key-value map with additional details","optional":false,"defaultValue":"","expandable":false,"children":[]}]},{"name":"metadata","type":"`Record<string, unknown>`","description":"An optional key-value map with additional details","optional":false,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/development/entities/repositories#retrieving-a-list-of-records" sectionTitle="DiscountRule"/>
