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§
Source§impl Clone for OrderLineItemDiscount
impl Clone for OrderLineItemDiscount
Source§fn clone(&self) -> OrderLineItemDiscount
fn clone(&self) -> OrderLineItemDiscount
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for OrderLineItemDiscount
impl Debug for OrderLineItemDiscount
Source§impl Default for OrderLineItemDiscount
impl Default for OrderLineItemDiscount
Source§fn default() -> OrderLineItemDiscount
fn default() -> OrderLineItemDiscount
Source§impl<'de> Deserialize<'de> for OrderLineItemDiscount
impl<'de> Deserialize<'de> for OrderLineItemDiscount
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for OrderLineItemDiscount
impl PartialEq for OrderLineItemDiscount
Source§impl Serialize for OrderLineItemDiscount
impl Serialize for OrderLineItemDiscount
impl Eq for OrderLineItemDiscount
impl StructuralPartialEq for OrderLineItemDiscount
Auto Trait Implementations§
impl Freeze for OrderLineItemDiscount
impl RefUnwindSafe for OrderLineItemDiscount
impl Send for OrderLineItemDiscount
impl Sync for OrderLineItemDiscount
impl Unpin for OrderLineItemDiscount
impl UnwindSafe for OrderLineItemDiscount
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.