amazon_spapi/models/orders_v0/
order_item.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OrderItem {
17 #[serde(rename = "ASIN")]
19 pub asin: String,
20 #[serde(rename = "SellerSKU", skip_serializing_if = "Option::is_none")]
22 pub seller_sku: Option<String>,
23 #[serde(rename = "OrderItemId")]
25 pub order_item_id: String,
26 #[serde(rename = "AssociatedItems", skip_serializing_if = "Option::is_none")]
28 pub associated_items: Option<Vec<models::orders_v0::AssociatedItem>>,
29 #[serde(rename = "Title", skip_serializing_if = "Option::is_none")]
31 pub title: Option<String>,
32 #[serde(rename = "QuantityOrdered")]
34 pub quantity_ordered: i32,
35 #[serde(rename = "QuantityShipped", skip_serializing_if = "Option::is_none")]
37 pub quantity_shipped: Option<i32>,
38 #[serde(rename = "ProductInfo", skip_serializing_if = "Option::is_none")]
39 pub product_info: Option<Box<models::orders_v0::ProductInfoDetail>>,
40 #[serde(rename = "PointsGranted", skip_serializing_if = "Option::is_none")]
41 pub points_granted: Option<Box<models::orders_v0::PointsGrantedDetail>>,
42 #[serde(rename = "ItemPrice", skip_serializing_if = "Option::is_none")]
43 pub item_price: Option<Box<models::orders_v0::Money>>,
44 #[serde(rename = "ShippingPrice", skip_serializing_if = "Option::is_none")]
45 pub shipping_price: Option<Box<models::orders_v0::Money>>,
46 #[serde(rename = "ItemTax", skip_serializing_if = "Option::is_none")]
47 pub item_tax: Option<Box<models::orders_v0::Money>>,
48 #[serde(rename = "ShippingTax", skip_serializing_if = "Option::is_none")]
49 pub shipping_tax: Option<Box<models::orders_v0::Money>>,
50 #[serde(rename = "ShippingDiscount", skip_serializing_if = "Option::is_none")]
51 pub shipping_discount: Option<Box<models::orders_v0::Money>>,
52 #[serde(rename = "ShippingDiscountTax", skip_serializing_if = "Option::is_none")]
53 pub shipping_discount_tax: Option<Box<models::orders_v0::Money>>,
54 #[serde(rename = "PromotionDiscount", skip_serializing_if = "Option::is_none")]
55 pub promotion_discount: Option<Box<models::orders_v0::Money>>,
56 #[serde(rename = "PromotionDiscountTax", skip_serializing_if = "Option::is_none")]
57 pub promotion_discount_tax: Option<Box<models::orders_v0::Money>>,
58 #[serde(rename = "PromotionIds", skip_serializing_if = "Option::is_none")]
60 pub promotion_ids: Option<Vec<String>>,
61 #[serde(rename = "CODFee", skip_serializing_if = "Option::is_none")]
62 pub cod_fee: Option<Box<models::orders_v0::Money>>,
63 #[serde(rename = "CODFeeDiscount", skip_serializing_if = "Option::is_none")]
64 pub cod_fee_discount: Option<Box<models::orders_v0::Money>>,
65 #[serde(rename = "IsGift", skip_serializing_if = "Option::is_none")]
67 pub is_gift: Option<String>,
68 #[serde(rename = "ConditionNote", skip_serializing_if = "Option::is_none")]
70 pub condition_note: Option<String>,
71 #[serde(rename = "ConditionId", skip_serializing_if = "Option::is_none")]
73 pub condition_id: Option<String>,
74 #[serde(rename = "ConditionSubtypeId", skip_serializing_if = "Option::is_none")]
76 pub condition_subtype_id: Option<String>,
77 #[serde(rename = "ScheduledDeliveryStartDate", skip_serializing_if = "Option::is_none")]
79 pub scheduled_delivery_start_date: Option<String>,
80 #[serde(rename = "ScheduledDeliveryEndDate", skip_serializing_if = "Option::is_none")]
82 pub scheduled_delivery_end_date: Option<String>,
83 #[serde(rename = "PriceDesignation", skip_serializing_if = "Option::is_none")]
85 pub price_designation: Option<String>,
86 #[serde(rename = "TaxCollection", skip_serializing_if = "Option::is_none")]
87 pub tax_collection: Option<Box<models::orders_v0::TaxCollection>>,
88 #[serde(rename = "SerialNumberRequired", skip_serializing_if = "Option::is_none")]
90 pub serial_number_required: Option<bool>,
91 #[serde(rename = "IsTransparency", skip_serializing_if = "Option::is_none")]
93 pub is_transparency: Option<bool>,
94 #[serde(rename = "IossNumber", skip_serializing_if = "Option::is_none")]
96 pub ioss_number: Option<String>,
97 #[serde(rename = "StoreChainStoreId", skip_serializing_if = "Option::is_none")]
99 pub store_chain_store_id: Option<String>,
100 #[serde(rename = "DeemedResellerCategory", skip_serializing_if = "Option::is_none")]
102 pub deemed_reseller_category: Option<DeemedResellerCategory>,
103 #[serde(rename = "BuyerInfo", skip_serializing_if = "Option::is_none")]
104 pub buyer_info: Option<Box<models::orders_v0::ItemBuyerInfo>>,
105 #[serde(rename = "BuyerRequestedCancel", skip_serializing_if = "Option::is_none")]
106 pub buyer_requested_cancel: Option<Box<models::orders_v0::BuyerRequestedCancel>>,
107 #[serde(rename = "SerialNumbers", skip_serializing_if = "Option::is_none")]
109 pub serial_numbers: Option<Vec<String>>,
110 #[serde(rename = "SubstitutionPreferences", skip_serializing_if = "Option::is_none")]
111 pub substitution_preferences: Option<Box<models::orders_v0::SubstitutionPreferences>>,
112 #[serde(rename = "Measurement", skip_serializing_if = "Option::is_none")]
113 pub measurement: Option<Box<models::orders_v0::Measurement>>,
114 #[serde(rename = "ShippingConstraints", skip_serializing_if = "Option::is_none")]
115 pub shipping_constraints: Option<Box<models::orders_v0::ShippingConstraints>>,
116 #[serde(rename = "AmazonPrograms", skip_serializing_if = "Option::is_none")]
117 pub amazon_programs: Option<Box<models::orders_v0::AmazonPrograms>>,
118}
119
120impl OrderItem {
121 pub fn new(asin: String, order_item_id: String, quantity_ordered: i32) -> OrderItem {
123 OrderItem {
124 asin,
125 seller_sku: None,
126 order_item_id,
127 associated_items: None,
128 title: None,
129 quantity_ordered,
130 quantity_shipped: None,
131 product_info: None,
132 points_granted: None,
133 item_price: None,
134 shipping_price: None,
135 item_tax: None,
136 shipping_tax: None,
137 shipping_discount: None,
138 shipping_discount_tax: None,
139 promotion_discount: None,
140 promotion_discount_tax: None,
141 promotion_ids: None,
142 cod_fee: None,
143 cod_fee_discount: None,
144 is_gift: None,
145 condition_note: None,
146 condition_id: None,
147 condition_subtype_id: None,
148 scheduled_delivery_start_date: None,
149 scheduled_delivery_end_date: None,
150 price_designation: None,
151 tax_collection: None,
152 serial_number_required: None,
153 is_transparency: None,
154 ioss_number: None,
155 store_chain_store_id: None,
156 deemed_reseller_category: None,
157 buyer_info: None,
158 buyer_requested_cancel: None,
159 serial_numbers: None,
160 substitution_preferences: None,
161 measurement: None,
162 shipping_constraints: None,
163 amazon_programs: None,
164 }
165 }
166}
167#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
169pub enum DeemedResellerCategory {
170 #[serde(rename = "IOSS")]
171 Ioss,
172 #[serde(rename = "UOSS")]
173 Uoss,
174}
175
176impl Default for DeemedResellerCategory {
177 fn default() -> DeemedResellerCategory {
178 Self::Ioss
179 }
180}
181