pub struct OrderLineItemDiscount {
    pub uid: Option<String>,
    pub catalog_object_id: Option<String>,
    pub catalog_version: Option<i64>,
    pub name: Option<String>,
    pub type: Option<OrderLineItemDiscountType>,
    pub percentage: Option<String>,
    pub amount_money: Option<Money>,
    pub applied_money: Option<Money>,
    pub metadata: Option<HashMap<String, String>>,
    pub scope: Option<OrderLineItemDiscountScope>,
    pub reward_ids: Option<Vec<String>>,
    pub pricing_rule_id: Option<String>,
}
Expand description

Represents a discount that applies to one or more line items in an order.

Fixed-amount, order-scoped discounts are distributed across all non-zero line item totals. The amount distributed to each line item is relative to the amount contributed by the item to the order subtotal.

Fields

uid: Option<String>

A unique ID that identifies the discount only within this order.

catalog_object_id: Option<String>

The catalog object ID referencing [CatalogDiscount].

catalog_version: Option<i64>

The version of the catalog object that this discount references.

name: Option<String>

The discount’s name.

type: Option<OrderLineItemDiscountType>

The type of the discount.

Discounts that do not reference a catalog object ID must have a type of FIXED_PERCENTAGE or FIXED_AMOUNT.

percentage: Option<String>

The percentage of the discount, as a string representation of a decimal number. A value of 7.25 corresponds to a percentage of 7.25%.

percentage is not set for amount-based discounts.

amount_money: Option<Money>

The total declared monetary amount of the discount.

amount_money is not set for percentage-based discounts.

applied_money: Option<Money>

The amount of discount actually applied to the line item.

The amount represents the amount of money applied as a line-item scoped discount. When an amount-based discount is scoped to the entire order, the value of applied_money is different than amount_money because the total amount of the discount is distributed across all line items.

metadata: Option<HashMap<String, String>>

Application-defined data attached to this discount. Metadata fields are intended to store descriptive references or associations with an entity in another system or store brief information about the object. Square does not process this field; it only stores and returns it in relevant API calls. Do not use metadata to store any sensitive information (such as personally identifiable information or card details).

Keys written by applications must be 60 characters or less and must be in the character set [a-zA-Z0-9_-]. Entries can also include metadata generated by Square. These keys are prefixed with a namespace, separated from the key with a ‘:’ character.

Values have a maximum length of 255 characters.

An application can have up to 10 entries per metadata field.

Entries written by applications are private and can only be read or modified by the same application.

For more information, see Metadata.

scope: Option<OrderLineItemDiscountScope>

Indicates the level at which the discount applies. For ORDER scoped discounts, Square generates references in applied_discounts on all order line items that do not have them. For LINE_ITEM scoped discounts, the discount only applies to line items with a discount reference in their applied_discounts field.

This field is immutable. To change the scope of a discount, you must delete the discount and re-add it as a new discount.

reward_ids: Option<Vec<String>>

Read only The reward IDs corresponding to this discount. The application and specification of discounts that have reward_ids are completely controlled by the backing criteria corresponding to the reward tiers of the rewards that are added to the order through the Loyalty API. To manually unapply discounts that are the result of added rewards, the rewards must be removed from the order through the Loyalty API.

pricing_rule_id: Option<String>

Read only The object ID of a pricing rule to be applied automatically to this discount. The specification and application of the discounts, to which a pricing_rule_id is assigned, are completely controlled by the corresponding pricing rule.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more